NEWS
Hilfe: Klipper --> Prometheus --> Grafana
-
Hallo
Brauch eure Hilfe.
- Auf dem Snapmaker U1 läuft Klipper Moonraker inkl. aktiviertem Prometheus-Klipper-Exporter.
- Prometheus läuft auf Proxmox als LXC (installiert über Proxmox VE Helper-Scripts).
- in Grafana ist Prometheus als Datenquelle aktiv, aber noch nicht konfiguriert.
Und jetzt steh ich an.
Wie sag ich Klipper, dass er die Daten zu Prometheus schicken soll?
Oder muss Prometheus die Daten von Klipper abholen? Wie und wo konfigurieren? -
Du sagst Klipper/Moonraker gar nichts – Prometheus holt sich die Daten vom Exporter.
mal KI basierend zusammengefasstGrundprinzip
Prometheus arbeitet pull-basiert: Es „scraped“ Exporter über HTTP und liest dort die Metriken.
Der Prometheus-Klipper-Exporter holt sich seinerseits die Daten über die Moonraker-API und stellt sie unter einem HTTP-Endpunkt bereit.
Klipper/Moonraker pusht also nichts aktiv zu Prometheus.Schritte auf dem Klipper‑Host
Prometheus‑Klipper‑Exporter installieren (z.B. Binary oder Docker, Projekt scross01/prometheus-klipper-exporter).
Exporter starten, Standard-Port ist 9101, danach liefert er:- /metrics für Exporter-eigene Metriken.
- /probe für Klipper-Metriken (Moonraker).
Falls Moonraker restriktive trusted_clients nutzt, den Exporter‑Host dort eintragen (Section [authorization] in moonraker.conf).
Wenn Moonraker mit API-Key läuft, den Key entweder als Env-Var MOONRAKER_APIKEY oder per Startparameter -moonraker.apikey=... an den Exporter übergeben.
Prometheus konfigurieren
In /etc/prometheus/prometheus.yml fügst du ein scrape_config für den Klipper‑Job ein, z.B.:
scrape_configs: - job_name: "klipper" scrape_interval: 5s metrics_path: /probe static_configs: - targets: ['IP-ODER-DNS-VOM-KLIPPER-HOST:7125'] params: modules: [ "process_stats", "job_queue", "system_info", "printer_objects" ] - job_name: "klipper-exporter" scrape_interval: 5s metrics_path: /metrics static_configs: - targets: ['IP-ODER-DNS-VOM-EXPORTER:9101']targets ist die Moonraker-API (:7125), aus der der Exporter liest.
modules legt fest, welche Metrikgruppen gezogen werden (z.B. process_stats, printer_objects usw.).
Prometheus muss als Target den Exporter (Port 9101) kennen; entweder direkt oder über ein Relabeling-Setup wie im Repo gezeigt.
Grafana anbinden
In Grafana ist Prometheus bereits als Datenquelle hinterlegt, du kannst nun ein Dashboard importieren, das den Klipper‑Exporter unterstützt.
Es gibt z.B. ein fertiges „Klipper Dashboard“ (ID 18467 bei Grafana Labs), das direkt auf die Metriken des Prometheus‑Klipper‑Exporters ausgelegt ist.
- /metrics für Exporter-eigene Metriken.
-
Du sagst Klipper/Moonraker gar nichts – Prometheus holt sich die Daten vom Exporter.
mal KI basierend zusammengefasstGrundprinzip
Prometheus arbeitet pull-basiert: Es „scraped“ Exporter über HTTP und liest dort die Metriken.
Der Prometheus-Klipper-Exporter holt sich seinerseits die Daten über die Moonraker-API und stellt sie unter einem HTTP-Endpunkt bereit.
Klipper/Moonraker pusht also nichts aktiv zu Prometheus.Schritte auf dem Klipper‑Host
Prometheus‑Klipper‑Exporter installieren (z.B. Binary oder Docker, Projekt scross01/prometheus-klipper-exporter).
Exporter starten, Standard-Port ist 9101, danach liefert er:- /metrics für Exporter-eigene Metriken.
- /probe für Klipper-Metriken (Moonraker).
Falls Moonraker restriktive trusted_clients nutzt, den Exporter‑Host dort eintragen (Section [authorization] in moonraker.conf).
Wenn Moonraker mit API-Key läuft, den Key entweder als Env-Var MOONRAKER_APIKEY oder per Startparameter -moonraker.apikey=... an den Exporter übergeben.
Prometheus konfigurieren
In /etc/prometheus/prometheus.yml fügst du ein scrape_config für den Klipper‑Job ein, z.B.:
scrape_configs: - job_name: "klipper" scrape_interval: 5s metrics_path: /probe static_configs: - targets: ['IP-ODER-DNS-VOM-KLIPPER-HOST:7125'] params: modules: [ "process_stats", "job_queue", "system_info", "printer_objects" ] - job_name: "klipper-exporter" scrape_interval: 5s metrics_path: /metrics static_configs: - targets: ['IP-ODER-DNS-VOM-EXPORTER:9101']targets ist die Moonraker-API (:7125), aus der der Exporter liest.
modules legt fest, welche Metrikgruppen gezogen werden (z.B. process_stats, printer_objects usw.).
Prometheus muss als Target den Exporter (Port 9101) kennen; entweder direkt oder über ein Relabeling-Setup wie im Repo gezeigt.
Grafana anbinden
In Grafana ist Prometheus bereits als Datenquelle hinterlegt, du kannst nun ein Dashboard importieren, das den Klipper‑Exporter unterstützt.
Es gibt z.B. ein fertiges „Klipper Dashboard“ (ID 18467 bei Grafana Labs), das direkt auf die Metriken des Prometheus‑Klipper‑Exporters ausgelegt ist.
@crunchip sagte in Hilfe: Klipper --> Prometheus --> Grafana:
modules legt fest, welche Metrikgruppen gezogen werden
Danke, bin etwas weiter gekommen.
kann man von Klipper verfügbare Metrics als Liste vorher abfragen?
Mein Snapmaker hat 4 Köpfe.
ChatGPT sagt mir nur
Toolhead
position (X, Y, Z, E)
velocity
acceleration
print_time
estimated_print_time
stall_count
bin etwas weiter
Verbindung steht, aber ich bekomm nur go_ Metrics
- /metrics für Exporter-eigene Metriken.
-
kann dir da auch nicht groß weiterhelfen, mittels KI
Vollständige scrape_configs
Für den Klipper‑Exporter brauchst du zwei Jobs in prometheus.yml:
scrape_configs: # Job 1: Exporter selbst scrapen (interne Metriken) - job_name: "klipper-exporter" scrape_interval: 5s metrics_path: /metrics static_configs: - targets: ['klipper-host-ip:9101'] # Port des Exporters # Job 2: Klipper-Metriken über /probe (Blackbox‑Style) - job_name: "klipper" scrape_interval: 5s metrics_path: /probe params: modules: ['system_info', 'printer_objects', 'process_stats', 'job_queue'] static_configs: - targets: ['klipper-host-ip:7125'] # Moonraker API-Port! relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: klipper-host-ip:9101 # Exporter-Adresse!Wichtig: Der /probe-Job scraped nicht Moonraker direkt, sondern den Exporter (Port 9101). Der Exporter holt intern die Daten von Moonraker.
Verfügbare Modules
Der Exporter unterstützt diese Module (alle oder Untermenge):
system_info
printer_objects
process_stats
job_queue
network_stats
directory_info
history
Teste mit curl http://klipper-ip:9101/probe?modules=system_info&target=http://localhost:7125 auf dem Klipper‑Host – sollte Metriken ausgeben.
Häufige Fehlerquellen
Target DOWN: Falsche IP/Port in targets oder Firewall blockt (Proxmox LXC → Snapmaker U1). Überprüfe mit curl von Prometheus‑Host aus.
Keine Daten: API‑Key fehlt oder trusted_clients in moonraker.conf sperrt den Exporter.
Relabel fehlt: Ohne relabel_configs weiß Prometheus nicht, dass /probe den Exporter braucht.