Prometheus
Prometheus it’s a service for metrics collection, it’s scrapes sources configured statically in configuration files or dynamically through service discovery systems like kubernetes and stores data in a time series format
The scrape operations happens using http as communication protocol and data are formatted with open telemetry (otel)
Prometheus federation
Prometheus allow to pull data from other prometheus istances using the /federation API endpoint, this allows prometheus to be deployed in federated environments:
Prometheus Federation can be configured in 2 ways:
- Hierarchical Federation prometheus servers are configured in a tree structure
- Cross service federation prometheus servers is configured to monitor a prometheus server of another service layer
---
title: Hierarchical federation
---
flowchart TD
subgraph Site1
A@{shape: rect, label: infrastructure1}
B@{shape: rect, label: infrastructure2}
C@{shape: rect, label: infrastructure site1}
end
subgraph Site2
F@{shape: rect, label: infrastructure site2}
G@{shape: rect, label: infrastructure1}
H@{shape: rect, label: infrastructure2}
end
E@{shape: rect, label: global infrastructure}
C --> A & B
F --> G & H
E --> F & C
---
title: Cross service federation
---
flowchart TD
subgraph service_level
direction LR
A@{shape: rect, label: prometheus}
B@{shape: rect, label: service1}
C@{shape: rect, label: service2}
end
subgraph infrastructure_level
D@{shape: rect, label: prometheus}
end
infrastructure_level ~~~ service_level
D --> A