plain_apm 0.9.8 → 0.10.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/ext/object_tracing/object_tracing.c +11 -1
- data/lib/plain_apm/config.rb +2 -2
- data/lib/plain_apm/deploy_tracking.rb +1 -1
- data/lib/plain_apm/event_attributes.rb +3 -3
- data/lib/plain_apm/extensions/exceptions/rack.rb +3 -3
- data/lib/plain_apm/hooks/active_support_subscriber.rb +3 -0
- data/lib/plain_apm/hooks/error_reporter.rb +3 -3
- data/lib/plain_apm/transport.rb +2 -1
- data/lib/plain_apm/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 380c7c5a078b9d9b650e66ea7daa26109e3a028af6733c845da95784a9848351
|
4
|
+
data.tar.gz: 4e72c60ed9f5bf063802d27c8b98fe63b236d74eed7b06e9c9aa0bcc0f0d175d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb81d0e597f83f1fe6389fc1732a7c165d69d3e3369ac2b73152de6566ef5c06e1002d910b4dc6b46e0f69b44c4bfb72c33540b62910f3dbc6db8b0b023655fb
|
7
|
+
data.tar.gz: 4a371c933a3dae7778c80b1f01479048194e60f61929b7fab3eff0b5dffc69144df419f1b92f65545a16a014dade2d4bb318ec33480bd4b885eb02a0d620b074
|
@@ -1,14 +1,19 @@
|
|
1
1
|
#include <ruby/ruby.h>
|
2
2
|
#include <ruby/debug.h>
|
3
3
|
|
4
|
+
/* Pre-ruby 3.1 compatibility */
|
5
|
+
#ifndef RBOOL
|
6
|
+
#define RBOOL(v) ((v) ? Qtrue : Qfalse)
|
7
|
+
#endif
|
8
|
+
|
4
9
|
static VALUE rb_mPlainApm = Qnil;
|
5
10
|
static VALUE rb_mObjTracing = Qnil;
|
6
11
|
|
7
12
|
static __thread uint64_t allocated_objects = 0;
|
8
13
|
|
9
|
-
#ifdef OBJECT_TRACING_ENABLED
|
10
14
|
static int object_tracing_active = 0;
|
11
15
|
|
16
|
+
#ifdef OBJECT_TRACING_ENABLED
|
12
17
|
static void track_thread_allocated_objects(VALUE tpval, void *data) {
|
13
18
|
allocated_objects++;
|
14
19
|
}
|
@@ -18,6 +23,10 @@ static VALUE total_thread_allocated_objects(VALUE self) {
|
|
18
23
|
return ULL2NUM(allocated_objects);
|
19
24
|
}
|
20
25
|
|
26
|
+
static VALUE thread_allocated_objects_tracing_enabled(VALUE self) {
|
27
|
+
return RBOOL(object_tracing_active);
|
28
|
+
}
|
29
|
+
|
21
30
|
void Init_object_tracing(void) {
|
22
31
|
rb_mPlainApm = rb_define_module("PlainApm");
|
23
32
|
rb_gc_register_address(&rb_mPlainApm);
|
@@ -26,6 +35,7 @@ void Init_object_tracing(void) {
|
|
26
35
|
rb_gc_register_address(&rb_mObjTracing);
|
27
36
|
|
28
37
|
rb_define_singleton_method(rb_mObjTracing, "total_thread_allocated_objects", total_thread_allocated_objects, 0);
|
38
|
+
rb_define_singleton_method(rb_mObjTracing, "thread_allocated_objects_tracing_enabled", thread_allocated_objects_tracing_enabled, 0);
|
29
39
|
|
30
40
|
#ifdef OBJECT_TRACING_ENABLED
|
31
41
|
/* Ensure the tracepoint is attached only once. */
|
data/lib/plain_apm/config.rb
CHANGED
@@ -19,11 +19,11 @@ module PlainApm
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def key_present?
|
22
|
-
ENV["PLAIN_APM_APP_KEY"] != ""
|
22
|
+
ENV["PLAIN_APM_APP_KEY"].to_s != ""
|
23
23
|
end
|
24
24
|
|
25
25
|
def production?
|
26
|
-
(ENV["RAILS_ENV"] || ENV["RACK_ENV"]) == "production"
|
26
|
+
(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || ENV["APP_ENV"]) == "production"
|
27
27
|
end
|
28
28
|
|
29
29
|
def interactive?
|
@@ -17,9 +17,9 @@ module PlainApm
|
|
17
17
|
].freeze
|
18
18
|
|
19
19
|
def attributes_from_exception(e, context, error_source)
|
20
|
-
|
20
|
+
name = "exception"
|
21
21
|
|
22
|
-
return [
|
22
|
+
return [name, nil] if IGNORED_EXCEPTIONS.include?(e.class.name)
|
23
23
|
|
24
24
|
attrs = context_attributes
|
25
25
|
|
@@ -67,7 +67,7 @@ module PlainApm
|
|
67
67
|
|
68
68
|
add_trace_attributes(attrs)
|
69
69
|
|
70
|
-
[
|
70
|
+
[name, attrs]
|
71
71
|
end
|
72
72
|
|
73
73
|
def attributes_from_notification(event)
|
@@ -25,12 +25,12 @@ module PlainApm
|
|
25
25
|
private
|
26
26
|
|
27
27
|
def report_exception(e, env)
|
28
|
-
|
28
|
+
name, event = attributes_from_exception(e, {env: env}, nil)
|
29
29
|
|
30
30
|
return if event.nil?
|
31
31
|
|
32
|
-
event[:source] =
|
33
|
-
event[:name] =
|
32
|
+
event[:source] = "rack_middleware"
|
33
|
+
event[:name] = name
|
34
34
|
|
35
35
|
PlainApm.agent.collect(event)
|
36
36
|
end
|
@@ -23,12 +23,12 @@ module PlainApm
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def collect(e, handled:, severity:, context: {}, source: nil)
|
26
|
-
|
26
|
+
name, event = attributes_from_exception(e, context, source)
|
27
27
|
|
28
28
|
return if event.nil?
|
29
29
|
|
30
|
-
event[:source] =
|
31
|
-
event[:name] =
|
30
|
+
event[:source] = "error_reporter"
|
31
|
+
event[:name] = name
|
32
32
|
|
33
33
|
::PlainApm.agent.collect(event)
|
34
34
|
end
|
data/lib/plain_apm/transport.rb
CHANGED
data/lib/plain_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plain_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PlainAPM Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
158
|
requirements: []
|
159
|
-
rubygems_version: 3.3.
|
159
|
+
rubygems_version: 3.3.27
|
160
160
|
signing_key:
|
161
161
|
specification_version: 4
|
162
162
|
summary: PlainAPM agent
|