Azure App Insights API для получения трассировки с помощью запроса в c# - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь использовать Azure App Insights API, используя https://dev.applicationinsights.io/ Получил данные метрик с помощью этого «https://api.applicationinsights.io/v1/apps/889f31e2-8281-4d8b-bb80-53a9f83d4a09/metrics/requests/duration?interval=PT1H», передал ключ api через заголовки. Но не удалось получить запрос: попробовал это: https://api.applicationinsights.io/v1/apps/889f31e2-8281-4d8b-bb80-53a9f83d4a09/Query/traces | где operation_Id содержит 62c5a318-c2cf-434e-a102-0e6efc0a84e7? interval = P7D

Получение кода состояния как NotFound.

Есть предложения, я что-то упустил?

1 Ответ

0 голосов
/ 16 июля 2020

Согласно моим исследованиям, если вы хотите выполнить запрос с помощью Azure Application Insight rest api, URL-адрес должен быть таким, как показано ниже

https://api.applicationinsights.io/v1/apps/{appId}/query?query={1}&timespan={2}

Например

var client = new HttpClient();
            var appId = "";
            var query = "traces | where operation_Id contains '33f491236bb412419002b006e1c3058b'";
            var timespan = "P7D";
             var apiKey=""
            string url = string.Format("https://api.applicationinsights.io/v1/apps/{0}/query?query={1}&timespan={2}", 
                                appId,
                                query,
                                timespan);
            

            var request = new HttpRequestMessage();
            request.Method = HttpMethod.Get;
            request.Headers.Add("x-api-key", apiKey);
            request.RequestUri = new Uri(url);

            using (var response = await client.SendAsync(request)) {

                var str = await response.Content.ReadAsStringAsync();
                Console.WriteLine(JsonConvert.DeserializeObject<JObject>(str));
                Console.Read();
                
            }

enter image description here

For more details, please refer to the документ . Кроме того, вы также можете попробовать API vai explorer .

Обновить

Если вы хотите Azure авторизацию AD для доступа к Azure API аналитики приложений, выполните следующие шаги

  1. Зарегистрируйте Azure Приложение AD в вашем клиенте

  2. Настройте разрешения API enter image description here enter image description here

  3. Создайте секрет клиента для приложения

  4. Настройте назначение contributor приложению AD в вашем ресурсе Application Insights

  5. вызовите API

// install sdl MSAL.NET to get access token

var client = new HttpClient();
            var appId = "";
            var query = "traces | where operation_Id contains '33f491236bb412419002b006e1c3058b'";
            var timespan = "P7D";
             var apiKey=""
            string url = string.Format("https://api.applicationinsights.io/v1/apps/{0}/query?query={1}&timespan={2}", 
                                appId,
                                query,
                                timespan);
            string ClientId = "<your ad application clientID>";
            string ClientSecret = "<your ad application ClientSecret>";
            string tenant = "";

            var app = ConfidentialClientApplicationBuilder.Create(ClientId)
                    .WithClientSecret(ClientSecret)
                    .WithAuthority(new Uri($"https://login.microsoftonline.com/{tenant}"))
                    .Build();
            string[] scopes = new string[] { "https://api5.applicationinsights.io/.default" };
            var result =await app.AcquireTokenForClient(scopes).ExecuteAsync();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);

            var request = new HttpRequestMessage();
            request.Method = HttpMethod.Get;
            request.RequestUri = new Uri(url);

            using (var response = await client.SendAsync(request)) {

                var str = await response.Content.ReadAsStringAsync();
                Console.WriteLine(JsonConvert.DeserializeObject<JObject>(str));
                Console.Read();
                
            }

enter image description here

For more details, please refer to the документ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...