Включение Azure Monitor OpenTelemetry для приложений .NET, Node.js, Python и Java
Статья
В этой статье описывается, как включить и настроить сбор данных на основе OpenTelemetry в Application Insights. Дистрибутив OpenTelemetry в Azure Monitor:
Дополнительные сведения о преимуществах использования дистрибутива OpenTelemetry в Azure Monitor см. в статье "Почему следует использовать дистрибутив Azure Monitor OpenTelemetry".
Предложения OpenTelemetry доступны для приложений .NET, Node.js, Python и Java. Сведения о состоянии выпуска компонента по функциям см. в разделе часто задаваемых вопросов.
Включение OpenTelemetry с помощью Application Insights
Выполните действия, описанные в этом разделе, для инструментирования приложения с помощью OpenTelemetry. Выберите вкладку для инструкций для langauge.
Примечание
.NET охватывает несколько сценариев, включая классические ASP.NET, консольные приложения, Windows Forms (WinForms) и многое другое.
Если вы не полагаетесь на какие-либо свойства, перечисленные в не поддерживаемой таблице, оболочка ApplicationInsights будет вашим простым путем вперед один раз из бета-версии.
Если вы используете все эти свойства, перейдите к дистрибутиву OpenTelemetry в Azure Monitor. В ближайшее время мы предоставим руководство по миграции.
Совет
Если вы переносите классический API Application Insights, ознакомьтесь с нашей документацией по миграции.
Если вы обновляете более раннюю версию 3.x, вы можете повлиять на изменение по умолчанию или незначительные различия в собираемых данных. Дополнительные сведения см. в разделе миграции в заметках о выпуске.
3.5.0, 3.4.0, 3.3.0, 3.2.0 и 3.1.0
Azure.Monitor.OpenTelemetry.AspNetCore Импортируйте пространство имен, добавьте OpenTelemetry и настройте его для использования Azure Monitor в классеprogram.cs:
C#
// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.using Azure.Monitor.OpenTelemetry.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
var app = builder.Build();
app.Run();
Добавьте экспортер Azure Monitor к каждому сигналу OpenTelemetry в program.cs классе:
C#
// Create a new tracer provider builder and add an Azure Monitor trace exporter to the tracer provider builder.// It is important to keep the TracerProvider instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace#tracerprovider-managementvar tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter();
// Add an Azure Monitor metric exporter to the metrics provider builder.// It is important to keep the MetricsProvider instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/metrics#meterprovider-managementvar metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter();
// Create a new logger factory.// It is important to keep the LoggerFactory instance active throughout the process lifetime.// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/logs#logger-managementvar loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter();
});
});
Автоинструментация включена с помощью изменений конфигурации.
Никаких изменений кода не требуется.
Наведите виртуальную машину Java (JVM) на JAR-файл, добавив -javaagent:"path/to/applicationinsights-agent-3.7.0.jar" их в args приложения JVM.
Примечание
Выборка включена по умолчанию в размере 5 запросов в секунду, помогая в управлении затратами. Данные телеметрии могут быть отсутствуют в сценариях, превышающих эту скорость. Дополнительные сведения об изменении конфигурации выборки см . в переопределении выборки.
Автоинструментация включена с помощью изменений конфигурации.
Никаких изменений кода не требуется.
TypeScript
// Import the `useAzureMonitor()` function from the `@azure/monitor-opentelemetry` package.const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
// Call the `useAzureMonitor()` function to configure OpenTelemetry to use Azure Monitor.
useAzureMonitor();
Python
import logging
# Import the `configure_azure_monitor()` function from the# `azure.monitor.opentelemetry` package.from azure.monitor.opentelemetry import configure_azure_monitor
# Configure OpenTelemetry to use Azure Monitor with the # APPLICATIONINSIGHTS_CONNECTION_STRING environment variable.
configure_azure_monitor(
logger_name="<your_logger_namespace>", # Set the namespace for the logger in which you would like to collect telemetry for if you are collecting logging telemetry. This is imperative so you do not collect logging telemetry from the SDK itself.
)
logger = logging.getLogger("<your_logger_namespace>") # Logging telemetry will be collected from logging calls made with this logger and all of it's children loggers.
Скопируйте строка подключения из ресурса Application Insights
Строка подключения является уникальным и указывает, где дистрибутив OpenTelemetry Azure Monitor отправляет данные телеметрии.
Настройка только с помощью файла - конфигурации Java
Создайте файл конфигурации с именем applicationinsights.jsonи поместите его в тот же каталог, что applicationinsights-agent-3.7.0.jar и в следующем содержимом:
Если задать строка подключения в нескольких местах, переменная среды будет приоритетна в следующем порядке:
Код
Переменная среды
Файл конфигурации
Подтверждение передачи данных
Запустите приложение, а затем откройте Application Insights в портал Azure. Для отображения данных может потребоваться несколько минут.
Application Insights теперь включен для приложения. Следующие шаги являются необязательными и позволяют дополнительно настраивать.
Важно!
При наличии двух или более служб, которые выводят данные телеметрии в один и тот же ресурс Application Insights, необходимо задать имена облачных ролей, чтобы правильно представить их на схеме приложений.
В рамках использования инструментирования Application Insights мы собираем диагностические данные и отправляем их в корпорацию Майкрософт. Эти данные помогают нам использовать и улучшать Application Insights. Дополнительные сведения см. в разделе Statsbeat в Azure Application Insights.
Примеры приложений
Примеры приложений OpenTelemetry Azure Monitor доступны для всех поддерживаемых языков:
Чтобы установить пакет NuGet, проверить наличие обновлений или просмотреть заметки о выпуске, ознакомьтесь со страницей пакета NuGet Для Azure Monitor AspNetCore.
Дополнительные сведения об Azure Monitor и OpenTelemetry см. в примере приложения Azure Monitor.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Узнайте о наблюдаемости и реализации его в облачном приложении. Используйте пакеты OpenTelemetry для вывода журналов, метрик и трассировки данных и анализа данных в Application Insights и сторонних приложениях.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.