Skip to main content

Function: createHistogram()

@arolariu/website


@arolariu/website / instrumentation.server / createHistogram

Function: createHistogram()

createHistogram(name, description?, unit?): Histogram<Attributes>

Defined in: instrumentation.server.ts:1215

Create a histogram metric instrument.

Histograms record distributions of values (e.g., latency, request size). They track count, sum, min, max, and bucketed distributions.

Parameters​

name​

MetricName

Metric name following semantic conventions (e.g., "http.server.duration")

description?​

string

Human-readable description of what the metric measures

unit?​

string

Optional unit of measurement (e.g., "ms", "bytes", "s")

Returns​

Histogram<Attributes>

Histogram instrument for recording values with type-safe attributes

Remarks​

  • Use for measurements that vary over time
  • Ideal for latency, duration, size metrics
  • Backends typically aggregate as percentiles (p50, p95, p99)
  • Include units in the name (e.g., "duration.ms", "size.bytes")
  • Values can be any non-negative number

Examples​

const durationHistogram = createHistogram(
'http.server.duration',
'HTTP request duration in milliseconds',
'ms'
);

const startTime = Date.now();
// ... handle request
const duration = Date.now() - startTime;

durationHistogram.record(duration, {
'http.method': 'POST',
'http.route': '/api/users',
'http.status_code': 201,
});
// Page load time histogram
const pageLoadHistogram = createHistogram(
'page.load.duration',
'Page load duration in milliseconds',
'ms'
);
pageLoadHistogram.record(loadTime, {
'next.render_context': 'server',
'next.page_type': 'dynamic',
});

See​

// was this page useful?