No description
Find a file
2024-11-02 09:31:32 +01:00
go first commit 2024-11-02 09:30:54 +01:00
.gitignore add gitignore 2024-11-02 09:31:32 +01:00
docker-compose.yml first commit 2024-11-02 09:30:54 +01:00
README.md first commit 2024-11-02 09:30:54 +01:00

pocket-id-exporter

Der pocket-id-exporter ist ein Prometheus-Exporter für die Pocket ID-Datenbank. Er stellt Metriken über die Anzahl der Anmeldungen und Benutzer bereit.

Funktionen

  • Exportiert die Gesamtzahl der Anmeldungen als Metrik pocket_id_login_count
  • Exportiert die Gesamtzahl der Benutzer als Metrik pocket_id_user_count
  • Stellt Metriken im Prometheus-Format unter dem /metrics-Endpunkt bereit

Voraussetzungen

  • Docker
  • Docker Compose

Verwendung mit Docker Compose

  1. Erstellen Sie eine docker-compose.yml-Datei im Projektverzeichnis mit folgendem Inhalt:
version: '3'
services:
  pocket-id-exporter:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
  1. Erstellen Sie eine Dockerfile im Projektverzeichnis:
FROM golang:1.17-alpine

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN go build -o pocket-id-exporter

EXPOSE 3000

CMD ["./pocket-id-exporter"]
  1. Stellen Sie sicher, dass Ihre SQLite-Datenbank im Verzeichnis ./data mit dem Namen pocket-id.db liegt.

  2. Bauen und starten Sie den Container mit Docker Compose:

docker-compose up --build

Der Exporter ist nun unter http://localhost:3000/metrics erreichbar.

Konfiguration von Prometheus

Fügen Sie folgende Job-Konfiguration zu Ihrer prometheus.yml hinzu, um die Metriken zu scrapen:

scrape_configs:
  - job_name: 'pocket-id'
    static_configs:
      - targets: ['localhost:3000']

Entwicklung

Um den Exporter lokal zu entwickeln und zu testen:

  1. Installieren Sie Go (Version 1.17 oder höher)
  2. Klonen Sie das Repository
  3. Installieren Sie die Abhängigkeiten:
go mod download
  1. Bauen und starten Sie den Exporter:
go build
./pocket-id-exporter

Lizenz

MIT License

https://github.com/stonith404/pocket-id

https://goneuland.de/pocket-id-mit-docker-und-traefik-installieren/

https://github.com/stonith404/pocket-id/issues/56