New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[dev.icinga.com #8149] graphite writer should pass "-" in host names and "." in perf data #2474
Comments
Updated by gbeutner on 2015-01-07 08:20:59 +00:00
|
Updated by mfriedrich on 2015-01-07 14:22:51 +00:00
|
Updated by mfriedrich on 2015-01-07 14:25:16 +00:00 Similar to #6799 - any change requires metric updates for existing installations. The second change regarding the dots is dangerous, I wouldn't allow that to be configured just by passing macro strings on-the-fly. Rather have a somewhat static format using the template strings in GraphiteWriter configuration itself. |
Updated by mfriedrich on 2015-01-12 12:28:37 +00:00
After careful consideration we've decided not to implement this issue. |
Updated by kgremliza on 2015-01-12 12:34:26 +00:00 This may have been a careful consideration, but not a very wise one, as there seem to be no reason. |
Updated by dnebermann on 2015-03-10 16:28:03 +00:00 At least I could agree that for a host or metric name some characters could result in unexpected results like you named them in Bug #6799 ("!\"#$%&'()*+,./:;<=>?@[\]^`{|}~"). But I wouldn't thought of dash and dot. In case of dot you have to have in mind that the dot is a part of the path component! Which were those considerations? |
Updated by kgremliza on 2015-03-10 16:55:47 +00:00 Hi, exactly. Dot is part of the path component, so its use is totally intentional. Take this output from one of my checks: OK - Version:34 pool-a:ONLINE:33 pool-b:ONLINE:33 rpool:ONLINE:34 | 'pool-a.size'=140GB;;;; 'pool-a.alloc'=95.9GB;;;; 'pool-a.free'=43.6GB;;;; 'pool-a.alloc_pct'=68.50;80;90;;100 'pool-b.size'=99.5GB;;;; 'pool-b.alloc'=38.1GB;;;; 'pool-b.free'=61.4GB;;;; 'pool-b.alloc_pct'=38.29;80;90;;100 'rpool.size'=79.8GB;;;; 'rpool.alloc'=39.2GB;;;; 'rpool.free'=40.5GB;;;; 'rpool.alloc_pct'=49.12;80;90;;100 In a graphite env we have a data tree: Stat..icinga.. We process data in a grafana dashboard with influx queries like: /^$aggr\.$host\.icinga\.check_zpool\.$zpool\.alloc_pct$/ Having a dot in 'rpool.alloc' allows us to run separate queries for different types of data. That’s why we like to have the "." preserved. About the "-". "Allowable characters in a label for a host name are only ASCII letters, digits, and the `-' character." We have systems that use a '-' in their names. We also record data with collectd and fluentd into our influxDB. Stat..icinga.. We simply change the graphite.cpp module to not modify '.' and '-' and we are good. We use this stuff quite a lot and didn't encounter any problems yet. Would be nice to hear your considerations. Regards, Konstantin |
Updated by gbeutner on 2015-03-11 12:14:10 +00:00
I'm re-opening the ticket for now. We'll have to re-evaluate this. :) |
Updated by mfriedrich on 2015-04-29 15:59:03 +00:00 The thing which bugs me the most is upgrade safety for existing installations. I still don't see how this should work. |
Updated by kgremliza on 2015-04-30 08:44:33 +00:00 Yes, now I understand your objections. Btw. We moved to InfluxDB, still using carbon interface, because we were silently loosing data points in carbon. It would be great if we could have a json formatted output that could be pointed to some socket ? Regards, Konstantin |
Updated by mfriedrich on 2015-04-30 09:56:12 +00:00 kgremliza wrote:
You should always keep that in mind that upgrade safety is the primary target when developing software used in production environments :)
From a maintenance point of view, I doubt that. The design decision should've been fixed before going with 2.0.0 stable, but I don't think this is something one should be able to control through a switch. Makes support and development tremendously hard.
Different topic, only InfluxDB related. Open a new issue discussing InfluxDB capabilities please. 0.9.0 is still alpha afaik and not yet fully released. |
Updated by pdf on 2015-05-09 05:29:26 +00:00 I definitely want replacement characters to be configurable.
In reality, it's likely no one will go looking for these preferences unless they have a use-case. For those with a use-case, this is pretty important, and you're unlikely satisfy everyone with a rigid, static set of replacements. |
Updated by tgelf on 2015-06-19 16:19:11 +00:00
|
Updated by tgelf on 2015-06-19 16:33:04 +00:00 I'd really like to see this implemented, ideally together with #9461. But please be careful, do it as explained in the initial description - not as suggested in the subfollowing discussion. Allow for dots in perfdata labels, but continue to escape them in hosts, services and other custom variables eventually configured to be part of the host/service_name_template. Reason: filters in graphite do not play nice with variable dot counts. Immagine this filter:
It would work with this tree:
But it would be nearly impossible to filter a tree looking as follows:
Cheers, |
Updated by mfriedrich on 2015-06-23 13:36:41 +00:00
|
Updated by mfriedrich on 2015-07-02 18:55:05 +00:00
|
Updated by mfriedrich on 2015-09-06 08:30:36 +00:00
This will be resolved as part of #9461 as this feature allows to 1) use dashes in names 2) does not escape dots in perfdata labels. |
Updated by mfriedrich on 2015-09-06 09:05:07 +00:00 |
Updated by mfriedrich on 2015-09-06 09:25:04 +00:00
Applied in changeset b10cb8a. |
This issue has been migrated from Redmine: https://dev.icinga.com/issues/8149
Created by kgremliza on 2015-01-02 11:43:21 +00:00
Assignee: mfriedrich
Status: Resolved (closed on 2015-09-06 09:25:04 +00:00)
Target Version: 2.4.0
Last Update: 2015-09-06 09:25:04 +00:00 (in Redmine)
1, Current implementation of GraphiteWriter::EscapeMetric replaces "
" in final graphite strings. Usually host names ar e part of this. Valid strings like "host-a.icinga.check" will be renamed to "host_a...". "" is a valid hostname char.It should remain intact.
File: lib/perfdata/graphitewriter.cpp
should be:
Changesets
2015-09-06 09:10:49 +00:00 by mfriedrich b10cb8a
2015-10-20 06:06:25 +00:00 by (unknown) b77c9ed
Relations:
The text was updated successfully, but these errors were encountered: