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

Параметры конфигурации

The following configuration options are available for each component of ClickStack:

Изменение настроек

Docker

Если вы используете All in One, HyperDX Only или Local Mode, просто передайте желаемую настройку через переменную окружения, например:

docker run  -e HYPERDX_LOG_LEVEL='debug' -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one

Docker Compose

Если вы используете Docker Compose, файл .env может быть использован для изменения настроек.

В качестве альтернативы, вы можете явно переписать настройки в файле docker-compose.yaml, например:

Пример:

services:
  app:
    environment:
      HYPERDX_API_KEY: ${HYPERDX_API_KEY}
      HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
      # ... other settings

Helm

Настройка значений (необязательно)

Вы можете настроить параметры, используя флаги --set, например:

helm install my-hyperdx hyperdx/hdx-oss-v2 \
  --set replicaCount=2 \
  --set resources.limits.cpu=500m \
  --set resources.limits.memory=512Mi \
  --set resources.requests.cpu=250m \
  --set resources.requests.memory=256Mi \
  --set ingress.enabled=true \
  --set ingress.annotations."kubernetes\.io/ingress\.class"=nginx \
  --set ingress.hosts[0].host=hyperdx.example.com \
  --set ingress.hosts[0].paths[0].path=/ \
  --set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \
  --set env[0].name=CLICKHOUSE_USER \
  --set env[0].value=abc

В качестве альтернативы отредактируйте values.yaml. Чтобы получить значения по умолчанию:

helm show values hyperdx/hdx-oss-v2 > values.yaml

Пример конфигурации:

replicaCount: 2
resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
  hosts:
    - host: hyperdx.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific
  env:
    - name: CLICKHOUSE_USER
      value: abc

HyperDX

Настройки источника данных

HyperDX зависит от определения пользователем источника для каждого из типов/столпов данных наблюдаемости:

  • Logs
  • Traces
  • Metrics
  • Sessions

Эта конфигурация может быть выполнена внутри приложения в Team Settings -> Sources, как показано ниже для логов:

HyperDX Source configuration

Каждый из этих источников требует указать как минимум одну таблицу при создании, а также набор колонок, которые позволяют HyperDX запрашивать данные.

Если используется схема OpenTelemetry (OTel) по умолчанию, предоставляемая с ClickStack, эти колонки могут быть автоматически выведены для каждого из источников. Если изменяется схема или используется пользовательская схема, пользователи должны указать и обновить эти сопоставления.

примечание

Схема по умолчанию для ClickHouse, предоставляемая с ClickStack, является схемой, созданной экспортером ClickHouse для OTel коллекторов. Эти названия колонок соответствуют официальной спецификации OTel, документированной здесь.

Следующие настройки доступны для каждого источника:

Логи

НастройкаОписаниеОбязательноВыведено в схеме по умолчаниюВыведенное значение
NameИмя источника.ДаНет
Server ConnectionИмя соединения с сервером.ДаНетDefault
DatabaseИмя базы данных ClickHouse.ДаДаdefault
TableИмя целевой таблицы. Установите на otel_logs, если используется схема по умолчанию.ДаНет
Timestamp ColumnСтолбец даты и времени или выражение, которое является частью вашего первичного ключа.ДаДаTimestampTime
Default SelectКолонки, отображаемые в результатах поиска по умолчанию.ДаДаTimestamp, ServiceName, SeverityText, Body
Service Name ExpressionВыражение или колонка для имени службы.ДаДаServiceName
Log Level ExpressionВыражение или колонка для уровня логирования.ДаДаSeverityText
Body ExpressionВыражение или колонка для сообщения лога.ДаДаBody
Log Attributes ExpressionВыражение или колонка для пользовательских атрибутов логов.ДаДаLogAttributes
Resource Attributes ExpressionВыражение или колонка для ресурсов уровня атрибутов.ДаДаResourceAttributes
Displayed Timestamp ColumnСтолбец временной метки, используемый для отображения в пользовательском интерфейсе.ДаДаResourceAttributes
Correlated Metric SourceСвязанный источник метрик (например, HyperDX метрики).НетНет
Correlated Trace SourceСвязанный источник трассировок (например, HyperDX трассировки).НетНет
Trace Id ExpressionВыражение или колонка, используемая для извлечения идентификатора трассировки.ДаДаTraceId
Span Id ExpressionВыражение или колонка, используемая для извлечения идентификатора спана.ДаДаSpanId
Implicit Column ExpressionСтолбец, используемый для полнотекстового поиска, если поле не указано (в стиле Lucene). Обычно это тело лога.ДаДаBody

Трассировки

