Using Prometheus for Performance Evaluation

Let’s learn how to use Prometheus and the runtime/metrics package for performance evaluation.

Imagine that we have an application that writes files to disk, and we want to get metrics for that application to better understand how the writing of multiple files has an effect on the general performance—we need to gather performance data for understanding the behavior of our application. Although the presented application uses the gauge type of metric only because it is what is appropriate for the information that is sent to Prometheus, Prometheus accepts many types of data. The list of supported data types for metrics is the following:

  • Counter: This is a cumulative value that is used for representing increasing counters—the value of a counter can stay the same, go up, or be reset to zero but cannot decrease. Counters are usually used for representing cumulative values such as the number of requests served so far, the total number of errors, etc.

  • Gauge: This is a single numerical value that is allowed to increase or decrease. Gauges are usually used for representing values that can go up or down, such as the number of requests, time durations, etc.

  • Histogram: A histogram is used for sampling observations and creating counts and buckets. Histograms are usually used for counting request durations, response times, etc.

  • Summary: A summary is like a histogram but can also calculate quantiles over sliding windows that work with times.

Get hands-on with 1200+ tech skills courses.