FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
netdata/python.d/nsd.chart.py at master · devanthonyp/netdata · GitHub
devanthonyp
/
netdata
Public
forked from
netdata/netdata
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
netdata
/
python.d
/
nsd.chart.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
94 lines (85 loc) · 3.57 KB
Breadcrumbs
netdata
/
python.d
/
nsd.chart.py
Copy path
File metadata and controls
94 lines (85 loc) · 3.57 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# -*- coding: utf-8 -*-
# Description: NSD `nsd-control stats_noreset` netdata python.d module
# Author: <383c57 at gmail.com>
# SPDX-License-Identifier: GPL-3.0+
import
re
from
bases
.
FrameworkServices
.
ExecutableService
import
ExecutableService
# default module values (can be overridden per job in `config`)
priority
=
60000
retries
=
5
update_every
=
30
# charts order (can be overridden if you want less charts, or different order)
ORDER
=
[
'queries'
,
'zones'
,
'protocol'
,
'type'
,
'transfer'
,
'rcode'
]
CHARTS
=
{
'queries'
: {
'options'
: [
None
,
"queries"
,
'queries/s'
,
'queries'
,
'nsd.queries'
,
'line'
],
'lines'
: [
[
'num_queries'
,
'queries'
,
'incremental'
],]},
'zones'
: {
'options'
: [
None
,
"zones"
,
'zones'
,
'zones'
,
'nsd.zones'
,
'stacked'
],
'lines'
: [
[
'zone_master'
,
'master'
,
'absolute'
],
[
'zone_slave'
,
'slave'
,
'absolute'
],]},
'protocol'
: {
'options'
: [
None
,
"protocol"
,
'queries/s'
,
'protocol'
,
'nsd.protocols'
,
'stacked'
],
'lines'
: [
[
'num_udp'
,
'udp'
,
'incremental'
],
[
'num_udp6'
,
'udp6'
,
'incremental'
],
[
'num_tcp'
,
'tcp'
,
'incremental'
],
[
'num_tcp6'
,
'tcp6'
,
'incremental'
],]},
'type'
: {
'options'
: [
None
,
"query type"
,
'queries/s'
,
'query type'
,
'nsd.type'
,
'stacked'
],
'lines'
: [
[
'num_type_A'
,
'A'
,
'incremental'
],
[
'num_type_NS'
,
'NS'
,
'incremental'
],
[
'num_type_CNAME'
,
'CNAME'
,
'incremental'
],
[
'num_type_SOA'
,
'SOA'
,
'incremental'
],
[
'num_type_PTR'
,
'PTR'
,
'incremental'
],
[
'num_type_HINFO'
,
'HINFO'
,
'incremental'
],
[
'num_type_MX'
,
'MX'
,
'incremental'
],
[
'num_type_NAPTR'
,
'NAPTR'
,
'incremental'
],
[
'num_type_TXT'
,
'TXT'
,
'incremental'
],
[
'num_type_AAAA'
,
'AAAA'
,
'incremental'
],
[
'num_type_SRV'
,
'SRV'
,
'incremental'
],
[
'num_type_TYPE255'
,
'ANY'
,
'incremental'
],]},
'transfer'
: {
'options'
: [
None
,
"transfer"
,
'queries/s'
,
'transfer'
,
'nsd.transfer'
,
'stacked'
],
'lines'
: [
[
'num_opcode_NOTIFY'
,
'NOTIFY'
,
'incremental'
],
[
'num_type_TYPE252'
,
'AXFR'
,
'incremental'
],]},
'rcode'
: {
'options'
: [
None
,
"return code"
,
'queries/s'
,
'return code'
,
'nsd.rcode'
,
'stacked'
],
'lines'
: [
[
'num_rcode_NOERROR'
,
'NOERROR'
,
'incremental'
],
[
'num_rcode_FORMERR'
,
'FORMERR'
,
'incremental'
],
[
'num_rcode_SERVFAIL'
,
'SERVFAIL'
,
'incremental'
],
[
'num_rcode_NXDOMAIN'
,
'NXDOMAIN'
,
'incremental'
],
[
'num_rcode_NOTIMP'
,
'NOTIMP'
,
'incremental'
],
[
'num_rcode_REFUSED'
,
'REFUSED'
,
'incremental'
],
[
'num_rcode_YXDOMAIN'
,
'YXDOMAIN'
,
'incremental'
],]}
}
class
Service
(
ExecutableService
):
def
__init__
(
self
,
configuration
=
None
,
name
=
None
):
ExecutableService
.
__init__
(
self
,
configuration
=
configuration
,
name
=
name
)
self
.
command
=
"nsd-control stats_noreset"
self
.
order
=
ORDER
self
.
definitions
=
CHARTS
self
.
regex
=
re
.
compile
(
r'([A-Za-z0-9.]+)=(\d+)'
)
def
_get_data
(
self
):
lines
=
self
.
_get_raw_data
()
if
not
lines
:
return
None
r
=
self
.
regex
stats
=
dict
((
k
.
replace
(
'.'
,
'_'
),
int
(
v
))
for
k
,
v
in
r
.
findall
(
''
.
join
(
lines
)))
stats
.
setdefault
(
'num_opcode_NOTIFY'
,
0
)
stats
.
setdefault
(
'num_type_TYPE252'
,
0
)
stats
.
setdefault
(
'num_type_TYPE255'
,
0
)
return
stats
Back
|
FazBrowse Home
|
New Git URL