Monitoring Caddy with Netdata or with Prometheus and Grafana
How to monitor Caddy by collecting metrics with Prometheus? Simple - use the caddy's global options to enable prometheus metrics.
{
servers {
metrics
}
admin localhost:2019
}
$ curl -X GET http://localhost:2019/metrics
Admin API's HTTP endpoints.
# TYPE caddy_admin_http_requests_total counter
caddy_admin_http_requests_total{code="200",handler="admin",method="GET",path="/metrics"} 447
# HELP caddy_config_last_reload_success_timestamp_seconds Timestamp of the last successful configuration reload.
# TYPE caddy_config_last_reload_success_timestamp_seconds gauge
caddy_config_last_reload_success_timestamp_seconds 1.7403339685861294e+09
# HELP caddy_config_last_reload_successful Whether the last configuration reload attempt was successful.
# TYPE caddy_config_last_reload_successful gauge
caddy_config_last_reload_successful 1
# HELP caddy_http_request_duration_seconds Histogram of round-trip request durations.
# TYPE caddy_http_request_duration_seconds histogram
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.005"} 4891
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.01"} 5042
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.025"} 5150
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.05"} 5312
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.1"} 5511
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.25"} 5693
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="0.5"} 5812
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="1"} 5870
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="2.5"} 5925
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="5"} 5947
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="10"} 5971
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="GET",server="srv0",le="+Inf"} 6125
caddy_http_request_duration_seconds_sum{code="200",handler="subroute",method="GET",server="srv0"} 4859.046309072
caddy_http_request_duration_seconds_count{code="200",handler="subroute",method="GET",server="srv0"} 6125
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.005"} 1
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.01"} 1
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.025"} 1
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.05"} 1
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.1"} 2
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.25"} 5
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="0.5"} 14
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="1"} 16
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="2.5"} 18
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="5"} 18
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="10"} 18
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="HEAD",server="srv0",le="+Inf"} 18
caddy_http_request_duration_seconds_sum{code="200",handler="subroute",method="HEAD",server="srv0"} 8.707609485000003
caddy_http_request_duration_seconds_count{code="200",handler="subroute",method="HEAD",server="srv0"} 18
caddy_http_request_duration_seconds_bucket{code="200",handler="subroute",method="OPTIONS",server="srv0",le="0.005"} 280
...........
Voala: