Prometheus Visit prometheus.io for the full documentation, examples and guides. [ ][quay] [ ][hub] Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects…
Prometheus
Visit prometheus.io for the full documentation,
examples and guides.

![Docker Repository on Quay][quay]
![Docker Pulls][hub]




https://clomonitor.io/api/projects/cncf/prometheus/badge" rel="noopener nofollow" target="_blank">

Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics
from configured targets at given intervals, evaluates rule expressions,
displays the results, and can trigger alerts when specified conditions are observed.
The features that distinguish Prometheus from other metrics and monitoring systems are:
- A multi-dimensional data model (time series defined by metric name and set of key/value dimensions)
- PromQL, a powerful and flexible query language to leverage this dimensionality
- No dependency on distributed storage; single server nodes are autonomous
- An HTTP pull model for time series collection
- Pushing time series is supported via an intermediary gateway for batch jobs
- Targets are discovered via service discovery or static configuration
- Multiple modes of graphing and dashboarding support
- Support for hierarchical and horizontal federation
Architecture overview

Install
There are various ways to install Prometheus.
Precompiled binaries
Precompiled binaries for released versions are available in the
*download* section
on prometheus.io. Using the latest production release binary
is the recommended way to install Prometheus.
See the Installing
chapter in the documentation for all the details.
Docker images
Docker images are available on Quay.io or Docker Hub.
You can launch a Prometheus container for trying it out with
bash
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
Prometheus will now be reachable at .
Building from source
To build Prometheus from source code, you need:
- Go: Version specified in [go.mod](./go.mod) or greater.
- NodeJS: Version specified in [.nvmrc](./web/ui/.nvmrc) or greater.
- npm: Version 10 or greater (check with
npm --versionand here).
bash
git clone https://github.com/prometheus/prometheus.git
cd prometheus
You can use the go tool to build and install the prometheus
and promtool binaries into your GOPATH:
bash
go install github.com/prometheus/prometheus/cmd/...
prometheus --config.file=your_config.yml
*However*, when using go install to build Prometheus, Prometheus will expect to be able to
read its web assets from local filesystem directories under web/ui/static. In order for
these assets to be found, you will have to run Prometheus from the root of the cloned
repository. Note also that this directory does not include the React UI unless it has been
built explicitly using make assets or make build.
An example of the above configuration file can be found here.
You can also build using make build, which will compile in the web assets so that
Prometheus can be run from anywhere:
bash
make build
./prometheus --config.file=your_config.yml
The Makefile provides several targets:
- *build*: build the
prometheusandpromtoolbinaries (includes building and compiling in web assets) - *test*: run the tests
- *test-short*: run the short tests
- *format*: format the source code
- *vet*: check the source code for common errors
- *assets*: build the React UI
Service discovery plugins
Prometheus is bundled with many service discovery plugins. You can customize
which service discoveries are included in your build using Go build tags.
To exclude service discoveries when building with make build, add the desired
tags to the .promu.yml file under build.tags.all:
yaml
build:
tags:
all:
- netgo
- builtinassets
- remove_all_sd # Exclude all optional SDs
- enable_kubernetes_sd # Re-enable only kubernetes
Then run make build as usual. Alternatively, when using go build directly:
bash
go build -tags "remove_all_sd,enable_kubernetes_sd" ./cmd/prometheus
Available build tags:
remove_all_sd- Exclude all optional service discoveries (keeps file_sd, static_sd, and http_sd)enable__sd- Re-enable a specific SD when usingremove_all_sd
If you add out-of-tree plugins, which we do not endorse at the moment,
additional steps might be needed to adjust the
go.mod and go.sum files. Asalways, be extra careful when loading third party code.
Building the Docker image
You can build a docker image locally with the following commands:
bash
make promu
promu crossbuild -p linux/amd64
make npm_licenses
make common-docker-amd64
The make docker target is intended only for use in our CI system and will not
produce a fully working image when run locally.
Using Prometheus as a Go Library
Within the Prometheus project, repositories such as prometheus/common and
prometheus/client-golang are designed as re-usable libraries.
The prometheus/prometheus repository builds a stand-alone program and is not
designed for use as a library. We are aware that people do use parts as such,
and we do not put any deliberate inconvenience in the way, but we want you to be
aware that no care has been taken to make it work well as a library. For instance,
you may encounter errors that only surface when used as a library.
Remote Write
We are publishing our Remote Write protobuf independently at
buf.build.
You can use that as a library:
shell
go get buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
This is experimental.
Prometheus code base
In order to comply with go mod rules,
Prometheus release number do not exactly match Go module releases.
For the
Prometheus v3.y.z releases, we are publishing equivalent v0.3y.z tags. The y in v0.3y.z is always padded to two digits, with a leading zero if needed.
Therefore, a user that would want to use Prometheus v3.0.0 as a library could do:
shell
go get github.com/prometheus/[email protected]
For the
Prometheus v2.y.z releases, we published the equivalent v0.y.z tags.
Therefore, a user that would want to use Prometheus v2.35.0 as a library could do:
shell
go get github.com/prometheus/[email protected]
This solution makes it clear that we might break our internal Go APIs between
minor user-facing releases, as breaking changes are allowed in major version
zero.
React UI Development
For more information on building, running, and developing on the React-based UI, see the React app's [README.md](web/ui/README.md).
More information
- Godoc documentation is available via pkg.go.dev. Due to peculiarities of Go Modules, v3.y.z will be displayed as v0.3y.z (the y in v0.3y.z is always padded to two digits, with a leading zero if needed), while v2.y.z will be displayed as v0.y.z.
- See the Community page for how to reach the Prometheus developers and users on various communication channels.
Contributing
Refer to CONTRIBUTING.md
License
Apache License 2.0, see LICENSE.
[hub]: https://hub.docker.com/r/prom/prometheus/
[quay]: https://quay.io/repository/prometheus/prometheus
Members
-
prometheus ★ PINNED
The Prometheus monitoring system and time series database.
Go ★ 65k 4h agoExplain → -
node_exporter ★ PINNED
Exporter for machine metrics
Go ★ 14k 1d agoExplain → -
alertmanager ★ PINNED
Prometheus Alertmanager
Go ★ 8.5k 13h agoExplain → -
client_golang
Prometheus instrumentation library for Go applications
Go ★ 6.0k 1d agoExplain → -
blackbox_exporter
Blackbox prober exporter
Go ★ 5.7k 4d agoExplain → -
client_python
Prometheus instrumentation library for Python applications
Python ★ 4.3k 18d agoExplain → -
pushgateway
Push acceptor for ephemeral and batch jobs.
Go ★ 3.3k 18d agoExplain → -
jmx_exporter
A process for collecting metrics using JMX MBeans for Prometheus consumption
Java ★ 3.3k 4d agoExplain → -
OpenMetrics
Evolving the Prometheus exposition format into a standard.
Go ★ 2.5k 16d agoExplain → -
mysqld_exporter
Exporter for MySQL server metrics
Go ★ 2.4k 1d agoExplain → -
client_java
Prometheus instrumentation library for JVM applications
Java ★ 2.3k 53m agoExplain → -
snmp_exporter
SNMP Exporter for Prometheus
Go ★ 2.1k 10h agoExplain → -
statsd_exporter
StatsD to Prometheus metrics exporter
Go ★ 981 7d agoExplain → -
cloudwatch_exporter
Metrics exporter for Amazon AWS CloudWatch
Java ★ 975 2d agoExplain → -
procfs
procfs provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc.
Go ★ 871 2d agoExplain → -
docs
Prometheus documentation: content and static site generator
TypeScript ★ 711 1d agoExplain → -
promlens
PromLens – The query builder, analyzer, and explainer for PromQL
TypeScript ★ 675 17d agoExplain → -
haproxy_exporter ▣
Simple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption
Go ★ 628 3y agoExplain → -
client_rust
Prometheus / OpenMetrics client library in Rust
Rust ★ 603 1d agoExplain → -
client_ruby
Prometheus instrumentation library for Ruby applications
Ruby ★ 558 24d agoExplain → -
consul_exporter
Exporter for Consul metrics
Go ★ 467 18d agoExplain → -
prom2json
A tool to scrape a Prometheus client and dump the result as JSON.
Go ★ 409 11d agoExplain → -
graphite_exporter
Server that accepts metrics via the Graphite protocol and exports them as Prometheus metrics
Go ★ 397 11d agoExplain → -
exporter-toolkit
Utility package to build exporters
Go ★ 309 19d agoExplain → -
common
Go libraries shared across Prometheus components and libraries.
Go ★ 296 2d agoExplain → -
influxdb_exporter
A server that accepts InfluxDB metrics via the HTTP API and exports them via HTTP for Prometheus consumption
Go ★ 288 18d agoExplain → -
promu
Prometheus Utility Tool
Go ★ 285 9d agoExplain → -
collectd_exporter
A server that accepts collectd stats via HTTP POST and exports them via HTTP for Prometheus consumption
Go ★ 267 18d agoExplain → -
memcached_exporter
Exports metrics from memcached servers for consumption by Prometheus.
Go ★ 204 18d agoExplain → -
test-infra
Prometheus E2E benchmarking tool
Go ★ 165 17d agoExplain → -
compliance
A set of tests to check compliance with various Prometheus interfaces
Go ★ 156 9d agoExplain → -
demo-site
Demo site auto-deployed with Ansible.
HTML ★ 129 24d agoExplain → -
nagios_plugins ▣
Nagios plugins for alerting on Prometheus query results
Shell ★ 101 4y agoExplain → -
client_model
Data model artifacts for Prometheus.
Makefile ★ 80 24d agoExplain → -
golang-builder
Prometheus Golang builder Docker images
Shell ★ 73 8d agoExplain → -
codemirror-promql ▣
PromQL support for the CodeMirror code editor
TypeScript ★ 40 4y agoExplain → -
busybox
Prometheus Busybox Docker base images
Makefile ★ 38 18d agoExplain → -
prometheus_api_client_ruby
A Ruby library for reading metrics stored on a Prometheus server
Ruby ★ 37 24d agoExplain → -
proposals
Design documents for Prometheus Ecosystem
Shell ★ 32 12d agoExplain → -
talks
Track Prometheus talks
★ 19 4y agoExplain → -
otlptranslator
Library to translate OTLP metric and attribute names to Prometheus metric and label names.
Go ★ 15 8d agoExplain → -
lezer-promql ▣
A lezer-based PromQL grammar
JavaScript ★ 12 4y agoExplain → -
circleci
No description.
★ 8 4mo agoExplain → -
host_exporter ▣
See the "node_exporter" repository instead!
★ 7 5y agoExplain → -
prometheus-opentelemetry-collector
[EXPERIMENTAL] A Prometheus-branded OpenTelemetry Collector distribution.
Go ★ 6 1d agoExplain → -
governance
No description.
Go ★ 6 6d agoExplain → -
sigv4
A http.RoundTripper that will sign requests using Amazon's Signature Verification V4 signing procedure
Go ★ 6 8d agoExplain → -
promci
GitHub Actions repository
★ 5 21h agoExplain → -
snmp_exporter_mibs
No description.
★ 4 4y agoExplain → -
opentelemetry-collector-bridge
[EXPERIMENTAL] An adapter between client_golang's registry and OTel Collector's Receiver Interfaces
Go ★ 2 9d agoExplain → -
kube-demo-site
Kubernetes Demo Site
Go ★ 2 4y agoExplain → -
promci-setup
Prometheus CI Setup
★ 1 20d agoExplain → -
client_java-benchmarks
No description.
★ 1 3mo agoExplain → -
client_js
[EXPERIMENTAL] Prometheus instrumentation library for JavaScript applications
★ 0 2d agoExplain → -
promci-images
GitHub Actions for handling container images.
★ 0 3mo agoExplain → -
promci-artifacts
GitHub Actions for artifact persistence between jobs
★ 0 1mo agoExplain → -
test-sd-ownership
Temporary repo for testing service discovery (SD) ownership setup
★ 0 5mo agoExplain →
No repos match these filters.