groups: - name: bambulab-exporter rules: - alert: BambuPrinterOffline expr: bambulab_printer_connected == 0 for: 2m labels: severity: warning annotations: summary: "Bambu printer disconnected" description: "Printer {{ $labels.printer_name }} has been disconnected for more than 2 minutes." - alert: BambuExporterScrapeFailing expr: bambulab_exporter_scrape_success == 0 for: 3m labels: severity: warning annotations: summary: "Bambu exporter scrape failing" description: "Exporter for {{ $labels.printer_name }} is failing scrape cycles." - alert: BambuPrinterErrorActive expr: bambulab_printer_error == 1 for: 1m labels: severity: critical annotations: summary: "Bambu printer error" description: "Printer {{ $labels.printer_name }} has active error code {{ $value }}." - alert: BambuHmsSeriousError expr: sum by (printer_name) (bambulab_hms_active_errors{severity=~"fatal|serious"}) > 0 for: 1m labels: severity: critical annotations: summary: "Bambu printer HMS error" description: "Printer {{ $labels.printer_name }} reports {{ $value }} serious or fatal HMS error(s); check the printer screen or Bambu Handy." - alert: BambuNozzleTooHot expr: bambulab_nozzle_temperature_celsius > 320 for: 30s labels: severity: critical annotations: summary: "Nozzle temperature too high" description: "Nozzle temperature for {{ $labels.printer_name }} exceeded safe threshold." - alert: BambuDoorOpenWhilePrinting expr: bambulab_door_open == 1 and on(printer_name, serial) bambulab_printer_gcode_state{state="RUNNING"} == 1 for: 30s labels: severity: warning annotations: summary: "Printer door open during active print" description: "Door sensor reports open while {{ $labels.printer_name }} is printing." - alert: BambuExporterStale expr: time() - bambulab_exporter_last_success_unixtime > 180 for: 1m labels: severity: warning annotations: summary: "Exporter has stale successful scrape" description: "No successful scrape from {{ $labels.printer_name }} for more than 3 minutes." - alert: BambuSdCardAbnormal expr: bambulab_sdcard_status_info{status="abnormal"} == 1 for: 1m labels: severity: warning annotations: summary: "SD card abnormal state detected" description: "SD card status for {{ $labels.printer_name }} is abnormal."