Я запускаю скрипт, чтобы получить некоторые метрики для базы данных Azure SQL.
$metrics = Get-AzMetric -ResourceId $databaseResourceId -MetricName "dtu_consumption_percent" - StartTime (Get-Date).AddDays(-100) -EndTime (Get-Date)
$sumOfAverages = 0
foreach ($metric in $metrics.Data) {
foreach ($data in $metric) {
# Добавляем среднее значение к сумме
$sumOfAverages += $data.Average
}
}
$sumOfAverages
Но когда я получаю $sumOfAverages
, он выдает значение 880.75.
В чем измеряется это значение? Это %, так что 8.8075 % от dtu
установлено в базе данных. Если DTU составляет 200, значит, использовано только 8% из этого. Верно?
Я запустил несколько скриптов, чтобы получить значение, но нужно ли мне это метрика?
Ответ
Ваша проблема связана с пониманием метрики, которую вы получаете для базы данных Azure SQL. Давайте разберем это более подробно.
Когда вы выполняете команду Get-AzMetric -ResourceId $databaseResourceId -MetricName "dtu_consumption_percent"
, вы запрашиваете метрику, которая измеряет процент потребления DTU (Database Transaction Units) вашей базы данных за указанный период времени.
-
Единица измерения: Метрика "dtu_consumption_percent" имеет единицу измерения в процентах (%). Это означает, что возвращаемое значение указывает на процент использования DTU от общего количества, установленного для вашей базы данных.
-
Интерпретация значения: Если вы получили значение 880.75, это обобщенное значение за период времени, который вы запрашивали (100 дней). Этот результат нужно делить на количество измерений (число точек данных), чтобы получить среднее значение потребления DTU в процентном отношении за указанное время. Учитывая, что 100% означает полное использование всех доступных DTU, если ваш уровень DTU составляет 200, это значение будет означать, что в среднем база данных использовала около 8.8075% доступных DTU.
-
Проверка суммирования: Чтобы удостовериться в правильности расчёта, вы можете проверить количество данных, которые вы обрабатываете, и разделить итог по $sumOfAverages на это количество. Например:
$averageConsumption = $sumOfAverages / $metrics.Data.Count
Это даст вам среднее значение процента, которое вы можете интерпретировать как نسبة использования DTU по сравнению с доступными 200.
- Необходимость метрики: Да, метрики важны, так как они позволяют вам анализировать производительность вашей базы данных, определять её загруженность и принимать необходимые меры для оптимизации. Использование метрик также поможет вам обнаружить узкие места в производительности и улучшить общую эффективность.
Таким образом, вы правильно поняли, что ваше значение 880.75 представляет собой сумму средних значений за 100 дней, и для окончательной оценки процента потребления DTU вам следует делать среднее по количеству данных.