SDK для языков
Руководства по настройке интеграции StatusRadar OTLP для конкретных языков.
Установка
Инструкции по установке OpenTelemetry SDK смотрите в официальной документации:
Настройка StatusRadar
После установки OpenTelemetry SDK для вашего языка настройте его на отправку данных в 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();
Авто-инструментируемые фреймворки: 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)
)
Авто-инструментируемые фреймворки: 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)
}
Авто-инструментируемые фреймворки: 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)
);
Авто-инструментируемые фреймворки: 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();
Авто-инструментируемые фреймворки: 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();
Авто-инструментируемые фреймворки: 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
Авто-инструментируемые фреймворки: Rails, Sinatra, Rack
Эндпоинты
Настройте свой SDK на использование OTLP-эндпоинтов StatusRadar:
| Сигнал | Эндпоинт |
|---|---|
| Трейсы | https://otlp.statusradar.dev/v1/traces |
| Логи | https://otlp.statusradar.dev/v1/logs |
| Метрики | https://otlp.statusradar.dev/v1/metrics |
Аутентификация: все запросы должны содержать заголовок X-App-Token с токеном вашего приложения.
Дальнейшие шаги
- Трейсы — внедрите распределённую трассировку
- Логи — добавьте структурированное логирование
- Метрики — отслеживайте пользовательские метрики
- Устранение неполадок — частые проблемы