@cryptotaxi247 / netdata-1 / commits / 39c8ad506

added more charts for bind

Costa Tsaousis (ktsaou) committed Feb 3, 2016 at 00:03 UTC 39c8ad506dea7ed69ca5fde220bf22f7146bbc71
2 files changed +71 -3
node.d/named.node.js
+68 -3
@@ -3,6 +3,7 @@
3 // collect statistics from bind (named) v9.10+
4 //
5 // bind statistics documentation at:
6 +// http://jpmens.net/2013/03/18/json-in-bind-9-s-statistics-server/
7 // https://ftp.isc.org/isc/bind/9.10.3/doc/arm/Bv9ARM.ch06.html#statistics
8
9 // example configuration in /etc/netdata/named.conf
@@ -305,6 +306,9 @@ var named = {
306 if(typeof r.qtypes !== 'undefined')
307 service.module.chartFromMembers(service, r.qtypes, 'in_qtypes', 'Bind, Global Incoming Requests by Query Type', 'requests/s', 'named', 'named', netdata.chartTypes.stacked, 2000, netdata.chartAlgorithms.incremental, 1, 1);
308
309 + if(typeof r.sockstats !== 'undefined')
310 + service.module.chartFromMembers(service, r.sockstats, 'in_sockstats', 'Bind, Global Socket Statistics', 'operations/s', 'named', 'named', netdata.chartTypes.line, 2500, netdata.chartAlgorithms.incremental, 1, 1);
311 +
312 if(typeof r.views !== 'undefined') {
313 for( var x in r.views ) {
314 var resolver = r.views[x].resolver;
@@ -399,10 +403,71 @@ var named = {
403 service.end();
404 }
405 }
402 -
403 - if(typeof resolver.qtypes !== 'undefined')
404 - service.module.chartFromMembers(service, resolver.qtypes, 'view_resolver_qtypes_' + x, 'Bind, ' + x + ' View, Requests by Query Type', 'requests/s', 'named', 'named', netdata.chartTypes.stacked, 6000, netdata.chartAlgorithms.incremental, 1, 1);
406 }
407 +
408 + if(typeof resolver.qtypes !== 'undefined')
409 + service.module.chartFromMembers(service, resolver.qtypes, 'view_resolver_qtypes_' + x, 'Bind, ' + x + ' View, Requests by Query Type', 'requests/s', 'named', 'named', netdata.chartTypes.stacked, 6000, netdata.chartAlgorithms.incremental, 1, 1);
410 +
411 + //if(typeof resolver.cache !== 'undefined')
412 + // service.module.chartFromMembers(service, resolver.cache, 'view_resolver_cache_' + x, 'Bind, ' + x + ' View, Cache Entries', 'entries', 'named', 'named', netdata.chartTypes.stacked, 7000, netdata.chartAlgorithms.absolute, 1, 1);
413 +
414 + if(typeof resolver.cachestats['CacheHits'] !== 'undefined' && resolver.cachestats['CacheHits'] > 0) {
415 + var id = 'named_' + service.name + '.view_resolver_cachehits_' + x;
416 + var chart = named.charts[id];
417 +
418 + if(typeof chart === 'undefined') {
419 + chart = {
420 + id: id, // the unique id of the chart
421 + name: '', // the unique name of the chart
422 + title: service.name + ' Bind, ' + x + ' View, Resolver Cache Hits', // the title of the chart
423 + units: 'operations/s', // the units of the chart dimensions
424 + family: 'named', // the family of the chart
425 + category: 'named', // the category of the chart
426 + type: netdata.chartTypes.area, // the type of the chart
427 + priority: 8000, // the priority relative to others in the same family and category
428 + update_every: Math.round(service.update_every / 1000), // the expected update frequency of the chart
429 + dimensions: {
430 + 'CacheHits': {
431 + id: 'CacheHits', // the unique id of the dimension
432 + name: 'hits', // the name of the dimension
433 + algorithm: netdata.chartAlgorithms.incremental,// the id of the netdata algorithm
434 + multiplier: 1, // the multiplier
435 + divisor: 1, // the divisor
436 + hidden: false // is hidden (boolean)
437 + },
438 + 'CacheMisses': {
439 + id: 'CacheMisses', // the unique id of the dimension
440 + name: 'misses', // the name of the dimension
441 + algorithm: netdata.chartAlgorithms.incremental,// the id of the netdata algorithm
442 + multiplier: -1, // the multiplier
443 + divisor: 1, // the divisor
444 + hidden: false // is hidden (boolean)
445 + }
446 + }
447 + };
448 +
449 + chart = service.chart(id, chart);
450 + named.charts[id] = chart;
451 + }
452 +
453 + service.begin(chart);
454 + service.set('CacheHits', resolver.cachestats['CacheHits']);
455 + service.set('CacheMisses', resolver.cachestats['CacheMisses']);
456 + service.end();
457 + }
458 +
459 + // this is wrong, it contains many types of info:
460 + // 1. CacheHits, CacheMisses - incremental (added above)
461 + // 2. QueryHits, QueryMisses - incremental
462 + // 3. DeleteLRU, DeleteTTL - incremental
463 + // 4. CacheNodes, CacheBuckets - absolute
464 + // 5. TreeMemTotal, TreeMemInUse - absolute
465 + // 6. HeapMemMax, HeapMemTotal, HeapMemInUse - absolute
466 + //if(typeof resolver.cachestats !== 'undefined')
467 + // service.module.chartFromMembers(service, resolver.cachestats, 'view_resolver_cachestats_' + x, 'Bind, ' + x + ' View, Cache Statistics', 'requests/s', 'named', 'named', netdata.chartTypes.line, 8000, netdata.chartAlgorithms.incremental, 1, 1);
468 +
469 + //if(typeof resolver.adb !== 'undefined')
470 + // service.module.chartFromMembers(service, resolver.adb, 'view_resolver_adb_' + x, 'Bind, ' + x + ' View, ADB Statistics', 'entries', 'named', 'named', netdata.chartTypes.line, 8500, netdata.chartAlgorithms.absolute, 1, 1);
471 }
472 }
473 }
node.d/node_modules/netdata.js
+3
@@ -164,6 +164,9 @@ var netdata = {
164 return false;
165 }
166
167 + if(typeof value === 'undefined' || value === null)
168 + return false;
169 +
170 if(this._current_chart._dimensions_count !== 0)
171 this.queue('SET ' + dimension + ' = ' + value);
172