Устранение неполадок с OpenTelemetry в Node.js

В этой статье описывается устранение неполадок с OpenTelemetry в Node.js.

Контрольный список по устранению неполадок

Шаг 1. Включение ведения журнала диагностики

Экспортер Azure Monitor использует средство ведения журнала API OpenTelemetry для внутренних журналов. Чтобы включить средство ведения журнала, выполните следующий фрагмент кода:

const { diag, DiagConsoleLogger, DiagLogLevel } = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");

const provider = new NodeTracerProvider();
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ALL);
provider.register();

Кроме того, можно использовать следующие переменные среды:

import { useAzureMonitor } from "@azure/monitor-opentelemetry";
import { DiagLogLevel } from "@opentelemetry/api";

process.env.APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL = "VERBOSE";
process.env.APPLICATIONINSIGHTS_LOG_DESTINATION = "file";
process.env.APPLICATIONINSIGHTS_LOGDIR = "C:/applicationinsights/logs";

useAzureMonitor();

Шаг 2. Тестирование подключения между узлом приложения и службой приема

Пакеты SDK и агенты Application Insights отправляют данные телеметрии для приема в качестве вызовов REST в конечных точках приема. Чтобы проверить подключение с веб-сервера или хост-компьютера приложения к конечным точкам службы приема, используйте команды cURL или необработанные запросы REST из PowerShell. Дополнительные сведения см. в статье "Устранение неполадок с отсутствующими данными телеметрии приложения" в Azure Monitor Application Insights.

Известные проблемы

Ниже перечислены известные проблемы для экспортеров OpenTelemetry в Azure Monitor:

  • Имя операции отсутствует в телеметрии зависимостей. Отсутствует имя операции приводит к сбоям и негативно влияет на работу вкладки производительности.

  • Модель устройства отсутствует в телеметрии запросов и зависимостей. Недостающая модель устройства негативно влияет на анализ когорты устройств.

  • Имя сервера базы данных отсутствует в имени зависимости. Так как имя сервера базы данных не включено, Средства экспорта OpenTelemetry неправильно агрегируют таблицы с одинаковыми именами на разных серверах.