> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Языковые SDK для ClickStack — стека обсервабилити ClickHouse

# Языковые SDK

Данные обычно отправляются в ClickStack через **OpenTelemetry Collector (OTel)** — либо напрямую из языковых SDK, либо через промежуточный OpenTelemetry Collector, выступающий в роли агента, например для сбора инфраструктурных метрик и журналов.

Языковые SDK отвечают за сбор телеметрии из вашего приложения — прежде всего **трассировок** и **журналов** — и за экспорт этих данных в OpenTelemetry Collector через конечную точку OTLP, который выполняет ингестию в ClickHouse.

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

<h2 id="how-it-works">
  Как это работает
</h2>

1. Ваше приложение использует SDK ClickStack (например, для Node.js, Python, Go). Эти SDK основаны на SDK OpenTelemetry и включают дополнительные возможности и улучшения удобства использования.
2. SDK собирает и экспортирует трассировки и журналы через OTLP (HTTP или gRPC).
3. OpenTelemetry Collector получает телеметрию и записывает её в ClickHouse через настроенные экспортеры.

<h2 id="supported-languages">
  Поддерживаемые языки
</h2>

<Info>
  **Совместимость с OpenTelemetry**

  Хотя ClickStack предлагает собственные SDK для разных языков с расширенными возможностями телеметрии, вы также можете без проблем использовать уже имеющиеся SDK OpenTelemetry.
</Info>

<br />

| Язык | Описание | Ссылка |
| - | - | - |
| AWS Lambda | Инструментирование функций AWS Lambda | [Документация](/ru/clickstack/ingesting-data/sdks/aws-lambda) |
| Browser | JavaScript SDK для браузерных приложений | [Документация](/ru/clickstack/ingesting-data/sdks/browser) |
| Elixir | Приложения на Elixir | [Документация](/ru/clickstack/ingesting-data/sdks/elixir) |
| Go | Приложения и микросервисы на Go | [Документация](/ru/clickstack/ingesting-data/sdks/golang) |
| Java | Приложения на Java | [Документация](/ru/clickstack/ingesting-data/sdks/java) |
| NestJS | Приложения на NestJS | [Документация](/ru/clickstack/ingesting-data/sdks/nestjs) |
| Next.js | Приложения на Next.js | [Документация](/ru/clickstack/ingesting-data/sdks/nextjs) |
| Node.js | Среда выполнения JavaScript для серверных приложений | [Документация](/ru/clickstack/ingesting-data/sdks/nodejs) |
| Deno | Приложения на Deno | [Документация](/ru/clickstack/ingesting-data/sdks/deno) |
| Python | Приложения на Python и веб-сервисы | [Документация](/ru/clickstack/ingesting-data/sdks/python) |
| React Native | Мобильные приложения на React Native | [Документация](/ru/clickstack/ingesting-data/sdks/react-native) |
| Ruby | Приложения на Ruby on Rails и веб-сервисы | [Документация](/ru/clickstack/ingesting-data/sdks/ruby) |

<h2 id="securing-api-key">
  Защита с помощью ключа API
</h2>

<Info>
  **Не требуется для Управляемого ClickStack**

  Для Управляемого ClickStack ключ API не нужен.
</Info>

Чтобы отправлять данные в ClickStack через OTel collector, SDKs должны указывать ключ API для приёма данных. Его можно задать либо с помощью функции `init` в SDK, либо через переменную окружения `OTEL_EXPORTER_OTLP_HEADERS`:

```shell theme={null}
OTEL_EXPORTER_OTLP_HEADERS='authorization=<YOUR_INGESTION_API_KEY>'
```

Этот ключ API создаётся приложением ClickStack с интерфейсом HyperDX и доступен в приложении в разделе `Team Settings → API Keys`.

Для большинства [языковых SDK](/ru/clickstack/ingesting-data/sdks/index) и библиотек телеметрии, поддерживающих OpenTelemetry, достаточно задать переменную окружения `OTEL_EXPORTER_OTLP_ENDPOINT` в приложении или указать её при инициализации SDK:

```shell theme={null}
export OTEL_EXPORTER_OTLP_ENDPOINT=<YOUR_OTEL_COLLECTOR_HTTP_ENDPOINT>
```

<h2 id="kubernetes-integration">
  Интеграция с Kubernetes
</h2>

Все SDK поддерживают автоматическую корреляцию с метаданными Kubernetes (имя пода, пространство имен и т. д.) при работе в среде Kubernetes. Это позволяет:

* Просматривать метрики Kubernetes для подов и узлов, связанных с вашими сервисами
* Коррелировать журналы и трассировки приложений с метриками инфраструктуры
* Отслеживать использование ресурсов и производительность во всём кластере Kubernetes

Чтобы включить эту возможность, настройте OpenTelemetry Collector так, чтобы он передавал теги ресурсов в поды. Подробные инструкции по настройке см. в [руководстве по интеграции с Kubernetes](/ru/clickstack/integration-examples/kubernetes#forwarding-resouce-tags-to-pods).
