Prometheus
- Canonical Observability
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 210 | 19 Nov 2024 | |
latest/candidate | 216 | 03 Dec 2024 | |
latest/beta | 221 | 03 Dec 2024 | |
latest/edge | 226 | 19 Dec 2024 | |
1.0/stable | 159 | 16 Feb 2024 | |
1.0/candidate | 159 | 12 Dec 2023 | |
1.0/beta | 159 | 12 Dec 2023 | |
1.0/edge | 159 | 12 Dec 2023 |
juju deploy prometheus-k8s --channel 1.0/edge
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
Mimir provides a scalable and long-term storage solution for metrics, making it a suitable alternative for Prometheus. This How-to will highlight validation steps to provide confidence to the operator that the migration from Prometheus to Mimir is successful without data loss.
Deploy Mimir
Deploy Mimir alongside Prometheus. Then relate Mimir to all the same applications and endpoints that Prometheus has.
Validation
Now we can validate whether Mimir is receiving the same data as Prometheus.
These validations are not exhaustive. More validations can be added to boost migration confidence
Validate metric name outputs
juju ssh prometheus/0 curl -g 'http://localhost:9090/api/v1/label/__name__/values' | jq -r ".data[]" | sort -u > prom-metric.txt
juju ssh mimir/0 curl -g 'http://localhost:8080/prometheus/api/v1/label/__name__/values' | jq -r ".data[]" | sort -u > mimir-metric-names.txt
Confirm that the same metrics in Prometheus are in Mimir by inspecting diff:
diff -y prom-metrics.txt mimir-metrics.txt
Other validations
Validation | Prometheus | Mimir |
---|---|---|
labels | api/v1/labels | /prometheus/api/v1/labels |
app names | api/v1/label/juju_application/values | prometheus/api/v1/label/juju_application/values |
alerts | api/v1/rules | prometheus/api/v1/rules |
For alerts, the API response will result in a large JSON output and we can modify the jq to jq -r ".data[][].name"
to aggregate the alert names for validation.
Remove Prometheus
Once the validations are complete, check the config value for metrics_retention_time
with the command:
juju config prometheus metrics_retention_time
This is how long samples are retained in the storage (Units Supported: y, w, d, h, m, s). Before deleting Prometheus, this much time must pass prior to removing the Prometheus application to ensure that no data is lost.
Once Prometheus is removed, you are done and you can enjoy a modernized deployment.