НастройкаОписаниеОбязательноВыведено в схеме по умолчаниюВыведенное значение
NameИмя источника.ДаНет
Server ConnectionИмя соединения с сервером.ДаНетDefault
DatabaseИмя базы данных ClickHouse.ДаДаdefault
TableИмя целевой таблицы. Установите на otel_traces, если используется схема по умолчанию.ДаДа-
Timestamp ColumnСтолбец даты и времени или выражение, которое является частью вашего первичного ключа.ДаДаTimestamp
TimestampПсевдоним для Timestamp Column.ДаДаTimestamp
Default SelectКолонки, отображаемые в результатах поиска по умолчанию.ДаДаTimestamp, ServiceName as service, StatusCode as level, round(Duration / 1e6) as duration, SpanName
Duration ExpressionВыражение для вычисления длительности спана.ДаДаDuration
Duration PrecisionТочность для выражения длительности (например, наносекунды, микросекунды).ДаДаns
Trace Id ExpressionВыражение или колонка для идентификаторов трассировок.ДаДаTraceId
Span Id ExpressionВыражение или колонка для идентификаторов спанов.ДаДаSpanId
Parent Span Id ExpressionВыражение или колонка для идентификаторов родительских спанов.ДаДаParentSpanId
Span Name ExpressionВыражение или колонка для имен спанов.ДаДаSpanName
Span Kind ExpressionВыражение или колонка для вида спана (например, клиент, сервер).ДаДаSpanKind
Correlated Log SourceНеобязательно. Связанный источник логов (например, HyperDX логи).НетНет
Correlated Session SourceНеобязательно. Связанный источник сессий.НетНет
Correlated Metric SourceНеобязательно. Связанный источник метрик (например, HyperDX метрики).НетНет
Status Code ExpressionВыражение для кода статуса спана.ДаДаStatusCode
Status Message ExpressionВыражение для сообщения статуса спана.ДаДаStatusMessage
Service Name ExpressionВыражение или колонка для имени службы.ДаДаServiceName
Resource Attributes ExpressionВыражение или колонка для ресурсов уровня атрибутов.ДаДаResourceAttributes
Event Attributes ExpressionВыражение или колонка для атрибутов событий.ДаДаSpanAttributes
Span Events ExpressionВыражение для извлечения событий спана. Обычно это колонка типа Nested. Это позволяет отображать трассировки исключений с поддерживаемыми языковыми SDK.ДаДаEvents
Implicit Column ExpressionСтолбец, используемый для полнотекстового поиска, если поле не указано (в стиле Lucene). Обычно это тело лога.ДаДаSpanName

Метрики

НастройкаОписаниеОбязательноВыведено в схеме по умолчаниюВыведенное значение
NameИмя источника.ДаНет
Server ConnectionИмя соединения с сервером.ДаНетDefault
DatabaseИмя базы данных ClickHouse.ДаДаdefault
Gauge TableТаблица, хранящая метрики типа gauge.ДаНетotel_metrics_gauge
Histogram TableТаблица, хранящая метрики типа histogram.ДаНетotel_metrics_histogram
Sum TableТаблица, хранящая метрики типа sum (счетчик).ДаНетotel_metrics_sum
Correlated Log SourceНеобязательно. Связанный источник логов (например, HyperDX логи).НетНет

Сессии

НастройкаОписаниеОбязательноВыведено в схеме по умолчаниюВыведенное значение
NameИмя источника.ДаНет
Server ConnectionИмя соединения с сервером.ДаНетDefault
DatabaseИмя базы данных ClickHouse.ДаДаdefault
TableЦелевая таблица для данных сессий. Имя целевой таблицы. Установите на hyperdx_sessions, если используется схема по умолчанию.ДаДа-
Timestamp ColumnСтолбец даты и времени или выражение, которое является частью вашего первичного ключа.ДаДаTimestampTime
Log Attributes ExpressionВыражение для извлечения атрибутов уровня лога из данных сессий.ДаДаLogAttributes
LogAttributesПсевдоним или ссылка на поле, используемая для хранения атрибутов лога.ДаДаLogAttributes
Resource Attributes ExpressionВыражение для извлечения метаданных уровня ресурсов.ДаДаResourceAttributes
Correlated Trace SourceНеобязательно. Связанный источник трассировок для корреляции сессий.НетНет
Implicit Column ExpressionСтолбец, используемый для полнотекстового поиска при отсутствии указанного поля (например, парсинг запросов в стиле Lucene).ДаДаBody

Коррелированные источники

Чтобы обеспечить полную кросс-источниковую корреляцию в ClickStack, пользователи должны настроить коррелированные источники для логов, трассировок, метрик и сессий. Это позволяет HyperDX ассоциировать связанные данные и предоставлять богатый контекст при отображении событий.

  • Logs: Можно коррелировать с трассировками и метриками.
  • Traces: Можно коррелировать с логами, сессиями и метриками.
  • Metrics: Можно коррелировать с логами.
  • Sessions: Можно коррелировать с трассировками.

