Данные обычно отправляются в ClickStack через OpenTelemetry Collector (OTel) — либо напрямую из языковых SDK, либо через промежуточный OpenTelemetry Collector, выступающий в роли агента, например для сбора инфраструктурных метрик и журналов.
Языковые SDK отвечают за сбор телеметрии из вашего приложения — прежде всего трассировок и журналов — и за экспорт этих данных в OpenTelemetry Collector через конечную точку OTLP, который выполняет ингестию в ClickHouse.
В браузерных средах SDK также могут отвечать за сбор данных сеанса, включая события интерфейса, клики и навигацию, что позволяет воспроизводить пользовательские сеансы.
Как это работает
- Ваше приложение использует SDK ClickStack (например, для Node.js, Python, Go). Эти SDK основаны на SDK OpenTelemetry и включают дополнительные возможности и улучшения удобства использования.
- SDK собирает и экспортирует трассировки и журналы через OTLP (HTTP или gRPC).
- OpenTelemetry Collector получает телеметрию и записывает её в ClickHouse через настроенные экспортеры.
Поддерживаемые языки
| Язык | Описание | Ссылка |
|---|---|---|
| AWS Lambda | Инструментирование функций AWS Lambda | Документация |
| Browser | JavaScript SDK для браузерных приложений | Документация |
| Elixir | Приложения на Elixir | Документация |
| Go | Приложения и микросервисы на Go | Документация |
| Java | Приложения на Java | Документация |
| NestJS | Приложения на NestJS | Документация |
| Next.js | Приложения на Next.js | Документация |
| Node.js | Среда выполнения JavaScript для серверных приложений | Документация |
| Deno | Приложения на Deno | Документация |
| Python | Приложения на Python и веб-сервисы | Документация |
| React Native | Мобильные приложения на React Native | Документация |
| Ruby | Приложения на Ruby on Rails и веб-сервисы | Документация |
Защита с помощью API key
Чтобы отправлять данные в ClickStack через OTel collector, SDKs должны указывать ключ API для приёма данных. Его можно задать либо с помощью функции init в SDK, либо через переменную окружения OTEL_EXPORTER_OTLP_HEADERS:
OTEL_EXPORTER_OTLP_HEADERS='authorization=<YOUR_INGESTION_API_KEY>'Этот ключ API создаётся приложением ClickStack с интерфейсом HyperDX и доступен в приложении в разделе Team Settings → API Keys.
Для большинства языковых SDK и библиотек телеметрии, поддерживающих OpenTelemetry, достаточно задать переменную окружения OTEL_EXPORTER_OTLP_ENDPOINT в приложении или указать её при инициализации SDK:
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318Интеграция с Kubernetes
Все SDK поддерживают автоматическую корреляцию с метаданными Kubernetes (имя пода, пространство имен и т. д.) при работе в среде Kubernetes. Это позволяет:
- Просматривать метрики Kubernetes для подов и узлов, связанных с вашими сервисами
- Коррелировать журналы и трассировки приложений с метриками инфраструктуры
- Отслеживать использование ресурсов и производительность во всём кластере Kubernetes
Чтобы включить эту возможность, настройте OpenTelemetry Collector так, чтобы он передавал теги ресурсов в поды. Подробные инструкции по настройке см. в руководстве по интеграции с Kubernetes.