Пользовательские свойства в обзорах приложения функции Azure - PullRequest
0 голосов
/ 15 ноября 2018

Я отслеживаю множество приложений в Azure Application Insights.Во всех них я добавляю некоторые настраиваемые свойства к событиям, трассировкам и т. Д., Чтобы можно было фильтровать / группировать на портале.

Можно ли добавить такие же настраиваемые свойства во встроенную интеграцию приложения с функциями Azure?

Прочитал документацию, но ничего о ней не нашел.

Редактировать:

Я поддерживаю большое количество приложений, размещенных в различных средах.Около 15 из них являются функциями Azure.Из всех моих приложений я отправляю телеметрию в один и тот же экземпляр приложения с помощью обработчика журнала.Чтобы отфильтровать / сгруппировать информацию, я автоматически добавляю свойства «CustomerName» и «CustomerInstance» ко всем событиям через мой обработчик журнала.

Когда я получаю стандартные события из функции Azure, трудно представить информацию в полезнойпуть и соотнести его с другими событиями.С некоторыми умными именами приложений-функций я могу анализировать URL запроса в аналитике, но не на портале.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете явно добавить эти пользовательские свойства, используя метод telemetry.Context.Properties.Add().

Я сделал демонстрацию с функцией v2, как показано ниже:

1.Создать функцию v2 в visual studio

2. Затем в Visual Studio добавьте Microsoft.ApplicationInsights 2.8.1 (последняя версия) через менеджер пакетов nuget

3.В своем Function.cs напишите следующий код:

using Microsoft.ApplicationInsights;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using System;

namespace FunctionApp17
{
    public static class Function1
    {
        private static string key = System.Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY",EnvironmentVariableTarget.Process);
        private static TelemetryClient telemetry = new TelemetryClient() { InstrumentationKey= key };

        [FunctionName("Function1")]
        public static void Run([TimerTrigger("*/10 * * * * *")]TimerInfo myTimer, ILogger log)
        {
            if (!telemetry.Context.Properties.ContainsKey("Function_appName"))
            {
                telemetry.Context.Properties.Add("Function_appName", "myfuncapp111");
            }
            else
            {
                telemetry.Context.Properties["Function_appName"] = "myfuncapp111";
            }
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
            telemetry.TrackEvent("event111");
            telemetry.TrackTrace("trace111");
        }
    }
}

4.Публикация в Azure, и в вашем приложении функций -> Настройки приложения добавьте ключ инструментария: enter image description here

5.После того, как приложение-функция запустится, перейдите к пониманию приложения -> поиск, вы можете добавить фильтры, определенные в вашем коде.

Тогда вы можете увидеть отфильтрованное сообщение: enter image description here

...