solarwinds_apm 6.0.0.preV3 → 6.0.0.preV5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/oboe_metal.rb +5 -2
- data/lib/rails/generators/solarwinds_apm/install_generator.rb +5 -2
- data/lib/rails/generators/solarwinds_apm/templates/solarwinds_apm_initializer.rb +7 -3
- data/lib/solarwinds_apm/api/current_trace_info.rb +6 -4
- data/lib/solarwinds_apm/api/custom_metrics.rb +93 -0
- data/lib/solarwinds_apm/api/opentelemetry.rb +6 -0
- data/lib/solarwinds_apm/api/tracing.rb +32 -5
- data/lib/solarwinds_apm/api/transaction_name.rb +30 -14
- data/lib/solarwinds_apm/api.rb +7 -2
- data/lib/solarwinds_apm/base.rb +5 -2
- data/lib/solarwinds_apm/config.rb +5 -2
- data/lib/solarwinds_apm/constants.rb +6 -0
- data/lib/solarwinds_apm/logger.rb +5 -2
- data/lib/solarwinds_apm/noop/context.rb +5 -2
- data/lib/solarwinds_apm/noop/metadata.rb +5 -2
- data/lib/solarwinds_apm/oboe_init_options.rb +11 -3
- data/lib/solarwinds_apm/opentelemetry/solarwinds_exporter.rb +6 -1
- data/lib/solarwinds_apm/opentelemetry/solarwinds_processor.rb +9 -0
- data/lib/solarwinds_apm/opentelemetry/solarwinds_propagator.rb +6 -0
- data/lib/solarwinds_apm/opentelemetry/solarwinds_response_propagator.rb +6 -0
- data/lib/solarwinds_apm/opentelemetry/solarwinds_sampler.rb +6 -0
- data/lib/solarwinds_apm/opentelemetry.rb +6 -0
- data/lib/solarwinds_apm/otel_config.rb +6 -0
- data/lib/solarwinds_apm/support/logger_formatter.rb +5 -2
- data/lib/solarwinds_apm/support/logging_log_event.rb +5 -2
- data/lib/solarwinds_apm/support/lumberjack_formatter.rb +5 -2
- data/lib/solarwinds_apm/support/oboe_tracing_mode.rb +6 -0
- data/lib/solarwinds_apm/support/swomarginalia/README.md +1 -1
- data/lib/solarwinds_apm/support/swomarginalia/comment.rb +1 -1
- data/lib/solarwinds_apm/support/swomarginalia/load_swomarginalia.rb +6 -0
- data/lib/solarwinds_apm/support/transaction_cache.rb +6 -0
- data/lib/solarwinds_apm/support/transaction_settings.rb +5 -2
- data/lib/solarwinds_apm/support/txn_name_manager.rb +6 -0
- data/lib/solarwinds_apm/support/utils.rb +6 -0
- data/lib/solarwinds_apm/support/x_trace_options.rb +5 -2
- data/lib/solarwinds_apm/support.rb +5 -3
- data/lib/solarwinds_apm/support_report.rb +6 -3
- data/lib/solarwinds_apm/thread_local.rb +5 -2
- data/lib/solarwinds_apm/version.rb +6 -3
- data/lib/solarwinds_apm.rb +7 -4
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b23156203ec3589196c343c4d16ba3fb44018e94ea34e585e7b62a03fd909832
|
4
|
+
data.tar.gz: de12c6839abf0ecfb195ebf78f259c778aa05769b3f3fe48541c05707b67ab03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fdb15ee558dea8d3f6737180e8542485c3a0bbeedd71372ab63f0fac552d0d1aac01c07f0076e95e691d9f1c97ce1013f22b76fd235d77fcf3d4422c5b4f6b5
|
7
|
+
data.tar.gz: 7cce1f862385ce15655ede15071c429aced9e4f4af744c2496978fba2873642620520a7b3325a2945abfc127c720cea4bcae2c18320e83c88280b2ae0c612c04
|
data/lib/oboe_metal.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
# Disable docs and Camelcase warns since we're implementing
|
5
8
|
# an interface here. See OboeBase for details.
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
module SolarWindsAPM
|
5
8
|
# InstallGenerator
|
@@ -1,7 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
5
8
|
|
6
9
|
# SolarWindsAPM Configuration for the Ruby Agent aka solarwinds_apm gem
|
7
10
|
# https://cloud.solarwinds.com/
|
@@ -33,7 +36,8 @@ if defined?(SolarWindsAPM::Config)
|
|
33
36
|
# SolarWindsAPM::Config[:hostname_alias] = 'alias_name'
|
34
37
|
|
35
38
|
#
|
36
|
-
# Set Proxy for SolarWinds
|
39
|
+
# Set Proxy for SolarWinds
|
40
|
+
# This setting will be overridden if SW_APM_PROXY is set as an environment variable.
|
37
41
|
#
|
38
42
|
# Please configure http_proxy if a proxy needs to be used to communicate with
|
39
43
|
# the SolarWinds APM collector.
|
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
#
|
4
|
-
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
5
7
|
module SolarWindsAPM
|
6
8
|
module API
|
7
9
|
module CurrentTraceInfo
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
7
|
+
module SolarWindsAPM
|
8
|
+
module API
|
9
|
+
module CustomMetrics
|
10
|
+
# Send counts
|
11
|
+
#
|
12
|
+
# Use this method to report the number of times an action occurs. The metric counts reported are summed and flushed every 60 seconds.
|
13
|
+
#
|
14
|
+
# === Arguments:
|
15
|
+
#
|
16
|
+
# * +name+ (String) Name to be used for the metric. Must be 255 or fewer characters and consist only of A-Za-z0-9.:-*
|
17
|
+
# * +count+ (Integer, optional, default = 1): Count of actions being reported
|
18
|
+
# * +with_hostname+ (Boolean, optional, default = false): Indicates if the host name should be included as a tag for the metric
|
19
|
+
# * +tags_kvs+ (Hash, optional): List of key/value pairs to describe the metric. The key must be <= 64 characters, the value must be <= 255 characters, allowed characters: A-Za-z0-9.:-_
|
20
|
+
#
|
21
|
+
# === Example:
|
22
|
+
#
|
23
|
+
# class WorkTracker
|
24
|
+
# def counting(name, tags = {})
|
25
|
+
# yield # yield to where work is done
|
26
|
+
# SolarWindsAPM::API.increment_metric(name, 1, false, tags)
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# === Returns:
|
31
|
+
# * Boolean
|
32
|
+
#
|
33
|
+
def increment_metric(name, count=1, with_hostname=false, tags_kvs={}) # rubocop:disable Style/OptionalBooleanParameter
|
34
|
+
return true unless SolarWindsAPM.loaded
|
35
|
+
|
36
|
+
with_hostname = with_hostname ? 1 : 0
|
37
|
+
tags, tags_count = make_tags(tags_kvs)
|
38
|
+
SolarWindsAPM::CustomMetrics.increment(name.to_s, count, with_hostname, nil, tags, tags_count) == 0
|
39
|
+
end
|
40
|
+
|
41
|
+
# Send values with counts
|
42
|
+
#
|
43
|
+
# Use this method to report a value for each or multiple counts. The metric values reported are aggregated and flushed every 60 seconds. The dashboard displays the average value per count.
|
44
|
+
#
|
45
|
+
# === Arguments:
|
46
|
+
#
|
47
|
+
# * +name+ (String) Name to be used for the metric. Must be 255 or fewer characters and consist only of A-Za-z0-9.:-*
|
48
|
+
# * +value+ (Numeric) Value to be added to the current sum
|
49
|
+
# * +count+ (Integer, optional, default = 1): Count of actions being reported
|
50
|
+
# * +with_hostname+ (Boolean, optional, default = false): Indicates if the host name should be included as a tag for the metric
|
51
|
+
# * +tags_kvs+ (Hash, optional): List of key/value pairs to describe the metric. The key must be <= 64 characters, the value must be <= 255 characters, allowed characters: A-Za-z0-9.:-_
|
52
|
+
#
|
53
|
+
# === Example:
|
54
|
+
#
|
55
|
+
# class WorkTracker
|
56
|
+
# def timing(name, tags = {})
|
57
|
+
# start = Time.now
|
58
|
+
# yield # yield to where work is done
|
59
|
+
# duration = Time.now - start
|
60
|
+
# SolarWindsAPM::API.summary_metric(name, duration, 1, false, tags)
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
# === Returns:
|
65
|
+
# * Boolean
|
66
|
+
#
|
67
|
+
def summary_metric(name, value, count=1, with_hostname=false, tags_kvs={}) # rubocop:disable Style/OptionalBooleanParameter
|
68
|
+
return true unless SolarWindsAPM.loaded
|
69
|
+
|
70
|
+
with_hostname = with_hostname ? 1 : 0
|
71
|
+
tags, tags_count = make_tags(tags_kvs)
|
72
|
+
SolarWindsAPM::CustomMetrics.summary(name.to_s, value, count, with_hostname, nil, tags, tags_count) == 0
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def make_tags(tags_kvs)
|
78
|
+
unless tags_kvs.is_a?(Hash)
|
79
|
+
SolarWindsAPM.logger.warn("[solarwinds_apm/metrics] CustomMetrics received tags_kvs that are not a Hash (found #{tags_kvs.class}), setting tags_kvs = {}")
|
80
|
+
tags_kvs = {}
|
81
|
+
end
|
82
|
+
count = tags_kvs.size
|
83
|
+
tags = SolarWindsAPM::MetricTags.new(count)
|
84
|
+
|
85
|
+
tags_kvs.each_with_index do |(k, v), i|
|
86
|
+
tags.add(i, k.to_s, v.to_s)
|
87
|
+
end
|
88
|
+
|
89
|
+
[tags, count]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module API
|
3
9
|
module OpenTelemetry
|
@@ -1,15 +1,31 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module API
|
3
9
|
module Tracing
|
4
10
|
# Wait for SolarWinds to be ready to send traces.
|
5
11
|
#
|
6
12
|
# This may be useful in short lived background processes when it is important to capture
|
7
|
-
# information during the whole time the process is running.
|
8
|
-
#
|
13
|
+
# information during the whole time the process is running. It returns boolean if <tt>integer_response</tt> is false,
|
14
|
+
# and it will return integer if setting <tt>integer_response</tt> as true.
|
15
|
+
# Usually SolarWinds doesn't block an application while it is starting up.
|
16
|
+
#
|
17
|
+
# For status code reference:
|
18
|
+
# 0: unknown error
|
19
|
+
# 1: is ready
|
20
|
+
# 2: not ready yet, try later
|
21
|
+
# 3: limit exceeded
|
22
|
+
# 4: invalid API key
|
23
|
+
# 5: connection error
|
9
24
|
#
|
10
25
|
# === Argument:
|
11
26
|
#
|
12
27
|
# * +wait_milliseconds+ - (int, default 3000) the maximum time to wait in milliseconds
|
28
|
+
# * +integer_response+ - (boolean, default false) determine whether return status code of reporter or not
|
13
29
|
#
|
14
30
|
# === Example:
|
15
31
|
#
|
@@ -17,13 +33,24 @@ module SolarWindsAPM
|
|
17
33
|
# Logger.info "SolarWindsAPM not ready after 10 seconds, no metrics will be sent"
|
18
34
|
# end
|
19
35
|
#
|
36
|
+
# # with status code print out
|
37
|
+
# status = SolarWindsAPM::API.solarwinds_ready?(10_000, integer_response: true)
|
38
|
+
# unless status == 1
|
39
|
+
# Logger.info "SolarWindsAPM not ready after 10 seconds, no metrics will be sent. Error code "#{status}"
|
40
|
+
# end
|
41
|
+
#
|
20
42
|
# === Returns:
|
21
|
-
# * Boolean
|
43
|
+
# * Boolean (if integer_response: false)
|
44
|
+
# * Integer (if integer_response: true)
|
22
45
|
#
|
23
|
-
def solarwinds_ready?(wait_milliseconds=3000)
|
46
|
+
def solarwinds_ready?(wait_milliseconds=3000, integer_response: false)
|
24
47
|
return false unless SolarWindsAPM.loaded
|
25
48
|
|
26
|
-
SolarWindsAPM::Context.isReady(wait_milliseconds)
|
49
|
+
is_ready = SolarWindsAPM::Context.isReady(wait_milliseconds)
|
50
|
+
|
51
|
+
return is_ready if integer_response
|
52
|
+
|
53
|
+
is_ready == 1
|
27
54
|
end
|
28
55
|
end
|
29
56
|
end
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module API
|
3
9
|
module TransactionName
|
@@ -30,26 +36,36 @@ module SolarWindsAPM
|
|
30
36
|
# * Boolean
|
31
37
|
#
|
32
38
|
def set_transaction_name(custom_name=nil)
|
33
|
-
|
34
39
|
status = true
|
35
|
-
if
|
40
|
+
if ENV.fetch('SW_APM_ENABLED', 'true') == 'false' ||
|
41
|
+
SolarWindsAPM::Context.toString == '99-00000000000000000000000000000000-0000000000000000-00'
|
42
|
+
# library disabled or noop, just log and skip work.
|
43
|
+
# TODO: can we have a single indicator that the API is in noop mode?
|
44
|
+
SolarWindsAPM.logger.debug {"[#{name}/#{__method__}] SolarWindsAPM is in disabled or noop mode."}
|
45
|
+
elsif custom_name.nil? || custom_name.empty?
|
46
|
+
SolarWindsAPM.logger.warn {"[#{name}/#{__method__}] Set transaction name failed: custom_name is either nil or empty string."}
|
36
47
|
status = false
|
37
|
-
elsif SolarWindsAPM::Context.toString == '99-00000000000000000000000000000000-0000000000000000-00' # noop
|
38
|
-
status = true
|
39
48
|
elsif SolarWindsAPM::OTelConfig.class_variable_get(:@@config)[:span_processor].nil?
|
40
|
-
SolarWindsAPM.logger.warn {"[#{name}/#{__method__}] Solarwinds processor is missing.
|
49
|
+
SolarWindsAPM.logger.warn {"[#{name}/#{__method__}] Set transaction name failed: Solarwinds processor is missing."}
|
41
50
|
status = false
|
42
51
|
else
|
43
|
-
solarwinds_processor
|
44
|
-
current_span
|
45
|
-
entry_trace_id = current_span.context.hex_trace_id
|
46
|
-
entry_span_id, trace_flags = solarwinds_processor.txn_manager.get_root_context_h(entry_trace_id)&.split('-')
|
47
|
-
|
48
|
-
status = false if entry_trace_id.nil? || entry_span_id.nil? || trace_flags.nil?
|
49
|
-
status = false if entry_trace_id == '0'*32 || entry_span_id == '0'*16 || trace_flags == '00' # not sampled
|
52
|
+
solarwinds_processor = SolarWindsAPM::OTelConfig.class_variable_get(:@@config)[:span_processor]
|
53
|
+
current_span = ::OpenTelemetry::Trace.current_span
|
50
54
|
|
51
|
-
|
52
|
-
|
55
|
+
if current_span.context.valid?
|
56
|
+
current_trace_id = current_span.context.hex_trace_id
|
57
|
+
entry_span_id, trace_flags = solarwinds_processor.txn_manager.get_root_context_h(current_trace_id)&.split('-')
|
58
|
+
if entry_span_id.to_s.empty? || trace_flags.to_s.empty?
|
59
|
+
SolarWindsAPM.logger.warn {"[#{name}/#{__method__}] Set transaction name failed: record not found in the transaction manager."}
|
60
|
+
status = false
|
61
|
+
else
|
62
|
+
solarwinds_processor.txn_manager.set("#{current_trace_id}-#{entry_span_id}",custom_name)
|
63
|
+
SolarWindsAPM.logger.debug {"[#{name}/#{__method__}] Cached custom transaction name for #{current_trace_id}-#{entry_span_id} as #{custom_name}"}
|
64
|
+
end
|
65
|
+
else
|
66
|
+
SolarWindsAPM.logger.warn {"[#{name}/#{__method__}] Set transaction name failed: invalid span context."}
|
67
|
+
status = false
|
68
|
+
end
|
53
69
|
end
|
54
70
|
status
|
55
71
|
end
|
data/lib/solarwinds_apm/api.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require_relative './api/transaction_name'
|
5
8
|
require_relative './api/current_trace_info'
|
6
9
|
require_relative './api/tracing'
|
7
10
|
require_relative './api/opentelemetry'
|
11
|
+
require_relative './api/custom_metrics'
|
8
12
|
|
9
13
|
module SolarWindsAPM
|
10
14
|
module API
|
@@ -12,5 +16,6 @@ module SolarWindsAPM
|
|
12
16
|
extend SolarWindsAPM::API::CurrentTraceInfo
|
13
17
|
extend SolarWindsAPM::API::Tracing
|
14
18
|
extend SolarWindsAPM::API::OpenTelemetry
|
19
|
+
extend SolarWindsAPM::API::CustomMetrics
|
15
20
|
end
|
16
21
|
end
|
data/lib/solarwinds_apm/base.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
##
|
5
8
|
# This module is the base module for SolarWindsAPM reporting.
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
module SolarWindsAPM
|
5
8
|
##
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
# Constants
|
3
9
|
module Constants
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require 'logger'
|
5
8
|
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
####
|
5
8
|
# noop version of SolarWindsAPM::Context
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
####
|
5
8
|
# noop version of SolarWindsAPM::Metadata
|
@@ -1,7 +1,12 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
3
7
|
require 'singleton'
|
4
8
|
require 'uri'
|
9
|
+
|
5
10
|
module SolarWindsAPM
|
6
11
|
# OboeInitOptions
|
7
12
|
class OboeInitOptions
|
@@ -142,7 +147,10 @@ module SolarWindsAPM
|
|
142
147
|
otel_resource_service_name = nil
|
143
148
|
ENV['OTEL_RESOURCE_ATTRIBUTES']&.split(',')&.each do |pair|
|
144
149
|
key, value = pair.split('=')
|
145
|
-
|
150
|
+
if key == 'service.name'
|
151
|
+
otel_resource_service_name = value
|
152
|
+
break
|
153
|
+
end
|
146
154
|
end
|
147
155
|
|
148
156
|
SolarWindsAPM.logger.debug {"[#{self.class}/#{__method__}] provided otel_resource_service_name #{otel_resource_service_name}"} if otel_resource_service_name
|
@@ -1,4 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
2
7
|
module SolarWindsAPM
|
3
8
|
module OpenTelemetry
|
4
9
|
# SolarWindsExporter
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module OpenTelemetry
|
3
9
|
# reference: OpenTelemetry::SDK::Trace::SpanProcessor
|
@@ -142,12 +148,15 @@ module SolarWindsAPM
|
|
142
148
|
end
|
143
149
|
|
144
150
|
# Get trans_name and url_tran of this span instance.
|
151
|
+
# Predecessor order: custom SDK > env var SW_APM_TRANSACTION_NAME > automatic naming
|
145
152
|
def calculate_transaction_names(span)
|
146
153
|
trace_span_id = "#{span.context.hex_trace_id}-#{span.context.hex_span_id}"
|
147
154
|
trans_name = @txn_manager.get(trace_span_id)
|
148
155
|
if trans_name
|
149
156
|
SolarWindsAPM.logger.debug {"[#{self.class}/#{__method__}] found trans name from txn_manager: #{trans_name} by #{trace_span_id}"}
|
150
157
|
@txn_manager.del(trace_span_id)
|
158
|
+
elsif ENV.has_key?('SW_APM_TRANSACTION_NAME') && ENV['SW_APM_TRANSACTION_NAME'] != ''
|
159
|
+
trans_name = ENV['SW_APM_TRANSACTION_NAME']
|
151
160
|
else
|
152
161
|
trans_name = span.attributes[HTTP_ROUTE] || nil
|
153
162
|
trans_name = span.name if span.name && (trans_name.nil? || trans_name.empty?)
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module OpenTelemetry
|
3
9
|
module SolarWindsPropagator
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module OpenTelemetry
|
3
9
|
module SolarWindsResponsePropagator
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module OpenTelemetry
|
3
9
|
# SolarWindsSampler
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
require 'opentelemetry/sdk'
|
2
8
|
require 'opentelemetry/instrumentation/all'
|
3
9
|
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
# OTelConfig module
|
3
9
|
# For configure otel component: configurable: propagator, exporter
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require 'logger'
|
5
8
|
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require_relative 'logger_formatter'
|
5
8
|
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require_relative 'logger_formatter'
|
5
8
|
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
module OpenTelemetry
|
3
9
|
# OboeTracingMode
|
@@ -38,4 +38,4 @@ Post Load (1.1ms) SELECT `posts`.* FROM `posts` /*application=SqlcommenterRails
|
|
38
38
|
```
|
39
39
|
|
40
40
|
## License
|
41
|
-
This project is licensed under the [MIT License](https://github.com/
|
41
|
+
This project is licensed under the [MIT License](https://github.com/solarwinds/apm-ruby/blob/main/lib/solarwinds_apm/support/swomarginalia/LICENSE).
|
@@ -9,7 +9,7 @@ module SolarWindsAPM
|
|
9
9
|
mattr_accessor :components, :lines_to_ignore, :prepend_comment
|
10
10
|
SWOMarginalia::Comment.components ||= [:traceparent]
|
11
11
|
# To add new components:
|
12
|
-
# Create file and load after
|
12
|
+
# Create file and load after loading solarwinds_apm, and add following:
|
13
13
|
# SolarWindsAPM::SWOMarginalia::Comment.component = [:user_defined]
|
14
14
|
|
15
15
|
def self.update!(controller=nil)
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
require_relative './swomarginalia'
|
2
8
|
|
3
9
|
module SolarWindsAPM
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
# LRU TransactionCache with initial limit 1000
|
3
9
|
module TransactionCache
|
@@ -1,6 +1,9 @@
|
|
1
|
-
#
|
2
|
-
# All rights reserved.
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
3
2
|
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
4
7
|
module SolarWindsAPM
|
5
8
|
##
|
6
9
|
# This module helps with setting up the transaction filters and applying them
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
# SolarWindsTxnNameManager
|
3
9
|
class TxnNameManager
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
1
7
|
module SolarWindsAPM
|
2
8
|
# Utils
|
3
9
|
class Utils
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
module SolarWindsAPM
|
5
8
|
# XTraceOptions
|
@@ -1,8 +1,10 @@
|
|
1
|
-
#
|
2
|
-
# All rights reserved.
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
3
2
|
#
|
4
|
-
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
5
4
|
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
|
+
|
7
|
+
# This file is for loading support library
|
6
8
|
|
7
9
|
require_relative './support/logger_formatter'
|
8
10
|
require_relative './support/logging_log_event'
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
require 'rbconfig'
|
5
8
|
require 'logger'
|
@@ -82,7 +85,7 @@ module SolarWindsAPM
|
|
82
85
|
SolarWindsAPM.logger.warn '********************************************************'
|
83
86
|
SolarWindsAPM.logger.warn '* END SolarWindsAPM Support Report'
|
84
87
|
SolarWindsAPM.logger.warn '* Support Email: technicalsupport@solarwinds.com'
|
85
|
-
SolarWindsAPM.logger.warn '* Github: https://github.com/
|
88
|
+
SolarWindsAPM.logger.warn '* Github: https://github.com/solarwinds/apm-ruby'
|
86
89
|
SolarWindsAPM.logger.warn '********************************************************'
|
87
90
|
|
88
91
|
SolarWindsAPM.logger.level = @logger_level
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
module SolarWindsAPM
|
5
8
|
##
|
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
module SolarWindsAPM
|
5
8
|
##
|
@@ -9,7 +12,7 @@ module SolarWindsAPM
|
|
9
12
|
MAJOR = 6 # breaking,
|
10
13
|
MINOR = 0 # feature,
|
11
14
|
PATCH = 0 # fix => BFF
|
12
|
-
PRE = '
|
15
|
+
PRE = 'preV5'.freeze # for pre-releases into packagecloud, set to nil for production releases into rubygems
|
13
16
|
|
14
17
|
STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
|
15
18
|
end
|
data/lib/solarwinds_apm.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# © 2023 SolarWinds Worldwide, LLC. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:http://www.apache.org/licenses/LICENSE-2.0
|
4
|
+
#
|
5
|
+
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
3
6
|
|
4
7
|
begin
|
5
|
-
if ENV.
|
8
|
+
if ENV.fetch('SW_APM_ENABLED', 'true') == 'false'
|
6
9
|
SolarWindsAPM.logger.warn 'SW_APM_ENABLED environment variable detected and was set to false; SolarWindsAPM disabled'
|
7
10
|
return
|
8
11
|
end
|
@@ -53,7 +56,7 @@ begin
|
|
53
56
|
require 'solarwinds_apm/otel_config'
|
54
57
|
if ENV['SW_APM_AUTO_CONFIGURE'] == 'false'
|
55
58
|
SolarWindsAPM.logger.warn "SolarWindsAPM warning: Ruby library is not initilaized.
|
56
|
-
You may need to initialize Ruby library in application like the following:
|
59
|
+
You may need to initialize Ruby library in application like the following:
|
57
60
|
SolarWindsAPM::OTelConfig.initialize_with_config do |config|
|
58
61
|
...
|
59
62
|
end"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solarwinds_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.
|
4
|
+
version: 6.0.0.preV5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maia Engeli
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-
|
14
|
+
date: 2023-11-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: opentelemetry-sdk
|
@@ -19,28 +19,28 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.2.
|
22
|
+
version: 1.2.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.2.
|
29
|
+
version: 1.2.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: opentelemetry-instrumentation-all
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.
|
36
|
+
version: 0.31.0
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.
|
43
|
+
version: 0.31.0
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: json
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- lib/solarwinds_apm.rb
|
99
99
|
- lib/solarwinds_apm/api.rb
|
100
100
|
- lib/solarwinds_apm/api/current_trace_info.rb
|
101
|
+
- lib/solarwinds_apm/api/custom_metrics.rb
|
101
102
|
- lib/solarwinds_apm/api/opentelemetry.rb
|
102
103
|
- lib/solarwinds_apm/api/tracing.rb
|
103
104
|
- lib/solarwinds_apm/api/transaction_name.rb
|
@@ -140,10 +141,10 @@ homepage: https://documentation.solarwinds.com/en/success_center/observability/c
|
|
140
141
|
licenses:
|
141
142
|
- Apache-2.0
|
142
143
|
metadata:
|
143
|
-
changelog_uri: https://github.com/
|
144
|
+
changelog_uri: https://github.com/solarwinds/apm-ruby/releases
|
144
145
|
documentation_uri: https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
|
145
146
|
homepage_uri: https://documentation.solarwinds.com/en/success_center/observability/content/intro/landing-page.html
|
146
|
-
source_code_uri: https://github.com/
|
147
|
+
source_code_uri: https://github.com/solarwinds/apm-ruby
|
147
148
|
post_install_message:
|
148
149
|
rdoc_options: []
|
149
150
|
require_paths:
|