Troubleshooting
If your issue isn't here, email support [at] greenslope [dot] io. Every support answer that isn't already in docs is a docs bug.
First trace doesn't arrive
After finishing a quickstart, the dashboard's Live traces view is empty. Work through these in order.
1. Is the ingest key set?
echo $GREENSLOPE_INGEST_KEY
# Should print gs_ing_live_…If it's unset, the SDK may send requests without the required header and
GreenSlope returns 401. In Node, enable the OpenTelemetry debug logger:
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api"
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)Look for 401 responses from ingest.greenslope.io.
2. Is the URL right?
The path is /v1/otel/v1/traces. The double /v1 is deliberate.
Wrong values and their failures:
| URL | What happens |
|---|---|
.../v1/traces | 404. Missing outer /v1/otel. |
.../v1/otel | 404. Missing inner /v1/traces. |
.../v1/otel/v1/logs | 404. GreenSlope does not accept logs yet. |
3. Did the SDK start before your app imports frameworks?
In Node, if express or fastify is imported before the OpenTelemetry SDK
starts, auto-instrumentation cannot patch it and you get zero spans.
Fix: use node -r ./otel.js server.js or node --import ./otel.js server.js.
See the Node quickstart.
4. Is a firewall blocking outbound 443?
Check:
curl -I https://ingest.greenslope.io/v1/otel/v1/traces
# Expect: HTTP/2 405 because the endpoint is POST-only.If you get a timeout, your network may be blocking egress. The hosts to allow are listed in Security and data handling.
missing release data banner
Shown when one of the three required resource attributes is missing on recent spans. Common causes:
greenslope.release.idis not set. You setservice.versionbut not the stable release ID.- Release ID is not stable. Use a git SHA or another deploy-stable ID.
- Services that deploy together use different release IDs. Shared
releases should share the same
greenslope.release.id.
Fix the instrumentation, then wait 5 to 10 minutes for new spans to replace the old ones.
Alert fires on every release
Your regression threshold may be too sensitive, or your service baseline may still be learning.
- During the first baseline window, regression alerts are suppressed and the product shows a learning banner.
- After that, tighten the regression threshold under Settings → Services → Regression detection.
Slack alerts go to the wrong channel
Routes are top-to-bottom, first-match-wins. A general rule above a specific rule will catch alerts first.
Reorder routes so the narrowest rule is first. A good default order:
severity = sev1- Per-service rules
- Environment rules, such as
environment = staging - Fallback route
Common product terms
- Burn rate: how fast a service is spending its error budget.
- Baseline: the latency and error-rate floor GreenSlope uses when judging regressions.
- Suspected release: the release ID whose deployment correlates with the current error spike.
- Quiet window: a period where GreenSlope expected traces but did not receive any.
Related