← All modules
monitoring

Performance

Live

Runtime process metrics — CPU, memory, event loop, and GC for instrumented services.

event.type === "performance" modules/performance
Overview

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 syntaxes

The 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 },
}));
SDK plugin

Drop-in plugin

@cuitty/sdk/plugins/performance
import { performancePlugin } from "@cuitty/sdk/plugins/performance";

cuitty.use(performancePlugin({
  intervalMs: 10_000,
  labels: { service: "api" },
}));
Storage

Database schema

Excerpt from 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