| name | documenso-observability |
| description | Implement monitoring, logging, and tracing for Documenso integrations.
Use when setting up observability, implementing metrics collection,
or debugging production issues.
Trigger with phrases like "documenso monitoring", "documenso metrics",
"documenso logging", "documenso tracing", "documenso observability".
|
| allowed-tools | Read, Write, Edit |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","documenso","monitoring","observability","debugging"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Documenso Observability
Overview
Implement monitoring, structured logging, and health checks for Documenso integrations. Since Documenso does not expose rate limit headers or usage metrics via API, observability is built around your API call patterns, latency, error rates, and webhook delivery.
Prerequisites
- Working Documenso integration
- Monitoring stack (Prometheus/Grafana, Datadog, or CloudWatch)
- Logging infrastructure
Instructions
Step 1: Instrumented Client Wrapper
import { Documenso } from "@documenso/sdk-typescript";
interface Metrics {
requestCount: number;
errorCount: number;
totalLatencyMs: number;
errorsByStatus: Record<number, number>;
}
const metrics: Metrics = {
requestCount: 0,
errorCount: 0,
totalLatencyMs: 0,
errorsByStatus: {},
};
export function createInstrumentedClient(): Documenso {
const client = new Documenso({ apiKey: process.env.DOCUMENSO_API_KEY! });
return new Proxy(client, {
() {
value = (target )[prop];
( value === && value !== ) {
(value, {
() {
fn = (innerTarget )[method];
( fn !== ) fn;
(...: []) => {
start = .();
metrics.++;
{
result = fn.(innerTarget, args);
metrics. += .() - start;
result;
} (: ) {
metrics.++;
status = err. ?? ;
metrics.[status] = (metrics.[status] || ) + ;
metrics. += .() - start;
err;
}
};
},
});
}
value;
},
});
}
() {
{
...metrics,
: metrics. >
? .(metrics. / metrics.)
: ,
: metrics. >
? (metrics. / metrics. * ).() +
: ,
};
}