Перейти к основному содержимому

Сбор диагностических данных и мониторинг состояния сервиса бизнес-логики

Для сбора и сохранения диагностических данных, такие как журналы событий и трассировок, а также метрики, сервисы бизнес-логики используют OpenTelemetry и Prometheus. Для мониторинга состояния сервиса бизнес-логики используется Spring Boot Actuator.

Ведение журнала событий

Следующий блок кода файла application.yaml демонстрирует подключение средства ведения журнала событий ru.platform.logs.MDLogManager. Уровень ведения журнала можно задавать с помощью сервиса конфигурации configurationService.

platform:
logging:
starter:
enabled: true

Следующий блок кода демонстрирует использование стандартного интерфейса средства ведения журнала событий.

org.slf4j.Logger LOGGER = LoggerFactory.getLogger(MyService.class);

LOGGER.error("Error message");

Управлять уровнем ведения журнала событий можно с помощью параметра log.level файла application.yaml или с помощью переменной окружения LogLevel. Возможны следующие значения:

  • Error;
  • Warn;
  • Info;
  • Debug (значение по умолчанию);
  • Trace.

Ведение журнала трассировок

примечание

Журнал трассировок не используется при локальной разработке сервиса.

В сервисе бизнес-логики ведение журнала трассировок реализуется с помощью OpenTelemetryJavaAgent.

Следующий блок кода файла application.yaml демонстрирует настройку OpenTelemetry.

platform:
otel:
starter:
enabled: true
otel:
traces:
exporter: otlp
exporter:
otlp:
logs:
enabled: false
enabled: false

Следующий блок кода файла build.gradle демонстрирует подключение OpenTelemetry через BOM (Bill of Materials).

dependencyManagement {
imports {
mavenBom("io.opentelemetry:opentelemetry-bom:1.38.0")
mavenBom("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:2.4.0-alpha")
}
}

Следующий блок кода демонстрирует запуск сервиса бизнес-логики в командной строке с агентом OpenTelemetry.

java -javaagent:otelJavaAgents/opentelemetry-javaagent.jar \
-Dotel.javaagent.extensions=otelJavaAgents/md-opentelemetry-javaagent-expantion-1.1-all.jar \
-jar platform_service.jar

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

Переменная окруженияОписание
StandNameИмя стенда
OTEL_SERVICE_NAMEИмя разрабатываемого сервиса бизнес-логики
OTEL_EXPORTER_OTLP_LOGS_PROTOCOLДля запуска на стенде значение должно быть grpc
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTURL-адрес конечной точки MDLogManager, по умолчанию используется значение https://localhost:4317
TracesEnabledПризнак включения мониторинга, по умолчанию установлено значение false
OTEL_TRACES_EXPORTERДля запуска на стенде значение должно быть otlp
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTURL-адрес конечной точки OpenTelemetryJavaAgent, по умолчанию используется значение https://localhost:4317

Мониторинг состояния сервиса бизнес-логики

Следующий блок кода файла application.yaml демонстрирует настройку состояния сервиса.

management:
endpoint:
health:
show-details: always
probes:
enabled: true

Следующий блок кода файла application.yaml демонстрирует настройку конечных точек Spring Boot Actuator.

endpoints:
web:
exposure:
include: health,prometheus
base-path: /
path-mapping:
health: health
prometheus: metrics

Следующий блок кода файла application.yaml демонстрирует включение экспорта метрик в формате Prometheus.

metrics:
export:
prometheus:
enabled: true