Closed icinga-migration closed 6 years ago
Updated by gbeutner on 2013-11-11 07:35:41 +00:00
Updated by mfriedrich on 2013-11-11 09:28:32 +00:00
Updated by mfriedrich on 2013-11-12 16:59:28 +00:00
Updated by mfriedrich on 2013-12-03 08:21:49 +00:00
Updated by mfriedrich on 2013-12-18 10:24:32 +00:00
Updated by mfriedrich on 2014-02-06 10:12:27 +00:00
Updated by mfriedrich on 2014-02-06 12:43:18 +00:00
Updated by mfriedrich on 2014-03-21 17:29:16 +00:00
Updated by mfriedrich on 2014-06-06 09:01:27 +00:00
Updated by mfriedrich on 2014-07-30 12:33:26 +00:00
Updated by mfriedrich on 2014-08-05 12:19:51 +00:00
Updated by gbeutner on 2014-09-17 09:12:24 +00:00
Updated by tobiasvdk on 2014-10-08 11:13:17 +00:00
Is there any schedule for this feature?
Updated by mfriedrich on 2015-01-12 08:59:50 +00:00
No. Feel free to provide a patch.
Updated by mfriedrich on 2015-01-22 09:50:23 +00:00
Updated by jyoung15 on 2015-03-01 16:17:34 +00:00
This proposed patch does not implement perfdata range support, however it modifies the PerfdataValue::Parse function to ignore "invalid" warn, crit, min, and max values in the legacy Icinga/Nagios perfdata format ('label'=value[UOM];[warn];[crit];[min];[max]). This function is currently only used to feed data to GraphiteWriter and OpenTsdbWriter where ranges would not make much sense anyway. This patch will allow the most important part of the perfdata (the actual metric values) to be sent to Graphite/OpenTsdb instead of disregarding this data and not graphing it.
Here are some other notes:
Of course please thoroughly review the proposed changes for any negative impact or improper coding standards. I have been running this in a test environment for several days with no known issues.
Updated by mfriedrich on 2015-03-02 12:39:02 +00:00
Updated by mfriedrich on 2015-06-22 09:16:27 +00:00
Updated by mfriedrich on 2015-06-22 12:29:26 +00:00
Updated by mfriedrich on 2015-06-23 08:10:11 +00:00
Updated by mfriedrich on 2015-06-23 13:36:38 +00:00
Updated by mfriedrich on 2016-04-25 08:39:39 +00:00
Updated by gbeutner on 2016-05-24 13:41:13 +00:00
Updated by mfriedrich on 2016-09-07 09:34:42 +00:00
https://github.com/lingej/pnp4nagios/blob/master/scripts/process\_perfdata.pl.in#L512
Updated by mfriedrich on 2016-12-08 00:51:15 +00:00
This proposed patch does not implement perfdata range support, however it modifies the PerfdataValue::Parse function to ignore "invalid" warn, crit, min, and max values in the legacy Icinga/Nagios perfdata format ('label'=value[UOM];[warn];[crit];[min];[max]).
Please, can you clarify on what do you mean by "legacy" and what's the current way of sending perf data then?
Thank you.
Calling it legacy is wrong as there were ideas about replacing/adjusting/adding but nothing was brought further than this initial step. So calling it the "old fashioned way" would be better.
Only other way I know is shipping the perfdata by the plugin instead of Icinga, one example would be check_interfacetable_v3t which can create perfdata files on its own, but I could also imagine plugins exist which can directly send to graphite/influxdb/opentsdb.
Hello @dgoetz,
thank you for your reply.
Only other way I know is shipping the perfdata by the plugin instead of Icinga, one example would be check_interfacetable_v3t which can create perfdata files on its own
I'm sorry, but I don't follow. Please, could you point me to some documentation, even Nagios one. My problem is that icinga2 doesn't correctly interpret perf data from plugins. Therefore, I don't understand how shipping perf data "differently" would solve the issue at hand. But if it does, I'm happy to consider it as an option.
I could also imagine plugins exist which can directly send to graphite/influxdb/opentsdb
So could I, but why? I want perf data and their interpretation in web UI. In icinga's web UI, to be specific. I'm quite happy with how things are interpreted now, more or less. Except for the fact that it's not 100% correctly supported and obviously there are some bugs.
Can you please move the discussion away from this ticket? This is solely for parsing performance data ranges which is not yet implemented.
@dnsmichi, no problem. I'll create issues for other bugs I've encountered. I just wanted clarification whether perf data are or are not supported by icinga2 or what's the way forward.
For the time being, there's no solution for this. Will be taken into account if we ever create our own plugin api specification.
This issue has been migrated from Redmine: https://dev.icinga.com/issues/5043
Created by gbeutner on 2013-11-09 09:05:30 +00:00
Assignee: (none) Status: New Target Version: Backlog Last Update: 2016-12-08 00:51:15 +00:00 (in Redmine)
Problem
Performance data ranges are not properly parsed.
The following example from 'check_procs':
would mean
Specification
Perfdata Value
Threshold Ranges
Additional Resources
https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT https://www.monitoring-plugins.org/doc/guidelines.html#AEN200
Proposal
Find a way to store threshold ranges inside the PerfdataValue class. Evaluate whether these attribute names make sense for inclusive and negative infinity.
Additional thoughts
Graphios doesn't support threshold ranges. https://github.com/shawn-sterling/graphios/blob/master/graphios.py#L351
inGraph parses the ranges https://github.com/NETWAYS/ingraph/blob/master/ingraph/parser.py#L58 and stores upper and lower and additional the type ("inside") - the latter would become cumbersome as time series field in graphite. https://github.com/NETWAYS/ingraph/blob/master/ingraph/parser.py#L132 https://github.com/NETWAYS/ingraph/blob/master/ingraph/parser.py#L224 https://github.com/NETWAYS/ingraph/blob/master/ingraph/model.py#L855
This obviously fits into an RDBMS backend, but not Graphite or any other time series database.
Changesets
2015-03-02 12:26:33 +00:00 by jyoung15 af72a60c4b04fb480715c174bb2508b65c38af63
2015-03-02 12:52:41 +00:00 by jyoung15 faf6ce1a5f2eb5468e6ebb5db4f7fd08419d2c35
Relations: