Performance
Runtime process metrics — CPU, memory, event loop, and GC for instrumented services.
What Performance does
Performance captures process-level runtime metrics — RSS, heap used, heap total, CPU user/system, event loop p50/p99, GC pauses (major/minor/incremental), and 1-/5-/15-minute system load — as a single `performance` event emitted on a configurable interval (default 10s). It works on Node and on Bun via the same `node:perf_hooks` API surface.
Each snapshot is a single row; the dashboard rolls them up into per-service charts. Static labels (`{ service: 'api', region: 'us-east-1' }`) attach to every emit so you can slice by deployment, by host, or by experiment. There is no agent and no sidecar — the SDK is the agent.
Wire payload
Same shape, three syntaxesThe wire protocol is plain HTTP, plain JSON, HMAC-SHA256. The TypeScript tab uses the SDK; the cURL tab is the raw HTTP equivalent; the Python tab shows the preview SDK shape.
import { createCuittyClient } from "@cuitty/sdk";
import { performancePlugin } from "@cuitty/sdk/plugins/performance";
const cuitty = createCuittyClient({
portalUrl: "https://app.cuitty.com",
projectId: process.env.CUITTY_PROJECT_ID!,
apiKey: process.env.CUITTY_API_KEY!,
});
cuitty.use(performancePlugin());
cuitty.start();
cuitty.use(performancePlugin({
intervalMs: 10_000,
labels: { service: "api", region: "us-east-1" },
collect: { memory: true, cpu: true, eventLoop: true, gc: true, system: true },
}));
Drop-in plugin
import { performancePlugin } from "@cuitty/sdk/plugins/performance";
cuitty.use(performancePlugin({
intervalMs: 10_000,
labels: { service: "api" },
}));Database schema
Excerpt from observe/modules/performance/schema.sql.
One libSQL file per module — back it up with cp.
CREATE TABLE IF NOT EXISTS perf_snapshots (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id TEXT NOT NULL,
timestamp INTEGER NOT NULL,
labels TEXT,
mem_rss INTEGER,
mem_heap_used INTEGER,
cpu_percent_user REAL,
cpu_percent_system REAL,
el_utilization REAL,
el_delay_p50_ms REAL,
el_delay_p99_ms REAL,
gc_major_count INTEGER,
gc_minor_count INTEGER,
sys_load_1m REAL
);Related modules
Logs
Log aggregation and analysis from multiple sources (SSH, Docker, Kubernetes, HTTP).
Distributed Traces
Distributed tracing viewer for OpenTelemetry spans, service maps, and request waterfalls.
Error Aggregation
Fingerprint, deduplicate, and triage exceptions with stack traces and release context.