Понимание приложений .NET |Пользовательские метрики не отображаются на portal.azure.com под метриками - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть приложение, работающее с моделью «плати, как есть».Стандартные показатели производительности отображаются на портале.Пользовательские метрики не отображаются в разделе метрик.

Моя среда.Настраиваемое консольное приложение .NET с простыми сокетами TCP.(без ASP.NET CORE) с использованием

<PackageReference Include="Microsoft.ApplicationInsights" Version="2.7.2" />

Класс телеметрии создается с помощью конструктора по умолчанию (а не файла конфигурации XML)

Пользовательские метрики создаются как

Telemetry.Client.GetMetric("number of clients").TrackValue(600.0);

Вопрос: Что я пропускаю или делаю неправильно, что пользовательские показатели не отображаются?Является ли раздел «показатели» на портале Azure неподходящим местом для поиска пользовательских показателей?

Обновление

В примере кода также не загружаются пользовательские показатели в Azure.

        TelemetryClient client = new TelemetryClient();
        client.InstrumentationKey = "a valid key";
        client.GetMetric("test me").TrackValue(200);
        client.Flush();
        Thread.Sleep(5000);

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Благодаря Ивану Яну я нашел проблему с github, которая подробно обсуждает эту проблему.

Похоже, есть несколько случаев для создания недопустимых конфигураций.

Например, в настоящее время это также недействительная конфигурация

TelemetryConfiguration tcConfig = new TelemetryConfiguration();

TelemetryClient tc = new TelemetryClient(tcConfig)
{
    InstrumentationKey = ikey
};

Подробнее о https://github.com/Microsoft/ApplicationInsights-dotnet/issues/826 и https://www.reddit.com/r/Unity3D/comments/8igabt/using_microsoft_azure_app_insights_and_unity/

0 голосов
/ 05 октября 2018

Эта проблема из-за того, что ключ инструментария настроен неправильно.

При использовании GetMetric().TrackValue() мы должны использовать этот способ для настройки контрольно-измерительного ключа:

TelemetryConfiguration.Active.InstrumentationKey = "your key";

Мой код, как показано ниже:

  TelemetryClient client = new TelemetryClient();
  TelemetryConfiguration.Active.InstrumentationKey = "your key";  
  client.GetMetric("test33").TrackValue(100);  

  System.Threading.Thread.Sleep(1000*5);
  client.Flush();

  Console.WriteLine("Hello World!");
  Console.ReadLine();

Затем в окне вывода Visual Studio вы увидите, что там отображается ikey: enter image description here

Затем перейдите на портал Azure -> Информация о приложении -> Показатели, вы можете увидетьВаша метрика: enter image description here

Для сравнения, когда вы используете следующий код:

client.InstrumentationKey = "a valid key";
client.GetMetric("test me").TrackValue(200);

после выполнения, в Visual Studio вы можете увидеть, что естьв окне вывода нет ikey, поэтому метрика не будет отправлена ​​на портал Azure: enter image description here

...