Prometheus - Open Source Monitoring System and Time Series Database

Prometheus - Open Source Monitoring System and Time Series Database

Explore the vast realm of Prometheus, a groundbreaking project under the Cloud Native Computing Foundation, designed to be a systems and service monitoring powerhouse. Prometheus collects metrics from configured targets, evaluates rule expressions, displays results, and triggers alerts based on specified conditions.

Prometheus

Key Features that Set Prometheus Apart:

  1. Multi-dimensional Data Model:

    • Time series defined by metric name and a set of key/value dimensions.
  2. PromQL:

    • A powerful and flexible query language, leveraging the multi-dimensional nature of the data model.
  3. Autonomous Single Server Nodes:

    • No dependency on distributed storage; single server nodes are autonomous.
  4. HTTP Pull Model:

    • Time series collection is facilitated through an HTTP pull model.
  5. Support for Pushing Time Series:

    • Pushing time series is supported via an intermediary gateway for batch jobs.
  6. Service Discovery:

    • Targets are discovered via service discovery or static configuration.
  7. Graphing and Dashboarding Support:

    • Multiple modes of graphing and dashboarding support for enhanced visualization.
  8. Hierarchical and Horizontal Federation:

    • Support for hierarchical and horizontal federation for flexible scalability.

Architecture Overview:

Architecture overview

Installation Options:

1. Precompiled Binaries:

Get the latest production release binary from the download section on prometheus.io.

2. Docker Images:

Docker images are available on Quay.io or Docker Hub.

Launch a Prometheus container for a quick trial:

docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus

Access Prometheus at http://localhost:9090/.

3. Building from Source:

To build Prometheus from source, you need Go (version 1.17 or greater), NodeJS (version 16 or greater), and npm (version 7 or greater). Follow the instructions in the Installing chapter of the documentation.

Service Discovery Plugins:

Prometheus comes bundled with various service discovery plugins. Adjust the plugins.yml file during source build to enable/disable service discoveries.

Docker Image Building:

Use the make docker target for CI systems. Locally, build a docker image with:

make promu
promu crossbuild -p linux/amd64
make npm_licenses
make common-docker-amd64

Using Prometheus as a Go Library:

1. Remote Write:

Prometheus publishes its Remote Write protobuf at buf.build.

Use it as a library:

go get go.buf.build/protocolbuffers/go/prometheus/prometheus

2. Prometheus Code Base:

For Go module compatibility, Prometheus uses v0.y.z tags for v2.y.z releases. For example, to use Prometheus v2.35.0 as a library:

go get github.com/prometheus/prometheus@v0.35.0

React UI Development:

Refer to the React app's README.md for details on building, running, and developing the React-based UI.

More Information:

Contributing:

Refer to CONTRIBUTING.md.

License:

Apache License 2.0, see LICENSE.

Next Post Previous Post
No Comment
Add Comment
comment url