appsignal 4.0.0.beta.1 → 4.0.0.beta.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/appsignal/helpers/instrumentation.rb +14 -0
- data/lib/appsignal/sample_data.rb +13 -0
- data/lib/appsignal/transaction.rb +9 -1
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/sample_data_spec.rb +39 -0
- data/spec/lib/appsignal/transaction_spec.rb +11 -0
- data/spec/lib/appsignal_spec.rb +17 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 106096bf50f3e6f1e98e570a806b2086bd5f9ad1d2a8740642d605efb4059e04
|
4
|
+
data.tar.gz: e9b763431f5c412a6aa3354f9b9e9c4ebd3ee6a1e36f7f9addd9b4c796811af1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d16d3e178791d3caaaf0acd7484c358ec09557a407c6ffa386c41ce5b27ba3d7e1d67f603f9db6993d13aa185d51a87cc2c18e4c46d868db7131852f713f770
|
7
|
+
data.tar.gz: d6b4d552c1eb6016e8a58ed06fee58719f49a0b775c588b6052da9ac6c97b2a3c1a71f80a1c2e9e0d0e7aa3734f0b3d27ddb9b2352ae9f81f3c2efbb6c9047df
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# AppSignal for Ruby gem Changelog
|
2
2
|
|
3
|
+
## 4.0.0.beta.2
|
4
|
+
|
5
|
+
_Published on 2024-08-19._
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- Add a helper for parameters sample data to be unset. This is a private method until we stabilize it. (patch [e9336363](https://github.com/appsignal/appsignal-ruby/commit/e9336363fa869c88ab925f57e86ead45e8e18c29))
|
10
|
+
|
3
11
|
## 4.0.0.beta.1
|
4
12
|
|
5
13
|
_Published on 2024-08-19._
|
@@ -552,6 +552,20 @@ module Appsignal
|
|
552
552
|
end
|
553
553
|
alias :set_params :add_params
|
554
554
|
|
555
|
+
# Mark the parameters sample data to be set as an empty value.
|
556
|
+
#
|
557
|
+
# @api private
|
558
|
+
# @since 4.0.0
|
559
|
+
# @return [void]
|
560
|
+
# @see Helpers::Instrumentation#set_empty_params!
|
561
|
+
def set_empty_params!
|
562
|
+
return unless active?
|
563
|
+
return unless Appsignal::Transaction.current?
|
564
|
+
|
565
|
+
transaction = Appsignal::Transaction.current
|
566
|
+
transaction.set_empty_params!
|
567
|
+
end
|
568
|
+
|
555
569
|
# Add session data to the current transaction.
|
556
570
|
#
|
557
571
|
# Session data is automatically added by most of our integrations. It
|
@@ -7,9 +7,11 @@ module Appsignal
|
|
7
7
|
@key = key
|
8
8
|
@accepted_type = accepted_type
|
9
9
|
@blocks = []
|
10
|
+
@empty = false
|
10
11
|
end
|
11
12
|
|
12
13
|
def add(data = nil, &block)
|
14
|
+
@empty = false
|
13
15
|
if block_given?
|
14
16
|
@blocks << block
|
15
17
|
elsif accepted_type?(data)
|
@@ -19,6 +21,12 @@ module Appsignal
|
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
24
|
+
# @api private
|
25
|
+
def set_empty_value!
|
26
|
+
@empty = true
|
27
|
+
@blocks.clear
|
28
|
+
end
|
29
|
+
|
22
30
|
def value
|
23
31
|
value = nil
|
24
32
|
@blocks.map! do |block_or_value|
|
@@ -44,6 +52,11 @@ module Appsignal
|
|
44
52
|
@blocks.any?
|
45
53
|
end
|
46
54
|
|
55
|
+
# @api private
|
56
|
+
def empty?
|
57
|
+
@empty
|
58
|
+
end
|
59
|
+
|
47
60
|
protected
|
48
61
|
|
49
62
|
attr_reader :blocks
|
@@ -246,6 +246,14 @@ module Appsignal
|
|
246
246
|
end
|
247
247
|
alias :set_params :add_params
|
248
248
|
|
249
|
+
# @api private
|
250
|
+
# @since 4.0.0
|
251
|
+
# @return [void]
|
252
|
+
# @see Helpers::Instrumentation#set_empty_params!
|
253
|
+
def set_empty_params!
|
254
|
+
@params.set_empty_value!
|
255
|
+
end
|
256
|
+
|
249
257
|
# Add parameters to the transaction if not already set.
|
250
258
|
#
|
251
259
|
# @api private
|
@@ -257,7 +265,7 @@ module Appsignal
|
|
257
265
|
#
|
258
266
|
# @see #add_params
|
259
267
|
def add_params_if_nil(given_params = nil, &block)
|
260
|
-
add_params(given_params, &block)
|
268
|
+
add_params(given_params, &block) if !@params.value? && !@params.empty?
|
261
269
|
end
|
262
270
|
alias :set_params_if_nil :add_params_if_nil
|
263
271
|
|
data/lib/appsignal/version.rb
CHANGED
@@ -142,6 +142,45 @@ describe Appsignal::SampleData do
|
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
145
|
+
describe "#set_empty_value!" do
|
146
|
+
it "clears the set values" do
|
147
|
+
data.add(["abc"])
|
148
|
+
data.add(["def"])
|
149
|
+
data.set_empty_value!
|
150
|
+
|
151
|
+
expect(data.value).to be_nil
|
152
|
+
end
|
153
|
+
|
154
|
+
it "allows values to be added afterwards" do
|
155
|
+
data.add(["abc"])
|
156
|
+
data.set_empty_value!
|
157
|
+
|
158
|
+
expect(data.value).to be_nil
|
159
|
+
|
160
|
+
data.add(["def"])
|
161
|
+
expect(data.value).to eq(["def"])
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
describe "#cleared?" do
|
166
|
+
it "returns false if not cleared" do
|
167
|
+
expect(data.empty?).to be(false)
|
168
|
+
end
|
169
|
+
|
170
|
+
it "returns true if cleared" do
|
171
|
+
data.set_empty_value!
|
172
|
+
|
173
|
+
expect(data.empty?).to be(true)
|
174
|
+
end
|
175
|
+
|
176
|
+
it "returns false if cleared and then new values were added" do
|
177
|
+
data.set_empty_value!
|
178
|
+
data.add(["abc"])
|
179
|
+
|
180
|
+
expect(data.empty?).to be(false)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
145
184
|
describe "#duplicate" do
|
146
185
|
it "duplicates the internal Hash state without modifying the original" do
|
147
186
|
data = described_class.new(:my_key, Hash)
|
@@ -732,6 +732,17 @@ describe Appsignal::Transaction do
|
|
732
732
|
expect(transaction).to include_params(preset_params)
|
733
733
|
end
|
734
734
|
end
|
735
|
+
|
736
|
+
context "when the params were set as an empty value" do
|
737
|
+
it "does not set params on the transaction" do
|
738
|
+
transaction.add_params("key1" => "value")
|
739
|
+
transaction.set_empty_params!
|
740
|
+
transaction.add_params_if_nil("key2" => "value")
|
741
|
+
|
742
|
+
transaction._sample
|
743
|
+
expect(transaction).to_not include_params
|
744
|
+
end
|
745
|
+
end
|
735
746
|
end
|
736
747
|
|
737
748
|
describe "#add_session_data" do
|
data/spec/lib/appsignal_spec.rb
CHANGED
@@ -935,6 +935,23 @@ describe Appsignal do
|
|
935
935
|
end
|
936
936
|
end
|
937
937
|
|
938
|
+
describe ".set_empty_params!" do
|
939
|
+
before { start_agent }
|
940
|
+
|
941
|
+
context "with transaction" do
|
942
|
+
let(:transaction) { http_request_transaction }
|
943
|
+
before { set_current_transaction(transaction) }
|
944
|
+
|
945
|
+
it "marks parameters to be sent as an empty value" do
|
946
|
+
Appsignal.add_params("key1" => "value")
|
947
|
+
Appsignal.set_empty_params!
|
948
|
+
|
949
|
+
transaction._sample
|
950
|
+
expect(transaction).to_not include_params
|
951
|
+
end
|
952
|
+
end
|
953
|
+
end
|
954
|
+
|
938
955
|
describe ".add_session_data" do
|
939
956
|
before { start_agent }
|
940
957
|
|