mirror of
https://github.com/mailscope/kumomta.git
synced 2026-09-04 18:08:16 +00:00
206 lines
10 KiB
Markdown
206 lines
10 KiB
Markdown
# `GET /metrics`
|
||
|
||
Exports various counters, gauges and other metrics using the [Prometheus Text
|
||
Exposition
|
||
Format](https://prometheus.io/docs/instrumenting/exposition_formats/).
|
||
|
||
Access to this endpoint requires *Trusted IP* authentication. HTTP
|
||
authentication is not permitted.
|
||
|
||
See also [metrics.json](metrics.json.md).
|
||
|
||
{{since('2024.06.10-84e84b89', indent=True)}}
|
||
You may specify an optional `prefix` GET parameter to have
|
||
the reported metric names be prefixed with a string. For example,
|
||
you might use `http://localhost:8000/metrics?prefix=kumomta_`.
|
||
This can be helpful when it comes to matching or discovering
|
||
kumomta specific metrics, especially in a busy prometheus
|
||
instance.
|
||
|
||
## Example data
|
||
|
||
Here's an example of the shape of the data. The precise set of counters
|
||
will vary as we continue to enhance KumoMTA.
|
||
|
||
There are currently more than 100 available metrics.
|
||
You can see the current list by querying the endpoint with no arguments:
|
||
|
||
```bash
|
||
curl http://localhost:8000/metrics
|
||
```
|
||
|
||
|
||
```txt
|
||
# HELP connection_count number of active connections
|
||
# TYPE connection_count gauge
|
||
connection_count{service="esmtp_listener"} 0
|
||
# HELP disk_free_bytes number of available bytes in a monitored location
|
||
# TYPE disk_free_bytes gauge
|
||
disk_free_bytes{name="data spool"} 15658725376
|
||
disk_free_bytes{name="log dir /var/log/kumomta"} 15658725376
|
||
disk_free_bytes{name="meta spool"} 15658725376
|
||
# HELP disk_free_inodes number of available inodes in a monitored location
|
||
# TYPE disk_free_inodes gauge
|
||
disk_free_inodes{name="data spool"} 3056405
|
||
disk_free_inodes{name="log dir /var/log/kumomta"} 3056405
|
||
disk_free_inodes{name="meta spool"} 3056405
|
||
# HELP disk_free_inodes_percent percentage of available inodes in a monitored location
|
||
# TYPE disk_free_inodes_percent gauge
|
||
disk_free_inodes_percent{name="data spool"} 94
|
||
disk_free_inodes_percent{name="log dir /var/log/kumomta"} 94
|
||
disk_free_inodes_percent{name="meta spool"} 94
|
||
# HELP disk_free_percent percentage of available bytes in a monitored location
|
||
# TYPE disk_free_percent gauge
|
||
disk_free_percent{name="data spool"} 60
|
||
disk_free_percent{name="log dir /var/log/kumomta"} 60
|
||
disk_free_percent{name="meta spool"} 60
|
||
# HELP log_submit_latency latency of log event submission operations
|
||
# TYPE log_submit_latency histogram
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.005"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.01"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.025"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.05"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.1"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.25"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="0.5"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="1"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="2.5"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="5"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="10"} 0
|
||
log_submit_latency_bucket{logger="dir-/var/log/kumomta",le="+Inf"} 0
|
||
log_submit_latency_sum{logger="dir-/var/log/kumomta"} 0
|
||
log_submit_latency_count{logger="dir-/var/log/kumomta"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.005"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.01"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.025"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.05"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.1"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.25"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="0.5"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="1"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="2.5"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="5"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="10"} 0
|
||
log_submit_latency_bucket{logger="hook-http://127.0.0.1:8008.tsa.kumomta",le="+Inf"} 0
|
||
log_submit_latency_sum{logger="hook-http://127.0.0.1:8008.tsa.kumomta"} 0
|
||
log_submit_latency_count{logger="hook-http://127.0.0.1:8008.tsa.kumomta"} 0
|
||
# HELP lua_count the number of lua contexts currently alive
|
||
# TYPE lua_count gauge
|
||
lua_count 1
|
||
# HELP lua_event_latency how long a given lua event callback took
|
||
# TYPE lua_event_latency histogram
|
||
lua_event_latency_bucket{event="context-creation",le="0.005"} 0
|
||
lua_event_latency_bucket{event="context-creation",le="0.01"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="0.025"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="0.05"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="0.1"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="0.25"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="0.5"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="1"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="2.5"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="5"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="10"} 3
|
||
lua_event_latency_bucket{event="context-creation",le="+Inf"} 3
|
||
lua_event_latency_sum{event="context-creation"} 0.017253747
|
||
lua_event_latency_count{event="context-creation"} 3
|
||
lua_event_latency_bucket{event="init",le="0.005"} 0
|
||
lua_event_latency_bucket{event="init",le="0.01"} 0
|
||
lua_event_latency_bucket{event="init",le="0.025"} 0
|
||
lua_event_latency_bucket{event="init",le="0.05"} 0
|
||
lua_event_latency_bucket{event="init",le="0.1"} 0
|
||
lua_event_latency_bucket{event="init",le="0.25"} 0
|
||
lua_event_latency_bucket{event="init",le="0.5"} 1
|
||
lua_event_latency_bucket{event="init",le="1"} 1
|
||
lua_event_latency_bucket{event="init",le="2.5"} 1
|
||
lua_event_latency_bucket{event="init",le="5"} 1
|
||
lua_event_latency_bucket{event="init",le="10"} 1
|
||
lua_event_latency_bucket{event="init",le="+Inf"} 1
|
||
lua_event_latency_sum{event="init"} 0.442427973
|
||
lua_event_latency_count{event="init"} 1
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.005"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.01"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.025"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.05"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.1"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.25"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="0.5"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="1"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="2.5"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="5"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="10"} 0
|
||
lua_event_latency_bucket{event="kumo.tsa.suspension.subscriber",le="+Inf"} 0
|
||
lua_event_latency_sum{event="kumo.tsa.suspension.subscriber"} 0
|
||
lua_event_latency_count{event="kumo.tsa.suspension.subscriber"} 0
|
||
# HELP lua_load_count how many times the policy lua script has been loaded into a new context
|
||
# TYPE lua_load_count counter
|
||
lua_load_count 3
|
||
# HELP lua_spare_count the number of lua contexts available for reuse in the pool
|
||
# TYPE lua_spare_count gauge
|
||
lua_spare_count 0
|
||
# HELP memory_limit soft memory limit measured in bytes
|
||
# TYPE memory_limit gauge
|
||
memory_limit 1538067456
|
||
# HELP memory_usage number of bytes of used memory
|
||
# TYPE memory_usage gauge
|
||
memory_usage 320516096
|
||
# HELP thread_pool_parked number of parked(idle) threads in a thread pool
|
||
# TYPE thread_pool_parked gauge
|
||
thread_pool_parked{pool="localset"} 0
|
||
thread_pool_parked{pool="logging"} 1
|
||
# HELP thread_pool_size number of threads in a thread pool
|
||
# TYPE thread_pool_size gauge
|
||
thread_pool_size{pool="localset"} 1
|
||
thread_pool_size{pool="logging"} 1
|
||
# HELP tokio_budget_forced_yield_count Returns the number of times that tasks have been forced to yield back to the scheduler after exhausting their task budgets.
|
||
# TYPE tokio_budget_forced_yield_count counter
|
||
tokio_budget_forced_yield_count 0
|
||
# HELP tokio_elapsed Total amount of time elapsed since observing runtime metrics.
|
||
# TYPE tokio_elapsed counter
|
||
tokio_elapsed 1057.312763632
|
||
# HELP tokio_injection_queue_depth The number of tasks currently scheduled in the runtime’s injection queue.
|
||
# TYPE tokio_injection_queue_depth gauge
|
||
tokio_injection_queue_depth 0
|
||
# HELP tokio_io_driver_ready_count Returns the number of ready events processed by the runtime’s I/O driver.
|
||
# TYPE tokio_io_driver_ready_count counter
|
||
tokio_io_driver_ready_count 0
|
||
# HELP tokio_num_remote_schedules The number of tasks scheduled from outside of the runtime.
|
||
# TYPE tokio_num_remote_schedules counter
|
||
tokio_num_remote_schedules 0
|
||
# HELP tokio_total_busy_duration The amount of time worker threads were busy.
|
||
# TYPE tokio_total_busy_duration counter
|
||
tokio_total_busy_duration 0
|
||
# HELP tokio_total_local_queue_depth The total number of tasks currently scheduled in workers’ local queues.
|
||
# TYPE tokio_total_local_queue_depth gauge
|
||
tokio_total_local_queue_depth 0
|
||
# HELP tokio_total_local_schedule_count The number of tasks scheduled from worker threads.
|
||
# TYPE tokio_total_local_schedule_count counter
|
||
tokio_total_local_schedule_count 0
|
||
# HELP tokio_total_noop_count The number of times worker threads unparked but performed no work before parking again.
|
||
# TYPE tokio_total_noop_count counter
|
||
tokio_total_noop_count 0
|
||
# HELP tokio_total_overflow_count The number of times worker threads saturated their local queues.
|
||
# TYPE tokio_total_overflow_count counter
|
||
tokio_total_overflow_count 0
|
||
# HELP tokio_total_park_count The number of times worker threads parked.
|
||
# TYPE tokio_total_park_count counter
|
||
tokio_total_park_count 0
|
||
# HELP tokio_total_polls_count The number of tasks that have been polled across all worker threads.
|
||
# TYPE tokio_total_polls_count counter
|
||
tokio_total_polls_count 0
|
||
# HELP tokio_total_steal_count The number of tasks worker threads stole from another worker thread.
|
||
# TYPE tokio_total_steal_count counter
|
||
tokio_total_steal_count 0
|
||
# HELP tokio_total_steal_operations The number of times worker threads stole tasks from another worker thread.
|
||
# TYPE tokio_total_steal_operations counter
|
||
tokio_total_steal_operations 0
|
||
# HELP tokio_workers_count The number of worker threads used by the runtime.
|
||
# TYPE tokio_workers_count gauge
|
||
tokio_workers_count 1
|
||
# HELP total_connections_denied total number of connections rejected due to load shedding or concurrency limits
|
||
# TYPE total_connections_denied counter
|
||
total_connections_denied{service="esmtp_listener"} 0
|
||
|
||
```
|
||
|
||
|