Как я могу получить через API * Live Metrics * Microsoft Application Insights

Я отслеживаю выполнение функции Azure с помощью пользовательского интерфейса управления потоком Live Metrics, как показано ниже: Live Metrics Management Некоторые из этих показателей можно получить через Application Insights REST API. Однако метрики, касающиеся общих данных о работоспособности или данных серверов, возвращают нулевое значение. Например, конечная точка performanceCounters/processCpuPercentage при зондировании выдает следующий результат:

HTTP/1.1 200
content-type: application/json; charset=utf-8
{
  "value": {
    "start": "2018-10-16T11:20:37.366Z",
    "end": "2018-10-16T12:20:37.366Z",
    "performanceCounters/processCpuPercentage": {
      "avg": null
    }
  }
}

Есть ли способ получить информацию, отображаемую в строках общего состояния и серверов в пользовательском интерфейсе, через API?


comment
Вы хотите получить данные в реальном времени? Или исторические данные?   -  person ZakiMa    schedule 16.10.2018
comment
Любой из этих типов, хотя предпочтительны недавние исторические данные (и оптимальные данные в реальном времени).   -  person atsag    schedule 17.10.2018
comment
@ZakiMa, проблема в том, что при использовании this для теста (идентификатор и ключ приложения принадлежат мне, а в текстовом поле идентификатора метрики выберите performanceCounters / processCpuPercentage). Суть в том, что одно из моих идей по приложению может возвращать ненулевое значение. Но если я создаю новое представление о приложении, выполняю несколько запросов, а затем пытаюсь получить performanceCounters / processCpuPercentage, он возвращает значение null (я вижу, что он имеет значение в живых показателях).   -  person Ivan Yang    schedule 18.10.2018
comment
Я понял вопрос, как получить информацию, отображаемую в строках общего состояния и серверов в пользовательском интерфейсе через API. Один из способов добиться этого - запустить запрос из ответа. Если вопрос заключался в том, почему эта конкретная метрика возвращает null, я неправильно понял. @astsag?   -  person ZakiMa    schedule 18.10.2018


Ответы (1)


Получить данные в реальном времени в настоящий момент невозможно.

Для получения исторических данных вам потребуется следующее.

1) Сначала нужно придумать запрос, который возвращает интересующие вас данные. Вот пример (показывает количество запросов, 95-й процессор, 95-я длительность запроса по серверу):

let start = ago(1d);
requests
| where timestamp > start
| summarize ["RequestCount"]=count(), ["Duration"]=percentile(duration, 95) by cloud_RoleInstance
| join (
    performanceCounters
    | where timestamp > start
    | where name == "% Processor Time Normalized"
    | where category == "Process"
    | summarize ["CPU"]=percentile(value, 95) by cloud_RoleInstance
) on cloud_RoleInstance
| project cloud_RoleInstance, RequestCount, Duration, CPU
| order by RequestCount 

Вы можете настроить запрос Analytics так, как вам нужно.

Пример вывода:

введите здесь описание изображения

2) Используйте справочник по API для запуска «Запроса».

person ZakiMa    schedule 17.10.2018
comment
Спасибо, ZakiMa. Я запускаю этот запрос на новой функции Azure, вызвав ее несколько раз. Тем не менее, выходной список равен "rows": [] (когда запрос выполняется в справочнике API, упомянутом в шаге 2), а когда запрос выполняется в пользовательском интерфейсе аналитики приложения (в analytics.applicationinsights.io/subscriptions / ...), выходными данными являются "No results found". Возможно, эта методология не применима к функциям ... - person atsag; 18.10.2018
comment
Скорее всего, этот счетчик производительности недоступен в Функциях Azure. Вы видите данные о процессоре / памяти в реальном времени для функций Azure? - person ZakiMa; 18.10.2018
comment
вы можете указать leftouter join: join kind = leftouter - тогда вы все равно получите список серверов, но столбец CPU будет пустым, если недоступен - person ZakiMa; 18.10.2018
comment
Чтобы проверить, какие счетчики производительности доступны, вы можете запустить этот запрос: performanceCounters | где отметка времени ›назад (1 дн.) | суммировать count () по имени - person ZakiMa; 18.10.2018
comment
Спасибо, что вернулись! Я попробовал последний запрос, но, к сожалению, он возвращает пустой список (как указано выше) - как будто счетчики производительности недоступны. Как вы можете видеть в разделе «Серверы» изображения в вопросе, в пользовательском интерфейсе вы получаете показатели по потреблению ЦП и памяти. - person atsag; 19.10.2018