Языковые SDK
Данные, как правило, отправляются в ClickStack через коллектор OpenTelemetry (OTel) — либо напрямую из языковых SDK, либо через промежуточный коллектор OpenTelemetry, работающий в роли агента, например собирающего метрики инфраструктуры и логи.
Языковые SDK отвечают за сбор телеметрии из вашего приложения — в первую очередь трейсов и логов — и экспорт этих данных в коллектор OpenTelemetry через OTLP-эндпоинт, который осуществляет ингестию данных в ClickHouse.
В браузерных окружениях SDK также могут отвечать за сбор данных сеансов, включая события пользовательского интерфейса, клики и навигацию, что позволяет воспроизводить пользовательские сеансы.
Как это работает
- Ваше приложение использует SDK ClickStack (например, для Node.js, Python, Go). Эти SDKs основаны на OpenTelemetry SDKs с дополнительными возможностями и повышенным удобством использования.
- SDK собирает и экспортирует трассы и логи через OTLP (HTTP или gRPC).
- Коллектор OpenTelemetry получает телеметрию и записывает её в ClickHouse с помощью настроенных экспортеров.
Поддерживаемые языки
Хотя ClickStack предлагает собственные языковые SDK с расширенной телеметрией и дополнительными возможностями, вы также можете бесшовно использовать существующие SDK OpenTelemetry.
| Язык | Описание | Ссылка |
|---|---|---|
| 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
Для отправки данных в ClickStack через OTel collector SDK должны указывать ключ API для приёма данных (ingestion API key). Его можно задать либо с помощью функции init в SDK, либо через переменную окружения OTEL_EXPORTER_OTLP_HEADERS:
Этот API-ключ генерируется приложением HyperDX и доступен в разделе Team Settings → API Keys самого приложения.
Для большинства языковых SDK и библиотек телеметрии, поддерживающих OpenTelemetry, вы можете просто задать переменную окружения OTEL_EXPORTER_OTLP_ENDPOINT в вашем приложении или указать её при инициализации SDK:
Интеграция с Kubernetes
Все SDKs поддерживают автоматическую корреляцию с метаданными Kubernetes (имя пода, пространство имен и т. д.) при работе в среде Kubernetes. Это позволяет вам:
- Просматривать метрики Kubernetes для подов и узлов, связанных с вашими сервисами
- Коррелировать журналы приложений и трассировки с инфраструктурными метриками
- Отслеживать использование ресурсов и производительность во всем вашем кластере Kubernetes
Чтобы включить эту функцию, настройте коллектор OpenTelemetry так, чтобы он пересылал ресурсные теги в поды. Подробные инструкции по настройке см. в руководстве по интеграции с Kubernetes.