DEV Community


Posted on • Updated on

Promethues- Architecture

Image description
Prometheus gathers metrics from your applications and infrastructure. These metrics represent various aspects of your systems’ performance, such as CPU usage, memory consumption, request latency, and more. Prometheus collects these metrics over time, allowing you to understand trends, identify anomalies, and troubleshoot issues.
Key Components of Prometheus Architecture
Prometheus Server: The core component responsible for data collection, storage, querying, and alerting.
Time Series Database (TSDB): Stores time-series data efficiently, enabling fast querying and analysis of metrics.
Data Model: Defines how metrics are organized using metric names, labels, and values.
Exporters: These are tools that expose metrics from third-party systems as Prometheus metrics. Since Prometheus can only scrape metrics in its
Service Discovery: services are identified which are need to scraped.
Alert Manager: Handles alerts sent by the Prometheus server. It is responsible for deduplicating, grouping, and routing them to the correct receiver such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts.
Pushgateway: A middleware component that accepts metrics from jobs that cannot be scraped. This is typical for short-lived jobs or batch jobs that don’t expose an HTTP endpoint long enough for Prometheus to scrape. Metrics are pushed to the Pushgateway, and then Prometheus scrapes the Pushgateway to collect these metrics.
Targets: Any system or service that exposes metrics via an HTTP endpoint. This could be applications, infrastructure components, or external services.
Client Libraries: Libraries for instrumenting applications and services to expose their own metrics in a Prometheus-compatible format.
PromQL: The query language used to query and analyze metrics stored in Prometheus.
Visualization Tools: Various tools and dashboards can be used to visualize the metrics collected by Prometheus, such as Grafana.


Top comments (0)