Quickstart: send your first telemetry

Create an API key and stream OpenTelemetry into VerOps in five minutes — via the Collector or straight from an SDK.

opentelemetryquickstartapi-keycollectorsdk

1. Create an API key

Sign in as an Admin or Super Admin and open Settings → API Keys → New key. Copy it immediately — the full value (ta_live_…) is shown only once. This key identifies your organization on ingest.

2. Smoke-test the endpoint

Confirm the endpoint and key before wiring anything up. A 2xx (not 401) means you're good:

curl -i -X POST https://ingest.verops.io/v1/traces \
  -H "Authorization: Bearer ta_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"resourceSpans":[]}'

Run a Collector next to your workloads; point your apps at it, and it forwards everything to VerOps. Minimal working config.yaml:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:
    timeout: 5s
    send_batch_size: 8192
    send_batch_max_size: 8192

exporters:
  otlphttp/verops:
    endpoint: https://ingest.verops.io
    compression: gzip
    headers:
      Authorization: "Bearer ta_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

service:
  pipelines:
    traces:  { receivers: [otlp], processors: [batch], exporters: [otlphttp/verops] }
    metrics: { receivers: [otlp], processors: [batch], exporters: [otlphttp/verops] }
    logs:    { receivers: [otlp], processors: [batch], exporters: [otlphttp/verops] }
docker run -d --name verops-otel --restart unless-stopped \
  -p 4317:4317 -p 4318:4318 \
  -v "$PWD/config.yaml:/etc/otelcol-contrib/config.yaml:ro" \
  otel/opentelemetry-collector-contrib:latest

Point your applications at the Collector: OTEL_EXPORTER_OTLP_ENDPOINT=http://<collector-host>:4318 (HTTP) or :4317 (gRPC).

The otlp receiver only relays data your apps push to it. If you want the Collector itself to produce host or container metrics, add a hostmetrics / docker_stats receiver — see Collector recipes.

3b. Or send straight from an SDK (no Collector)

Every OpenTelemetry SDK honours the standard OTLP environment variables. Because VerOps ingests over HTTP, set the protocol to http/protobuf:

export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.verops.io
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ta_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OTEL_SERVICE_NAME=checkout-api

The SDK appends /v1/traces, /v1/metrics, /v1/logs to the endpoint automatically.

4. Verify it landed

Open Explore → Metrics (or the service map for traces), make sure the tenant selector is on your organization and the time range is Last 15 minutes. If a smoke-test returns 200 but nothing appears, jump to Troubleshooting ingestion — it's almost always a missing resource attribute, not a delivery problem.