Appearance



To send OpenTelemetry metrics and traces generated by ARMS from your AI Application to HyperDX, follow the below steps.
1. Get your Credentials
- Sign in to your HyperDX account
- Get your API Key:
- Navigate to your HyperDX settings or API keys section
- Generate or copy your existing API key
- Example format:
x6xx7265-43x3-476x-1112-x9x52x29xxxx
2. Configure OpenTelemetry Collector
HyperDX requires an OpenTelemetry Collector as an intermediary to receive and forward telemetry data.
Install OpenTelemetry Collector (if not already running)
For detailed installation instructions, refer to the OpenTelemetry Collector Documentation.
Configure the Collector
- Configure HTTP Receiver: In the
receiverssection, ensure theotlpreceiver is set withendpoint: 0.0.0.0:4318. - Define HyperDX Exporter: Add
otlphttp/hdxexporter to send data to HyperDX. - Assign to Pipelines: Link the exporter to traces and metrics pipelines.
Complete Collector Configuration
yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
memory_limiter:
# 80% of maximum memory up to 2G
limit_mib: 1500
# 25% of limit up to 2G
spike_limit_mib: 512
check_interval: 5s
exporters:
otlphttp/hdx:
endpoint: 'https://in-otel.hyperdx.io'
headers:
authorization: YOUR_HYPERDX_API_KEY_HERE
compression: gzip
service:
pipelines:
traces:
receivers: [ otlp ]
processors: [ memory_limiter, batch ]
exporters: [ otlphttp/hdx ]
metrics:
receivers: [ otlp ]
processors: [ memory_limiter, batch ]
exporters: [ otlphttp/hdx ]Replace YOUR_HYPERDX_API_KEY_HERE with your actual HyperDX API Key.
3. Instrument your application
SDK
For direct integration into your Python applications:
Function Arguments
python
import elsai_arms
elsai_arms.init(
otlp_endpoint="YOUR_OTELCOL_URL:4318"
)Replace:
YOUR_OTELCOL_URL:4318with the URL HTTP endpoint of your OpenTelemetry Collector.- Example:
http://127.0.0.1:4318(for local collector) - Example:
http://otel-collector.default.svc.cluster.local:4318(for Kubernetes)
- Example:
Environment Variables
python
import elsai_arms
elsai_arms.init()Set these environment variables:
shell
export OTEL_EXPORTER_OTLP_ENDPOINT="YOUR_OTELCOL_URL:4318"Replace:
YOUR_OTELCOL_URL:4318with the URL HTTP endpoint of your OpenTelemetry Collector.- Example:
http://127.0.0.1:4318(for local collector) - Example:
http://otel-collector.default.svc.cluster.local:4318(for Kubernetes)
- Example:
See the ARMS SDK configuration docs for more advanced options.
CLI
For zero-code auto-instrumentation via command line:
CLI Arguments
shell
# Using CLI arguments
elsai-arms-instrument \
--otlp-endpoint "YOUR_OTELCOL_URL:4318" \
--service-name "my-ai-service" \
--deployment-environment "production" \
python app.pyReplace:
YOUR_OTELCOL_URL:4318with the URL HTTP endpoint of your OpenTelemetry Collector.- Example:
http://127.0.0.1:4318(for local collector) - Example:
http://otel-collector.default.svc.cluster.local:4318(for Kubernetes)
- Example:
Environment Variables
shell
# Set environment variables (takes precedence over CLI args)
export OTEL_EXPORTER_OTLP_ENDPOINT="YOUR_OTELCOL_URL:4318"
export OTEL_SERVICE_NAME="my-ai-service"
export OTEL_DEPLOYMENT_ENVIRONMENT="production"
# Run your application
elsai-arms-instrument python app.pyReplace:
YOUR_OTELCOL_URL:4318with the URL HTTP endpoint of your OpenTelemetry Collector.- Example:
http://127.0.0.1:4318(for local collector) - Example:
http://otel-collector.default.svc.cluster.local:4318(for Kubernetes)
- Example:
See the ARMS SDK configuration docs for more advanced options.
4. Import the pre-built Dashboard
You can directly import a pre-built GenAI Observability dashboard using this URL:
This is an unsaved dashboard URL. When you click on it, the dashboard will open in your own HyperDX instance. You can then choose to save it, and it will be added to your HyperDX instance.