- ClickHouse
- HyperDX
- коллектор OpenTelemetry (OTel) (с OTLP на портах
4317и4318) - MongoDB (для хранения постоянного состояния приложения)
Подходит для
- Демонстраций
- Локального тестирования всего стека
Шаги развертывания
Развертывание с помощью Docker
Следующая команда запустит OpenTelemetry Collector (на портах 4317 и 4318) и интерфейс HyperDX (на порту 8080).Обновление имени образаОбразы ClickStack теперь публикуются как
clickhouse/clickstack-* (ранее — docker.hyperdx.io/hyperdx/*).Перейдите в интерфейс HyperDX
Перейдите по адресу http://localhost:8080, чтобы открыть интерфейс HyperDX.Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям.После нажатияCreate для встроенного экземпляра ClickHouse будут созданы источники данных.Пример использования другого экземпляра ClickHouse см. в разделе “Использование ClickHouse Cloud”.Приём данных
Инструкции по приёму данных см. в разделе “Ингестия данных”.Сохранение данных и настроек
/data/db, /var/lib/clickhouse и /var/log/clickhouse-server. Например:
Развертывание в продакшн
- Непостоянное хранилище: Все данные хранятся во встроенной в Docker файловой системе overlay. Такая конфигурация не обеспечивает производительность при масштабировании, а данные будут потеряны, если контейнер удалить или перезапустить, — если только пользователи не смонтируют необходимые файловые пути.
- Отсутствие изоляции компонентов: Все компоненты работают в одном Docker-контейнере. Это не позволяет независимо масштабировать их и отслеживать их состояние, а любые ограничения
cgroupприменяются глобально ко всем процессам. В результате компоненты могут конкурировать за CPU и память.
Настройка портов
docker run, чтобы пробросить нужные порты и задать несколько переменных окружения.
Порты OpenTelemetry можно изменить, просто скорректировав флаги проброса портов. Например, замените -p 4318:4318 на -p 4999:4318, чтобы изменить HTTP-порт OpenTelemetry на 4999.
Использование ClickHouse Cloud
CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER и CLICKHOUSE_PASSWORD.
Например:
CLICKHOUSE_ENDPOINT должно быть HTTPS-конечной точкой ClickHouse Cloud с указанием порта 8443, например https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
После входа в интерфейс HyperDX перейдите в Team Settings и создайте подключение к вашему сервису ClickHouse Cloud, а затем добавьте необходимые источники.
Настройка OpenTelemetry Collector
Выбор схемы: Map или JSON
Map(LowCardinality(String), String). Это рекомендуемая схема для рабочих нагрузок обсервабилити. В сочетании с сериализацией Map по бакетам и текстовыми индексами по ключам и значениям в Map она обеспечивает точечные lookup-операции без накладных расходов на приём для каждого ключа, характерных для динамических подстолбцов JSON.
Схема с типом JSON доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Использовать её по умолчанию не рекомендуется. Полное сравнение и переменные окружения, необходимые для включения поддержки JSON, см. в разделе Map vs JSON type.