You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
telemetry/app/ already proves out the pattern locally (OTel + grafana/otel-lgtm).
This plan reuses that same instrumentation approach, pointed at Grafana Cloud instead of a local collector.
High level Steps
Sign up for Grafana Cloud account, free tier for now
Point the Otel SDK at Grafana Cloud instead of docker-otel-lgtm
Add some logging into the backend app
In-detail Steps
Grafana Cloud account — sign up for free tier, grab the OTLP endpoint + instance ID + API key.
Pick what to collect — traces (per-request + Athena/S3 calls), logs (structured, key identifiers only), metrics (RED: rate/errors/duration, auto-instrumented).
Add OTel dependencies — same packages as telemetry/app, plus a botocore instrumentation package since backend/ calls AWS via boto3.
Point the SDK at Grafana Cloud — env vars for OTLP endpoint, auth header, service name. No local collector needed.
Instrument the app — auto-instrumentation covers most of it; add a couple of manual spans around the Athena query / S3 presign in posts.py, plus light request logging.
Verify against Grafana Cloud — run locally, hit each endpoint (including an error path), confirm traces/logs/metrics show up in the hosted Grafana instance.
Basic dashboard + one alert — request rate, error rate, latency per route; alert on error rate spikes.
Document it — add a runbook alongside the existing docs/runbooks/demo-app-*.md ones.
Starting point
telemetry/app/already proves out the pattern locally (OTel +grafana/otel-lgtm).High level Steps
In-detail Steps
telemetry/app, plus abotocoreinstrumentation package sincebackend/calls AWS via boto3.posts.py, plus light request logging.docs/runbooks/demo-app-*.mdones.