2024-12-13 01:01:27 +01:00
# Pocket ID Metrics Exporter
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
Dieser Pocket ID Metrics Exporter ist ein Go-Programm, das Metriken aus einer Datenbank (SQLite oder PostgreSQL) ausliest und diese für Prometheus bereitstellt.
2024-11-02 09:30:54 +01:00
## Funktionen
2024-12-13 01:01:27 +01:00
- 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
2024-11-02 09:30:54 +01:00
## Voraussetzungen
2024-12-13 01:01:27 +01:00
- Go 1.15 oder höher
- SQLite oder PostgreSQL Datenbank
- Zugriff auf die Tabellen `Audit_Logs` und `Users` in der Datenbank
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
## Installation
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
1. Klonen Sie das Repository:
```
git clone https://github.com/yourusername/pocket-id-metrics-exporter.git
cd pocket-id-metrics-exporter
```
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
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
```
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
## Konfiguration
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
Das Programm verwendet Umgebungsvariablen für die Konfiguration:
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
- `DB_TYPE` : Der Typ der Datenbank ("sqlite3" oder "postgres")
- `DB_CONNECTION` : Die Verbindungszeichenfolge für die Datenbank
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
### Beispiele:
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
Für SQLite:
```
export DB_TYPE=sqlite3
export DB_CONNECTION=./data/pocket-id.db
```
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
Für PostgreSQL:
```
export DB_TYPE=postgres
export DB_CONNECTION="host=localhost port=5432 user=yourusername dbname=yourdbname password=yourpassword sslmode=disable"
2024-11-02 09:30:54 +01:00
```
2024-12-13 01:01:27 +01:00
## Verwendung
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
1. Setzen Sie die Umgebungsvariablen wie oben beschrieben.
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
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.
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
## Metriken
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
- `pocket_id_login_count` : Gesamtanzahl der Anmeldungen
- `pocket_id_user_count` : Gesamtanzahl der Benutzer
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
## Prometheus Konfiguration
Fügen Sie folgende Job-Konfiguration zu Ihrer `prometheus.yml` hinzu:
2024-11-02 09:30:54 +01:00
```yaml
scrape_configs:
2024-12-13 01:01:27 +01:00
- job_name: 'pocket_id_metrics'
2024-11-02 09:30:54 +01:00
static_configs:
- targets: ['localhost:3000']
```
2024-12-13 01:01:27 +01:00
## Fehlerbehebung
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
- 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.
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
## Beitragen
2024-11-02 09:30:54 +01:00
2024-12-13 01:01:27 +01:00
Beiträge sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue für Vorschläge und Fehlermeldungen.
2024-11-02 09:30:54 +01:00
## Lizenz
2024-12-13 01:01:27 +01:00
Dieses Projekt steht unter der MIT-Lizenz. Siehe die [LICENSE ](LICENSE ) Datei für Details.