Difficulty: beginner
Estimated Time: 20 minutes

As the number of parts of the system increases, it's essential to have to have a monitoring approach that is dynamic and scalable to match the system being built.

A popular open source solution is called Prometheus. Prometheus was built out of Soundcloud and now part of the Cloud Native Foundation.

Problem

What are my application and servers doing? How are they performing?

Solution

Collect metrics with Prometheus that can be used to produce Grafana dashboards

By using Prometheus we can collect system metrics via Node Exporters or instrument applications to provide metrics.

Don’t stop now! The next scenario will only take about 10 minutes to complete.

Creating Prometheus Dashboards with Grafana

Step 1 of 5

Step 1 - Start Prometheus

The Prometheus server requires a configuration file that defines the endpoints to scrape along with how frequently the metrics should be accessed.

The first half of the configuration defines the intervals.

global:
  scrape_interval:     15s
  evaluation_interval: 15s

The second half defines the servers and ports that Prometheus should scrape data from. In this example, we have defined two targets running on different ports.

scrape_configs:
  - job_name: 'prometheus'

    static_configs:
      - targets: ['localhost:9090', 'localhost:9100']
        labels:
          group: 'prometheus'

9090 is Prometheus itself. Prometheus exposes information related to its internal metrics and performance and allows it to monitor itself.

9100 is the Node Exporter Prometheus process. This exposes information about the Node, such as disk space, memory and CPU usage.

More information on the default ports can be found at https://github.com/prometheus/prometheus/wiki/Default-port-allocations

Task

Copy the configuration to the editor to continue.

prometheus.yml