Prometheus
Summary
Prometheus is a monitoring and analytics platform that allows customers to analyze, visualize, automate, and alert on metrics data. You can use Prometheus to drive insights into values such as:
- SLOs
Setup
In order to connect Cortex to your Prometheus instance, you’ll need to add the URL for your Prometheus server and basic authentication if it is configured under Settings → Prometheus. Each Prometheus instance can also optionally include a tenant id to monitor a specific tenant of a multiple tenant setup.
Multi Account Support
Prometheus has multi account support meaning that you can configure any amount of Prometheus instances to retrieve data from. Each Prometheus instance will require an alias which is a name that we use to correlate the instance you want to use with the SLO registrations for various services. There is also a default configuration used by SLO registrations without an alias listed. You can edit aliases and the default configuration under Settings → Prometheus.
If you do not see the Settings page you're looking for in the sidebar, you likely don't have the proper permissions and need to contact your admin.
Service Registration
Service Descriptor
You can create and manage SLOs by listing relevant SLIs through queries.
x-cortex-slos:
prometheus:
- errorQuery: sum(rate(http_server_requests_seconds_count{status=~"(5..|429)"}[5m]))
totalQuery: sum(rate(http_server_requests_seconds_count[5m]))
slo: 99.95
alias: my-prometheus-instance # alias is optional and only relevant if you have opted into multi account support
name: my-slo-name
Field | Description |
---|---|
errorQuery | Query that indicates error events for your metric. |
totalQuery | Query that indicates all events to be considered for your metric. |
slo | Target number for SLO. |
alias | Ties the SLO registration to a Prometheus instance listed under Settings → Prometheus. The alias parameter is optional, but if not provided the SLO will use the default configuration under Settings → Prometheus. |
name | The SLO's name in Prometheus. The name parameter is optional. |