Prometheus
- is an open-source, monitoring and alerting framework
- it “pulls” metrics (measurements) from microservices by sending HTTP requests and stores the results in a time-series database
Prometheus - Components
- provides client libraries to instrument services. This will enable you to create and collect custom metrics from your services
- has exporters that let you pull metrics that are not in Prometheus format. An exporter acts as a middleman and transforms exported data into Prometheus readable format
- provides a powerful query language, PromQL, to work with this collected data
- has a GUI that lets you visualize the collected metrics easily. It also integrates with other advanced visualization tools like Grafana

Prometheus - Metric Types
Prometheus offers four core metric types:
- counter - represents a single monotonically increasing counter. Its value can increase or reset to zero on restart. You can use it to represent metrics like the number of requests served.
- gauge - represents a numerical value that can go up or down. You can use it to represent values like memory usage or the number of requests per second.
- histogram - samples data into configurable buckets. Use it to represent values like request durations or response sizes.
- summary - similar to a histogram, it also calculates configurable values over a sliding time window