Metrics & Telemetry
Record application metrics using counters, gauges, and histograms.
Loading
local metrics = require("metrics")
Counters
Increment Counter
metrics.counter_inc("requests_total", {method = "POST"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Add to Counter
metrics.counter_add("bytes_total", 1024, {direction = "out"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
value |
number | Value to add |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Gauges
Set Gauge
metrics.gauge_set("queue_depth", 42, {queue = "emails"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
value |
number | Current value |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Increment Gauge
metrics.gauge_inc("connections", {pool = "db"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Decrement Gauge
metrics.gauge_dec("connections", {pool = "db"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Histograms
Record Observation
metrics.histogram("duration_seconds", 0.123, {method = "GET"})
| Parameter | Type | Description |
|---|---|---|
name |
string | Metric name |
value |
number | Observed value |
labels |
table? | Label key-value pairs |
Returns: boolean, error
Errors
| Condition | Kind | Retryable |
|---|---|---|
| Collector not available | errors.INTERNAL |
no |
See Error Handling for working with errors.