Какое место занимает микрометр в проекте OpenTelemetry
Когда OpenTelemetry пытается стать де-факто стандартом наблюдаемости приложений / сервисов, какое место занимает Micrometer? Веб-сайт Micrometer утверждает, что это SLF4J для метрик, но не противоречит ли это API метрик OpenTelemetry? Интересно, должны ли API OpenTelemetry Metric представлять SLF4J, а Micrometer должен представлять реализацию вроде Log4J.
Цените, если кто-то может помочь мне прояснить это.
3 ответа
Я бы сказал, что ответ @checketts уже устарел. Метрики теперь очень заметны в OpenTelemetry, и они объявлены стабильными.
OpenTelemetry и Micrometer имеют некоторое сходство в том смысле, что у них обоих есть метрические API. Оба они имеют возможность экспорта в различные форматы. Однако Micrometer специфичен для Java, в то время как OpenTelemetry имеет реализации на многих языках. У этих двух проектов разные цели.
Вы можете использовать OpenTelemetry с API Micrometer, используя реестр OpenTelemetry Meter для Micrometer . Это перенаправит захваченные метрики Micrometer в измеритель OpenTelemetry.
OpenTelemetry ориентирован на отслеживание (см. Zipkin и Jaeger) больше, чем на метрики. Метрики микрометра частично совпадают, но подход совсем другой.
Микрометр по-прежнему похож на slf4j, поскольку это фасад метрик для кодирования и записи метрик. Фактическая реализация (как вы думаете о log4j) для метрик - это Prometheus, Statsd, Datadog и т. Д.
Таким образом, OpenTelemetry и Micrometer можно рассматривать как метрические абстракции, но, поскольку существуют разные типы метрик (трассировка и агрегирование производительности), они отслеживают разные вещи.
Другой способ подумать об этом - OpenTelemtry был бы полезен для измерения многих микросервисов, поскольку они передают запросы, и вам нужно отслеживать поведение, в то время как Micrometer был бы более полезным для отслеживания производительности и работоспособности одного приложения.
Архитектура OpenTelemetry определяет эти ключевые компоненты.
- Клиент OpenTelemetry (помогает коду приложения/фреймворка выполнять инструментирование, помогает собирать эти метрики, помогает предоставлять метрики сборщику)
- OpenTelemetry Collector (имеет приемники на основе push/pull для сбора показателей от клиентов, обработки и последующего экспорта в серверные части/базы данных)
- Серверные части/базы данных OpenTelemetry.
Micrometer вписывается в состав клиента телеметрии. предоставляет независимый от поставщика API для инструментирования/сбора метрик. Библиотека Micrometer — это способ работы Spring. Micrometer вместе с приводами Spring образуют клиент Telemetry/OpenTelemetry.