check_netscaler icon indicating copy to clipboard operation
check_netscaler copied to clipboard

invalid perfdata values

Open ix-dev opened this issue 6 years ago • 12 comments

The plugin returns invalid performance data values. According to the Nagios Plugins Development Guidelines the value has to be in class [-0-9.] and 'a' for the UOM (unit of measurement) is not supported.

icinga2.log

[2019-09-24 06:14:55 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: ns.hacurstate=UP;;
[2019-09-24 06:14:55 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: ns.hacurmasterstate=Primary;;
[2019-09-24 06:15:13 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: hapktrxrate=5a;;;0;
[2019-09-24 06:15:13 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: hapkttxrate=5a;;;0;

ix-dev avatar Sep 24 '19 07:09 ix-dev

Hi @ix-dev,

do you have an idea how we could fix this or are you able to provide a patch for this? A quick solution could be to add an switch, which completly disables the perfdata output for the plugin.

Maybe we also could ignore the metric if the value is e.g. an string.

slauger avatar Sep 27 '19 13:09 slauger

I think the best solution would be to output only numeric perfdata since string values are not supported by Nagios/Icinga. In order to provide backward compatibility, a switch like '--numeric-perfdata' could also be added.

ix-dev avatar Sep 30 '19 09:09 ix-dev

Hi just wanted to let you know that I have solved that. It will be problem if in data output will be label with . in the name ... like system.memory ... it was similar case opened at icinga2 community:

https://community.icinga.com/t/issue-icinga-not-showing-metrics-stored-in-graphite/466/3

example:

-icinga2 will not store graphs: NetScaler OK - perfdata: ns_tcpcurserverconn: 9163 | 'ns.tcpcurserverconn'=9163;;

-icinga2 will store graphs: NetScaler OK - perfdata: ns_tcpcurserverconn: 9163 | 'ns_tcpcurserverconn'=9163;;

After troubleshooting I have made some changes almost on every line where I have $plugin->add_perfdata...

for 1 example changing label inside hash structure and changing the "." to "_" original: $plugin->add_perfdata( label => "'" . $plugin->opts->objectname . ".member_quorum'", value => $member_quorum . '%', min => 0, max => 100, warning => $member_quorum_warning, critical => $member_quorum_critical, );

I have changed to this:

$plugin->add_perfdata( label => "'" . $plugin->opts->objectname . "_member_quorum'", value => $member_quorum . '%', min => 0, max => 100, warning => $member_quorum_warning, critical => $member_quorum_critical, );

After changes has been done, we are getting the graphs. Maybe you should think also to change the format of output.

This plugin is great and thank you for sharing it with community.

KR, Josip

fatslimjoe avatar Mar 31 '20 09:03 fatslimjoe

HI @fatslimjoe,

thanks for your information and research. Changing the labels would break metrics for existing users. I'm not really happy with this, but it seems we need to do this.

Could you share your changes with us with a pull request?

slauger avatar Apr 01 '20 06:04 slauger

Hi @slauger ,

I am getting 403 error. Could you be so kind and check permissions? Otherwise if the problem is on my side I will send you changed script.

BR, Josip

fatslimjoe avatar Apr 06 '20 11:04 fatslimjoe

Hi @fatslimjoe,

I guess this would be your first contribution on GitHub? What exactly have you tried? it's not possible to push directly to this repository. Just create a fork (fork button in the top right), make your changes there and issue a pull request from it.

See also https://opensource.com/article/19/7/create-pull-request-github.

If you need more help, you could also reach me out via Microsoft Teams or Telegram.

slauger avatar Apr 06 '20 11:04 slauger

9a9a1b1 adds the ability to configure a custom separator (e.g. _ instead of the default .).

slauger avatar Sep 11 '20 19:09 slauger

Fixed with v1.6.1.

slauger avatar Jul 10 '21 20:07 slauger

v.1.6.1 still returns invalid performance data values.

[2021-09-10 09:55:46 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: ns.hacurstate=UP;; [2021-09-10 09:55:46 +0200] warning/InfluxdbWriter: Ignoring invalid perfdata value: ns.hacurmasterstate=Primary;;

Could you please have a look at this issue?

cmaile avatar Sep 10 '21 07:09 cmaile

There are no plans to change the current default. Have you tried to use the --seperator='_' switch?

slauger avatar Sep 10 '21 08:09 slauger

The problem is not the label / separator. Nagios / Icinga2 only allows numeric values. Strings are not allowed.

According to the Nagios Plugins Development Guidelines the value has to be in class [-0-9.] and 'a' for the UOM (unit of measurement) is not supported. So 'UP' or 'PRIMARY' also not allowed.

cmaile avatar Sep 10 '21 08:09 cmaile

ef23964 should fix the measurement problem. For the rest i need to find a proper test environment first.

slauger avatar Sep 19 '21 20:09 slauger