This guide is for Nuon BYOC customers. Work with Nuon to deploy and enable the relay before enabling downstream
installs. Relay availability alone is not a guarantee of lossless delivery; review delivery limits.
How it works
- Your application sends OTLP logs, metrics, or traces to a private endpoint in its install’s cloud network.
- A Collector managed by the install runner buffers and forwards the data to your relay over HTTPS, using automatically renewed, short-lived Nuon credentials.
- The relay verifies the sending runner and attaches authoritative organization, app, install, and runner IDs.
- The relay forwards the data to your configured OTLP/HTTP backend.
telemetry-export-config secret does not configure this relay.
Configure your relay once
These steps apply to the stack that hosts your Nuon BYOC control plane, not each downstream customer install. You need an OTLP/HTTP backend that accepts the signals you intend to send and authenticates through anAuthorization header.
Prepare the BYOC deployment
Coordinate relay setup with Nuon. For existing deployments, Nuon will confirm compatible control-plane, runner, and stack versions before you enable collection.Supply the backend secrets
Update the values of these existing BYOC secrets in AWS Secrets Manager or GCP Secret Manager:telemetry_otlp_endpoint: HTTPS OTLP/HTTP base URL, for examplehttps://otel.example.com/otlp. Do not append/v1/logs,/v1/metrics, or/v1/traces.telemetry_otlp_authorization: Complete backendAuthorizationheader value, including itsBasicorBearerprefix.
- AWS
- GCP
- Open AWS Secrets Manager in the account and region hosting your Nuon BYOC deployment.
- Find the existing secrets corresponding to
telemetry_otlp_endpointandtelemetry_otlp_authorizationfor your BYOC install, not a downstream customer install. - Update each secret’s value: the endpoint secret contains the base URL, and the authorization secret contains the complete header value. Save both changes.
- Let Nuon know the secrets are ready to sync and the relay can be enabled. Do not send Nuon the secret values.
If either secret is missing, coordinate with Nuon to update your BYOC stack first. Use the current CloudFormation
template or Terraform stack configuration to provision
the missing secrets with the required values.
Have Nuon enable the relay
Nuon syncs the secrets, runs the relay preflight, enables the relay component, and verifies its deployment and HTTPS endpoint. Supplying secrets alone does not enable the relay. Wait for Nuon to confirm it is ready before enabling downstream installs. Your application will use its install-local endpoint, not this central relay address.Prepare an install’s private endpoint
These steps apply to each downstream customer install from which you want to collect telemetry. The relay, private stack ingress, and per-install forwarding setting are three independent controls; all must be ready. Private telemetry ingress is enabled by default in current install stacks. Ensure the install’s stack is up to date and its runner is running. No ingress change is needed unless the customer previously disabled it; in that case, re-enable the stack’s telemetry ingress setting. This does not enable per-install forwarding, which you configure in the next section.- AWS CloudFormation
- GCP Terraform
Ensure the install uses current VPC and runner stack templates. EnableTelemetryIngress defaults to
true.
If the customer set it to false, update the stack to set it back to true.The private OTLP/HTTP endpoint uses port 4318, restricted to the install VPC by the runner ingress security groups.
Additional AWS infrastructure charges apply.telemetry_endpoint. For example, using the CLI
authenticated to your BYOC control plane:
Enable forwarding for the install
Use an API key with access to the install’s organization, against your BYOC API, not the Nuon Cloud API. Set these variables locally; do not commit your API key:{"enabled":true}. Installs default to disabled. A running runner checks settings every 15 seconds
and applies changes without a runner restart; allow time for Collector startup and token issuance.
The API response reports the saved setting, not end-to-end delivery health.
Read the saved setting at any time:
Send telemetry from your application
Configure these environment variables in your application’s component configuration:telemetry_endpoint output value. Do not send the literal template string from a shell or application.
The endpoint is a base URL. Standard OTLP/HTTP exporters append /v1/metrics, /v1/logs, or /v1/traces for the
appropriate signal. If your SDK uses a signal-specific endpoint setting, configure the corresponding full path.
You do not need your backend credentials, a runner token, or the central relay URL in the application.
Verify a metric reaches your backend
From a workload or shell with network access to the install’s private endpoint, send one recognizable OTLP/JSON gauge. The HTTP receiver accepts this format as well as the protobuf format recommended for SDKs above. Replace the endpoint placeholder with the actual stack output:1, and verify the expected install identity below. If you also use logs
or traces, send and verify a sample of each; success for metrics does not prove your backend accepts other signals.
Identify the originating install
The relay attaches these verified resource attributes using the authenticated runner identity:
Caller-supplied copies of these four IDs are removed throughout the payload before the relay stamps the resource.
Matching is case-insensitive and includes underscored aliases such as
nuon_install_id. This prevents a producer
from using these fields to claim another install’s identity; it does not attest to the integrity of the workload.
The runner also adds nuon.org.name, nuon.app.name, nuon.install.name, and nuon.install.labels.<key> from its
settings. These are useful display and filtering metadata, but the relay does not verify them against the IDs.
Other attributes are preserved. The relay sets resource-level nuon.telemetry.source to install for this path.
Use resource-aware queries for authoritative filtering. Some backends flatten or rename resource attributes into
metric labels; confirm that mapping and its collision behavior before using the labels for dashboards or alerts.
Rotate credentials or disable collection
To rotate backend credentials, update the existing BYOC secrets in your cloud’s secret manager and coordinate with Nuon to sync them, run preflight, and restart the relay deployment. Credentials are loaded at relay pod startup, not automatically on secret changes. You do not need to update credentials in individual customer installs. To disable one install, repeat the PATCH request above with{"enabled":false}. The runner applies the change on
its settings refresh. Stop or reconfigure application exporters too, so they do not keep sending to an unavailable
Collector. This setting does not remove the stack’s private ingress infrastructure or delete data in your backend.
Before asking Nuon to disable the central relay, disable forwarding on its downstream installs. The relay component
toggle does not automatically change their settings. Remove private ingress separately if it is no longer needed.
Delivery limits
The runner Collector uses a bounded disk-backed queue and forwards asynchronously. The relay itself has no persistent queue or retry loop. Local acceptance is not a backend acknowledgement, and delivery is not exactly once: retries can produce duplicates, while queue exhaustion, storage failures, permanent rejections, and some authentication or downstream failure responses can lose telemetry. Do not rely on indefinite outage retention or automatic historical backfill. Monitor missing data in your backend and agree on capacity and failure expectations with Nuon before production use. Audit export uses a separate Collector process and queue, but still shares the runner host’s resources.Troubleshooting
When contacting Nuon, provide the install ID, signal, sample timestamp, and sanitized error details. Do not include
API keys, backend credentials, runner tokens, or sensitive telemetry payloads.