grafana/mimir

helm: expose debug endpoints on nginx

Open

#6,025 opened on Sep 14, 2023

View on GitHub
 (2 comments) (2 reactions) (0 assignees)Go (808 forks)auto 404
good first issuehelm

Repository metrics

Stars
 (5,181 stars)
PR merge metrics
 (PR metrics pending)

Description

The bundled nginx that comes in the helm chart doesn't expose all debug endpoints, only some. As such operators have to port-forward to a specific pod and open their browser. This can create confusion because the operator needs to know which pod to port-forward to and can be inconvenient.

For reference these are the currently exposed endpoints

endpoint component done
GET /distributor/all_user_stats distributor
GET /distributor/ring distributor
GET /distributor/ha_tracker distributor
GET /multitenant_alertmanager/status alertmanager

I propose to expose these endpoints in addition to the 4 above

endpoint component done in
GET /memberlist query-frontend (doesn't matter)
GET /config query-frontend (doesn't matter)
GET /runtime_config query-frontend (doesn't matter)
GET /api/v1/user_limits query-frontend
GET /ruler/rule_groups ruler
GET /multitenant_alertmanager/configs alertmanager https://github.com/grafana/mimir/pull/8248
GET /multitenant_alertmanager/ring alertmanager
GET /store-gateway/ring store-gateway
GET /store-gateway/tenants store-gateway
GET /store-gateway/tenant/{tenant}/blocks store-gateway
GET /compactor/ring compactor
GET /overrides-exporter/ring overrides-exporter
GET /ingester/ring ingester
GET /ingester/tsdb_metrics ingester

and we probably don't want to expose

/compactor/delete_tenant, /compactor/delete_tenant_status, /ingester/flush, /ingester/shutdown, and /ingester/prepare-shutdown

Mimir's HTTP API reference

These endpoints should be exposed on the nginx, gateway nginx, and the root-level ingress

Contributor guide