Language SDKs

Language-specific configuration guides for StatusRadar OTLP integration.

Installation

For OpenTelemetry SDK installation instructions, refer to the official documentation:

StatusRadar Configuration

After installing the OpenTelemetry SDK for your language, configure it to send data to StatusRadar.

Node.js / JavaScript

const { NodeSDK } = require('@opentelemetry/sdk-node');
const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({
    url: 'https://otlp.statusradar.dev/v1/traces',
    headers: { 'X-App-Token': process.env.STATUSRADAR_TOKEN }
  }),
  instrumentations: [getNodeAutoInstrumentations()]
});

sdk.start();

Auto-instrumented frameworks: Express, Fastify, Koa, NestJS

Python

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.resources import Resource

trace.set_tracer_provider(TracerProvider(
    resource=Resource.create({"service.name": "my-service"})
))

exporter = OTLPSpanExporter(
    endpoint="https://otlp.statusradar.dev/v1/traces",
    headers={"X-App-Token": os.environ["STATUSRADAR_TOKEN"]}
)

trace.get_tracer_provider().add_span_processor(
    BatchSpanProcessor(exporter)
)

Auto-instrumented frameworks: Django, Flask, FastAPI

Go

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
    sdktrace "go.opentelemetry.io/otel/sdk/trace"
)

func initTracer() {
    exporter, _ := otlptracehttp.New(
        context.Background(),
        otlptracehttp.WithEndpoint("otlp.statusradar.dev"),
        otlptracehttp.WithURLPath("/v1/traces"),
        otlptracehttp.WithHeaders(map[string]string{
            "X-App-Token": os.Getenv("STATUSRADAR_TOKEN"),
        }),
    )

    tp := sdktrace.NewTracerProvider(
        sdktrace.WithBatcher(exporter),
    )
    otel.SetTracerProvider(tp)
}

Auto-instrumented frameworks: Gin, Echo, gRPC

PHP

use OpenTelemetry\SDK\Trace\TracerProvider;
use OpenTelemetry\SDK\Trace\SpanProcessor\BatchSpanProcessor;
use OpenTelemetry\Contrib\Otlp\SpanExporter;

$exporter = new SpanExporter(
    'https://otlp.statusradar.dev/v1/traces',
    ['X-App-Token' => getenv('STATUSRADAR_TOKEN')]
);

$tracerProvider = new TracerProvider(
    new BatchSpanProcessor($exporter)
);

Auto-instrumented frameworks: Laravel, Symfony

Java

SdkTracerProvider tracerProvider = SdkTracerProvider.builder()
    .addSpanProcessor(BatchSpanProcessor.builder(
        OtlpHttpSpanExporter.builder()
            .setEndpoint("https://otlp.statusradar.dev/v1/traces")
            .addHeader("X-App-Token", System.getenv("STATUSRADAR_TOKEN"))
            .build()
    ).build())
    .build();

Auto-instrumented frameworks: Spring Boot, Micronaut, Quarkus

.NET / C

using OpenTelemetry;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;

var tracerProvider = Sdk.CreateTracerProviderBuilder()
    .AddOtlpExporter(options => {
        options.Endpoint = new Uri("https://otlp.statusradar.dev/v1/traces");
        options.Headers = "X-App-Token=" + Environment.GetEnvironmentVariable("STATUSRADAR_TOKEN");
    })
    .Build();

Auto-instrumented frameworks: ASP.NET Core, gRPC

Ruby

require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'

OpenTelemetry::SDK.configure do |c|
  c.service_name = 'my-service'
  c.use_all

  c.add_span_processor(
    OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
      OpenTelemetry::Exporter::OTLP::Exporter.new(
        endpoint: 'https://otlp.statusradar.dev/v1/traces',
        headers: { 'X-App-Token' => ENV['STATUSRADAR_TOKEN'] }
      )
    )
  )
end

Auto-instrumented frameworks: Rails, Sinatra, Rack

Endpoints

Configure your SDK to use StatusRadar OTLP endpoints:

Signal Endpoint
Traces https://otlp.statusradar.dev/v1/traces
Logs https://otlp.statusradar.dev/v1/logs
Metrics https://otlp.statusradar.dev/v1/metrics

Authentication: All requests must include X-App-Token header with your app token.

Next Steps