この翻訳は機械生成であり、レビュー待ちです。英語に切り替える
このページの内容

APM and the ingestion service (OTLP)

Application performance monitoring (APM) lets your backend services send traces, metrics, logs, profiles and release markers to Noxtica over OpenTelemetry (OTLP). A workspace administrator creates a scoped Ingestion API key in Backoffice; your services use it as a bearer token.

This page covers the key, the endpoint, a test request and the Backoffice explorers. Browser real-user monitoring is on Real user monitoring and Web Vitals.

What it is

Availability: In development.

APM capture is not open to every workspace. Where it is enabled for your organisation, the pieces below work as described. Where it is not, Noxtica refuses OTLP requests with 403 apm_purpose_disabled and the Backoffice explorers stay empty. Ask your account team whether your organisation is enabled.

Hosts and lanes

The ingestion service answers on ingest.noxtica.com. The collector host collect.noxtica.com serves the same OTLP routes. The Backoffice setup block pre-fills ingest.noxtica.com, and says to treat the collector as a failover only for connection errors that happen before a request is sent. Never switch hosts after a timeout, a lost response or an HTTP error.

LaneRouteUsed byYou call it
OTLP tracesPOST /v1/tracesOpenTelemetry SDKs and collectorsYes
OTLP metricsPOST /v1/metricsOpenTelemetry SDKs and collectorsYes
OTLP logsPOST /v1/logsOpenTelemetry SDKs and collectorsYes
ProfilesPOST /v1/profilesProfiling agents and SDKsYes
Release markersPOST /v1/deploymentsYour CI or deploy jobYes
Browser telemetry/client/*The browser SDKNo, see the browser runtime

Other products (Hunter, Spot, Pulse) use their own lanes on the same service. They are not covered here.

Which key does what

CredentialPrefixUse
Ingestion API keysk_apm_Sends OTLP, profiles and release markers. Server to server only.
Server API keysk_prod_Calls the Noxtica server API. Never accepted on OTLP routes.

An Ingestion API key is bound to one project and one environment, and accepts only the signals you enable on it. Each key also carries a legal basis you registered for telemetry ingest.

What is not self-serve

The read and export routes under /v1/apm/ need the scopes read:apm and write:apm. Backoffice does not offer those scopes when you create a server API key, so you cannot create such a key yourself today. Whether read or export access is available to you depends on your account; ask your account team. Use the Backoffice explorers to read data.

An OTLP response means the request was accepted into a durable queue. It does not mean the data is already visible in Backoffice.

Prerequisites

  • Administrator role in Backoffice. Creating and revoking keys needs a fresh step-up MFA confirmation.
  • APM enabled for your organisation (see the availability line above).
  • A registered legal basis for telemetry ingest. A workspace administrator registers it once; Backoffice prompts for it on the key page.
  • An OpenTelemetry exporter that can send OTLP over HTTP with a custom Authorization header.
  • Network egress from your servers to ingest.noxtica.com over HTTPS.

Steps

Backoffice → Integrations & API → Ingestion API Keys.

If the page shows “Register the legal basis for telemetry ingest”, read the disclosure, tick “I have read this disclosure and assert this lawful basis for my organisation.” and press Register legal basis. Only a workspace administrator can do this. You can also review it under Backoffice → Privacy & Legal → Legal Basis Register. Without a registered legal basis, key creation is refused.

2. Create a project and an environment (optional)

On the same page, open Projects & environments.

  • A project groups the services of one application. An environment separates where they run. Environment types are production, staging, development and test.
  • If your workspace has no project yet, your initial key creates a project named Platform with an environment named Production.
  • Backoffice shows the project and environment IDs next to their names. You need the environment ID for release markers (the default is env_production).
  • Archiving a project or environment stops new keys from using it. Existing keys keep working.

3. Mint an Ingestion API key

Press Mint APM ingest key and fill in the form:

  1. Choose the Project and Environment.
  2. Optionally enter a Key name (optional) of at most 80 characters, for example web-01 agent. The name is never sent with telemetry.
  3. Pick a Preset, then adjust the signals.
  4. Press Mint key and confirm step-up MFA.
PresetSignals it selects
Application (OpenTelemetry SDK)Traces, Metrics, Logs
Host agentHost agent, Metrics, Logs, Traces, Profiles
Browser or mobile RUMRUM events

All signals you can tick: Traces, Metrics, Logs, Profiles, Deployments, RUM events and Host agent. Add Deployments if the key will send release markers.

Copy the key from the “Copy your key now” panel. Backoffice shows it just once and cannot show it again. Press “I’ve saved it” when it is stored in your secret manager.

4. Point your exporter at the ingestion service

Set these environment variables on the service that exports OTLP over HTTP. They match the “OpenTelemetry HTTP setup” block in Backoffice:

OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.noxtica.com
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ${NOXTICA_APM_KEY}"

Spans need a service.name resource attribute. Noxtica rejects spans that have none, and spans with all-zero trace or span IDs.

The host agent has its own settings (api_key, ingest_endpoint). Mint the key with the Host agent preset and use the “Where to use this key” panel that Backoffice shows after minting. The agent itself is distributed privately; ask your account team for access.

5. Send a test trace

This request uses the JSON form of OTLP. Run it from a Linux shell with the key in NOXTICA_APM_KEY:

NOW=$(date +%s%N)
START=$((NOW - 51000000))
END=$((NOW - 1000000))
curl -sS -i -X POST https://ingest.noxtica.com/v1/traces \
  -H "Authorization: Bearer $NOXTICA_APM_KEY" \
  -H "Content-Type: application/json" \
  --data @- <<JSON
{
  "resourceSpans": [{
    "resource": { "attributes": [{ "key": "service.name", "value": { "stringValue": "checkout-api" } }] },
    "scopeSpans": [{
      "scope": { "name": "docs-smoke-test", "version": "1.0.0" },
      "spans": [{
        "traceId": "W47/95gDgQPSabYzgT/GDA==",
        "spanId": "7uGbfsPBsXQ=",
        "name": "GET /health",
        "kind": "SPAN_KIND_SERVER",
        "startTimeUnixNano": "$START",
        "endTimeUnixNano": "$END",
        "status": { "code": "STATUS_CODE_OK" }
      }]
    }]
  }]
}
JSON

Trace and span IDs are base64 strings in the JSON form. Send Content-Type: application/x-protobuf for protobuf bodies. Any other content type is refused with 415. Content-Encoding: gzip and deflate are accepted.

6. Send a release marker

A release marker records that a version of a service went live in an environment. The key must have the Deployments signal. The environment value must equal the environment ID of the key:

curl -sS -i -X POST https://ingest.noxtica.com/v1/deployments \
  -H "Authorization: Bearer $NOXTICA_APM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"checkout-api","version":"2026.10.27-1","environment":"env_production","commit":"3f2a9c1d","timestamp":"2026-10-27T09:00:00Z"}'

commit (7 to 64 lowercase hex characters) and timestamp (not in the future) are optional. Unknown fields are refused. The body is limited to 16 KiB.

7. Read the data in Backoffice

Backoffice → RUM & APM. The APM tabs are:

TabWhat it shows
APM TracesDistributed traces and span timelines
APM ServicesPer-service latency, throughput and error summaries, and service dependencies
APM ReleasesHealth of one release at a time, plus the “Deploy markers” list for that release
APM MetricsGauge, sum and histogram series
APM LogsLog records with severity and trace correlation
APM ProfilesCPU, wall, allocation and hang profiles with flame graphs

APM Errors (backend exception groups) is also routed at /rum-apm/errors. In APM Releases you enter an exact release identifier; the page never lists every release for your workspace. Reading needs the Backoffice analytics permission (view.analytics, viewer role and up). Use the project and environment selectors above each tab.

8. Revoke or replace a key

On the Ingestion API Keys page, press Revoke key on a row. Any collector using that key loses access to OTLP ingest immediately. Mint a new key before you revoke if you need zero gap, and swap it in your secret manager.

9. Watch usage

Ingestion requests are metered. Backoffice → Billing & Plan → Usage & Quotas shows usage against your plan; see Usage, quotas and metering. Limits are configuration and can change; Backoffice shows the values in force.

Verify it works

  • The test trace returns 200 OK. An empty JSON object {} means every span was accepted. A partialSuccess object reports how many spans were rejected, for example because of a missing service.name.
  • The release marker returns 202 with ok: true, a deployment_id and the stored service, version and environment.
  • The key row on the Ingestion API Keys page shows state Active and the signals you chose.
  • After a short delay the trace appears in APM Traces for the project and environment of the key, and the service appears in APM Services.
  • In APM Releases, enter the release identifier you sent (for example 2026.10.27-1). The “Deploy markers” panel lists the marker, with the commit if you sent one.

An empty explorer with a 200 response is expected for a short time, and for workspaces where capture is not enabled yet.

Troubleshooting

SymptomCauseFix
401 apm_auth_missingNo Authorization headerSend Authorization: Bearer <key>. The response carries WWW-Authenticate: Bearer realm="noxtica-otlp".
401 apm_auth_invalidWrong key, a revoked key, or a server API key (sk_prod_) instead of an sk_apm_ keyMint an Ingestion API key and use it.
401 apm_auth_expiredThe key is outside its validity windowMint a new key.
403 apm_scope_deniedThe key does not carry the signal you sent (for example logs)Mint a key with that signal ticked; the signals of an existing key cannot be changed.
403 apm_purpose_disabledAPM ingest is not enabled for your organisationAsk your account team.
403 apm_environment_mismatch on /v1/deploymentsenvironment differs from the environment ID of the keySend the environment ID shown in Projects & environments.
415 apm_unsupported_media_typeContent type is not application/json or application/x-protobuf (release markers accept JSON only)Fix the exporter protocol.
413 apm_body_too_large or apm_batch_too_largeA request is over the wire limit of 1 MiB, the decompressed limit of 4 MiB, or 500 spans, points or log recordsLower the exporter batch size. Release markers: 16 KiB. Profiles: 2 MiB wire, 8 MiB decompressed, 20 profiles.
429 apm_rate_limitedMore than 600 requests in 60 seconds for one tenant and project (release markers: 120 in 60 seconds)Back off and retry after the Retry-After interval.
503 apm_queue_unavailable or apm_authority_unavailableTemporary platform conditionRetry with backoff.
400 apm_malformed_otlp_json or apm_malformed_otlp_protobufThe body does not decode as an OTLP export requestCheck the encoding and the Content-Type header.
Backoffice refuses to mint: “No legal basis for telemetry ingest is registered”No legal basis on recordA workspace administrator registers it on the key page (step 1).
Backoffice refuses to mint: “Select a project and an environment.”The workspace has several projectsChoose the project and environment in the form.
Backoffice: “This project has no active environment.”Environments are archivedAdd or restore one under Projects & environments.
Explorer is empty, requests succeedData is still loading, or capture is not enabled for your organisationWait a few minutes; then ask your account team.

Who it fits

These are questions APM is planned to help answer. Fit depends on what the finished scope turns out to be.

  • Slow page, unclear cause. Teams could follow a slow page load to the backend request behind it.
  • Behavior after a deployment. Release markers could help teams compare behavior before and after a deployment.
  • Session and server data together. Teams that already use Noxtica for browser monitoring could review backend telemetry beside it.

How teams connect

Nothing here is a supported setup today. The availability note under What it is says where the steps work.

  • Your services. Services that already emit OpenTelemetry data would point them at a Noxtica intake with a console-issued key. See step 3 and step 4.
  • Your browser sessions. Browser sessions collected by the Noxtica browser script could be linked to backend traces through standard W3C trace context headers. Trace context would link data but would not decide which tenant it belongs to. See Custom events, session tags and request tracing.
  • The Noxtica console. Results would be read in views for traces, metrics, logs and releases. See step 7.

Limits

Read Who it fits and How teams connect as a description of intent. They describe the intended design, not a released workflow.

  • APM is in development. Nothing on this page is a commitment on scope or date.
  • The planned focus would be linking telemetry to browser sessions, not infrastructure monitoring, general log management or continuous profiling.
  • No performance or capacity claims are made on this page. Any such claim would need measurement before publication.
  • Traces and logs can carry personal data. Customers would remain responsible for notice, consent, retention and what their services send.

Common questions

Can I use APM today?

No. APM is in development. You can ask about early access: see Contact.

Which standards is it planned to use?

The design uses OpenTelemetry transports and W3C trace context. Details could change before any release.

Will it replace other monitoring tools?

That is not the planned focus. See Limits.