Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Table of Contents

Introduction Client Libraries

Info
  • Instrumenting your code
  • Libraries
    • Official: Go, Java/Scala, Python, Ruby
    • Unofficial: Bash, C++, Common Lisp, Elixir, Erlang, Haskell, Lua for Nginx, Lua for Tarantool, .NET/C#, Node.js, PHP, Rust
  • No client library available?
    • Implement it yourself in one of the supported exposition formats
  • Exposition formats:
    • Simple text-based format
    • Protocol-buffer format (Prometheus 2.0 removed support for the protocol-buffer format)
    • Image Added
  • 4 types of metrics
    • Counter
      • A value that only goes up (e.g. Visits to a website)
    • Gauge
      • Single numeric value that can go up and down (e.g.  CPU load, temperature)
    • Histogram
      • Samples observations (e.g. request durations or response sizes) and these observations get counted into buckets. Includes (_count and _sum)
      • Main purpose is calculating quantiles
    • Summary
      • Similar to a histogram, a summary samples observations (e.g. request durations or response sizes).
      • A Summary also provides a total count of observations and a sum of all observed values, it calculates configurable quantiles over a sliding time window.
      • Example:
        • Your need 2 counters for calculating the latency
        • 1) total request(_count)
        • 2) the total latency of those requests (_sum)
      • Take the rate() and divide = average latency

Client Libraries - Python Example

Info

Client Libraries - Golang Example

Info
  • https://github.com/prometheus/client_golang
  • Officially supported language
  • Easy to implement:
    • Image Added
  • Supported metrics: Counter, Gauge, Summary and Histogram
  • Guage
    • Image Added
  • Adding labels
    • Image Added
  • Histogram
    • Image Added
  • Summary
    • Image Added