Skip to content
CloseYourItdocsPages

Documentation / Connect

OpenTelemetry

Send server traces, metrics and logs through the optional OTLP receiver.

CloseYourIt has a local implementation for receiving and storing traces, metrics and logs from OpenTelemetry. The receiver is disabled by default. Local tests do not mean it is enabled on your installation or available in a published release.

Choose the right path

Use an official OpenTelemetry SDK or Collector for server-side OTLP. The CloseYourIt SDKs retain their own error, performance and other native channels; enabling W3C trace headers in those SDKs does not by itself create a complete trace.

The initial OTLP receiver requires a server-side project bearer with ingest scope. Do not place it in a browser, mobile app, public Nuxt configuration or downloadable application. A public DSN cannot authenticate to this receiver.

Before connecting an exporter

The installation operator must deploy compatible gateway and Rails builds, explicitly enable OTLP_ENABLED=true, and configure private routing or a reviewed HTTPS proxy. The local defaults do not expose a public service:

TransportLocal receiverSignal paths
HTTP127.0.0.1:4318/v1/traces, /v1/metrics, /v1/logs
gRPC127.0.0.1:4317OTLP Export services

These listeners do not terminate TLS. Use the actual protected address supplied by your operator, not the main application URL or an assumed public port. closeyourit enable ingest alone does not attest that OTLP has been configured.

Configure your SDK's exporter for that transport and address. Send Authorization: Bearer <project token> through its server-side headers or gRPC metadata. HTTP accepts OTLP Protobuf and Protobuf JSON, with optional gzip. The authenticated token selects the project; service.name does not grant access to a different project.

Verify the first delivery

  1. Send a parent and child span, one metric and one log with a known test marker.
  2. Flush the exporter and inspect its error or partial-rejection result.
  3. In CloseYourIt, verify the stored signals in the intended project, with their timestamps and service identity. Private API reads require a separate read permission.
  4. Confirm another project cannot read them and that no credentials or personal data were retained.

The receiver's success means durably admitted to the queue, not yet stored by Rails. A partial-success response reports rejected items; do not retry the whole accepted batch blindly. A log with error severity does not automatically become an error report.

What has been tested

Local end-to-end evidence exists for the official Go OpenTelemetry 1.46.0 trace/metric exporters and log SDK 0.22.0, over HTTP and gRPC with gzip. Each run checked real backend storage and private read-back. That evidence does not certify other languages, multiple deployed hosts or production capacity.

The public receiver limits a request to 1 MiB on the wire and 5 MiB after decompression. The internal Rails endpoints accept normalized uncompressed JSON up to 5 MiB. General metrics and native slow-query performance issues are different signals. Unsupported data or excessive payloads remain explicit failures, not a promise of complete collection.

For Nuxt errors without OTLP, use the Nuxt adapters. For the existing channels, see the SDK comparison.

Explore stored data

Traces, measurements and sessions covers the span waterfall, measurement filters and alerts over closed windows. Other stacks have different profiles and signals: a Go proof does not automatically certify every OpenTelemetry SDK.