Learn
Metrics

Metrics

Metrics are time-series measurements that track your application's health and behaviour over time. They arrive over OTLP/HTTP like every other signal, from three places: the OpenTelemetry SDK in your application, a host agent or Kubernetes collector scraping the machine, and any instrumentation library that ships metrics of its own. Which metrics appear automatically depends entirely on which OpenTelemetry instrumentation you enable; TracePath stores whatever you export.

Metric Structure

Each metric point contains:

FieldDescription
NameDot-separated identifier (e.g. cpu.used_pcnt)
ValueNumeric measurement (float64)
TagsKey-value metadata (e.g. server_name: "web-1")
TimestampWhen the measurement was taken

Automatic vs Custom Metrics

Automatic metrics are collected without any code changes. With OpenTelemetry the set depends on your SDK and instrumentation libraries: the Go OTel runtime instrumentation provides goroutine and memory metrics, the Node.js OTel runtime instrumentation provides event loop and heap metrics. For host-level CPU, memory, disk and network, run an OpenTelemetry host agent.

Custom metrics are recorded in your application code with an OTel meter (createCounter, createHistogram, createObservableGauge). Use these for business metrics (orders per minute), resource metrics (queue depth), or performance metrics (external API latency).

See OTel Metrics for the mapping and per-language examples, and the Node.js metrics guide for a full worked setup.

Tags

Tags are key-value pairs attached to individual metric points. They enable filtering and grouping in the dashboard.

Common tags include:

TagExample ValuesUse Case
server_nameweb-1, web-2Compare metrics across servers
regionus-east-1, eu-westRegional breakdowns
queue_nameemails, paymentsPer-queue monitoring
environmentproduction, stagingEnvironment comparison

Tags come from the data-point attributes you pass when recording a value, plus the small allowlist of resource attributes TracePath lifts. See Resource Attributes.

Visualizing Metrics

Server metrics also drive the Servers page of the Organization Overview, which reads system.cpu.utilization, system.memory.utilization, system.filesystem.utilization and system.network.io per server_name.

Metrics are visualized on Dashboards: organization-owned, JSON-defined tabs of chart widgets that you can apply to any of your projects, install from the built-in template marketplace (host metrics, Go runtime, TracePath self-monitoring), or import from Grafana.

Dashboards page

Time Range

The dashboard supports preset time ranges (5m, 15m, 30m, 1h, 3h, 6h, 12h, 24h, 3d, 7d, 1M, 3M) and custom date/time ranges.

The backend automatically selects the optimal storage resolution based on the selected range:

RangeResolution
Up to 3 hoursRaw data points
3h to 24h1-minute aggregates
24h to 7 days1-hour aggregates
Over 7 days1-day aggregates

This keeps queries fast regardless of the time window.

Creating Your First Dashboard

  1. Open the Dashboards page and press ⌘K (or click Add or find dashboards...) to install a template, pick up a dashboard from another project, or create a blank one
  2. Add a widget: Click Add Metric Widget, pick a metric from the dropdown, choose an aggregation, and optionally add tag filters or a group-by
  3. Adjust the time range: Use the preset buttons or select a custom range to see the data window you need
  4. Interact: Hover over data points for exact values, drag-select a region to zoom in, and use the widget menu to move, edit, or delete widgets

See Dashboards for applying dashboards across projects, editing them as JSON, and importing from Grafana.

Host-level metrics

To collect host-level metrics (CPU, memory, disk, network, filesystem, processes) from a server and ship them to a TracePath project with a one-line install, see the OTel Agent.