Azure App Insights: могу ли я увидеть полные трассировки без необходимости сшивать их вручную?

Я глубоко углубился в Azure Application Insights и тщательно изучил это. Несмотря на это, мне до сих пор неясна ключевая концепция.

Похоже, что Azure Application Insights разбивает трассировку на запросы и зависимости.

В чем причина такого разделения?

В других системах трассировки я привык рассматривать трассировки как непрерывную последовательность интервалов, поэтому не понимаю, почему Azure выбрала этот подход. Есть ли способ просмотреть фактические трассировки OTLP (протокол OpenTelemetry) в Azure Application Insights (то есть, используя их запросы)?

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

Кроме того, я попробовал следующие две конфигурации в своем приложении .NET:

// Попытка №1

builder.Services.AddApplicationInsightsTelemetry(builder.Configuration["ApplicationInsights:ConnectionString"]);

// Попытка №2

builder.Services.AddOpenTelemetry()
    .WithTracing(builder2 => builder2
        .AddSource("YourAppName")
        .SetResourceBuilder(ResourceBuilder.CreateDefault().AddService("YourServiceName"))
        .AddAspNetCoreInstrumentation()
        .AddHttpClientInstrumentation()
        .AddAzureMonitorTraceExporter(o =>
        {
            o.ConnectionString = builder.Configuration["ApplicationInsights:ConnectionString"];
        }));

var app = builder.Build();

Оба метода до сих пор давали одни и те же результаты, но я нашел некоторую документацию, предполагающую, что второй подход должен дать мне трассировку OTLP. Я видел следы OTLP (при обеих попытках), но только в исключениях.

Вопросы:

  1. Почему Azure разделяет трассировку на запросы и зависимости вместо того, чтобы отображать единую трассировку?
  2. Существует ли особый способ настроить Application Insights для просмотра полных трассировок OTLP, а не только исключений?
  3. Если нет, есть ли какой-нибудь способ легко сшить его обратно в трассировку OTLP?

Будем очень признательны за любые идеи или примеры. Спасибо

Вы можете использовать книги Azure Monitor или рабочую область Log Analytics. См. этот MS Doc.

Harshitha 26.08.2024 16:34

Для получения более подробной информации проверьте сквозную транзакцию (щелкните журналы поиска транзакций) в разделе поиска транзакций в Application Insights.

Harshitha 26.08.2024 16:36

@Harshitha, судя по вашему опыту, нет возможности напрямую получить трассировки OTLP - без этой сшивки?

user967710 26.08.2024 17:17

Да, AFAIK, это поведение App Insights по умолчанию.

Harshitha 26.08.2024 17:58

Это так раздражает, потому что сзади это, по сути, OTLP, но потом мне приходится начинать обратную компиляцию, HTTP/DB и т. д.... действительно странно

user967710 26.08.2024 18:54

Вы проверяли журналы с запросом?

Harshitha 26.08.2024 18:55

Вы имеете в виду из пользовательского интерфейса? Мониторинг > Журналы?

user967710 26.08.2024 19:09

Давайте продолжим обсуждение в чате.

Harshitha 26.08.2024 19:11

Я вижу запрос и зависимость на вкладке Производительность.

Harshitha 26.08.2024 19:59

Обратитесь к блогу devcodef1

Harshitha 26.08.2024 20:05
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
10
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это хорошие вопросы. Позвольте мне попытаться ответить на некоторые из них/предложить обходные пути.

Часть ответа – историческая. Application Insights — продукту более 10 лет, впервые появившийся там, где наиболее распространенным шаблоном было монолитное приложение. С тех пор Kubernetes, микросервисы и, как следствие, распределенная трассировка стали неотъемлемой частью современных приложений. Application Insights уже полностью согласован с Open Telemetry на стороне SDK/приложения, но по-прежнему хранит данные в существующей схеме для распределенной трассировки для работы в приложениях, оснащенных Open Telemetry и предыдущих технологиях.

В то время как Application Insights разбивает диапазоны на две разные таблицы, End-to-end transaction details визуализирует всю трассировку (и извлекает данные не только из этих двух таблиц, но и из любого другого ресурса Application Insights, который участвовал в конкретной трассировке). Например, если имеется N приложений и они принимают телеметрию в свои собственные Application Insights ресурсы, приведенный ниже вариант автоматически извлечет данные из всех ресурсов, которые участвовали в определенной трассировке. Существует также ссылка, которая перейдет к журналам с запросом, возвращающим все для определенной трассировки (по всем ресурсам и таблицам).

Ведется работа по созданию новой OTelSpans таблицы. И обеспечит обратную и прямую совместимость (т. е. можно будет запрашивать данные, используя новые и старые схемы). Хотя работы продолжаются, на данный момент невозможно сказать, когда он приземлится.

Между тем, эти две таблицы можно объединить в одну, используя ключевое слово union KQL.

union requests, dependencies
| count

Это звучит чудесно. Любая общая оценка того, когда таблица OtelSpans может быть доступна. Мы говорим через 1 год? меньше? даже общая оценка может мне очень помочь! Спасибо за ответы!

user967710 28.08.2024 14:50

Другие вопросы по теме