appsignal 3.0.11-java → 3.0.15-java
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/.rubocop.yml +1 -2
- data/.semaphore/semaphore.yml +2 -6
- data/CHANGELOG.md +35 -0
- data/build_matrix.yml +2 -6
- data/ext/agent.yml +34 -23
- data/lib/appsignal/cli/diagnose.rb +53 -29
- data/lib/appsignal/config.rb +4 -1
- data/lib/appsignal/hooks/mri.rb +16 -0
- data/lib/appsignal/hooks.rb +1 -0
- data/lib/appsignal/probes/mri.rb +26 -0
- data/lib/appsignal/probes.rb +1 -0
- data/lib/appsignal/version.rb +1 -1
- data/script/{install_lintje → lint_git} +4 -0
- data/spec/lib/appsignal/cli/diagnose_spec.rb +13 -14
- data/spec/lib/appsignal/config_spec.rb +1 -0
- data/spec/lib/appsignal/hooks/mri_spec.rb +23 -0
- data/spec/lib/appsignal/probes/mri_spec.rb +33 -0
- data/spec/support/helpers/dependency_helper.rb +4 -0
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17405da02c2ea9322d8d6687841d717a4cd968349a60c9ff9d11c8d7734bdf84
|
4
|
+
data.tar.gz: a752315ee55123a5f1eb8ff018947462183b06229ae353316bc7d0f6d4b30999
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56b4c11e66949d2a4e6037f4520a523d104105c62f483a5e6b966ec358e44bd3a094747fd2548969304e50e8dffd2494d65da17c6897eda432c5ab4b7a127bb5
|
7
|
+
data.tar.gz: 6f0547e932253c53e0fb05d81ca0e8dae41d1e7789c849daf8a475c74df8b230ceba4a952869578902383be9d3620f66f14ee4b31e5449e2ec9340551dc9f53d
|
data/.rubocop.yml
CHANGED
@@ -13,8 +13,7 @@ AllCops:
|
|
13
13
|
- "gemfiles/vendor/**/*"
|
14
14
|
- "vendor/**/*"
|
15
15
|
- "benchmark.rake"
|
16
|
-
- "
|
17
|
-
- "spec/lib/appsignal/integrations/object_spec.rb"
|
16
|
+
- "spec/integration/diagnose/**/*"
|
18
17
|
DisplayCopNames: true
|
19
18
|
UseCache: true
|
20
19
|
CacheRootDirectory: ./tmp
|
data/.semaphore/semaphore.yml
CHANGED
@@ -11,7 +11,7 @@ agent:
|
|
11
11
|
os_image: ubuntu1804
|
12
12
|
auto_cancel:
|
13
13
|
running:
|
14
|
-
when: branch != 'main' AND branch != 'develop'
|
14
|
+
when: branch != 'main' AND branch != 'develop'
|
15
15
|
global_job_config:
|
16
16
|
env_vars:
|
17
17
|
- name: RUNNING_IN_CI
|
@@ -95,12 +95,8 @@ blocks:
|
|
95
95
|
task:
|
96
96
|
jobs:
|
97
97
|
- name: Git Lint (Lintje)
|
98
|
-
env_vars:
|
99
|
-
- name: LINTJE_VERSION
|
100
|
-
value: 0.3.0
|
101
98
|
commands:
|
102
|
-
- script/
|
103
|
-
- "$HOME/bin/lintje $SEMAPHORE_GIT_COMMIT_RANGE"
|
99
|
+
- script/lint_git
|
104
100
|
- name: Integration tests
|
105
101
|
dependencies:
|
106
102
|
- Validation
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,40 @@
|
|
1
1
|
# AppSignal for Ruby gem Changelog
|
2
2
|
|
3
|
+
## 3.0.15
|
4
|
+
|
5
|
+
- [b40b3b4f](https://github.com/appsignal/appsignal-ruby/commit/b40b3b4f5264c6b69f9515b53806435258c73086) patch - Print String values in the diagnose report surrounded by quotes. Makes it more clear that it's a String value and not a label we print.
|
6
|
+
- [fd6faf16](https://github.com/appsignal/appsignal-ruby/commit/fd6faf16d9feb73c3076c2e1283f6101dc4abf97) patch - Bump agent to 09308fb
|
7
|
+
|
8
|
+
- Update sql_lexer dependency with support for reversed operators in queries.
|
9
|
+
- Add debug level logging to custom metrics in transaction_debug_mode.
|
10
|
+
- Add hostname config option to standalone agent.
|
11
|
+
|
12
|
+
## 3.0.14
|
13
|
+
|
14
|
+
- [c40f6d75](https://github.com/appsignal/appsignal-ruby/commit/c40f6d759e8d516cc47bd55cc83bfcb680fbd1ea) patch - Add minutely probe that collects metrics for :class_serial and :global_constant_state from RubyVM.
|
15
|
+
- [7c18fb6d](https://github.com/appsignal/appsignal-ruby/commit/7c18fb6db0c72f32adb6803ccde957963977008a) patch - Bump agent to 7376537
|
16
|
+
|
17
|
+
- Support JSON PostgreSQL operator in sql_lexer.
|
18
|
+
- Do not strip comments from SQL queries.
|
19
|
+
- [8d7b80ea](https://github.com/appsignal/appsignal-ruby/commit/8d7b80eafc203c295db037f2547f74a2f217f93f) patch - Add configuration option for the AppSignal agent StatsD server. This is on by default, but you can disable it with `enable_statsd: false`.
|
20
|
+
|
21
|
+
## 3.0.13
|
22
|
+
|
23
|
+
- [5c202185](https://github.com/appsignal/appsignal-ruby/commit/5c20218526e026ab436854508ccfe26ca55e8f15) patch - Bump agent to v-0318770.
|
24
|
+
|
25
|
+
- Improve Dokku platform detection. Do not disable host metrics on
|
26
|
+
Dokku.
|
27
|
+
- Report CPU steal metric.
|
28
|
+
|
29
|
+
## 3.0.12
|
30
|
+
|
31
|
+
- [7f3af841](https://github.com/appsignal/appsignal-ruby/commit/7f3af8418f830a7384c10b309e1aeb8ee32c5742) patch - Bump agent to 0f40689
|
32
|
+
|
33
|
+
- Add Apple Darwin ARM alias.
|
34
|
+
- Improve appsignal.h documentation.
|
35
|
+
- Improve transaction debug log for errors.
|
36
|
+
- Fix agent zombie/defunct issue on containers without process reaping.
|
37
|
+
|
3
38
|
## 3.0.11
|
4
39
|
|
5
40
|
- [8e3ec789](https://github.com/appsignal/appsignal-ruby/commit/8e3ec78943acf7c533c3703c3961e19c49dcd5aa) patch - Bump agent to v-891c6b0. Add experimental Apple Silicon M1 ARM64 build.
|
data/build_matrix.yml
CHANGED
@@ -11,7 +11,7 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
|
|
11
11
|
auto_cancel:
|
12
12
|
running:
|
13
13
|
# Ignore main AND develop branch as we want it to build all workflows
|
14
|
-
when: "branch != 'main' AND branch != 'develop'
|
14
|
+
when: "branch != 'main' AND branch != 'develop'"
|
15
15
|
|
16
16
|
global_job_config:
|
17
17
|
env_vars:
|
@@ -93,12 +93,8 @@ semaphore: # Default `.semaphore/semaphore.yml` contents
|
|
93
93
|
task:
|
94
94
|
jobs:
|
95
95
|
- name: Git Lint (Lintje)
|
96
|
-
env_vars:
|
97
|
-
- name: LINTJE_VERSION
|
98
|
-
value: 0.3.0
|
99
96
|
commands:
|
100
|
-
- script/
|
101
|
-
- $HOME/bin/lintje $SEMAPHORE_GIT_COMMIT_RANGE
|
97
|
+
- script/lint_git
|
102
98
|
- name: Integration tests
|
103
99
|
dependencies:
|
104
100
|
- Validation
|
data/ext/agent.yml
CHANGED
@@ -1,83 +1,94 @@
|
|
1
|
+
# DO NOT EDIT
|
2
|
+
# This is a generated file by the `rake ship` family of tasks in the
|
3
|
+
# appsignal-agent repository.
|
4
|
+
# Modifications to this file will be overwritten with the next agent release.
|
1
5
|
---
|
2
|
-
version:
|
6
|
+
version: '09308fb'
|
3
7
|
mirrors:
|
4
8
|
- https://appsignal-agent-releases.global.ssl.fastly.net
|
5
9
|
- https://d135dj0rjqvssy.cloudfront.net
|
6
10
|
triples:
|
7
11
|
x86_64-darwin:
|
8
12
|
static:
|
9
|
-
checksum:
|
13
|
+
checksum: 72e3e84ce59f4b84287f0d72ec567447a28e42fb758eb27dd7676cd7613eb2e9
|
10
14
|
filename: appsignal-x86_64-darwin-all-static.tar.gz
|
11
15
|
dynamic:
|
12
|
-
checksum:
|
16
|
+
checksum: 6ad516e25fe140cc8f13ca2e14494d7d8a696ce1344faf71952f6c6f8b972fa5
|
13
17
|
filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
|
14
18
|
universal-darwin:
|
15
19
|
static:
|
16
|
-
checksum:
|
20
|
+
checksum: 72e3e84ce59f4b84287f0d72ec567447a28e42fb758eb27dd7676cd7613eb2e9
|
17
21
|
filename: appsignal-x86_64-darwin-all-static.tar.gz
|
18
22
|
dynamic:
|
19
|
-
checksum:
|
23
|
+
checksum: 6ad516e25fe140cc8f13ca2e14494d7d8a696ce1344faf71952f6c6f8b972fa5
|
20
24
|
filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
|
21
25
|
aarch64-darwin:
|
22
26
|
static:
|
23
|
-
checksum:
|
27
|
+
checksum: 446da8ea04b9a23de970332fb30fa7aa44b5aa3da371a8bacc240b3c8dfef3df
|
24
28
|
filename: appsignal-aarch64-darwin-all-static.tar.gz
|
25
29
|
dynamic:
|
26
|
-
checksum:
|
30
|
+
checksum: 86d3bffeaa1329628c3dc540c6dcde735e58e2593c769a29f373e38c20657c70
|
27
31
|
filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
|
28
32
|
arm64-darwin:
|
29
33
|
static:
|
30
|
-
checksum:
|
34
|
+
checksum: 446da8ea04b9a23de970332fb30fa7aa44b5aa3da371a8bacc240b3c8dfef3df
|
31
35
|
filename: appsignal-aarch64-darwin-all-static.tar.gz
|
32
36
|
dynamic:
|
33
|
-
checksum:
|
37
|
+
checksum: 86d3bffeaa1329628c3dc540c6dcde735e58e2593c769a29f373e38c20657c70
|
38
|
+
filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
|
39
|
+
arm-darwin:
|
40
|
+
static:
|
41
|
+
checksum: 446da8ea04b9a23de970332fb30fa7aa44b5aa3da371a8bacc240b3c8dfef3df
|
42
|
+
filename: appsignal-aarch64-darwin-all-static.tar.gz
|
43
|
+
dynamic:
|
44
|
+
checksum: 86d3bffeaa1329628c3dc540c6dcde735e58e2593c769a29f373e38c20657c70
|
34
45
|
filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
|
35
46
|
aarch64-linux:
|
36
47
|
static:
|
37
|
-
checksum:
|
48
|
+
checksum: d14ed2b2ba05b7a0a229eaba8ee710c35ff0c8681084ec5d0650fb53dae7b3d3
|
38
49
|
filename: appsignal-aarch64-linux-all-static.tar.gz
|
39
50
|
dynamic:
|
40
|
-
checksum:
|
51
|
+
checksum: 359e45e9d00d1795e6f1d1d2452350effd24a9baefc72cd3bca3631b09d4abc6
|
41
52
|
filename: appsignal-aarch64-linux-all-dynamic.tar.gz
|
42
53
|
i686-linux:
|
43
54
|
static:
|
44
|
-
checksum:
|
55
|
+
checksum: 18cd5ef04e547dcc522faa0a462a00bac27e9bd221bd4dd8e6e2e934d4afd5b7
|
45
56
|
filename: appsignal-i686-linux-all-static.tar.gz
|
46
57
|
dynamic:
|
47
|
-
checksum:
|
58
|
+
checksum: e5edeee4c66cb7e1ff372c3d9eddf5832741bc41b237bbddb2dd2e14c07e076d
|
48
59
|
filename: appsignal-i686-linux-all-dynamic.tar.gz
|
49
60
|
x86-linux:
|
50
61
|
static:
|
51
|
-
checksum:
|
62
|
+
checksum: 18cd5ef04e547dcc522faa0a462a00bac27e9bd221bd4dd8e6e2e934d4afd5b7
|
52
63
|
filename: appsignal-i686-linux-all-static.tar.gz
|
53
64
|
dynamic:
|
54
|
-
checksum:
|
65
|
+
checksum: e5edeee4c66cb7e1ff372c3d9eddf5832741bc41b237bbddb2dd2e14c07e076d
|
55
66
|
filename: appsignal-i686-linux-all-dynamic.tar.gz
|
56
67
|
x86_64-linux:
|
57
68
|
static:
|
58
|
-
checksum:
|
69
|
+
checksum: 98aaa72590d45b8a6aec3d8222468d1875f8fc798f1d891b6424749102d0b0f0
|
59
70
|
filename: appsignal-x86_64-linux-all-static.tar.gz
|
60
71
|
dynamic:
|
61
|
-
checksum:
|
72
|
+
checksum: 0ac7ffcb92c56fbc392d82e8242c32d071b62790414ab7b2b4d1ba967acf4520
|
62
73
|
filename: appsignal-x86_64-linux-all-dynamic.tar.gz
|
63
74
|
x86_64-linux-musl:
|
64
75
|
static:
|
65
|
-
checksum:
|
76
|
+
checksum: 1e2685775d45299e6f6b7439f44586c87fcb6ae14e3eb4f2ed0034b5ffed4d42
|
66
77
|
filename: appsignal-x86_64-linux-musl-all-static.tar.gz
|
67
78
|
dynamic:
|
68
|
-
checksum:
|
79
|
+
checksum: be0619c4b49dd201f4e4d3e4445c4d627c1d1f1453a0e1de03cc9933a4f5a26b
|
69
80
|
filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
|
70
81
|
x86_64-freebsd:
|
71
82
|
static:
|
72
|
-
checksum:
|
83
|
+
checksum: 7ffd025a7dccca6f6730df2146faeb541fb0a4659fb802e88587471cd625ca94
|
73
84
|
filename: appsignal-x86_64-freebsd-all-static.tar.gz
|
74
85
|
dynamic:
|
75
|
-
checksum:
|
86
|
+
checksum: bfa4ca6c793efd081ac6991fae30c470c7edf9a0808726907b607120ba0eb505
|
76
87
|
filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
|
77
88
|
amd64-freebsd:
|
78
89
|
static:
|
79
|
-
checksum:
|
90
|
+
checksum: 7ffd025a7dccca6f6730df2146faeb541fb0a4659fb802e88587471cd625ca94
|
80
91
|
filename: appsignal-x86_64-freebsd-all-static.tar.gz
|
81
92
|
dynamic:
|
82
|
-
checksum:
|
93
|
+
checksum: bfa4ca6c793efd081ac6991fae30c470c7edf9a0808726907b607120ba0eb505
|
83
94
|
filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
|
@@ -143,7 +143,7 @@ module Appsignal
|
|
143
143
|
def transmit_report_to_appsignal
|
144
144
|
puts " Transmitting diagnostics report"
|
145
145
|
transmitter = Transmitter.new(
|
146
|
-
DIAGNOSE_ENDPOINT,
|
146
|
+
ENV.fetch("APPSIGNAL_DIAGNOSE_ENDPOINT", DIAGNOSE_ENDPOINT),
|
147
147
|
Appsignal.config
|
148
148
|
)
|
149
149
|
response = transmitter.transmit(:diagnose => data)
|
@@ -171,11 +171,18 @@ module Appsignal
|
|
171
171
|
puts_value label, value
|
172
172
|
end
|
173
173
|
|
174
|
+
# Prints values as given. Does no formatting on the value
|
174
175
|
def puts_value(label, value, options = {})
|
175
176
|
options[:level] ||= 1
|
176
177
|
puts "#{" " * options[:level]}#{label}: #{value}"
|
177
178
|
end
|
178
179
|
|
180
|
+
# Print values as inspected.
|
181
|
+
# Surrounds Strings in quotes.
|
182
|
+
def puts_format(label, value, options = {})
|
183
|
+
puts_value label, value.inspect, options
|
184
|
+
end
|
185
|
+
|
179
186
|
def configure_appsignal(options)
|
180
187
|
current_path = Dir.pwd
|
181
188
|
initial_config = {}
|
@@ -327,9 +334,18 @@ module Appsignal
|
|
327
334
|
data_section :library do
|
328
335
|
save :language, "ruby"
|
329
336
|
puts_value "Language", "Ruby"
|
330
|
-
|
331
|
-
|
332
|
-
|
337
|
+
|
338
|
+
package_version = Appsignal::VERSION
|
339
|
+
save :package_version, package_version
|
340
|
+
puts_format "Gem version", package_version
|
341
|
+
|
342
|
+
agent_version = Appsignal::Extension.agent_version
|
343
|
+
save :agent_version, agent_version
|
344
|
+
puts_format "Agent version", agent_version
|
345
|
+
|
346
|
+
extension_loaded = Appsignal.extension_loaded
|
347
|
+
save :extension_loaded, extension_loaded
|
348
|
+
puts_format "Extension loaded", extension_loaded
|
333
349
|
end
|
334
350
|
end
|
335
351
|
|
@@ -381,29 +397,29 @@ module Appsignal
|
|
381
397
|
def print_installation_language_report(report)
|
382
398
|
report = report.fetch("language", {})
|
383
399
|
puts " Language details"
|
384
|
-
|
385
|
-
|
400
|
+
puts_format "Implementation", report["implementation"], :level => 2
|
401
|
+
puts_format "Ruby version", report["version"], :level => 2
|
386
402
|
end
|
387
403
|
|
388
404
|
def print_installation_download_report(report)
|
389
405
|
report = report.fetch("download", {})
|
390
406
|
puts " Download details"
|
391
|
-
|
392
|
-
|
407
|
+
puts_format "Download URL", report["download_url"], :level => 2
|
408
|
+
puts_format "Checksum", report["checksum"], :level => 2
|
393
409
|
end
|
394
410
|
|
395
411
|
def print_installation_build_report(report)
|
396
412
|
report = report.fetch("build", {})
|
397
413
|
puts " Build details"
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
414
|
+
puts_format "Install time", report["time"].to_s, :level => 2
|
415
|
+
puts_format "Architecture", report["architecture"], :level => 2
|
416
|
+
puts_format "Target", report["target"], :level => 2
|
417
|
+
puts_format "Musl override", report["musl_override"], :level => 2
|
418
|
+
puts_format "Linux ARM override", report["linux_arm_override"], :level => 2
|
419
|
+
puts_format "Library type", report["library_type"], :level => 2
|
420
|
+
puts_format "Source", report["source"], :level => 2 if report["source"] != "remote"
|
421
|
+
puts_format "Dependencies", report["dependencies"], :level => 2
|
422
|
+
puts_format "Flags", report["flags"], :level => 2
|
407
423
|
end
|
408
424
|
|
409
425
|
def print_installation_host_report(report)
|
@@ -417,24 +433,31 @@ module Appsignal
|
|
417
433
|
rbconfig = RbConfig::CONFIG
|
418
434
|
puts "Host information"
|
419
435
|
data_section :host do
|
420
|
-
|
436
|
+
agent_architecture = Appsignal::System.agent_architecture
|
437
|
+
save :architecture, agent_architecture
|
438
|
+
puts_format "Architecture", agent_architecture
|
421
439
|
|
422
|
-
|
423
|
-
os_label =
|
440
|
+
os = rbconfig["host_os"]
|
441
|
+
os_label = os.inspect
|
442
|
+
os_label = "#{os_label} (Microsoft Windows is not supported.)" if Gem.win_platform?
|
424
443
|
save :os, os
|
425
444
|
puts_value "Operating System", os_label
|
426
445
|
|
427
|
-
|
428
|
-
|
446
|
+
language_version = "#{rbconfig["ruby_version"]}-p#{rbconfig["PATCHLEVEL"]}"
|
447
|
+
save :language_version, language_version
|
448
|
+
puts_format "Ruby version", language_version
|
429
449
|
|
430
|
-
|
431
|
-
save :heroku,
|
450
|
+
heroku = Appsignal::System.heroku?
|
451
|
+
save :heroku, heroku
|
452
|
+
puts_format "Heroku", true if Appsignal::System.heroku?
|
432
453
|
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
454
|
+
root = Process.uid.zero?
|
455
|
+
save :root, root
|
456
|
+
puts_value "Root user", root ? "true (not recommended)" : "false"
|
457
|
+
|
458
|
+
running_in_container = Appsignal::Extension.running_in_container?
|
459
|
+
save :running_in_container, running_in_container
|
460
|
+
puts_format "Running in container", running_in_container
|
438
461
|
end
|
439
462
|
end
|
440
463
|
|
@@ -563,6 +586,7 @@ module Appsignal
|
|
563
586
|
|
564
587
|
unless path[:exists]
|
565
588
|
puts_value "Exists?", path[:exists], :level => 2
|
589
|
+
print_empty_line
|
566
590
|
return
|
567
591
|
end
|
568
592
|
|
data/lib/appsignal/config.rb
CHANGED
@@ -36,6 +36,7 @@ module Appsignal
|
|
36
36
|
:enable_gc_instrumentation => false,
|
37
37
|
:enable_host_metrics => true,
|
38
38
|
:enable_minutely_probes => true,
|
39
|
+
:enable_statsd => true,
|
39
40
|
:ca_file_path => File.expand_path(File.join("../../../resources/cacert.pem"), __FILE__),
|
40
41
|
:dns_servers => [],
|
41
42
|
:files_world_accessible => true,
|
@@ -69,6 +70,7 @@ module Appsignal
|
|
69
70
|
"APPSIGNAL_WORKING_DIRECTORY_PATH" => :working_directory_path,
|
70
71
|
"APPSIGNAL_ENABLE_HOST_METRICS" => :enable_host_metrics,
|
71
72
|
"APPSIGNAL_ENABLE_MINUTELY_PROBES" => :enable_minutely_probes,
|
73
|
+
"APPSIGNAL_ENABLE_STATSD" => :enable_statsd,
|
72
74
|
"APPSIGNAL_HOSTNAME" => :hostname,
|
73
75
|
"APPSIGNAL_CA_FILE_PATH" => :ca_file_path,
|
74
76
|
"APPSIGNAL_DNS_SERVERS" => :dns_servers,
|
@@ -99,6 +101,7 @@ module Appsignal
|
|
99
101
|
APPSIGNAL_ENABLE_GC_INSTRUMENTATION
|
100
102
|
APPSIGNAL_ENABLE_HOST_METRICS
|
101
103
|
APPSIGNAL_ENABLE_MINUTELY_PROBES
|
104
|
+
APPSIGNAL_ENABLE_STATSD
|
102
105
|
APPSIGNAL_FILES_WORLD_ACCESSIBLE
|
103
106
|
APPSIGNAL_INSTRUMENT_NET_HTTP
|
104
107
|
APPSIGNAL_INSTRUMENT_REDIS
|
@@ -290,7 +293,7 @@ module Appsignal
|
|
290
293
|
ENV["_APPSIGNAL_FILES_WORLD_ACCESSIBLE"] = config_hash[:files_world_accessible].to_s
|
291
294
|
ENV["_APPSIGNAL_TRANSACTION_DEBUG_MODE"] = config_hash[:transaction_debug_mode].to_s
|
292
295
|
ENV["_APPSIGNAL_SEND_ENVIRONMENT_METADATA"] = config_hash[:send_environment_metadata].to_s
|
293
|
-
ENV["_APPSIGNAL_ENABLE_STATSD"] =
|
296
|
+
ENV["_APPSIGNAL_ENABLE_STATSD"] = config_hash[:enable_statsd].to_s
|
294
297
|
ENV["_APP_REVISION"] = config_hash[:revision].to_s
|
295
298
|
end
|
296
299
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Appsignal
|
2
|
+
class Hooks
|
3
|
+
# @api private
|
4
|
+
class MriHook < Appsignal::Hooks::Hook
|
5
|
+
register :mri
|
6
|
+
|
7
|
+
def dependencies_present?
|
8
|
+
defined?(::RubyVM)
|
9
|
+
end
|
10
|
+
|
11
|
+
def install
|
12
|
+
Appsignal::Minutely.probes.register :mri, Appsignal::Probes::MriProbe
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/appsignal/hooks.rb
CHANGED
@@ -94,6 +94,7 @@ require "appsignal/hooks/active_job"
|
|
94
94
|
require "appsignal/hooks/active_support_notifications"
|
95
95
|
require "appsignal/hooks/celluloid"
|
96
96
|
require "appsignal/hooks/delayed_job"
|
97
|
+
require "appsignal/hooks/mri"
|
97
98
|
require "appsignal/hooks/net_http"
|
98
99
|
require "appsignal/hooks/passenger"
|
99
100
|
require "appsignal/hooks/puma"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Appsignal
|
2
|
+
module Probes
|
3
|
+
class MriProbe
|
4
|
+
# @api private
|
5
|
+
def self.dependencies_present?
|
6
|
+
defined?(::RubyVM) && ::RubyVM.respond_to?(:stat)
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
Appsignal.logger.debug("Initializing VM probe")
|
11
|
+
end
|
12
|
+
|
13
|
+
# @api private
|
14
|
+
def call
|
15
|
+
stat = RubyVM.stat
|
16
|
+
[:class_serial, :global_constant_state].each do |metric|
|
17
|
+
Appsignal.add_distribution_value(
|
18
|
+
"ruby_vm",
|
19
|
+
stat[metric],
|
20
|
+
:metric => metric
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/appsignal/probes.rb
CHANGED
data/lib/appsignal/version.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
set -eu
|
4
4
|
|
5
|
+
LINTJE_VERSION="0.5.0"
|
6
|
+
|
5
7
|
mkdir -p $HOME/bin
|
6
8
|
cache_key=v1-lintje-$LINTJE_VERSION
|
7
9
|
cache restore $cache_key
|
@@ -16,3 +18,5 @@ else
|
|
16
18
|
tar -xz --directory $HOME/bin
|
17
19
|
cache store $cache_key $HOME/bin/lintje
|
18
20
|
fi
|
21
|
+
|
22
|
+
$HOME/bin/lintje $SEMAPHORE_GIT_COMMIT_RANGE
|
@@ -115,7 +115,6 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
115
115
|
it "logs to the log file" do
|
116
116
|
run
|
117
117
|
log_contents = File.read(config.log_file_path)
|
118
|
-
p log_contents
|
119
118
|
expect(log_contents).to contains_log :info, "Starting AppSignal diagnose"
|
120
119
|
end
|
121
120
|
|
@@ -192,8 +191,8 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
192
191
|
|
193
192
|
it "outputs version numbers" do
|
194
193
|
expect(output).to include \
|
195
|
-
"Gem version: #{Appsignal::VERSION}",
|
196
|
-
"Agent version: #{Appsignal::Extension.agent_version}"
|
194
|
+
"Gem version: \"#{Appsignal::VERSION}\"",
|
195
|
+
"Agent version: \"#{Appsignal::Extension.agent_version}\""
|
197
196
|
end
|
198
197
|
|
199
198
|
it "transmits version numbers in report" do
|
@@ -295,18 +294,18 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
295
294
|
"Installation result",
|
296
295
|
" Status: success",
|
297
296
|
"Language details",
|
298
|
-
" Implementation: #{jruby ? "jruby" : "ruby"}",
|
299
|
-
" Ruby version: #{"#{rbconfig["ruby_version"]}-p#{rbconfig["PATCHLEVEL"]}"}",
|
297
|
+
" Implementation: \"#{jruby ? "jruby" : "ruby"}\"",
|
298
|
+
" Ruby version: \"#{"#{rbconfig["ruby_version"]}-p#{rbconfig["PATCHLEVEL"]}"}\"",
|
300
299
|
"Download details",
|
301
|
-
" Download URL: https://",
|
302
|
-
" Checksum: verified",
|
300
|
+
" Download URL: \"https://",
|
301
|
+
" Checksum: \"verified\"",
|
303
302
|
"Build details",
|
304
|
-
" Install time: 20",
|
305
|
-
" Architecture: #{Appsignal::System.agent_architecture}",
|
306
|
-
" Target: #{Appsignal::System.agent_platform}",
|
303
|
+
" Install time: \"20",
|
304
|
+
" Architecture: \"#{Appsignal::System.agent_architecture}\"",
|
305
|
+
" Target: \"#{Appsignal::System.agent_platform}\"",
|
307
306
|
" Musl override: false",
|
308
307
|
" Linux ARM override: false",
|
309
|
-
" Library type: #{jruby ? "dynamic" : "static"}",
|
308
|
+
" Library type: \"#{jruby ? "dynamic" : "static"}\"",
|
310
309
|
" Dependencies: {",
|
311
310
|
" Flags: {",
|
312
311
|
"Host details",
|
@@ -611,9 +610,9 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
611
610
|
run
|
612
611
|
expect(output).to include \
|
613
612
|
"Host information",
|
614
|
-
"Architecture: #{rbconfig["host_cpu"]}",
|
615
|
-
"Operating System: #{rbconfig["host_os"]}",
|
616
|
-
"Ruby version: #{language_version}"
|
613
|
+
"Architecture: \"#{rbconfig["host_cpu"]}\"",
|
614
|
+
"Operating System: \"#{rbconfig["host_os"]}\"",
|
615
|
+
"Ruby version: \"#{language_version}\""
|
617
616
|
end
|
618
617
|
|
619
618
|
context "when on Microsoft Windows" do
|
@@ -172,6 +172,7 @@ describe Appsignal::Config do
|
|
172
172
|
:enable_gc_instrumentation => false,
|
173
173
|
:enable_host_metrics => true,
|
174
174
|
:enable_minutely_probes => true,
|
175
|
+
:enable_statsd => true,
|
175
176
|
:ca_file_path => File.join(resources_dir, "cacert.pem"),
|
176
177
|
:dns_servers => [],
|
177
178
|
:files_world_accessible => true,
|
@@ -0,0 +1,23 @@
|
|
1
|
+
describe Appsignal::Hooks::MriHook do
|
2
|
+
describe "#dependencies_present?" do
|
3
|
+
subject { described_class.new.dependencies_present? }
|
4
|
+
|
5
|
+
if DependencyHelper.running_jruby?
|
6
|
+
it { is_expected.to be_falsy }
|
7
|
+
else
|
8
|
+
it { is_expected.to be_truthy }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
unless DependencyHelper.running_jruby?
|
13
|
+
context "install" do
|
14
|
+
before do
|
15
|
+
Appsignal::Hooks.load_hooks
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be added to minutely probes" do
|
19
|
+
expect(Appsignal::Minutely.probes[:mri]).to be Appsignal::Probes::MriProbe
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
describe Appsignal::Probes::MriProbe do
|
2
|
+
let(:probe) { described_class.new }
|
3
|
+
|
4
|
+
describe ".dependencies_present?" do
|
5
|
+
if DependencyHelper.running_jruby? || DependencyHelper.running_ruby_2_0?
|
6
|
+
it "should not be present" do
|
7
|
+
expect(described_class.dependencies_present?).to be_falsy
|
8
|
+
end
|
9
|
+
else
|
10
|
+
it "should be present" do
|
11
|
+
expect(described_class.dependencies_present?).to be_truthy
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
unless DependencyHelper.running_jruby? || DependencyHelper.running_ruby_2_0?
|
17
|
+
describe "#call" do
|
18
|
+
it "should track vm metrics" do
|
19
|
+
expect_distribution_value(:class_serial)
|
20
|
+
expect_distribution_value(:global_constant_state)
|
21
|
+
|
22
|
+
probe.call
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def expect_distribution_value(metric)
|
27
|
+
expect(Appsignal).to receive(:add_distribution_value)
|
28
|
+
.with("ruby_vm", kind_of(Numeric), :metric => metric)
|
29
|
+
.and_call_original
|
30
|
+
.once
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsignal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.15
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Robert Beekman
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-11-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -227,6 +227,7 @@ files:
|
|
227
227
|
- lib/appsignal/hooks/delayed_job.rb
|
228
228
|
- lib/appsignal/hooks/excon.rb
|
229
229
|
- lib/appsignal/hooks/mongo_ruby_driver.rb
|
230
|
+
- lib/appsignal/hooks/mri.rb
|
230
231
|
- lib/appsignal/hooks/net_http.rb
|
231
232
|
- lib/appsignal/hooks/passenger.rb
|
232
233
|
- lib/appsignal/hooks/puma.rb
|
@@ -264,6 +265,7 @@ files:
|
|
264
265
|
- lib/appsignal/marker.rb
|
265
266
|
- lib/appsignal/minutely.rb
|
266
267
|
- lib/appsignal/probes.rb
|
268
|
+
- lib/appsignal/probes/mri.rb
|
267
269
|
- lib/appsignal/probes/sidekiq.rb
|
268
270
|
- lib/appsignal/rack/generic_instrumentation.rb
|
269
271
|
- lib/appsignal/rack/rails_instrumentation.rb
|
@@ -285,7 +287,7 @@ files:
|
|
285
287
|
- mono.yml
|
286
288
|
- resources/appsignal.yml.erb
|
287
289
|
- resources/cacert.pem
|
288
|
-
- script/
|
290
|
+
- script/lint_git
|
289
291
|
- spec/.rubocop.yml
|
290
292
|
- spec/lib/appsignal/auth_check_spec.rb
|
291
293
|
- spec/lib/appsignal/capistrano2_spec.rb
|
@@ -324,6 +326,7 @@ files:
|
|
324
326
|
- spec/lib/appsignal/hooks/delayed_job_spec.rb
|
325
327
|
- spec/lib/appsignal/hooks/excon_spec.rb
|
326
328
|
- spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb
|
329
|
+
- spec/lib/appsignal/hooks/mri_spec.rb
|
327
330
|
- spec/lib/appsignal/hooks/net_http_spec.rb
|
328
331
|
- spec/lib/appsignal/hooks/passenger_spec.rb
|
329
332
|
- spec/lib/appsignal/hooks/puma_spec.rb
|
@@ -350,6 +353,7 @@ files:
|
|
350
353
|
- spec/lib/appsignal/logger_spec.rb
|
351
354
|
- spec/lib/appsignal/marker_spec.rb
|
352
355
|
- spec/lib/appsignal/minutely_spec.rb
|
356
|
+
- spec/lib/appsignal/probes/mri_spec.rb
|
353
357
|
- spec/lib/appsignal/probes/sidekiq_spec.rb
|
354
358
|
- spec/lib/appsignal/rack/generic_instrumentation_spec.rb
|
355
359
|
- spec/lib/appsignal/rack/rails_instrumentation_spec.rb
|
@@ -429,7 +433,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
429
433
|
- !ruby/object:Gem::Version
|
430
434
|
version: '0'
|
431
435
|
requirements: []
|
432
|
-
rubygems_version: 3.2.
|
436
|
+
rubygems_version: 3.2.30
|
433
437
|
signing_key:
|
434
438
|
specification_version: 4
|
435
439
|
summary: Logs performance and exception data from your app to appsignal.com
|
@@ -472,6 +476,7 @@ test_files:
|
|
472
476
|
- spec/lib/appsignal/hooks/delayed_job_spec.rb
|
473
477
|
- spec/lib/appsignal/hooks/excon_spec.rb
|
474
478
|
- spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb
|
479
|
+
- spec/lib/appsignal/hooks/mri_spec.rb
|
475
480
|
- spec/lib/appsignal/hooks/net_http_spec.rb
|
476
481
|
- spec/lib/appsignal/hooks/passenger_spec.rb
|
477
482
|
- spec/lib/appsignal/hooks/puma_spec.rb
|
@@ -498,6 +503,7 @@ test_files:
|
|
498
503
|
- spec/lib/appsignal/logger_spec.rb
|
499
504
|
- spec/lib/appsignal/marker_spec.rb
|
500
505
|
- spec/lib/appsignal/minutely_spec.rb
|
506
|
+
- spec/lib/appsignal/probes/mri_spec.rb
|
501
507
|
- spec/lib/appsignal/probes/sidekiq_spec.rb
|
502
508
|
- spec/lib/appsignal/rack/generic_instrumentation_spec.rb
|
503
509
|
- spec/lib/appsignal/rack/rails_instrumentation_spec.rb
|