Skip to main content

Overview

nOps accepts telemetry from your own software using OpenTelemetry (OTel), the open standard most AI gateways, coding agents, and application frameworks already support. Traces, logs, and metrics all work. This is push, not pull. nOps can’t fetch this data from your cloud account, because it only exists inside your running software. You configure your software once with the nOps address and an API key. After that it sends data every few seconds on its own until you remove the setting or revoke the key. Every record nOps receives is tagged with your organization automatically, based on the API key. You don’t add an ID yourself, and anything you send that tries to set one is overwritten.
You need nOps administrator access to create API keys, and the Inform + Operate plan, the same plan that includes the Public API.

What you need

Only http/protobuf is supported. http/json and grpc are rejected. If your software can only send gRPC or can’t set a custom header, use the OpenTelemetry Collector option below.

Step 1: Create an API key

  1. Sign in to nOps as an administrator.
  2. Open Settings → Security → API Keys.
  3. Create a key and name it after the sender, for example ai-gateway-prod or claude-code-engineering.
  4. Give it only the telemetry:write permission.
  5. Copy the key. nOps shows it once.
Create one key per sender. If a key leaks, you can revoke it without cutting off your other senders, and nOps can tell which sender each record came from. A telemetry-only key can do nothing except send data, so the damage from a leak is limited.

Step 2: Point your software at nOps

Pick the option that matches what you’re sending from.

Any OpenTelemetry SDK or tool

Every official OTel SDK reads the same standard environment variables:
  • Set the endpoint without /v1/traces, /v1/logs, or /v1/metrics. The SDK adds the right path for each signal.
  • The %20 in the header stands for the space after Bearer. The OTel specification requires header values in this variable to be URL-encoded, and some SDKs reject a literal space.
  • OTEL_SERVICE_NAME is how you’ll tell your services apart in the data.

Claude Code

Claude Code can export usage, cost, and session events over OpenTelemetry. Administrators can turn it on for everyone through Claude Code’s managed settings file, in its env block:
Individual developers can instead set the same values in their shell or in ~/.claude/settings.json. Claude Code ignores these settings when they come from a repository’s .claude/settings.json.
By default Claude Code does not include prompt text in telemetry. Leave OTEL_LOG_USER_PROMPTS and similar content settings off unless you intentionally want prompts and responses sent to nOps.

AI gateways

Most AI gateways, including LiteLLM, Portkey, and Kong, have an OpenTelemetry option in their config file or admin page. It asks for the same three things: an endpoint, a protocol, and an authorization header. Use the values from What you need. The exact field names differ by gateway, so check your gateway’s documentation for its OTel or OTLP settings.

Use an OpenTelemetry Collector

Use a Collector when your software only speaks gRPC, can’t set custom headers, or already sends to a Collector. Run the standard OpenTelemetry Collector next to your software. It accepts telemetry on its normal ports and forwards it to nOps:
Already sending to another tool such as Datadog or Grafana? Keep your existing exporter and add otlphttp/nops beside it in each pipeline. The Collector sends to both.

Step 3: Check that it works

Send a few test traces with telemetrygen, part of the OpenTelemetry Collector contrib project:
A successful request returns HTTP 200. If you’d rather test with your real software, run it briefly and watch its logs for export errors.

Limits

Troubleshooting

FAQs

Yes. Use an OpenTelemetry Collector with more than one exporter, as shown above.
No. nOps assigns your organization from the API key and removes any attribute you send whose name starts with nops_ or nops.. Other attributes pass through unchanged.
Sending stops within a couple of minutes. Data already received stays in your organization’s records.
Only if you need it. AI gateway and agent traces can include the full text of prompts and responses. Check your exporter’s settings and remove sensitive content you don’t want stored.
If you’ve been given access to a nOps test environment, use the endpoint you were given in place of https://api.nops.io/otel, together with a key created in that environment.