Send your first signal
Create an API key, point a collector at your deployment, and see data arrive.
Before you start #
You need a Sentinel API key with ingest access. Keys are created in Settings → API keys and carry the scopes your sender needs, so you can issue one per workload rather than sharing a single credential.
Your deployment's OTLP endpoint is the base address of your Sentinel host. Every signal type is accepted on the same host, under a per-signal path.
export SENTINEL_HOST=https://sentinel.example.com
export SENTINEL_API_KEY=sk_live_...
Point an OpenTelemetry Collector at Sentinel #
The OpenTelemetry Collector is the usual way to get data in. Export to the otlp exporter and set the endpoint to your host's /otlp path. The API key travels in the x-sentinel-api-key header.
exporters:
otlp/sentinel:
endpoint: https://sentinel.example.com/otlp
headers:
x-sentinel-api-key: ${SENTINEL_API_KEY}
service:
pipelines:
traces:
exporters: [otlp/sentinel]
metrics:
exporters: [otlp/sentinel]
logs:
exporters: [otlp/sentinel]
Restart the collector and give it a minute to start exporting. Your service appears under APM as soon as its spans land, and under Infrastructure once it reports a host name.
Send a span by hand #
To confirm the path end to end without standing up a collector, post a single OTLP document directly. One span is enough to make the service appear.
curl -X POST "$SENTINEL_HOST/otlp/v1/traces" \
-H "content-type: application/json" \
-H "x-sentinel-api-key: $SENTINEL_API_KEY" \
-d '{
"resourceSpans": [{
"resource": {"attributes": [
{"key": "service.name", "value": {"stringValue": "checkout"}},
{"key": "deployment.environment.name", "value": {"stringValue": "production"}}
]},
"scopeSpans": [{"spans": [{
"traceId": "5b8efff798038103d269b633813fc60c",
"spanId": "eee19b7ec3c1b174",
"name": "POST /checkout",
"kind": 2,
"startTimeUnixNano": "1544712660000000000",
"endTimeUnixNano": "1544712661000000000",
"status": {"code": 1}
}]}]
}]
}'
What happens next #
- The service shows up in APM with its latency and error rate.
- Traces appear under APM → Traces as requests complete.
- Logs arrive under Logs and are claimed by your log indexes.
- Host and container names from your resource attributes populate Infrastructure.
Give every service a distinct service.name. It is the primary key for every service-level view, so two services sharing one appear as a single service with doubled traffic.
Next steps #
- Logs — shape how logs are processed, stored and archived.
- Dashboards and monitors — put the numbers you watch on a screen, and alert on them.
- API keys — issue scoped credentials per workload.
- Retention — set how long each signal type is kept.