Skip to main content

Validate Tracing Instrumentation

Overview

Use this guide to confirm that your application is correctly instrumented with OpenTelemetry and that traces are arriving in CtrlB.

Prerequisites

  • Your application is instrumented with an official OpenTelemetry SDK/auto-instrumentation for your language.
  • Your OpenTelemetry exporter or Collector is configured to send OTLP data to CtrlB. See: OpenTelemetry Collector for Traces

Generate traffic

Applications will not produce traces unless they are being interacted with. OpenTelemetry exports data periodically and often buffers before sending. To verify traces:

  1. Start your application.
  2. Trigger an action that generates a request (for example, hit a service endpoint a few times or load a page that calls your backend).
  3. Wait a short period (typically 15–60 seconds) for spans to be batched and exported.

Validate in CtrlB

Use the Services and Traces pages to confirm that data is flowing.

1. Services page — Open the Services page. Set an appropriate time range (e.g. Last 15 minutes). Your service appears here once CtrlB receives its first spans. Click Refresh if you don't see it immediately.

Services page in CtrlB — your service appears in the list once spans are received

2. Traces page — Open the Traces page. Set an appropriate time range (e.g. Last 15 minutes) and filter by your service name and other relevant attributes. You should see recent traces from your instrumented application.

Traces page in CtrlB — filter by your service to view traces


Troubleshooting

Common issues

Service not listed in CtrlB

  • Ensure your service name (e.g. OTEL_SERVICE_NAME) is set before the application starts.
  • Use no spaces or invalid characters in the service name.

No spans received

CheckExplanation
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobufRequired by CtrlB.
Ingestion endpoint has no trailing slashe.g. https://ingest.ctrlb.dev.
Headers include both Authorization and stream-nameMost common issue.
Machine can reach CtrlB ingestion endpointCheck firewall/VPC rules.

Test network connectivity:

curl -v https://<INGESTION_HOST>

Agent not applied (e.g. Java)

  • The path to the agent JAR is wrong, or the agent argument is in the wrong place (it must come before the -jar argument).

Proxy / SSL issues

If you're behind a corporate proxy, set -DproxyHost=<host> and -DproxyPort=<port> (or the equivalent for your SDK).


If you still don't see traces

  • Confirm the OTLP endpoint, protocol, and auth settings match your CtrlB workspace/Collector configuration.
  • Ensure your application actually executed instrumented code paths (generate more traffic if uncertain).
  • Increase the time range and click Refresh on Services/Traces pages.
  • Check the OpenTelemetry SDK/agent logs and your Collector logs for export or connection errors.
  • Verify any network egress rules, proxies, or firewalls allow traffic to the CtrlB endpoint.