📊Metrics

This guide assumes you're familiar with Prometheus and how to work with its metrics ecosystem. We won't provide guides on how to fetch Kubernetes metrics.
Most components of the Toucan Stack expose Prometheus-compatible metrics endpoints by default, allowing administrators to monitor system performance and health effectively.
How to enable metrics ports
Override the values of the Helm Charts with:
nginx:
metrics:
enabled: true
layout:
metrics:
enabled: true
dataset:
metrics:
enabled: true
gotenberg:
metrics:
enabled: true
spicedb:
metrics:
enabled: true
curity:
admin:
metrics:
enabled: true
runtime:
metrics:
enabled: true
vault:
server:
metrics:
enabled: true
postgresql:
metrics:
enabled: true
layout-redis:
metrics:
enabled: true
laputa-redis:
metrics:
enabled: true
impersonate-redis:
metrics:
enabled: true
minio:
metrics:
enabled: true
How to access the metrics endpoints
Here's a list of endpoints (accessible through the associated Kubernetes Service) you can use:
nginx
metrics
9113
/metrics
postgresql
http-metrics
9187
/metrics
vault (secret manager)
http
8200
/v1/sys/metrics
curity admin (auth service)
metrics
4466
/metrics
curity runtime (auth service)
metrics
4466
/metrics
dataset
http
3000
/metrics
layout
http
3000
/metrics
spicedb (authz service)
metrics
9090
/metrics
gotenberg (pdf rendering service)
http
80
/prometheus/metrics
minio (storage)
minio-api
9000
/minio/v2/metrics/cluster
/minio/v2/metrics/node
redis
http-metrics
9121
/metrics
How to consume the metrics endpoints
Using Prometheus CRDs (Prometheus Operator, Grafana Alloy)
We highly recommend using Prometheus CRDs such as those provided by Prometheus Operator or Grafana Alloy to dynamically manage scraping targets.
Even if you have an external Prometheus, you can deploy Grafana Alloy to consume the metrics and forward to your external Prometheus.
To dynamically configure scraping rules, you can set these values in the values.override.yaml
file:
nginx:
metrics:
enabled: true
serviceMonitor:
enabled: true
layout:
metrics:
enabled: true
serviceMonitor:
enabled: true
dataset:
metrics:
enabled: true
serviceMonitor:
enabled: true
gotenberg:
metrics:
enabled: true
serviceMonitor:
enabled: true
spicedb:
metrics:
enabled: true
serviceMonitor:
enabled: true
curity:
admin:
metrics:
enabled: true
serviceMonitor:
enabled: true
runtime:
metrics:
enabled: true
serviceMonitor:
enabled: true
vault:
server:
metrics:
enabled: true
serviceMonitor:
enabled: true
postgresql:
metrics:
enabled: true
serviceMonitor:
enabled: true
layout-redis:
metrics:
enabled: true
serviceMonitor:
enabled: true
laputa-redis:
metrics:
enabled: true
serviceMonitor:
enabled: true
impersonate-redis:
metrics:
enabled: true
serviceMonitor:
enabled: true
minio:
metrics:
enabled: true
serviceMonitor:
enabled: true
Which will automatically generate a ServiceMonitor
object for each component, and configure the Prometheus Operator to scrape them.
Statically
If you have deployed Prometheus in the same cluster as the Toucan Stack, you can reference the services using <service name>.<namespace>.svc.cluster.local
. In your prometheus config file, you can add the following:
scrape_configs:
- job_name: dataset
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- toucan-stack-dataset.toucan.svc.cluster.local:3000
This approach works if Prometheus is deployed in the same Kubernetes cluster. For external Prometheus instances, again consider using Grafana Alloy as a relay.
More information can be found in the Prometheus documentation.
Displaying the metrics
If you have deployed Prometheus, you can use Grafana to display the metrics. You can find dashboards on Grafana.
We are not providing any dashboards at the moment.
Last updated
Was this helpful?