dns_one 0.4.34 → 0.4.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dns_one/stat.rb +1 -1
- data/lib/dns_one/version.rb +1 -1
- data/util/dnsone_munin +146 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d90cfd8e37c93aa0ffb5110110aabcf5e7a28eea
|
4
|
+
data.tar.gz: bc22d9dd4b5c9aab56a9546bbc5b45a65454862d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d9ac4198ba572f9016c1d42451c812e5cafb288a7a7670d6eaf52427a57551ec2bdc6fac97f3fdd15856d06dd79fdce54ee88248841e1a825833ac639046e28
|
7
|
+
data.tar.gz: d9b7f7d590339a1708f8a513614e8fbed2f0db8c9e4e88f2305a5a8da514423a6e14a89fb145a840422a2c8b04e2f37dbbf86f0c4bd2c3105d110543c9ea64ca
|
data/lib/dns_one/stat.rb
CHANGED
@@ -11,7 +11,7 @@ module DnsOne; class Stat
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def save rcode, req_resource, cache
|
14
|
-
Log.i "saving stat (user: #{ `id -un #{Process.uid}
|
14
|
+
Log.i "saving stat (user: #{ `id -un #{Process.uid}`.strip })"
|
15
15
|
@db.execute(
|
16
16
|
"INSERT INTO responses (time, rcode, req_resource, cache) VALUES (?, ?, ?, ?)",
|
17
17
|
[
|
data/lib/dns_one/version.rb
CHANGED
data/util/dnsone_munin
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
#!/root/.rbenv/shims/ruby
|
2
|
+
|
3
|
+
# Install
|
4
|
+
|
5
|
+
# wget https://raw.githubusercontent.com/tomlobato/dns_one/master/util/dnsone_munin_ -O /usr/local/sbin/dnsone_munin_
|
6
|
+
# chmod 755 /usr/local/sbin/dnsone_munin_
|
7
|
+
# dnsone_munin_ install
|
8
|
+
# /etc/init.d/munin-node restart
|
9
|
+
|
10
|
+
require 'active_support/core_ext/hash/conversions'
|
11
|
+
require 'msgpack'
|
12
|
+
require 'ostruct'
|
13
|
+
require 'resolv'
|
14
|
+
|
15
|
+
class MuninDnsOne
|
16
|
+
|
17
|
+
CACHE_FILE = '/tmp/dns_one_cache'
|
18
|
+
CACHE_EXPIRE = 30
|
19
|
+
|
20
|
+
GRAPHS = {
|
21
|
+
rcode: {
|
22
|
+
vlabel: 'Return Code count',
|
23
|
+
fields: %w(not_imp refused yx_domain yxrr_set nxrr_set not_auth not_zone badvers no_error badsig badkey badtime badmode nx_domain badalg badname form_err serv_fail)
|
24
|
+
},
|
25
|
+
req_resource: {
|
26
|
+
vlabel: 'Request resource count',
|
27
|
+
fields: %w(a aaaa any cname hinfo minfo mx ns ptr soa txt wks)
|
28
|
+
},
|
29
|
+
cache: {
|
30
|
+
vlabel: 'count',
|
31
|
+
fields: {
|
32
|
+
hit: 'Domain found in cache.',
|
33
|
+
miss: 'Domain not found in cache, requiring a backend access.',
|
34
|
+
},
|
35
|
+
},
|
36
|
+
}
|
37
|
+
|
38
|
+
def initialize argv
|
39
|
+
@argv = argv
|
40
|
+
end
|
41
|
+
|
42
|
+
def cli
|
43
|
+
case @argv[0]
|
44
|
+
when 'config'
|
45
|
+
@param = get_params
|
46
|
+
config
|
47
|
+
when 'install'
|
48
|
+
install
|
49
|
+
else
|
50
|
+
@param = get_params
|
51
|
+
run
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def graph
|
58
|
+
GRAPHS[@param.graph]
|
59
|
+
end
|
60
|
+
|
61
|
+
def config
|
62
|
+
puts <<-CONFIG
|
63
|
+
graph_category Passenger
|
64
|
+
graph_title #{@param.graph}
|
65
|
+
graph_vlabel #{graph[:vlabel]}
|
66
|
+
graph_args --base 1000 -l 0
|
67
|
+
graph_info GI
|
68
|
+
|
69
|
+
CONFIG
|
70
|
+
|
71
|
+
graph[:fields].each do |f|
|
72
|
+
k = Array === f ? f[0] : f
|
73
|
+
v = Array === f ? f[1] : f
|
74
|
+
puts "#{k}.label #{v}"
|
75
|
+
end
|
76
|
+
|
77
|
+
exit 0
|
78
|
+
end
|
79
|
+
|
80
|
+
def run
|
81
|
+
get_stats[@param.graph.to_s].each_pair do |k, v|
|
82
|
+
puts "#{k}.value #{v}"
|
83
|
+
end
|
84
|
+
exit 0
|
85
|
+
end
|
86
|
+
|
87
|
+
# Util
|
88
|
+
|
89
|
+
def get_params
|
90
|
+
filename = File.basename __FILE__
|
91
|
+
|
92
|
+
if filename =~ /^dnsone_(#{ GRAPHS.keys.join '|' })/
|
93
|
+
graph_key = $1
|
94
|
+
OpenStruct.new(
|
95
|
+
graph: graph_key.to_sym,
|
96
|
+
)
|
97
|
+
else
|
98
|
+
error "Invalid graph type for filename #{filename}."
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def get_stats
|
103
|
+
if false and File.exists?(CACHE_FILE) and
|
104
|
+
(Time.now - File.stat(CACHE_FILE).ctime) < CACHE_EXPIRE
|
105
|
+
MessagePack.unpack File.open(CACHE_FILE, 'rb').read
|
106
|
+
else
|
107
|
+
stat = fetch_stats
|
108
|
+
File.open(CACHE_FILE, 'wb', 0600).write MessagePack.pack(stat)
|
109
|
+
stat
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def fetch_stats
|
114
|
+
stat = {}
|
115
|
+
section = nil
|
116
|
+
`dns_one stats`.each_line do |l|
|
117
|
+
if l =~ /---\s*(\S+)\s*---/
|
118
|
+
section = $1
|
119
|
+
elsif l =~ /^(.*?)\s+(.*)$/
|
120
|
+
key = $1.to_sym
|
121
|
+
val = $2.strip
|
122
|
+
stat[section] ||= {}
|
123
|
+
stat[section][key] = val
|
124
|
+
end
|
125
|
+
end
|
126
|
+
stat
|
127
|
+
end
|
128
|
+
|
129
|
+
def install
|
130
|
+
links = []
|
131
|
+
GRAPHS.keys.each do |graph_key|
|
132
|
+
links << graph_key
|
133
|
+
end
|
134
|
+
target = File.expand_path(__FILE__)
|
135
|
+
links.each do |link|
|
136
|
+
system "ln -s #{target} /etc/munin/plugins/dnsone_#{link}"
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def error msg
|
141
|
+
STDERR.puts msg
|
142
|
+
exit 1
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
MuninDnsOne.new(ARGV).cli
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dns_one
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Lobato
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- lib/dns_one/zone_search.rb
|
178
178
|
- util/benchmark-cache_store.rb
|
179
179
|
- util/dns_one.service
|
180
|
+
- util/dnsone_munin
|
180
181
|
- util/sample_conf.yml
|
181
182
|
homepage: https://tomlobato.github.io/dns_one/
|
182
183
|
licenses:
|