Implement the three pillars of observability (metrics, logging, tracing) for Gamma integrations with alerting and dashboards.
Add Prometheus counters (request total, presentations created), histograms (request duration), and gauges (rate limit remaining) to the Gamma client via interceptors.
Configure Winston with JSON format, timestamps, and service metadata. Log requests, responses, and errors with sanitized parameters (no API keys).
Use OpenTelemetry to create spans for Gamma API calls with operation name, success status, and error recording.
Create Grafana dashboard with request rate, latency p95, error rate, and rate limit remaining panels.
Endpoint that pings Gamma API and reports status (healthy/degraded/unhealthy) with latency and rate limit info.
See detailed implementation for Prometheus metrics, Winston logger, OpenTelemetry tracing, Grafana dashboard JSON, alert rules, and health check endpoint.
| Error | Cause | Solution |
|---|---|---|
| Metrics not appearing | Registry not exposed | Add /metrics endpoint serving registry |
| Missing traces | Tracer not initialized | Initialize OpenTelemetry SDK at startup |
| Log volume too high | Debug level in prod | Set LOG_LEVEL to 'info' or 'warn' |
| False alerts | Thresholds too sensitive | Tune alert thresholds to traffic patterns |
set -euo pipefail
curl http://localhost:3000/health/gamma | jq # 3000: 3 seconds in ms
# { "status": "healthy", "latency": 150, "rateLimit": { "remaining": 95, "limit": 100 } }
Proceed to gamma-incident-runbook for incident response.