Запросы к ресурсу Insight Application с помощью REST API - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть данные, которые хранятся в 3 различных источниках информации о приложениях, благодаря функции query across resource, добавленной в прошлом году (https://azure.microsoft.com/en-us/blog/query-across-resources/) можно было запрашивать эти 3 идеи приложения одновременно с идентификатором app.

Я пытаюсь выполнить этот запрос через app insights REST API: https://dev.applicationinsights.io (app insights REST API) для очень простой задачи со статической HTML-страницей (без бэкэнда)

но без везения enter image description here

Я подозреваю, что app идентификатор не поддерживается, это действительно так? любой обходной путь для моего варианта использования (без серверной части).

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Вот пример с запросом в теле. Мои запросы довольно сложны и содержат много операторов let, поэтому передача запроса в теле проще. В приведенном ниже примере есть некоторые причуды PowerShell, но завтра я обновлю пример C #.

Оператор let в приведенном ниже примере довольно бессмысленный, в основном он показывает, что вы можете выполнять сложные запросы с помощью выражений let и т. Д.

AppId - это идентификатор ресурса Application Insights, а не инструментальный ключ. Ключ API - это просто длинная строка, и вы можете создать до 10 из них AFAIK.

В API Access вы найдете и идентификатор, и ключи (я добавил скриншот, так как их легко перепутать). При использовании функции app () используйте идентификатор приложения.

enter image description here

$app1Id = "GUID"
$app2Id = "GUID"

$app1Key = "string"
$app2Key = "string"

# EXAMPLE: "X-Api-Key" = "key1:GUID1,key2:GUID2"
$headers = @{ "X-Api-Key" = "${app1Key}:$app1Id,${app2Key}:$app2Id"; "Content-Type" = "application/json" }

# EXAMPLE: "query" = "union app('GUID1').something, app('GUID2').something | limit 5"
$query = @{"query" = "let days=1d;union app('$app1Id').exceptions,app('$app2Id').exceptions | where timestamp > ago(days)"}
$body = ConvertTo-Json $query | % { [regex]::Unescape($_) }

$result = Invoke-RestMethod "https://api.applicationinsights.io/v1/apps/$app1Id/query" -H $headers -Body $body -Method POST

Приведенный выше запрос вернет все исключения для двух ресурсов Application Insights за последний день. Вы можете сделать запрос к 10 ресурсам на момент написания, 200 запросов в 30 секунд или максимум 86 400 запросов в день (UTC). Другие ограничения применяются, если вы используете ADD.

ПРИМЕЧАНИЕ: дополнительный {} в заголовке представляет собой причуду PowerShell в отношении переменных и использования символа двоеточия, и, как вы можете видеть в примере , вам не следует заключать в скобки ключи в шапке:)

0 голосов
/ 01 мая 2018

Проверено командой разработчиков, которой принадлежит эта служба:

Вы должны иметь возможность ввести ключ api как apiKey1:appId1,apiKey2:appId2 в поле ключа api, и это должно работать.

ответ [object ProgressEvent] - это ошибка в проводнике, которая должна была действительно показать вам ошибку.

И в качестве обходного пути вы всегда можете выполнить запросы внутри самого портала Azure в рабочих книгах для любого из ресурсов ИИ или гипотетически также из портала аналитики для любого из ресурсов ИИ, для которых не потребуется API ключ, если все, что вам нужно, это посмотреть данные.

...