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

Обзор открытого решения для наблюдаемости 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.

  1. Сбор различных данных наблюдаемости
    1. OpenTelemetry SDK предоставляют готовые средства инструментирования приложений более чем на 10 языках программирования, в том числе без изменения кода.
    2. OpenTelemetry Collector собирает данные из локальных файлов, метрики хостов и контейнеров.
    3. Интеграция с уже используемыми инструментами сбора данных, такими как Vector, Fluentbit, Node Exporter, Telegraf, Logstash, Filebeat и другие.
  2. Более широкие возможности поиска, чем в Kibana
    1. Поддержка синтаксиса поиска в стиле Lucene и нативного синтаксиса SQL.
    2. Переход между связанными логами и трассировками одним нажатием.
    3. Просмотр подробных записей в виде таблицы или в формате JSON.
    4. Просмотр данных, предшествующих определённому логу или трассировке и следующих за ними по времени.
    5. Интерактивный выбор временного диапазона и полей, а также фильтрация по полям.
    6. Статистика распределения значений полей.
  3. Работа с трассировками в стиле Jaeger
    1. Фильтрация трассировок по имени сервиса, операции, тегам и диапазону длительности.
    2. Визуализация трассировок по временной шкале, длительности и количеству span.
    3. Сортировка трассировок по временной метке, длительности или количеству span.
    4. Каскадная диаграмма для отдельной трассировки.
    5. Фильтрация span внутри трассировки по имени сервиса, имени span, тегам и диапазону длительности.
  4. Панели мониторинга
    1. Более 20 типов визуализации, включая линейные графики, столбчатые и круговые диаграммы, индикаторы, тепловые карты, гистограммы, географические карты и другие.
    2. Создание панелей мониторинга с помощью визуального конструктора или напрямую на SQL.
    3. Использование соединений нескольких таблиц в Doris для создания панелей мониторинга, объединяющих логи, трассировки и метрики.
  5. Оповещения
    1. Правила оповещения с различными условиями, такими как отсутствие данных / ошибка, пороговое значение и составное пороговое условие, для показателей количества, суммы, отношения и других.
    2. Более 20 каналов уведомлений, включая электронную почту, PagerDuty, Slack, Discord и Webhook.
    3. Шаблоны оповещений для настройки, форматирования и повторного использования сообщений уведомлений.
  6. Другие возможности, поддерживаемые OpenTelemetry и Grafana.

Ниже приведены несколько снимков экрана Grafana с установленным Doris App plugin для краткого знакомства с возможностями.

  • Поиск по логам

Поиск по логам

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

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

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

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

Архитектура​

Архитектура DOG Stack

DOG Stack состоит из следующих компонентов.

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