Обзор открытого решения для наблюдаемости DOG Stack
DOG Stack представляет собой открытое решение для наблюдаемости на базе Doris, OpenTelemetry (включая Doris Exporter) и Grafana (включая Doris App plugin). Его основные преимущества:
- Открытость: все компоненты имеют открытый исходный код, что позволяет избежать зависимости от поставщика.
- Высокая производительность: пропускная способность записи достигает сотен GB/s. Время отклика при поиске и выполнении запросов по миллиардам записей составляет менее секунды.
- Экономичность: затраты на наблюдаемость снижаются более чем на 50% и даже на 80% по сравнению с ELK или Datadog.
- Масштабируемость: легко справляется с объёмами данных масштаба PB и даже EB.
OpenTelemetry является стандартом де-факто для сбора данных наблюдаемости. Grafana является стандартом де-факто для визуализации данных наблюдаемости. Поэтому Doris использует их как основу решения для наблюдаемости, вместо того чтобы заново создавать инструменты сбора и визуализации. Doris сосредоточен на эффективном хранении и быстром выполнении запросов к данным наблюдаемости.
Возможности
DOG Stack предлагает широкие возможности на базе OpenTelemetry и Grafana.
- Сбор различных данных наблюдаемости
- OpenTelemetry SDK предоставляют готовые средства инструментирования приложений более чем на 10 языках программирования, в том числе без изменения кода.
- OpenTelemetry Collector собирает данные из локальных файлов, метрики хостов и контейнеров.
- Интеграция с уже используемыми инструментами сбора данных, такими как Vector, Fluentbit, Node Exporter, Telegraf, Logstash, Filebeat и другие.
- Более широкие возможности поиска, чем в Kibana
- Поддержка синтаксиса поиска в стиле Lucene и нативного синтаксиса SQL.
- Переход между связанными логами и трассировками одним нажатием.
- Просмотр подробных записей в виде таблицы или в формате JSON.
- Просмотр данных, предшествующих определённому логу или трассировке и следующих за ними по времени.
- Интерактивный выбор временного диапазона и полей, а также фильтрация по полям.
- Статистика распределения значений полей.
- Работа с трассировками в стиле Jaeger
- Фильтрация трассировок по имени сервиса, операции, тегам и диапазону длительности.
- Визуализация трассировок по временной шкале, длительности и количеству span.
- Сортировка трассировок по временной метке, длительности или количеству span.
- Каскадная диаграмма для отдельной трассировки.
- Фильтрация span внутри трассировки по имени сервиса, имени span, тегам и диапазону длительности.
- Панели мониторинга
- Более 20 типов визуализации, включая линейные графики, столбчатые и круговые диаграммы, индикаторы, тепловые карты, гистограммы, географические карты и другие.
- Создание панелей мониторинга с помощью визуального конструктора или напрямую на SQL.
- Использование соединений нескольких таблиц в Doris для создания панелей мониторинга, объединяющих логи, трассировки и метрики.
- Оповещения
- Правила оповещения с различными условиями, такими как отсутствие данных / ошибка, пороговое значение и составное пороговое условие, для показателей количества, суммы, отношения и других.
- Более 20 каналов уведомлений, включая электронную почту, PagerDuty, Slack, Discord и Webhook.
- Шаблоны оповещений для настройки, форматирования и повторного использования сообщений уведомлений.
- Другие возможности, поддерживаемые OpenTelemetry и Grafana.
Ниже приведены несколько снимков экрана Grafana с установленным Doris App plugin для краткого знакомства с возможностями.
- Поиск по логам

- Анализ трассировок

- Панель метрик

Архитектура

DOG Stack состоит из следующих компонентов.
- Инструменты сбора данных: собирают данные телеметрии, такие как логи, трассировки и метрики. OpenTelemetry предоставляет два вида инструментов сбора. Первый из них, OpenTelemetry SDK с поддержкой 10+ языков, используется для инструментирования приложений и агентов ИИ, обычно для сбора данных трассировок. Второй вид представлен приёмниками OpenTelemetry Collector, включая приёмник filelog для локальных файлов, приёмник hostmetrics для метрик хостов (CPU, память и т. д.) и приёмник podmetrics для метрик подов в Kubernetes. Многие сторонние инструменты сбора, такие как Vector, Fluentbit, Node Exporter и Telegraf, могут отправлять данные в OpenTelemetry Collector по OTLP и другим протоколам.
- OpenTelemetry Collector (с Doris Exporter): получает данные телеметрии от инструментов сбора, обрабатывает их и сохраняет в Doris через Doris Exporter. Типичные этапы обработки включают фильтрацию, преобразование, обогащение, постановку в очередь и объединение в пакеты.
- Doris: получает данные телеметрии от OpenTelemetry Collector и эффективно сохраняет их в индексированном колоночном хранилище. Doris обеспечивает чрезвычайно быстрый поиск с помощью различных индексов, таких как inverted index, bloom filter index и zone map index. Он также обеспечивает высокую производительность аналитических запросов с агрегацией, сортировкой и соединениями благодаря встроенным возможностям.
- Grafana (с Doris App plugin): предоставляет разнообразные и удобные визуализации для логов, трассировок и метрик. Doris App plugin дополняет мощные базовые возможности Grafana полезными функциями. Функция «Обзор» обеспечивает первоклассное удобство поиска, которое ценят пользователи Kibana. Функция «Трассировки» предоставляет встроенные средства исследования трассировок и помогает находить те, которые заслуживают внимания, например медленные. Работа с ней будет привычна пользователям Jaeger.