Overview

    For more elaborate overviews of Prometheus, see the resources linked from the section.

    Prometheus’s main features are:

    • a multi-dimensional data model with time series data identified by metric name and key/value pairs
    • PromQL, a to leverage this dimensionality
    • no reliance on distributed storage; single server nodes are autonomous
    • time series collection happens via a pull model over HTTP
    • pushing time series is supported via an intermediary gateway
    • multiple modes of graphing and dashboarding support
    • the main which scrapes and stores time series data
    • client libraries for instrumenting application code
    • a for supporting short-lived jobs
    • special-purpose exporters for services like HAProxy, StatsD, Graphite, etc.
    • various support tools

    Most Prometheus components are written in , making them easy to build and deploy as static binaries.

    This diagram illustrates the architecture of Prometheus and some of its ecosystem components:

    Prometheus scrapes metrics from instrumented jobs, either directly or via an intermediary push gateway for short-lived jobs. It stores all scraped samples locally and runs rules over this data to either aggregate and record new time series from existing data or generate alerts. Grafana or other API consumers can be used to visualize the collected data.

    Prometheus works well for recording any purely numeric time series. It fits both machine-centric monitoring as well as monitoring of highly dynamic service-oriented architectures. In a world of microservices, its support for multi-dimensional data collection and querying is a particular strength.

    Prometheus values reliability. You can always view what statistics are available about your system, even under failure conditions. If you need 100% accuracy, such as for per-request billing, Prometheus is not a good choice as the collected data will likely not be detailed and complete enough. In such a case you would be best off using some other system to collect and analyze the data for billing, and Prometheus for the rest of your monitoring.