@stambha/metrics
v0.2.2
Published
Prometheus metrics and observability for Stambha — counters, histograms, and /metrics HTTP server
Maintainers
Readme
@stambha/metrics
Prometheus observability for Stambha — command counters, latency histograms, REST telemetry, and an optional /metrics HTTP server.
Part of Stambha plugins · requires @stambha/core · Metrics deployment
Install
npm install @stambha/metrics @stambha/coreRequires Node.js 20+.
Quick start
Attach to the bot client
import { createStambhaBot } from "@stambha/core";
import { attachClientMetrics, createPrometheusMetrics } from "@stambha/metrics";
const client = createStambhaBot({ /* … */ });
const { register, collector } = createPrometheusMetrics({ prefix: "stambha" });
attachClientMetrics(client, collector);Expose /metrics
import { createMetricsServer } from "@stambha/metrics";
const server = await createMetricsServer({
port: 9090,
register,
});
console.log(`Metrics at ${server.url}`);REST worker telemetry
import { createPrometheusRestMetrics, restMetricsToTelemetry } from "@stambha/metrics";
import { createRestTelemetryListener } from "@stambha/rest";
const restMetrics = createPrometheusRestMetrics();
queue.addListener(createRestTelemetryListener(restMetricsToTelemetry(restMetrics)));Key exports
| Export | Purpose |
|--------|---------|
| attachClientMetrics | Hook pipeline events |
| createPrometheusMetrics | prom-client counters/histograms |
| createMetricsServer | Scrape endpoint |
| createPrometheusRestMetrics | REST queue stats |
| InMemoryMetrics | Dev/testing without Prometheus |
Related packages
| Package | Role |
|---------|------|
| @stambha/core | Client events |
| @stambha/rest | Rate-limit and request telemetry |
Development
pnpm --filter @stambha/metrics build
pnpm --filter @stambha/metrics test