Node.js metrics installation
Note: Metrics is in alpha. Setup details may change before general availability.
The posthog-node SDK includes the posthog.metrics API, so you can record metrics with the same client you use for events and feature flags.
- 1
Install posthog-node
RequiredTerminalMetrics requires an up-to-date SDK version, so upgrade if you're on an older release.
- 2
Initialize the client
RequiredSet a service name so metrics from different systems stay easy to tell apart. It's attached to every series and used by the Metrics UI for filtering.
JavaScriptUse your project token (the same one you use for capturing events), not a personal API key.
- 3
Record metrics
RequiredUse the metric type that matches what you're measuring:
JavaScriptSamples aggregate in memory and flush as one OTLP data point per series every few seconds, so recording in hot paths is cheap. A burst of 10k
count()calls costs one data point on the wire.Keep attribute values small and bounded:
route,status, andplanare good attributes; user IDs, session IDs, and request IDs are not. Every unique combination creates a new series. - 4
Instrument alongside existing metrics
OptionalIf your service already records metrics with Prometheus, StatsD, or another system, don't rip it out. Add the PostHog call next to the existing one, reusing the same metric name and attributes, so both systems chart the same series while you evaluate.
- 5
Flush before exit
RequiredFor short-lived processes (cron jobs, CLIs, serverless functions), flush before exiting so the last aggregation window isn't lost:
JavaScript - 6
Next steps
CheckpointWhat you can do with your metricsAction Description Why you need metrics What metrics show you that events and logs don't Getting started guide Pick the right metric type, add attributes carefully, and chart what matters Group and filter Group by an attribute for one line per value, or filter with key=valuechipsHow metrics works How metrics are ingested, stored, and queried Query with SQL Every metric lands in the posthog.metricstable, queryable from the SQL tab