• Working Directory: Documents/Courses/Pluralsight-GettingStartedWithPrometheus
  • Sample Code:

Module 2: Understanding How Prometheus Works

  • Prometheus Server
    • Scheduler fetches metrics from targets using a pull model
    • Time Series Database
    • Http API
    • Web UI
    • Alerting system
  • What makes Prometheus so awesome
    • each target runs an exporter
    • exporter makes metrics available via http endpoint
    • Prometheus pulls data from the http endpoint
  • Histograms are good for putting data into buckets, like sorting out good vs bad response times into buckets

  • each label added creates a new timeseries of the data

Module 3: Running and Configuring Prometheus

Module 4: Querying Metrics with PromQL

Selector Basics:

  • metric_name - will list out all values for metric
  • metric_name{label="value"} - use a selector, like a where clause in SQL
  • label selectors
    • label="value" - string compare
    • label=~"value.*" - regex compare
  • metric_name[5m] - To see a range of results instead of the most recent specify the range
    • all samples in 5 minute span


  • sum(metric_name) - total of all label values
  • sum without(job) (metric_name) - like a group by in SQL with a having clause


  • delta(metric_name[1h]) - difference between first & last values in a range
    • not an agregation
    • good for gauges
  • avg(delta(meric_name[1h]))
  • rate(metric_name[5m]) - output is a gauge


Demos are in the Courses content folder.