Language SDKs
Users typically send data to ClickStack via the OpenTelemetry (OTel) collector, either directly from language SDKs or through intermediate OpenTelemetry collector acting as agents e.g. collecting infrastructure metrics and logs.
Language SDKs are responsible for collecting telemetry from within your application - most notably traces and logs - and exporting this data to the OpenTelemetry collector, via the OTLP endpoint, which handles ingestion into ClickHouse.
In browser-based environments, SDKs may also be responsible for collecting session data, including UI events, clicks, and navigation thus enabling replays of user sessions.
How It Works
- Your application uses a a ClickStack SDK (e.g., Node.js, Python, Go). These SDKs are based on the OpenTelemetry SDKs with additional features and usability enhancements.
- The SDK collects and exports traces and logs via OTLP (HTTP or gRPC).
- The OpenTelemetry collector receives the telemetry and writes it to ClickHouse via the configured exporters.
Supported Languages
While ClickStack offers its own language SDKs with enhanced telemetry and features, users can also use their existing OpenTelemetry SDKs seamlessly.
Language | Description | Link |
---|---|---|
Browser | JavaScript SDK for Browser-based applications | Documentation |
Elixir | Elixir applications | Documentation |
Go | Go applications and microservices | Documentation |
Java | Java applications | Documentation |
NestJS | NestJS applications | Documentation |
Next.js | Next.js applications | Documentation |
Node.js | JavaScript runtime for server-side applications | Documentation |
Deno | Deno applications | Documentation |
Python | Python applications and web services | Documentation |
React Native | React Native mobile applications | Documentation |
Ruby | Ruby on Rails applications and web services | Documentation |
Securing with API Key
In order to send data to ClickStack via the OTel collector, SDKs will need to specify an ingestion API key. This can either be set using an init
function in the SDK or an OTEL_EXPORTER_OTLP_HEADERS
environment variable:
This API key is generated by the HyperDX application, and is available via the app in Team Settings → API Keys
.
For most language SDKs and telemetry libraries that support OpenTelemetry, users can simply set OTEL_EXPORTER_OTLP_ENDPOINT
environment variable in your application or specify it during initialization of the SDK:
Kubernetes Integration
All SDKs support automatic correlation with Kubernetes metadata (pod name, namespace, etc.) when running in a Kubernetes environment. This allows you to:
- View Kubernetes metrics for pods and nodes associated with your services
- Correlate application logs and traces with infrastructure metrics
- Track resource usage and performance across your Kubernetes cluster
To enable this feature, configure the OpenTelemetry collector to forward resource tags to pods. See the Kubernetes integration guide for detailed setup instructions.