| name | gamma-observability |
| description | Implement comprehensive observability for Gamma integrations.
Use when setting up monitoring, logging, tracing,
or building dashboards for Gamma API usage.
Trigger with phrases like "gamma monitoring", "gamma logging",
"gamma metrics", "gamma observability", "gamma dashboard".
|
| allowed-tools | Read, Write, Edit |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","gamma","api","monitoring","observability"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Gamma Observability
Overview
Implement monitoring, logging, and health checks for Gamma API integrations. Since Gamma does not expose rate limit headers or internal metrics, observability is built around your API call patterns, latency, error rates, credit consumption, and generation success rates.
Prerequisites
- Working Gamma integration (see
gamma-sdk-patterns)
- Monitoring stack (Prometheus/Grafana, Datadog, or CloudWatch)
- Logging infrastructure
Instructions
Step 1: Instrumented Client
interface GammaMetrics {
requests: number;
errors: number;
generations: number;
completions: number;
failures: number;
totalCredits: number;
totalLatencyMs: number;
errorsByStatus: Record<number, number>;
}
const metrics: GammaMetrics = {
requests: 0, errors: 0,
generations: 0, completions: 0, failures: 0,
totalCredits: 0, totalLatencyMs: 0,
errorsByStatus: {},
};
export function createInstrumentedClient() {
base = ;
headers = { : apiKey, : };
() {
metrics.++;
start = .();
{
res = (, {
method, headers,
: body ? .(body) : ,
});
metrics. += .() - start;
(!res.) {
metrics.++;
metrics.[res.] = (metrics.[res.] || ) + ;
();
}
res.();
} (err) {
(!metrics.[]) metrics.[] = ;
metrics. += .() - start;
err;
}
}
{
: (: ) => {
metrics.++;
(, , body);
},
: (, ),
: (, ),
: (, ),
: {
metrics.++;
metrics. += creditsUsed;
},
: { metrics.++; },
};
}
() {
{
...metrics,
: metrics. >
? .(metrics. / metrics.) : ,
: metrics. >
? (metrics. / metrics. * ).() + : ,
: metrics. >
? (metrics. / metrics. * ).() + : ,
: metrics. >
? .(metrics. / metrics.) : ,
};
}