Prometheus — Monitoring
It is a CNCF-standard monitoring system that collects server and application metrics, stores them as time series, and sends alerts.
Basic Information
| Program Name | Prometheus |
|---|---|
| One-line Introduction | It is a CNCF-standard monitoring system that collects server and application metrics, stores them as time series, and sends alerts. |
| Development / Maintenance | CNCF / Prometheus Authors |
| Official Website | https://prometheus.io/ |
| Official Documentation | https://prometheus.io/docs/ |
| Official Download | https://prometheus.io/download/ |
| Supported Operating Systems | Linux, macOS, Windows, FreeBSD, etc. (single binary) |
| License | Apache-2.0 |
| Stable Version | 3.15.0 (released 2026-09-25) — confirmed 2026-10-18 |
| GitHub Repository | https://github.com/prometheus/prometheus |
| Category | Monitoring (tags: monitoring, metrics, alerting, time series, CNCF) |
What Is This Program?
Prometheus is an open-source monitoring system that periodically receives numeric metrics from servers, containers, and applications and stores them in a time-series database. It collects not only system metrics such as CPU and memory, but also business metrics that apps expose directly.
As a CNCF graduated project, it has become the standard in container and Kubernetes environments. You can query it through the built-in UI, and dashboards are often used in combination with Grafana. Alerts are defined with the built-in rule language (PromQL) and sent to Alertmanager.
What Problems Does It Solve?
- In server monitoring, when you need to see CPU, disk, and process status over time, storing metrics as time series enables trend and anomaly detection.
- In incident response, when you need an alert when a threshold is exceeded, you can define alert conditions with PromQL rules to send notifications.
- In container environments, when you need to collect metrics at the pod or node level, service discovery automatically registers targets.
Key Features
Pull-based Collection
Periodically scrapes the /metrics endpoints exposed by targets
- Use Case: HTTP metric collection
- Result: Simple target registration and removal
- Limitations: Environments where pull is difficult require Pushgateway.
PromQL Queries
A native language for querying and aggregating time-series data
- Use Case: Graphs and alert rules
- Result: Label-based aggregation and rate calculation
- Limitations: PromQL has a learning curve.
Alert Rules and Alertmanager
Generates alerts based on thresholds and anomaly patterns, then groups and deduplicates them
- Use Case: Failure notifications
- Result: Delivered via chat, email, and PagerDuty
- Limitations: Too many alerts can cause notification fatigue.
Service Discovery
Automatically discovers targets through DNS, Kubernetes, Consul, etc.
- Use Case: Dynamic environments
- Result: Manage targets without manual registration
- Limitations: Discovery configuration errors can lead to missed collections.
Installation and Execution
Linux (Binary)
Download the appropriate architecture binary from the official download page and run it.
wget https://github.com/prometheus/prometheus/releases/download/v3.15.0/prometheus-3.15.0.linux-amd64.tar.gz
tar xvf prometheus-3.15.0.linux-amd64.tar.gz
cd prometheus-3.15.0.linux-amd64
./prometheus --config.file=prometheus.yml
Linux (systemd)
After installation, keep it running using a service unit file.
sudo useradd --no-create-home --shell /bin/false prometheus
sudo cp prometheus /usr/local/bin/
sudo cp prometheus.yml /etc/prometheus/
# After creating /etc/systemd/system/prometheus.service
sudo systemctl enable --now prometheus
Docker
Run it quickly with the official image.
docker run -d -p 9090:9090 \
-v ./prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
Real-World Usage Examples
Node Metric Collection
Install node_exporter and register it as a target in prometheus.yml.
$ ./node_exporter &
# prometheus.yml
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
PromQL Queries
Query metrics with PromQL in the UI (localhost:9090).
node_cpu_seconds_total{mode="idle"}
100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
Defining Alert Rules
Define alert rules in a file and apply them with reload.
groups:
- name: alerts
rules:
- alert: HighCpu
expr: 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m]))*100) > 85
for: 5m
Advantages and Limitations
Advantages
- Free and open source (Apache-2.0); easy to deploy as a single binary
- Pull model and service discovery make it well suited for container environments
- PromQL and alert rule language enable flexible queries and notifications
- Integrates very well with visualization tools such as Grafana
Considerations Before Use
- Long-term, large-scale time series may require integration with Thanos, Cortex, etc. due to local storage limitations.
- Because of the pull model, targets behind NAT or firewalls may require workarounds such as Pushgateway.
- Writing PromQL and alert rules requires learning.
Comparing Similar Programs
| Program | Characteristics | Suitable When |
|---|---|---|
| Grafana | Dashboard and visualization specialist (uses Prometheus as a data source) | Metric visualization and sharing |
| Zabbix | Agent-based comprehensive monitoring | Environments focused on event and configuration management |
| Datadog | Commercial SaaS monitoring | When you need commercial features without deployment burden |
Official Resources and Further Learning
- Official Website — https://prometheus.io/
- Official Documentation / Knowledge Base — https://prometheus.io/docs/
- Official Download — https://prometheus.io/download/
- Release Notes — https://github.com/prometheus/prometheus/releases
- Source / Development Resources — https://github.com/prometheus/prometheus
Version and supported environment information is based on the official site as of 2026-10-18. Installation commands may vary depending on your distribution and version, so please also check the official installation documentation.
Actual Execution Screenshot
The screenshot below is a synthetic example created to help understand the usage flow (not an actual execution result). The screenshot is a synthetic example and not an actual execution result.
!Prometheus example: server startup log, health check
Servers in actual operation
Source (HTML): https://games.aidebatehub.com/programs/apps/monitoring/prometheus.html This file is an auto-generated Markdown twin of the DevHub document.
AI Knowledge Hub
Visitor Comments