Установив эти корреляции, HyperDX может, например, отображать соответствующие логи вместе с трассировкой или выводить аномалии метрик, связанные с сессией. Правильная конфигурация обеспечивает единый и контекстуальный опыт наблюдаемости.

Например, ниже приведен источник логов, настроенный с коррелированными источниками:

HyperDX Source correlated

Настройки конфигурации приложения

HyperDX в ClickHouse Cloud

Эти настройки не могут быть изменены, когда HyperDX управляется в ClickHouse Cloud.

  • HYPERDX_API_KEY

    • По умолчанию: Нет (обязательно)
    • Описание: Ключ аутентификации для API HyperDX.
    • Руководство:
    • Необходим для телеметрии и логирования
    • В локальной разработке может быть любым непустым значением
    • Для продакшена используйте безопасный, уникальный ключ
    • Может быть получен на странице настроек команды после создания аккаунта
  • HYPERDX_LOG_LEVEL

    • По умолчанию: info
    • Описание: Устанавливает уровень детализации логирования.
    • Опции: debug, info, warn, error
    • Руководство:
    • Используйте debug для детальной отладки
    • Используйте info для нормальной работы
    • Используйте warn или error в продакшене для уменьшения объема логов
  • HYPERDX_API_PORT

    • По умолчанию: 8000
    • Описание: Порт для сервера API HyperDX.
    • Руководство:
    • Убедитесь, что этот порт доступен на вашем хосте
    • Измените, если у вас конфликт портов
    • Должен соответствовать порту в конфигурациях вашего API клиента
  • HYPERDX_APP_PORT

    • По умолчанию: 8000
    • Описание: Порт для фронтенд-приложения HyperDX.
    • Руководство:
    • Убедитесь, что этот порт доступен на вашем хосте
    • Измените, если у вас конфликт портов
    • Должен быть доступен из вашего браузера
  • HYPERDX_APP_URL

    • По умолчанию: http://localhost
    • Описание: Базовый URL для фронтенд-приложения.
    • Руководство:
    • Установите на свой домен в продакшене
    • Укажите протокол (http/https)
    • Не добавляйте завершающий слэш
  • MONGO_URI

    • По умолчанию: mongodb://db:27017/hyperdx
    • Описание: Строка подключения к MongoDB.
    • Руководство:
    • Используйте по умолчанию для локальной разработки с Docker
    • Для продакшена используйте безопасную строку подключения
    • Включите аутентификацию, если это необходимо
    • Пример: mongodb://user:pass@host:port/db
  • MINER_API_URL

    • По умолчанию: http://miner:5123
    • Описание: URL для сервиса выявления паттернов логов.
    • Руководство:
    • Используйте по умолчанию для локальной разработки с Docker
    • Установите на URL сервиса майнера в продакшене
    • Должен быть доступен из сервиса API
  • FRONTEND_URL

    • По умолчанию: http://localhost:3000
    • Описание: URL для фронтенд-приложения.
    • Руководство:
    • Используйте по умолчанию для локальной разработки
    • Установите на свой домен в продакшене
    • Должен быть доступен из сервиса API
  • OTEL_SERVICE_NAME

    • По умолчанию: hdx-oss-api
    • Описание: Имя сервиса для инструментирования OpenTelemetry.
    • Руководство:
    • Используйте описательное имя для вашего сервиса HyperDX. Применимо, если HyperDX самостоянно инструментирует.
    • Помогает идентифицировать сервис HyperDX в данных телеметрии
  • NEXT_PUBLIC_OTEL_EXPORTER_OTLP_ENDPOINT

    • По умолчанию: http://localhost:4318
    • Описание: Конечная точка коллектора OpenTelemetry.
    • Руководство:
    • Важно для самостоянно инструментирования HyperDX.
    • Используйте по умолчанию для локальной разработки
    • Установите на URL вашего коллектора в продакшене
    • Должен быть доступен из вашего сервиса HyperDX
  • USAGE_STATS_ENABLED

    • По умолчанию: true
    • Описание: Переключает сбор статистики использования.
    • Руководство:
    • Установите в false, чтобы отключить отслеживание использования
    • Полезно для развертываний с учетом конфиденциальности
    • По умолчанию true для улучшения продукта
  • IS_OSS

    • По умолчанию: true
    • Описание: Указывает, работает ли в режиме OSS.
    • Руководство:
    • Оставьте в true для развертываний с открытым кодом
    • Установите в false для развертываний предприятия
    • Влияет на доступность функций
  • IS_LOCAL_MODE

    • По умолчанию: false
    • Описание: Указывает, работает ли в локальном режиме.
    • Руководство:
    • Установите в true для локальной разработки
    • Отключает определенные функции продакшена
    • Полезно для тестирования и разработки
  • EXPRESS_SESSION_SECRET

    • По умолчанию: hyperdx is cool 👋
    • Описание: Секрет для управления сессиями Express.
    • Руководство:
    • Измените в продакшене
    • Используйте сильную, случайную строку
    • Храните в секрете и в безопасности
  • ENABLE_SWAGGER

    • По умолчанию: false
    • Описание: Переключает документацию API Swagger.
    • Руководство:
    • Установите в true, чтобы включить документацию API
    • Полезно для разработки и тестирования
    • Отключите в продакшене
  • BETA_CH_OTEL_JSON_SCHEMA_ENABLED

    • По умолчанию: false
    • Описание: Включает Бета поддержку для типа JSON в HyperDX. Смотрите также OTEL_AGENT_FEATURE_GATE_ARG для включения поддержки JSON в OTel коллекторе.
    • Руководство:
    • Установите в true, чтобы включить поддержку JSON в ClickStack.

