appsignal 5.0.0 → 5.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 459cae3bb5491668473a73e6178f0495d4dd169ed013c526b474a48d1467629c
4
- data.tar.gz: 98d1d112ded643cc555d7e54b1dd14d3a4d564db310386383e772b298697ba4d
3
+ metadata.gz: e73ebf33ae2f5bad56406790ab256648143d073881b1a3d14d8ca09171d36c0e
4
+ data.tar.gz: 36cee0453b823e884447de04c004e02ee6a74981a6c4f2ee82e6b53dcecbf9e0
5
5
  SHA512:
6
- metadata.gz: c4f1d9d2c7d9f4046bd80299494a2b1f31ab779e9e8f786e8144129fe31a59849731d18b4f16a1ebe9bfea89e3e27376204b6b162c37467ad445c9d2c8c8df8c
7
- data.tar.gz: b727d0b3c91e179f332b198107d0bb8b4ab2bcfab929483b017744cd57746b5d2291674447d317fe305856e05df583af2d07bf7a9d61f329bbccc9f806e8beab
6
+ metadata.gz: 77e642259af8ea8f4539872524d3a60a01ea72bdcdc45ec344d89caa55428495b21366574e3749116dd52008a7482961d3fd72db50145fc04e2ac09f230ece8c
7
+ data.tar.gz: 5fcb6ca575a989b8123f2ba225036520fbe74ff88cbcdec64b3b12eb919aaff35adc3c0c9f10e331be6a7764d4d238c185c2cd7a546d9b3459278d99721531ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 5.0.1
4
+
5
+ _Published on 2026-10-02._
6
+
7
+ ### Added
8
+
9
+ - In collector mode, also report the `response_status` counter with a `service` tag. Response statuses can then be graphed per service when several services report to one app. (patch [51981add](https://github.com/appsignal/appsignal-ruby/commit/51981add4c006403b0afddab78cfb608a32ec2c3))
10
+
11
+ ### Fixed
12
+
13
+ - Improve handling of the extension internal queue when full. (patch [78123581](https://github.com/appsignal/appsignal-ruby/commit/7812358175fc1e591e7f29026cd16df6db70e589))
14
+ - Fix issues in the extension that lead to gaps in data reporting. (patch [f3c72857](https://github.com/appsignal/appsignal-ruby/commit/f3c72857a00e3fb4ad8b9760f53d14a85fb32ed2))
15
+ - In collector mode, report allocation counts and queue durations per service and namespace. This fixes an issue where these metrics were reported by namespace alone, causing the "Performance" > "Allocations" page to link to performance pages that did not exist. (patch [51981add](https://github.com/appsignal/appsignal-ruby/commit/51981add4c006403b0afddab78cfb608a32ec2c3))
16
+
3
17
  ## 5.0.0
4
18
 
5
19
  _Published on 2026-09-28._
data/ext/agent.rb CHANGED
@@ -6,7 +6,7 @@
6
6
  # Modifications to this file will be overwritten with the next agent release.
7
7
 
8
8
  APPSIGNAL_AGENT_CONFIG = {
9
- "version" => "0.37.1",
9
+ "version" => "0.37.3",
10
10
  "mirrors" => [
11
11
  "https://d135dj0rjqvssy.cloudfront.net",
12
12
  "https://appsignal-agent-releases.global.ssl.fastly.net"
@@ -14,131 +14,131 @@ APPSIGNAL_AGENT_CONFIG = {
14
14
  "triples" => {
15
15
  "x86_64-darwin" => {
16
16
  "static" => {
17
- "checksum" => "a29834f6a305a0baedbf5bd3f25c28feca45b3a175029d655ece7224515c206a",
17
+ "checksum" => "283afa4ec2222108c994cf3c943357f649a9e09a200c0b3b06d33b9fefa8487f",
18
18
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
19
19
  },
20
20
  "dynamic" => {
21
- "checksum" => "7450ed4679d7ca425d7fb7563931a9ca73365ac03ac62ace1880d0a5de2fe06d",
21
+ "checksum" => "a8738c9de75f751a3ed09fbe8129d163002ad1c036a37f47089629289a60ae3b",
22
22
  "filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
23
23
  }
24
24
  },
25
25
  "universal-darwin" => {
26
26
  "static" => {
27
- "checksum" => "a29834f6a305a0baedbf5bd3f25c28feca45b3a175029d655ece7224515c206a",
27
+ "checksum" => "283afa4ec2222108c994cf3c943357f649a9e09a200c0b3b06d33b9fefa8487f",
28
28
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
29
29
  },
30
30
  "dynamic" => {
31
- "checksum" => "7450ed4679d7ca425d7fb7563931a9ca73365ac03ac62ace1880d0a5de2fe06d",
31
+ "checksum" => "a8738c9de75f751a3ed09fbe8129d163002ad1c036a37f47089629289a60ae3b",
32
32
  "filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
33
33
  }
34
34
  },
35
35
  "aarch64-darwin" => {
36
36
  "static" => {
37
- "checksum" => "53198c2f10fb56565ceece6632ec0cd38f30e7fef3df79094f11381f4b07f8a6",
37
+ "checksum" => "201b0d402c8685492899ba5cbd4d1ff3d6389d0b5fe2cc5ff62cd9a1f4a57f19",
38
38
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
39
39
  },
40
40
  "dynamic" => {
41
- "checksum" => "18fd2861c72fdb1ed5261cad90667923d0b2299ebd3511114d10416ecbd9998c",
41
+ "checksum" => "85f471e3da1fe69b9a900ed0a907aaf8bffdc4ada978809c8427704e7b40276c",
42
42
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
43
43
  }
44
44
  },
45
45
  "arm64-darwin" => {
46
46
  "static" => {
47
- "checksum" => "53198c2f10fb56565ceece6632ec0cd38f30e7fef3df79094f11381f4b07f8a6",
47
+ "checksum" => "201b0d402c8685492899ba5cbd4d1ff3d6389d0b5fe2cc5ff62cd9a1f4a57f19",
48
48
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
49
49
  },
50
50
  "dynamic" => {
51
- "checksum" => "18fd2861c72fdb1ed5261cad90667923d0b2299ebd3511114d10416ecbd9998c",
51
+ "checksum" => "85f471e3da1fe69b9a900ed0a907aaf8bffdc4ada978809c8427704e7b40276c",
52
52
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
53
53
  }
54
54
  },
55
55
  "arm-darwin" => {
56
56
  "static" => {
57
- "checksum" => "53198c2f10fb56565ceece6632ec0cd38f30e7fef3df79094f11381f4b07f8a6",
57
+ "checksum" => "201b0d402c8685492899ba5cbd4d1ff3d6389d0b5fe2cc5ff62cd9a1f4a57f19",
58
58
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
59
59
  },
60
60
  "dynamic" => {
61
- "checksum" => "18fd2861c72fdb1ed5261cad90667923d0b2299ebd3511114d10416ecbd9998c",
61
+ "checksum" => "85f471e3da1fe69b9a900ed0a907aaf8bffdc4ada978809c8427704e7b40276c",
62
62
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
63
63
  }
64
64
  },
65
65
  "aarch64-linux" => {
66
66
  "static" => {
67
- "checksum" => "64fc4b0b48d780eb6721421a4d2ef3e4b94ee763266ad5a2768acdf3d9feadd7",
67
+ "checksum" => "f8e67ca70c013908d0d5b1b0a78aa67be59f5bb885590ab6c70b0f2bc4d9148c",
68
68
  "filename" => "appsignal-aarch64-linux-all-static.tar.gz"
69
69
  },
70
70
  "dynamic" => {
71
- "checksum" => "816c9b77f8782074fd04c71d094d6c8b6127ab3f501303cb80e22a31334b876c",
71
+ "checksum" => "5cf0739c2a1f836973d903ea7b8232b867ded08f4e4fdc2d1ace1191c5848516",
72
72
  "filename" => "appsignal-aarch64-linux-all-dynamic.tar.gz"
73
73
  }
74
74
  },
75
75
  "i686-linux" => {
76
76
  "static" => {
77
- "checksum" => "ea6544e43502d0ec49a708343483244a5ec457ae4c89752a295b238c3e62440c",
77
+ "checksum" => "c52333b87c6da6b2b979097c07d13925104b5d535e6287babc71566c3fdcf321",
78
78
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
79
79
  },
80
80
  "dynamic" => {
81
- "checksum" => "8e40de0254d822f58610c00a047fdd34753d71c2c2f9c9e75afb228c4768857a",
81
+ "checksum" => "4831ad90d246eef552d567d3a3f429aa191b9b3c6d80ab4b4dcc1bcc69eccfd5",
82
82
  "filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
83
83
  }
84
84
  },
85
85
  "x86-linux" => {
86
86
  "static" => {
87
- "checksum" => "ea6544e43502d0ec49a708343483244a5ec457ae4c89752a295b238c3e62440c",
87
+ "checksum" => "c52333b87c6da6b2b979097c07d13925104b5d535e6287babc71566c3fdcf321",
88
88
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
89
89
  },
90
90
  "dynamic" => {
91
- "checksum" => "8e40de0254d822f58610c00a047fdd34753d71c2c2f9c9e75afb228c4768857a",
91
+ "checksum" => "4831ad90d246eef552d567d3a3f429aa191b9b3c6d80ab4b4dcc1bcc69eccfd5",
92
92
  "filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
93
93
  }
94
94
  },
95
95
  "x86_64-linux" => {
96
96
  "static" => {
97
- "checksum" => "bc04fc8691b8950d20776646117fd7a217a3267d4eac14b2c5f446ed8f9fcf99",
97
+ "checksum" => "5d2816036d1025eecc7005114780120788c0a76ff899740ebaa54f063aff7a18",
98
98
  "filename" => "appsignal-x86_64-linux-all-static.tar.gz"
99
99
  },
100
100
  "dynamic" => {
101
- "checksum" => "fe86688bd2ea0ad5cf6df1c71d7b041c375e5192c572b4bac540c7c36576ba1a",
101
+ "checksum" => "2e1849c946a58a2c1dce772949b28b88eb7656eee43211b0e9c3cb64103df278",
102
102
  "filename" => "appsignal-x86_64-linux-all-dynamic.tar.gz"
103
103
  }
104
104
  },
105
105
  "x86_64-linux-musl" => {
106
106
  "static" => {
107
- "checksum" => "5cd6d3f106d6e34ad6558d5191241860345dfd3e0ad9daaa798c0781e17c142a",
107
+ "checksum" => "937e4517d435898518a0b529196160682172c1eec32e6ab31ad9b4e7220705fe",
108
108
  "filename" => "appsignal-x86_64-linux-musl-all-static.tar.gz"
109
109
  },
110
110
  "dynamic" => {
111
- "checksum" => "3fa17e5a1e325842f89f14ddfbc48dd7286724a765859c073475633726364f4e",
111
+ "checksum" => "b3d7730f4112b376f4aceb8197c262c446cf056787a7971046b76a42a9f326e6",
112
112
  "filename" => "appsignal-x86_64-linux-musl-all-dynamic.tar.gz"
113
113
  }
114
114
  },
115
115
  "aarch64-linux-musl" => {
116
116
  "static" => {
117
- "checksum" => "86c3c6356cac89c4030e427915c3aad7ea804278835bd4a5cc75ebbdd18f5dbd",
117
+ "checksum" => "fd9abfd9320bf893aed80d9487aab2e5da0af33c48e6c54a284f87c1a00c9af3",
118
118
  "filename" => "appsignal-aarch64-linux-musl-all-static.tar.gz"
119
119
  },
120
120
  "dynamic" => {
121
- "checksum" => "66c5e30dad3f804261953c9a0ad7c15ef183163fe863894f524ea9bb34b6c9a0",
121
+ "checksum" => "75642949d2fff2b3878e9d8a229ada0560bf6d273cc27e694868ad85f2ce2843",
122
122
  "filename" => "appsignal-aarch64-linux-musl-all-dynamic.tar.gz"
123
123
  }
124
124
  },
125
125
  "x86_64-freebsd" => {
126
126
  "static" => {
127
- "checksum" => "0428134ff69b924900b4cda8d16b181870ef4eced5cb501e9ac2a952f9c52580",
127
+ "checksum" => "e79ecb04aabb439e1b0aaa829dddec01886758843f3e29a46d8922688719af26",
128
128
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
129
129
  },
130
130
  "dynamic" => {
131
- "checksum" => "90869b3bfe783dfcccef58814d7cd8785161ad9b6b552fd2de9a43ce8bd2bae5",
131
+ "checksum" => "3aa2dfe2c22f42c0d97b93bb21917180e0399359cc3d86786c62aeb6fcaa96c6",
132
132
  "filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
133
133
  }
134
134
  },
135
135
  "amd64-freebsd" => {
136
136
  "static" => {
137
- "checksum" => "0428134ff69b924900b4cda8d16b181870ef4eced5cb501e9ac2a952f9c52580",
137
+ "checksum" => "e79ecb04aabb439e1b0aaa829dddec01886758843f3e29a46d8922688719af26",
138
138
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
139
139
  },
140
140
  "dynamic" => {
141
- "checksum" => "90869b3bfe783dfcccef58814d7cd8785161ad9b6b552fd2de9a43ce8bd2bae5",
141
+ "checksum" => "3aa2dfe2c22f42c0d97b93bb21917180e0399359cc3d86786c62aeb6fcaa96c6",
142
142
  "filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
143
143
  }
144
144
  }
@@ -156,7 +156,7 @@ module Appsignal
156
156
  :send_request_payload => true,
157
157
  :send_request_query_parameters => true,
158
158
  :send_session_data => true,
159
- :service_name => nil,
159
+ :service_name => "app",
160
160
  :sidekiq_report_errors => "all",
161
161
  :default_tags => {}
162
162
  }.freeze
@@ -324,12 +324,11 @@ module Appsignal
324
324
 
325
325
  # Build the OpenTelemetry Resource that carries AppSignal config to the
326
326
  # collector. Attributes whose underlying option is nil or an empty array
327
- # are omitted so the collector applies its own defaults. The revision,
328
- # service name and host name are the exception: they fall back to a
329
- # value here, so they are always sent.
327
+ # are omitted so the collector applies its own defaults. The revision and
328
+ # host name are the exception: they fall back to a value here, so they
329
+ # are always sent.
330
330
  def build_resource(config)
331
331
  revision = config[:revision].to_s.empty? ? "unknown" : config[:revision]
332
- service_name = config[:service_name].to_s.empty? ? "app" : config[:service_name]
333
332
  host_name = config[:hostname].to_s.empty? ? "unknown" : config[:hostname]
334
333
 
335
334
  attrs = {
@@ -340,7 +339,7 @@ module Appsignal
340
339
  "appsignal.config.app_path" => config.root_path&.to_s,
341
340
  "appsignal.config.platform" => config[:platform],
342
341
  "appsignal.config.language_integration" => "ruby",
343
- "service.name" => service_name,
342
+ "service.name" => config[:service_name],
344
343
  "host.name" => host_name,
345
344
  "appsignal.config.filter_attributes" => config[:filter_attributes],
346
345
  "appsignal.config.filter_function_parameters" => config[:filter_function_parameters],
@@ -173,12 +173,16 @@ module Appsignal
173
173
  end
174
174
  if response_status
175
175
  transaction.add_tags(:response_status => response_status)
176
- Appsignal.increment_counter(
177
- :response_status,
178
- 1,
176
+ tags = {
179
177
  :status => response_status,
180
178
  :namespace => format_namespace(transaction.namespace)
181
- )
179
+ }
180
+ Appsignal.increment_counter(:response_status, 1, **tags)
181
+ Appsignal::OpenTelemetry.if_started do
182
+ Appsignal.increment_counter(
183
+ :response_status, 1, **tags, :service => Appsignal.config[:service_name]
184
+ )
185
+ end
182
186
  end
183
187
  end
184
188
 
@@ -540,7 +540,7 @@ module Appsignal
540
540
  duration_ms = (@start_time.to_f * 1000) - @queue_start
541
541
  return if duration_ms.negative?
542
542
 
543
- namespace = display_namespace(@namespace)
543
+ namespace = service_namespace
544
544
  Appsignal::Metrics::OpenTelemetryBackend.add_distribution_value(
545
545
  "transaction_queue_duration", duration_ms, :namespace => namespace
546
546
  )
@@ -577,7 +577,7 @@ module Appsignal
577
577
 
578
578
  return unless should_report? && count.positive?
579
579
 
580
- namespace = display_namespace(@namespace)
580
+ namespace = service_namespace
581
581
  Appsignal::Metrics::OpenTelemetryBackend.increment_counter(
582
582
  "transaction_allocation_count", count, :namespace => namespace
583
583
  )
@@ -756,6 +756,10 @@ module Appsignal
756
756
  DISPLAY_NAMESPACE.fetch(namespace, namespace)
757
757
  end
758
758
 
759
+ def service_namespace
760
+ "#{Appsignal.config&.[](:service_name)}/#{display_namespace(@namespace)}"
761
+ end
762
+
759
763
  def write_request_headers(headers)
760
764
  headers.each do |name, value|
761
765
  @span.set_attribute("http.request.header.#{name}", value.to_s)
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Appsignal
4
4
  # @return [String]
5
- VERSION = "5.0.0"
5
+ VERSION = "5.0.1"
6
6
  end
data/sig/appsignal.rbi CHANGED
@@ -8,7 +8,7 @@
8
8
  module Appsignal
9
9
  extend Appsignal::Helpers::Metrics
10
10
  extend Appsignal::Helpers::Instrumentation
11
- VERSION = T.let("5.0.0", T.untyped)
11
+ VERSION = T.let("5.0.1", T.untyped)
12
12
 
13
13
  class << self
14
14
  # The loaded AppSignal configuration.
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: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman