ServicesClickStack HyperDX Infra

Service Integration

Checklist for sending service telemetry to ClickStack HyperDX

👤 Sai Tharun

Service Integration

Every service should integrate with ClickStack HyperDX in the same basic shape: configure OpenTelemetry, enable automatic instrumentation, add domain attributes, and verify the result in HyperDX with a real request.

Required Configuration

SettingPurpose
OTEL_SERVICE_NAMEStable service name shown in HyperDX
OTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry collector endpoint
OTEL_RESOURCE_ATTRIBUTESEnvironment, deployment, region, and ownership metadata
Service log formatMust include trace and span IDs when a span is active
Trace sampling policyMust be explicit per environment

Collector endpoints are provided by the ClickStack HyperDX infra:

ProtocolInternal EndpointPort
OTLP gRPCotel-collector.hdx-infra.local:43174317
OTLP HTTPotel-collector.hdx-infra.local:43184318

Use the internal endpoint for services running inside the VPC. If an external ingest domain is configured, use the DNS name managed by the ClickStack infra instead of the Cloud Map name.

Instrumentation Requirements

AreaRequirement
EntrypointsInstrument HTTP routes, worker jobs, consumers, scheduled jobs, or CLI tasks
DependenciesInstrument database, cache, search, queue, and outbound HTTP clients
ErrorsRecord exceptions on the active span before returning or retrying
LogsInject trace_id and span_id into structured logs
MetricsEmit service and domain metrics using stable names
Trace propagationForward incoming trace context and return a trace ID for support/debugging

Domain Context Requirements

Automatic spans are not enough. Each service must add the fields that explain why a request behaved the way it did.

Examples of useful domain attributes:

Service TypeUseful Attributes
API serviceroute, authenticated account, organization, lab, feature flag, request mode
Search servicesearch key, query shape, routing, target index, hit count, zero-result flag
Worker servicequeue, job type, retry count, tenant, source event ID
Sync servicesource table, destination table, lag, batch size, offset, DLQ status
Integration servicevendor, message type, external request ID, response code, retry state

Do not add secrets, tokens, PHI, raw patient payloads, or unrestricted request bodies as span attributes. Query capture must be explicitly controlled by service configuration.

Implementation Checklist

StepDone When
Configure exporterService sends OTLP to the ClickStack HyperDX collector
Set service identityHyperDX shows the expected OTEL_SERVICE_NAME
Enable framework instrumentationRequests or jobs create root spans
Enable dependency instrumentationDownstream calls create child spans
Add domain attributesA trace explains tenant/scope/query/job context
Correlate logsLogs from the request appear with trace and span IDs
Return trace IDHTTP APIs expose X-Trace-Id or an equivalent support-safe correlation ID
Validate in HyperDXA real request shows timeline, spans, logs, metrics, and errors if present

Rollout Validation

Before marking a service as integrated:

ValidationExpected Result
Healthy requestRoot span is visible with correct service name and route/job name
Dependency callChild span appears with duration and status
Error pathFailed request records error status and exception context
Log correlationLogs are searchable from the trace
Domain contextRequired service attributes are present
Support handoffTrace ID from response or logs opens the same request in HyperDX

Phoenix Search Baseline

Phoenix Search is the reference integration for this setup. It should be used as the baseline for new services because it connects the browser request, X-Trace-Id, API route span, Elasticsearch span, logs, metrics, and search-specific attributes in one debugging flow.

For the current Phoenix Search flow, see Phoenix Search API Debugging.

On this page