kldockeragent 0.5.9 → 0.6.1
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/VERSION +1 -1
- data/kldockeragent.gemspec +8 -9
- data/lib/kldockeragent/agent.rb +4 -2
- data/lib/kldockeragent/helper.rb +50 -5
- metadata +35 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 523f3483e93ca597947ec856755a1e08f165c416
|
4
|
+
data.tar.gz: 78ec27a13d24964c0b0f9aa07e488fc8c6c7f154
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f0c293ff37b84bee484eb6705fe186c91a5d02193c102144617411c9b7b6bcaaff3854345fd88ac98e2b7d32fa06ff580dd53350350281a190d7024df219ae2
|
7
|
+
data.tar.gz: a441aab80df7f354a5d42e2f393e382b37f73c747183329cf33d49b9d758ca01256427c8cf35e6f16659f5a59cf398ad88a4e7f096df45e65e68ff46e166eb2f
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.1
|
data/kldockeragent.gemspec
CHANGED
@@ -14,14 +14,13 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.required_ruby_version = '~> 2.3'
|
16
16
|
|
17
|
-
s.add_dependency 'thread'
|
18
|
-
s.add_dependency 'json'
|
19
|
-
s.add_dependency 'trollop'
|
20
|
-
s.add_dependency 'webrick'
|
21
|
-
s.add_dependency 'sinatra'
|
22
|
-
s.add_dependency 'openssl'
|
23
|
-
s.add_dependency 'usagewatch'
|
24
|
-
s.add_dependency 'rack-ssl'
|
17
|
+
s.add_dependency 'thread', '~> 0.2'
|
18
|
+
s.add_dependency 'json', '~> 2.0'
|
19
|
+
s.add_dependency 'trollop', '~> 2.1'
|
20
|
+
s.add_dependency 'webrick', '~> 1.3'
|
21
|
+
s.add_dependency 'sinatra', '~> 1.4'
|
22
|
+
s.add_dependency 'openssl', '~> 2.0'
|
23
|
+
s.add_dependency 'usagewatch', '~> 0.0'
|
25
24
|
|
26
|
-
s.add_development_dependency 'rake'
|
25
|
+
s.add_development_dependency 'rake', '~> 10.4'
|
27
26
|
end
|
data/lib/kldockeragent/agent.rb
CHANGED
@@ -33,7 +33,7 @@ module KL
|
|
33
33
|
puts "Starting agent..."
|
34
34
|
|
35
35
|
@@config = opts
|
36
|
-
Process.daemon if opts[:daemon] and not opts[:mock]
|
36
|
+
Process.daemon() if opts[:daemon] and not opts[:mock]
|
37
37
|
begin
|
38
38
|
if not is_windows
|
39
39
|
# trap signal
|
@@ -58,7 +58,9 @@ module KL
|
|
58
58
|
web_server.start
|
59
59
|
|
60
60
|
@@main_enabled = true
|
61
|
-
while @@main_enabled
|
61
|
+
while @@main_enabled
|
62
|
+
sleep(1)
|
63
|
+
end
|
62
64
|
|
63
65
|
rescue Exception => e
|
64
66
|
KL.logger.error "Starting the agent [Failed] #{e}\n#{e.backtrace.join("\n")}"
|
data/lib/kldockeragent/helper.rb
CHANGED
@@ -120,20 +120,67 @@ module KL
|
|
120
120
|
def KL.Request_getDockerListAllApplications
|
121
121
|
filter = '_klac'
|
122
122
|
apps = Array.new
|
123
|
-
query = `docker ps --
|
123
|
+
query = `docker ps --format="{{.ID}}::{{.Names}}::{{.Status}}::{{.Image}}"`
|
124
124
|
query.gsub!(/\r\n?/, "\n")
|
125
125
|
query.each_line do |line|
|
126
126
|
data = line.split('::')
|
127
127
|
apps.push({
|
128
128
|
'id' => data[0],
|
129
|
-
'name' => data[1]
|
129
|
+
'name' => data[1],
|
130
130
|
'status'=>data[2],
|
131
|
-
'image'=>data[3].gsub("\n","")
|
131
|
+
'image'=>data[3].gsub("\n",""),
|
132
|
+
'stats'=>KL.getDockerConfigData(data[0]),
|
133
|
+
'application' => KL.getApplicationInfo(data[1], filter)
|
132
134
|
})
|
133
135
|
end
|
134
136
|
return apps
|
135
137
|
end
|
136
138
|
|
139
|
+
def KL.getDockerConfigData(container)
|
140
|
+
query = `docker stats --no-stream #{container}`
|
141
|
+
query.gsub!(/\r\n?/, "\n")
|
142
|
+
keys = Array.new
|
143
|
+
values = Array.new
|
144
|
+
out = '{'
|
145
|
+
i = 0
|
146
|
+
query.each_line do |line|
|
147
|
+
data = line.split(' ')
|
148
|
+
data.each do |value|
|
149
|
+
if (value.strip != '')
|
150
|
+
if (i == 0)
|
151
|
+
keys.push(value.strip)
|
152
|
+
else
|
153
|
+
values.push(value.strip)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
i = i + 1
|
158
|
+
end
|
159
|
+
i = 0
|
160
|
+
keys.each do |key|
|
161
|
+
if (i > 0)
|
162
|
+
out = out + ','
|
163
|
+
end
|
164
|
+
out = out + "\"#{key}\":\"#{values[i]}\""
|
165
|
+
i = i + 1
|
166
|
+
end
|
167
|
+
out = out + '}'
|
168
|
+
|
169
|
+
return JSON.parse(out)
|
170
|
+
end
|
171
|
+
|
172
|
+
def KL.removeEmptyObjects(json)
|
173
|
+
return json.gsub('{}','""')
|
174
|
+
end
|
175
|
+
|
176
|
+
def KL.getApplicationInfo(name, filter)
|
177
|
+
output = ""
|
178
|
+
if (name.include? filter)
|
179
|
+
output = name.gsub(filter,'')
|
180
|
+
end
|
181
|
+
return output
|
182
|
+
end
|
183
|
+
|
137
184
|
def KL.Request_getSystemInfo
|
138
185
|
usw = Usagewatch
|
139
186
|
info = {}
|
@@ -143,8 +190,6 @@ module KL
|
|
143
190
|
info['diskused_perc'] = usw.uw_diskused_perc.to_s
|
144
191
|
info['cpuused'] = usw.uw_cpuused.to_s
|
145
192
|
info['memused'] = usw.uw_memused.to_s
|
146
|
-
#info['cputop'] = usw.uw_cputop
|
147
|
-
#info['memtop'] = usw.uw_memtop
|
148
193
|
else
|
149
194
|
info['os'] = 'not linux'
|
150
195
|
end
|
metadata
CHANGED
@@ -1,141 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kldockeragent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kytoonlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thread
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: trollop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: webrick
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sinatra
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '1.4'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '1.4'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: openssl
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
89
|
+
version: '2.0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
96
|
+
version: '2.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: usagewatch
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
103
|
+
version: '0.0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rack-ssl
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
110
|
+
version: '0.0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: rake
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- - "
|
115
|
+
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
117
|
+
version: '10.4'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- - "
|
122
|
+
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
124
|
+
version: '10.4'
|
139
125
|
description: Agent with REST Api to send information about docker containers
|
140
126
|
email: admin@kytoonlabs.com
|
141
127
|
executables:
|
@@ -176,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
162
|
version: '0'
|
177
163
|
requirements: []
|
178
164
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.6.8
|
180
166
|
signing_key:
|
181
167
|
specification_version: 4
|
182
168
|
summary: KL DockerAgent
|