Route Templates
Collapses dynamic path segments in the Prometheus route label into stable templates, so high-variety URLs share one series instead of widening cardinality
Versions marked “overview” do not contain this page. Selecting one opens that version’s documentation overview.
Category: Practical
Task: Collapses dynamic path segments in the Prometheus route label into stable templates, so high-variety URLs share one series instead of widening cardinality
Prerequisites: The product runtime and any backend services referenced by this configuration.
This configuration comes from the selected release. The example has not been run here; external services are not bundled.
Download the source file.
# Route Label Templating
#
# Collapses dynamic path segments in the Prometheus route label into stable
# templates, so high-variety URLs share one series instead of widening
# cardinality. More precise than a prefix route, still bounded. Scraped via
# the metrics listener.
#
# Usage:
# cargo run -p praxis-proxy -- -c examples/configs/observability/route-templates.yaml
#
# Exercise:
# curl -s http://localhost:8080/users/42/orders
# curl -s http://localhost:8080/users/99/orders
# curl -s http://localhost:9902/metrics | grep 'route="/users'
admin:
metrics_address: "127.0.0.1:9902"
metrics:
route_templates:
- "/users/{id}"
- "/users/{id}/orders"
insecure_options:
allow_private_endpoints: true
listeners:
- name: web
address: "127.0.0.1:8080"
filter_chains:
- routing
filter_chains:
- name: routing
filters:
- filter: router
routes:
- path_prefix: "/"
cluster: backend
- filter: load_balancer
clusters:
- name: backend
endpoints:
- "127.0.0.1:3000"