Мониторинг инфраструктуры¶
В "Первой Форме" реализована комплексная система мониторинга и трассировки для улучшения работоспособности и эффективности инфраструктуры:
Prometheus — инструмент мониторинга и оповещения с открытым исходным кодом. Prometheus извлекает метрики из нескольких конечных точек HTTP в формате OpenMetrics. Позволяет собирать и анализировать данные о состоянии различных компонентов системы.
Grafana — инструмент визуализации и мониторинга полученных от Prometheus данных, который позволяет создать информативные дашборды.
Jaeger — программное обеспечение для отслеживания и устранения проблем во взаимосвязанных программных компонентах (микросервисах). Трассировка Jaeger при возникновении проблем позволяет визуализировать цепочку событий при взаимодействии микросервисов.
Elasticsearch — провайдер индексации, с помощью которого осуществляется настройка централизованной системы сбора и анализа логов.
OpenTelemetry — набор инструментов и библиотек для стандартизации и автоматизации сбора, передачи и обработки данных о производительности приложений: метрик, трассировок и журналов (логов).
Минимальная конфигурация¶
Для базового мониторинга достаточно: - Prometheus — сбор метрик (обязательно при использовании Kubernetes) - Grafana — визуализация (опционально) - Elasticsearch — индексация логов (опционально, для расширенного поиска)
Jaeger и OpenTelemetry применяются для трассировки запросов и требуют дополнительной настройки инфраструктуры.
Включить телеметрию можно в файле appsettings.json — в секцию Telemetry необходимо добавить ключи:
-
EnableTracing — Включение трассировки. Возможные значения: true (включено) / false (отключено).
-
EnableMetrics — Включение сбора метрик. Возможные значения: true (включено) / false (отключено).
-
OtlpEndpoint — Конечная точка, через которую приложение отправляет метрики, трассировки и журналы (логи) для сбора и обработки в формате open-telemetry. По умолчанию: http://localhost:4317