Ein einfacher Exporter in golang für die Prometheus Integration

  • By Christian Heimke
  • Last update: Dec 7, 2022
  • Comments: 0

go-exporter

Ein einfaches Beispiel zum erfassen von Metriken aus go heraus.

Erstellen des binary

Windows

Unter Windows 10 die Powershell starten und die Umgebungsvariablen setzen und erstellen:

$env:GOOS="linux"
$env:GOARCH="amd64"

go build  -o bin/go_exporter

MacOS & Linux

env GOOS=linux GOARCH=amd64 go build  -o bin/go_exporter

Setup

Go exporter auf einer Linux VM starten

# Benutzer `go_exporter` erstellen:
useradd --no-create-home --shell /bin/false go_exporter

# binary kopieren
scp bin/go_exporter [email protected]:/tmp/

# service file kopieren
scp bin/go_exporter.service [email protected]:/tmp/

# auf dem server einloggen
ssh [email protected]

# Berechtigungen setzen
sudo chown go_exporter:go_exporter

# service file verschieben
sudo mv /tmp/go_exporter.service /etc/systemd/system/go_exporter.service

# daemon neuladen
sudo systemctl daemon-reload

# go_exporter starten
sudo systemctl start go_exporter.service

Prometheus Setup

Den Exporter in der Konfiguration hinzufügen:

# login auf prometheus server
ssh [email protected]

# prometheus config bearbeiten
sudo nano /etc/prometheus/prometheus.yml

und den scrape_configs erweitern:

scrape_configs:
  - job_name: "go_exporter"
    static_configs:
      - targets: ["10.55.0.5:9123"]

Hinweis: die IP muss entsprechend der VM auf der der Exporter gestartet wurden angepasst werden.

# Prometheus neustarten:
sudo systemctl restart prometheus

Auf der Prometheus Oberfläche sollte dann unter targets ein weiterer Exporter gelistet sein.

Download

go-prometheus-exporter.zip