Creative solution to use weird thesholds for Ricoh printers

While trying to get the monitoring for our printers up and running, I came across an issue with negative values for SNMP tresholds. I’ve read different forum posts of people using db as measurement to get notifications when a certain treshold is reached, so I know the use of negative values is possible.
What I noticed is that Ricoh uses a very weird scale to return different states:

ricoh-snmp-toner

I tried using warning treshold -100 (almost empty) and critical 0 (empty), but it just gives a “Range format incorrect” message on the overview. This seems logical, as I suspect the value should be ascending/decending in a linear way.
Another model uses another scale (-3 = toner OK, -100 = almost empty, 0 = empty), generates the same issue.

Can anyone think of a solution for these printers so I can monitor the toner?
I’m also looking into check_printer_health, but created another post to get it to work. I just thought this is an interesting case nevertheless.

Hello @terryprosafco!

Does the plugin output this?

Have you tried ~:-100?

Best,
AK

Yes, that message was the plugin output.
I have tried your suggestion, which got rid of the error, but putting -100 as warning and 0 as critical results in everything being in critical state. It’s really not weird that this would behave like this, as the flow makes no sense: 100, 90, 80, 70, 60, 50, 40, 30, 20, -100, 0

Yes, that’s the common logic:

if critical:
  critical
else:
  if warning:
    warning
  else:
    ok

The printer should not report such unlogical stuff. If that’s not avoidable, the plugin should provide a way to handle this. Otherwise you may set warning=21 critical=19.