Prometheus Tutorial: 2 - Getting started

Tutorial sull’utilizzo del Prometheus - parte 2: avvio e configurazione del Prometheus tramite Docker Compose.

Getting started

Prometheus può essere installato tramite i binari precompilati nella sezione download del sito Prometheus, oppure tramite le immagini [Docker] presenti su Quay.io o Docker hub.

In questo documento utilizzero l’approccio basato su [Docker] e [Docker_Compose].

Il file docker_compose.yml che segue descrive una possibile configurazione per utilizzare il Prometheus tramite Docker compose.

docker-compose.yml
version: '3'

services:

  prometheus:
    image: prom/prometheus:v2.9.2
    container_name: prometheus
    ports:
      - 9090:9090
    restart: always
    user: '1000'
    volumes:
        - "$PWD/promdata:/prometheus"
        - "$PWD/promconf:/etc/prometheus:ro"
    command: "--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention=90d"
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"

In questo docker-compose.yml è definito il mapping di due volumi:

  • $PWD/promdata:/prometheus” → nella cartella locale promdata sarà salvato lo storage prometheus

  • $PWD/promconf:/etc/prometheus:ro” → nella cartella locale promconf deve essere presente la configurazione Prometheus

Il file prometheus.yml dovrà essere presente nella cartella $PWD/promconf.

Configurare Prometheus per monitorare se stesso

Prometheus colleziona le metriche dei target monitorati effettuando lo scraping degli endpoint HTTP di questi target. Visto che Prometheus stesso espone le proprie metriche interne tramite lo stesso meccanismo è possibile fare lo scrape ed il monitoraggio del suo stato di salute tramite lo stesso meccanismo.

L’esempio seguente mostra la configurazione da inserire nel prometheus.yml per far si che Prometheus effettui il monitoraggio di stesso:

prometheus.yml
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['127.0.0.1:9090']

Avviare il Prometheus

Per avviare il Prometheus è necessario aver installato il [Docker_Compose] ed eseguire nella cartella che contiene il file docker-compose.yml il comando:

$ docker-compose up -d

Per verificare i log:

$ docker-compose logs

È possibile verificare che il Prometheus stia funzionando anche visualizzando le sue stesse metriche attraverso l’endpoint:

Utilizzare l’Expression Browser

Per visualizzare i dati che il Prometheus ha collezionato di se stesso è possibile utilizzare l’expression browser built-in andando all’indirizzo http://127.0.0.1:9090/graph e scegliento la vista “Console” dentro la tab “Graph“.

Come è possibile verificare all’indirizzo http://127.0.0.1/metrics, una delle metriche che Prometheus esporta di se stesso è chiamata prometheus_target_interval_length_seconds (la latenza che intercorre tra due scrape delle metriche). Inserisci questa espressione nella console:

prometheus_target_interval_length_seconds

Questa fornirà un numero differente di time series (insieme con l’ultimo valore registrato per ognuna), ovvero tutte quelle con la metrica con nome prometheus_target_interval_length_seconds ma con label differenti. Le varie label rappresentano differenti percentili di latenza ed intervalli dei gruppi di target.

Un esempio è riportato nella figura seguente.

prometheus expression browser

TOBECONTINUED

Segui la terza parte del tutorial per imparare a monitorare un’applicazione di esempio ed utilizzare gli exporter opensource già disponibili online.

Per maggiori approfondimenti:


Pubblicato il
    Be Smart Be Open

    Business Software Solutions

    Latest articles

    Released in production our flutter based app 'Wasteful'

    11 March 2022

    Contact us

    Email: besmart@besmartbeopen.it
    Pec: besmartbeopen@pec.it
    P.IVA e C.F.: 02137570509
    Top
    Noi ed alcuni partner utilizziamo cookie o tecnologie simili come specificato nella cookie policy Per maggiori informazioni consulta la nostra Cookie Policy Cookie Policy