98 lines
2 KiB
Markdown
98 lines
2 KiB
Markdown
|
# 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:
|
||
|
|
||
|
```yaml
|
||
|
version: '3'
|
||
|
services:
|
||
|
pocket-id-exporter:
|
||
|
build: .
|
||
|
ports:
|
||
|
- "3000:3000"
|
||
|
volumes:
|
||
|
- ./data:/app/data
|
||
|
```
|
||
|
|
||
|
2. Erstellen Sie eine `Dockerfile` im Projektverzeichnis:
|
||
|
|
||
|
```Dockerfile
|
||
|
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"]
|
||
|
```
|
||
|
|
||
|
3. Stellen Sie sicher, dass Ihre SQLite-Datenbank im Verzeichnis `./data` mit dem Namen `pocket-id.db` liegt.
|
||
|
|
||
|
4. Bauen und starten Sie den Container mit Docker Compose:
|
||
|
|
||
|
```bash
|
||
|
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:
|
||
|
|
||
|
```yaml
|
||
|
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:
|
||
|
|
||
|
```bash
|
||
|
go mod download
|
||
|
```
|
||
|
|
||
|
4. Bauen und starten Sie den Exporter:
|
||
|
|
||
|
```bash
|
||
|
go build
|
||
|
./pocket-id-exporter
|
||
|
```
|
||
|
|
||
|
## Lizenz
|
||
|
|
||
|
[MIT License](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
|