elastic-apm 2.4.0 → 2.5.0
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.
Potentially problematic release.
This version of elastic-apm might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Jenkinsfile +2 -1
- data/docs/configuration.asciidoc +11 -0
- data/lib/elastic_apm/agent.rb +10 -0
- data/lib/elastic_apm/config.rb +4 -0
- data/lib/elastic_apm/spies/faraday.rb +5 -0
- data/lib/elastic_apm/transport/filters/secrets_filter.rb +13 -2
- data/lib/elastic_apm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2ef17d6e9c0be751b1eec5e6083560d5eed2c3fbeb044adf361563b1f83ca01
|
4
|
+
data.tar.gz: b2ef8af13b2308b47149e9f9ac413825a5a23827f51af7a78c258848d99a6670
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea7a58ffc1ed6eac693a32d9312f93e05ec47b047819b0420172a26de8a21bc7422a300fd6b405bbf24b8b40900a9ce6b7c97fc53502130eb641837120681420
|
7
|
+
data.tar.gz: b453578df37793a7dfeb6b3383530c652ec477b28303eefe35bf1e7a5ce3ea21fadb82621070c4de6de6d1c3e4acd6bd2023b3d9ec366a688b19ca73c93880e1
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## 2.5.0 (2019-03-01)
|
8
|
+
|
9
|
+
### Added
|
10
|
+
|
11
|
+
- Added the option `active` that will prevent the agent from starting if set to `false` ([#338](https://github.com/elastic/apm-agent-ruby/pull/338))
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
|
15
|
+
- Fix error with `capture_body` and nested request bodies ([#339](https://github.com/elastic/apm-agent-ruby/pull/339))
|
16
|
+
|
7
17
|
## 2.4.0 (2019-02-27)
|
8
18
|
|
9
19
|
### Added
|
data/Jenkinsfile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env groovy
|
2
|
-
@Library('apm@v1.0.
|
2
|
+
@Library('apm@v1.0.9') _
|
3
3
|
|
4
4
|
import co.elastic.matrix.*
|
5
5
|
import groovy.transform.Field
|
@@ -199,6 +199,7 @@ class RubyParallelTaskGenerator extends DefaultParallelTaskGenerator {
|
|
199
199
|
*/
|
200
200
|
public Closure generateStep(x, y){
|
201
201
|
return {
|
202
|
+
steps.sleep steps.randomNumber(min:10, max: 30)
|
202
203
|
steps.node('linux && immutable'){
|
203
204
|
def label = "${tag}:${x}#${y}"
|
204
205
|
try {
|
data/docs/configuration.asciidoc
CHANGED
@@ -119,6 +119,17 @@ ruby -r securerandom -e 'print SecureRandom.uuid'
|
|
119
119
|
|
120
120
|
WARNING: Secret tokens only provide any real security if your APM server use TLS.
|
121
121
|
|
122
|
+
[float]
|
123
|
+
[[config-active]]
|
124
|
+
==== `active`
|
125
|
+
|============
|
126
|
+
| Environment | `Config` key | Default
|
127
|
+
| `ELASTIC_APM_ACTIVE` | `active` | `true`
|
128
|
+
|============
|
129
|
+
|
130
|
+
Whether or not to start the agent.
|
131
|
+
If `active` is `false`, `ElasticAPM.start` will do nothing and all calls to the root API will return `nil`.
|
132
|
+
|
122
133
|
[float]
|
123
134
|
[[config-api-buffer-size]]
|
124
135
|
==== `api_buffer_size`
|
data/lib/elastic_apm/agent.rb
CHANGED
@@ -22,6 +22,7 @@ module ElasticAPM
|
|
22
22
|
@instance
|
23
23
|
end
|
24
24
|
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
25
26
|
def self.start(config)
|
26
27
|
return @instance if @instance
|
27
28
|
|
@@ -30,9 +31,18 @@ module ElasticAPM
|
|
30
31
|
LOCK.synchronize do
|
31
32
|
return @instance if @instance
|
32
33
|
|
34
|
+
unless config.active?
|
35
|
+
config.logger.debug format(
|
36
|
+
'%sAgent disabled with active: false',
|
37
|
+
Logging::PREFIX
|
38
|
+
)
|
39
|
+
return
|
40
|
+
end
|
41
|
+
|
33
42
|
@instance = new(config).start
|
34
43
|
end
|
35
44
|
end
|
45
|
+
# rubocop:enable Metrics/MethodLength
|
36
46
|
|
37
47
|
def self.stop
|
38
48
|
LOCK.synchronize do
|
data/lib/elastic_apm/config.rb
CHANGED
@@ -19,6 +19,7 @@ module ElasticAPM
|
|
19
19
|
|
20
20
|
server_url: 'http://localhost:8200',
|
21
21
|
|
22
|
+
active: true,
|
22
23
|
api_buffer_size: 256,
|
23
24
|
api_request_size: '750kb',
|
24
25
|
api_request_time: '10s',
|
@@ -59,6 +60,7 @@ module ElasticAPM
|
|
59
60
|
'ELASTIC_APM_SERVER_URL' => 'server_url',
|
60
61
|
'ELASTIC_APM_SECRET_TOKEN' => 'secret_token',
|
61
62
|
|
63
|
+
'ELASTIC_APM_ACTIVE' => [:bool, 'active'],
|
62
64
|
'ELASTIC_APM_API_BUFFER_SIZE' => [:int, 'api_buffer_size'],
|
63
65
|
'ELASTIC_APM_API_REQUEST_SIZE' => [:int, 'api_request_size'],
|
64
66
|
'ELASTIC_APM_API_REQUEST_TIME' => 'api_request_time',
|
@@ -131,6 +133,7 @@ module ElasticAPM
|
|
131
133
|
attr_accessor :server_url
|
132
134
|
attr_accessor :secret_token
|
133
135
|
|
136
|
+
attr_accessor :active
|
134
137
|
attr_accessor :api_buffer_size
|
135
138
|
attr_accessor :api_request_size
|
136
139
|
attr_accessor :api_request_time
|
@@ -176,6 +179,7 @@ module ElasticAPM
|
|
176
179
|
attr_accessor :view_paths
|
177
180
|
attr_accessor :root_path
|
178
181
|
|
182
|
+
alias :active? :active
|
179
183
|
alias :capture_body? :capture_body
|
180
184
|
alias :capture_headers? :capture_headers
|
181
185
|
alias :capture_env? :capture_env
|
@@ -17,6 +17,11 @@ module ElasticAPM
|
|
17
17
|
|
18
18
|
host = if url_prefix.is_a?(URI) && url_prefix.host
|
19
19
|
url_prefix.host
|
20
|
+
elsif url.nil?
|
21
|
+
tmp_request = build_request(method) do |req|
|
22
|
+
yield(req) if block_given?
|
23
|
+
end
|
24
|
+
URI(tmp_request.path).host
|
20
25
|
else
|
21
26
|
URI(url).host
|
22
27
|
end
|
@@ -37,15 +37,26 @@ module ElasticAPM
|
|
37
37
|
payload
|
38
38
|
end
|
39
39
|
|
40
|
+
# rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
|
40
41
|
def strip_from!(obj)
|
41
42
|
return unless obj && obj.is_a?(Hash)
|
42
43
|
|
43
44
|
obj.each do |k, v|
|
44
|
-
if filter_key?(k)
|
45
|
-
obj[k] = FILTERED
|
45
|
+
if filter_key?(k)
|
46
|
+
next obj[k] = FILTERED
|
47
|
+
end
|
48
|
+
|
49
|
+
case v
|
50
|
+
when Hash
|
51
|
+
strip_from!(v)
|
52
|
+
when String
|
53
|
+
if filter_value?(v)
|
54
|
+
obj[k] = FILTERED
|
55
|
+
end
|
46
56
|
end
|
47
57
|
end
|
48
58
|
end
|
59
|
+
# rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity
|
49
60
|
|
50
61
|
def filter_key?(key)
|
51
62
|
@key_filters.any? { |regex| key.match regex }
|
data/lib/elastic_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikkel Malmberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|