--- title: Prometheus — Monitoring date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: Pull-based metric collection, time-series storage, and alerting (CPU, memory, application metrics). Often used with Grafana. tags: program, Monitoring, prometheus --- 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/) — https://prometheus.io/ - [Official Documentation / Knowledge Base](https://prometheus.io/docs/) — https://prometheus.io/docs/ - [Official Download](https://prometheus.io/download/) — https://prometheus.io/download/ - [Release Notes](https://github.com/prometheus/prometheus/releases) — https://github.com/prometheus/prometheus/releases - [Source / Development Resources](https://github.com/prometheus/prometheus) — 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](https://games.aidebatehub.com/assets/prometheus-demo.png) 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.