Dieser Pocket ID Metrics Exporter ist ein Go-Programm, das Metriken aus einer Datenbank (SQLite oder PostgreSQL) ausliest und diese für Prometheus bereitstellt.
- Unterstützung für SQLite und PostgreSQL Datenbanken
- Erfassung der Gesamtanzahl der Anmeldungen
- Erfassung der Gesamtanzahl der Benutzer
- Bereitstellung der Metriken über einen HTTP-Endpunkt für Prometheus
- Go 1.15 oder höher
- SQLite oder PostgreSQL Datenbank
- Zugriff auf die Tabellen
Audit_Logs
undUsers
in der Datenbank
-
Klonen Sie das Repository:
git clone https://github.com/yourusername/pocket-id-metrics-exporter.git cd pocket-id-metrics-exporter
-
Installieren Sie die erforderlichen Abhängigkeiten:
go get github.com/prometheus/client_golang/prometheus go get github.com/prometheus/client_golang/prometheus/promhttp go get github.com/lib/pq go get github.com/mattn/go-sqlite3
Das Programm verwendet Umgebungsvariablen für die Konfiguration:
DB_TYPE
: Der Typ der Datenbank ("sqlite3" oder "postgres")DB_CONNECTION
: Die Verbindungszeichenfolge für die Datenbank
Für SQLite:
export DB_TYPE=sqlite3
export DB_CONNECTION=./data/pocket-id.db
Für PostgreSQL:
export DB_TYPE=postgres
export DB_CONNECTION="host=localhost port=5432 user=yourusername dbname=yourdbname password=yourpassword sslmode=disable"
-
Setzen Sie die Umgebungsvariablen wie oben beschrieben.
-
Starten Sie das Programm:
go run main.go
-
Das Programm läuft nun auf
http://localhost:3000
. Die Metriken sind unter dem/metrics
Endpunkt verfügbar.
pocket_id_login_count
: Gesamtanzahl der Anmeldungenpocket_id_user_count
: Gesamtanzahl der Benutzer
Fügen Sie folgende Job-Konfiguration zu Ihrer prometheus.yml
hinzu:
scrape_configs:
- job_name: 'pocket_id_metrics'
static_configs:
- targets: ['localhost:3000']
- Stellen Sie sicher, dass die Datenbank erreichbar ist und die erforderlichen Tabellen existieren.
- Überprüfen Sie die Konsolenausgabe auf Fehlermeldungen.
- Vergewissern Sie sich, dass die Umgebungsvariablen korrekt gesetzt sind.
Beiträge sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue für Vorschläge und Fehlermeldungen.
Dieses Projekt steht unter der MIT-Lizenz. Siehe die LICENSE Datei für Details.