Я глубоко углубился в 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 (при обеих попытках), но только в исключениях.
Вопросы:
Будем очень признательны за любые идеи или примеры. Спасибо
Для получения более подробной информации проверьте сквозную транзакцию (щелкните журналы поиска транзакций) в разделе поиска транзакций в Application Insights.
@Harshitha, судя по вашему опыту, нет возможности напрямую получить трассировки OTLP - без этой сшивки?
Да, AFAIK, это поведение App Insights по умолчанию.
Это так раздражает, потому что сзади это, по сути, OTLP, но потом мне приходится начинать обратную компиляцию, HTTP/DB и т. д.... действительно странно
Вы проверяли журналы с запросом?
Вы имеете в виду из пользовательского интерфейса? Мониторинг > Журналы?
Давайте продолжим обсуждение в чате.
Я вижу запрос и зависимость на вкладке Производительность.
Обратитесь к блогу devcodef1
Это хорошие вопросы. Позвольте мне попытаться ответить на некоторые из них/предложить обходные пути.
Часть ответа – историческая. 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 год? меньше? даже общая оценка может мне очень помочь! Спасибо за ответы!
Вы можете использовать книги Azure Monitor или рабочую область Log Analytics. См. этот MS Doc.