Skip to main content
GreenSlope

SDK setup

The quickstart gets you to the first trace. This section goes one level deeper: edge routes, non-HTTP workers, sampling strategy, and the resource-attribute discipline that makes release attribution work across multiple services.

If you haven't done a quickstart yet, do that first.

Shared across every setup

Three things are identical regardless of language.

The endpoint

Every SDK exports OTLP over HTTP to:

https://ingest.greenslope.io/v1/otel/v1/traces

The double /v1 is deliberate: the outer /v1/otel is our ingest version; the inner /v1/traces is the OTLP schema version. Don't collapse them.

gRPC OTLP is supported at the same host on port 443. Use HTTP unless you have a specific reason — the difference in throughput isn't meaningful at normal volumes, and HTTP is easier to debug.

The header

Authentication is a header, not a DSN:

x-greenslope-key: gs_ing_live_…

Set it via your SDK's headers config. Do not put it in the URL — the URL ends up in logs.

The three resource attributes

Required on every span:

AttributeTypeExample
service.namestringweb, api, billing-worker
service.versionstring2026.4.21, v1.8.0
greenslope.release.idstringA git SHA

Set these once, on the resource, at SDK startup. Don't set them per-span. If you have multiple services that deploy together, they share the same greenslope.release.id — that's what lets the Doctor page ask "did this release break anything across the whole system?".

See Release attribution.

Sampling defaults

See Spans and traces → Sampling.

Related