skylight 0.4.0 → 0.4.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/CHANGELOG.md +11 -0
- data/lib/skylight/cli.rb +13 -2
- data/lib/skylight/config.rb +47 -10
- data/lib/skylight/util/platform.rb +1 -1
- data/lib/skylight/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 766b35710e2c5cc91f17df574ceb6ae2d99c476a
|
4
|
+
data.tar.gz: 9145a148d2b08e8d4c74e283d57cb922664d72b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29c0ae3e1fea0b3e180fdbf6a1db5e9818783f4ea46241101afa0e8d601c9dee6100f7432e89b03f0c6318f981227f160da197f2a17108683919301f95a295c0
|
7
|
+
data.tar.gz: fb823dc8938a5db2292a9ab10aedb2269f00bb180605a55dee8844d12dfbda4f7b722e5b79f1e8d53e34eca641875433efd669f03eb5a6b4bf95749ccd6ac49d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 0.4.1 (November 7, 2014)
|
2
|
+
|
3
|
+
* [BUGFIX] Fix downloading native agent on 32bit systems
|
4
|
+
* [BUGFIX] Support legacy config settings
|
5
|
+
* [FEATURE] Check FS permissions on instrumenter start
|
6
|
+
|
7
|
+
## 0.4.0 (November 3, 2014)
|
8
|
+
|
9
|
+
* Featherweight Agent: lowered CPU and memory overhead
|
10
|
+
* [IMPROVEMENT] Add support for ignoring an endpoint by name
|
11
|
+
|
1
12
|
## 0.3.20 (September 3, 2014)
|
2
13
|
|
3
14
|
* [BUGFIX] Fix app name fetching on Windows for `skylight setup`
|
data/lib/skylight/cli.rb
CHANGED
@@ -70,15 +70,26 @@ repository and deploy from there. You can learn more about the process at:
|
|
70
70
|
begin
|
71
71
|
namefile = Tempfile.new('skylight-app-name')
|
72
72
|
# Windows appears to need double quotes for `rails runner`
|
73
|
-
`rails runner "File.open('#{namefile.path}', 'w') {|f| f.write(Rails.application.class.name) }"`
|
73
|
+
`rails runner "File.open('#{namefile.path}', 'w') {|f| f.write(Rails.application.class.name) rescue '' }"`
|
74
74
|
name = namefile.read.split("::").first.underscore.titleize
|
75
|
+
name = nil if name.empty?
|
76
|
+
rescue => e
|
77
|
+
if ENV['DEBUG']
|
78
|
+
puts e.class.name
|
79
|
+
puts e.to_s
|
80
|
+
puts e.backtrace.join("\n")
|
81
|
+
end
|
75
82
|
ensure
|
76
83
|
namefile.close
|
77
84
|
namefile.unlink
|
78
85
|
end
|
86
|
+
|
87
|
+
unless name
|
88
|
+
warn "Unable to determine Rails application name. Using directory name."
|
89
|
+
end
|
79
90
|
end
|
80
91
|
|
81
|
-
|
92
|
+
unless name
|
82
93
|
name = File.basename(File.expand_path('.')).titleize
|
83
94
|
end
|
84
95
|
|
data/lib/skylight/config.rb
CHANGED
@@ -71,12 +71,11 @@ module Skylight
|
|
71
71
|
"SSL_CERT_PATH" => :'daemon.ssl_cert_path',
|
72
72
|
"SSL_CERT_DIR" => :'daemon.ssl_cert_dir',
|
73
73
|
|
74
|
-
# == Legacy
|
74
|
+
# == Legacy env vars ==
|
75
75
|
#
|
76
|
-
'
|
77
|
-
'
|
78
|
-
|
79
|
-
'TEST_IGNORE_TOKEN' => :'test.ignore_token' }
|
76
|
+
'AGENT_LOCKFILE' => :'agent.lockfile',
|
77
|
+
'AGENT_SOCKFILE_PATH' => :'agent.sockfile_path',
|
78
|
+
}
|
80
79
|
|
81
80
|
# Default values for Skylight configuration keys
|
82
81
|
DEFAULTS = {
|
@@ -130,6 +129,12 @@ module Skylight
|
|
130
129
|
:'daemon.ssl_cert_dir',
|
131
130
|
:'daemon.ssl_cert_path' ]
|
132
131
|
|
132
|
+
# Maps legacy config keys to new config keys
|
133
|
+
LEGACY = {
|
134
|
+
:'agent.sockfile_path' => :'daemon.sockdir_path',
|
135
|
+
:'agent.pidfile_path' => :'agent.lockfile',
|
136
|
+
}
|
137
|
+
|
133
138
|
VALIDATORS = {
|
134
139
|
:'agent.interval' => [lambda { |v, c| Integer === v && v > 0 }, "must be an integer greater than 0"]
|
135
140
|
}
|
@@ -161,7 +166,7 @@ module Skylight
|
|
161
166
|
|
162
167
|
if p
|
163
168
|
p.each do |k, v|
|
164
|
-
@priority[k
|
169
|
+
@priority[Config.remap_key(k)] = v
|
165
170
|
end
|
166
171
|
end
|
167
172
|
end
|
@@ -196,6 +201,11 @@ module Skylight
|
|
196
201
|
self.load(nil, nil, env)
|
197
202
|
end
|
198
203
|
|
204
|
+
def self.remap_key(key)
|
205
|
+
key = key.to_sym
|
206
|
+
LEGACY[key] || key
|
207
|
+
end
|
208
|
+
|
199
209
|
# @api private
|
200
210
|
def self.remap_env(env)
|
201
211
|
ret = {}
|
@@ -246,16 +256,42 @@ module Skylight
|
|
246
256
|
end
|
247
257
|
end
|
248
258
|
|
259
|
+
sockdir_path = self[:'daemon.sockdir_path'] || File.expand_path('.')
|
260
|
+
pidfile_path = self[:'daemon.pidfile_path'] || File.expand_path('skylight.pid', sockdir_path)
|
261
|
+
|
262
|
+
check_permissions(pidfile_path, sockdir_path)
|
263
|
+
|
249
264
|
true
|
250
265
|
end
|
251
266
|
|
267
|
+
def check_permissions(pidfile, sockdir_path)
|
268
|
+
pidfile_root = File.dirname(pidfile)
|
269
|
+
|
270
|
+
FileUtils.mkdir_p pidfile_root
|
271
|
+
FileUtils.mkdir_p sockdir_path
|
272
|
+
|
273
|
+
if File.exist?(pidfile)
|
274
|
+
if !FileTest.writable?(pidfile)
|
275
|
+
raise "`#{pidfile}` not writable. Please set daemon.pidfile_path or daemon.sockdir_path in your config to a writable path."
|
276
|
+
end
|
277
|
+
else
|
278
|
+
if !FileTest.writable?(pidfile_root)
|
279
|
+
raise "`#{pidfile_root}` not writable. Please set daemon.pidfile_path or daemon.sockdir_path in your config to a writable path."
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
unless FileTest.writable?(sockdir_path)
|
284
|
+
raise "`#{sockdir_path}` not writable. Please set daemon.sockdir_path in your config to a writable path."
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
252
288
|
def key?(key)
|
253
|
-
key = key
|
289
|
+
key = Config.remap_key(key)
|
254
290
|
@priority.key?(key) || @values.key?(key)
|
255
291
|
end
|
256
292
|
|
257
293
|
def get(key, default = nil, &blk)
|
258
|
-
key = key
|
294
|
+
key = Config.remap_key(key)
|
259
295
|
|
260
296
|
return @priority[key] if @priority.key?(key)
|
261
297
|
return @values[key] if @values.key?(key)
|
@@ -282,7 +318,7 @@ module Skylight
|
|
282
318
|
set(k, v, key)
|
283
319
|
end
|
284
320
|
else
|
285
|
-
k = key
|
321
|
+
k = Config.remap_key(key)
|
286
322
|
|
287
323
|
if validator = VALIDATORS[k]
|
288
324
|
blk, msg = validator
|
@@ -294,7 +330,7 @@ module Skylight
|
|
294
330
|
end
|
295
331
|
end
|
296
332
|
|
297
|
-
if @regexp &&
|
333
|
+
if @regexp && k =~ @regexp
|
298
334
|
@priority[$1.to_sym] = val
|
299
335
|
end
|
300
336
|
|
@@ -326,6 +362,7 @@ module Skylight
|
|
326
362
|
ret = []
|
327
363
|
|
328
364
|
ENV_TO_KEY.each do |k, v|
|
365
|
+
next if LEGACY[v]
|
329
366
|
c = get(v)
|
330
367
|
# Always need to pass daemon lib_path config even when default
|
331
368
|
if c != DEFAULTS[v] || ALWAYS_INCLUDE_IN_ENV.include?(v)
|
data/lib/skylight/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skylight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tilde, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|