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:1201

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?