94 lines
2.5 KiB
Markdown
94 lines
2.5 KiB
Markdown
# Pocket ID Metrics Exporter
|
|
|
|
Dieser Pocket ID Metrics Exporter ist ein Go-Programm, das Metriken aus einer Datenbank (SQLite oder PostgreSQL) ausliest und diese für Prometheus bereitstellt.
|
|
|
|
## Funktionen
|
|
|
|
- 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
|
|
|
|
## Voraussetzungen
|
|
|
|
- Go 1.15 oder höher
|
|
- SQLite oder PostgreSQL Datenbank
|
|
- Zugriff auf die Tabellen `Audit_Logs` und `Users` in der Datenbank
|
|
|
|
## Installation
|
|
|
|
1. Klonen Sie das Repository:
|
|
```
|
|
git clone https://github.com/yourusername/pocket-id-metrics-exporter.git
|
|
cd pocket-id-metrics-exporter
|
|
```
|
|
|
|
2. 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
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
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
|
|
|
|
### Beispiele:
|
|
|
|
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"
|
|
```
|
|
|
|
## Verwendung
|
|
|
|
1. Setzen Sie die Umgebungsvariablen wie oben beschrieben.
|
|
|
|
2. Starten Sie das Programm:
|
|
```
|
|
go run main.go
|
|
```
|
|
|
|
3. Das Programm läuft nun auf `http://localhost:3000`. Die Metriken sind unter dem `/metrics` Endpunkt verfügbar.
|
|
|
|
## Metriken
|
|
|
|
- `pocket_id_login_count`: Gesamtanzahl der Anmeldungen
|
|
- `pocket_id_user_count`: Gesamtanzahl der Benutzer
|
|
|
|
## Prometheus Konfiguration
|
|
|
|
Fügen Sie folgende Job-Konfiguration zu Ihrer `prometheus.yml` hinzu:
|
|
|
|
```yaml
|
|
scrape_configs:
|
|
- job_name: 'pocket_id_metrics'
|
|
static_configs:
|
|
- targets: ['localhost:3000']
|
|
```
|
|
|
|
## Fehlerbehebung
|
|
|
|
- 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.
|
|
|
|
## Beitragen
|
|
|
|
Beiträge sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue für Vorschläge und Fehlermeldungen.
|
|
|
|
## Lizenz
|
|
|
|
Dieses Projekt steht unter der MIT-Lizenz. Siehe die [LICENSE](LICENSE) Datei für Details.
|