Коллектор OpenTelemetry

Смотрите "ClickStack OpenTelemetry Collector" для получения дополнительной информации.

  • CLICKHOUSE_ENDPOINT

    • По умолчанию: Нет (обязательно), если используется отдельный образ. Если All-in-one или Docker Compose распределение, это устанавливается на интегрированную инстанцию ClickHouse.
    • Описание: HTTPS URL инстанции ClickHouse для экспорта телеметрии.
    • Руководство:
      • Должен быть полным HTTPS конечным пунктом, включая порт (например, https://clickhouse.example.com:8443)
      • Обязательно для коллектора, чтобы отправить данные в ClickHouse
  • CLICKHOUSE_USER

    • По умолчанию: default
    • Описание: Имя пользователя, используемое для аутентификации с инстанцией ClickHouse.
    • Руководство:
      • Убедитесь, что у пользователя есть разрешения INSERT и CREATE TABLE
      • Рекомендуется создать отдельного пользователя для погрузки
  • CLICKHOUSE_PASSWORD

    • По умолчанию: Нет (обязательно, если включена аутентификация)
    • Описание: Пароль для указанного пользователя ClickHouse.
    • Руководство:
      • Обязательно, если у учетной записи пользователя установлен пароль
      • Храните безопасно, используя секреты в продакшен-развертываниях
  • HYPERDX_LOG_LEVEL

    • По умолчанию: info
    • Описание: Уровень детализации логов для коллектора.
    • Руководство:
      • Принимает значения такие как debug, info, warn, error
      • Используйте debug во время отладки
  • OPAMP_SERVER_URL

    • По умолчанию: Нет (обязательно), если используется отдельный образ. Если All-in-one или Docker Compose распределение, это указывает на развернутую инстанцию HyperDX.
    • Описание: URL сервера OpAMP, используемого для управления коллектором (например, инстанция HyperDX). Порт по умолчанию - 4320.
    • Руководство:
      • Должен указывать на вашу инстанцию HyperDX
      • Включает динамическую конфигурацию и безопасную погрузку
  • HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE

    • По умолчанию: default
    • Описание: База данных ClickHouse, в которую коллектор записывает телеметрию.
    • Руководство:
      • Установите, если используете пользовательское имя базы данных
      • Убедитесь, что указанный пользователь имеет доступ к этой базе данных
  • OTEL_AGENT_FEATURE_GATE_ARG

    • По умолчанию: <пустая строка>
    • Описание: Включает флаги функций для включения в коллектор. Если установлено значение --feature-gates=clickhouse.json, включает Бета поддержку типа JSON в коллекторе, обеспечивая создание схем с этим типом. Смотрите также BETA_CH_OTEL_JSON_SCHEMA_ENABLED для включения поддержки JSON в HyperDX.
    • Руководство:
    • Установите в true, чтобы включить поддержку JSON в ClickStack.

ClickHouse

ClickStack поставляется с конфигурацией ClickHouse по умолчанию, предназначенной для многотерабайтного масштаба, но пользователи могут изменять и оптимизировать ее в соответствии со своей нагрузкой.

Чтобы эффективно настроить ClickHouse, пользователи должны понимать ключевые концепции хранения, такие как части, партиции, шарды и реплики, а также как происходит слияние во время вставки. Мы рекомендуем ознакомиться с основами первичных индексов, разреженных вторичных индексов и индексов пропуска данных, а также с методами управления жизненным циклом данных, например, с использованием TTL.

ClickStack поддерживает кастомизацию схем - пользователи могут изменять типы колонок, извлекать новые поля (например, из логов), применять кодеки и словари, и ускорять запросы, используя проекции.

Кроме того, материализованные представления могут быть использованы для преобразования или фильтрации данных во время погрузки, при условии, что данные записываются в исходную таблицу представления, а приложение читает из целевой таблицы.

Для получения дополнительной информации обратитесь к документации ClickHouse о проектировании схем, стратегиях индексации и лучших практиках управления данными - большинство из которых напрямую применимо к развертываниям ClickStack.