newrelic-infinite_tracing 8.16.0 → 9.1.0
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/Gemfile +1 -1
- data/Rakefile +2 -2
- data/lib/infinite_tracing/agent_integrations/agent.rb +4 -4
- data/lib/infinite_tracing/agent_integrations.rb +2 -2
- data/lib/infinite_tracing/client.rb +15 -11
- data/lib/infinite_tracing/config.rb +2 -2
- data/lib/infinite_tracing/connection.rb +4 -4
- data/lib/infinite_tracing/constants.rb +2 -2
- data/lib/infinite_tracing/proto/infinite_tracing_pb.rb +12 -12
- data/lib/infinite_tracing/record_status_handler.rb +3 -3
- data/lib/infinite_tracing/transformer.rb +4 -4
- data/lib/infinite_tracing/worker.rb +5 -5
- data/lib/newrelic/infinite_tracing.rb +2 -2
- data/newrelic-infinite_tracing.gemspec +27 -27
- data/tasks/helpers/license.rb +3 -3
- data/tasks/proto.rake +8 -8
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e441233adec62008575ac824e6de12d52a5226f56fb15973646cc1eb5111563
|
4
|
+
data.tar.gz: 4ab8125f9dbb5462bc61046c3060ce46664eaee359c33fe1041feaa04f364255
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf0309d48aa589451c8191353760a766be845cd6ddf63e94616a2505fa7f84cf1b944a27a6b37c094a0886728fe487d595b1469ca4c9b886fbedbb9e18e68073
|
7
|
+
data.tar.gz: 70e7390746a5161bed5f0f328116d1d63db6eb0d9f0a29690b32d8635890f319aa8b5e62e0427b371d4476e65f68b4bd09194acdfcb97f783c9fea14a378eb5c
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
5
|
module NewRelic::Agent
|
6
|
-
NewRelic::Agent.logger.debug(
|
6
|
+
NewRelic::Agent.logger.debug('Installing Infinite Tracer in Agent')
|
7
7
|
|
8
8
|
Agent.class_eval do
|
9
9
|
def new_infinite_tracer
|
@@ -11,7 +11,7 @@ module NewRelic::Agent
|
|
11
11
|
# entire start up process for the Agent.
|
12
12
|
InfiniteTracing::Client.new.tap do |client|
|
13
13
|
@infinite_tracer_thread = InfiniteTracing::Worker.new(:infinite_tracer) do
|
14
|
-
NewRelic::Agent.logger.debug(
|
14
|
+
NewRelic::Agent.logger.debug('Opening Infinite Tracer Stream with gRPC server')
|
15
15
|
client.start_streaming
|
16
16
|
end
|
17
17
|
end
|
@@ -23,7 +23,7 @@ module NewRelic::Agent
|
|
23
23
|
def handle_force_restart(error)
|
24
24
|
::NewRelic::Agent.logger.debug(error.message)
|
25
25
|
drop_buffered_data
|
26
|
-
@service
|
26
|
+
@service&.force_restart
|
27
27
|
@connect_state = :pending
|
28
28
|
close_infinite_tracer
|
29
29
|
sleep(30)
|
@@ -31,7 +31,7 @@ module NewRelic::Agent
|
|
31
31
|
|
32
32
|
# Whenever we reconnect, close and restart
|
33
33
|
def close_infinite_tracer
|
34
|
-
NewRelic::Agent.logger.debug(
|
34
|
+
NewRelic::Agent.logger.debug('Closing infinite tracer threads')
|
35
35
|
return unless @infinite_tracer_thread
|
36
36
|
|
37
37
|
@infinite_tracer_thread.join
|
@@ -5,7 +5,7 @@
|
|
5
5
|
module NewRelic::Agent
|
6
6
|
module InfiniteTracing
|
7
7
|
if Config.enabled? || Config.test_framework?
|
8
|
-
NewRelic::Agent.logger.debug(
|
8
|
+
NewRelic::Agent.logger.debug('Integrating Infinite Tracer with Agent')
|
9
9
|
|
10
10
|
require_relative 'agent_integrations/agent'
|
11
11
|
require_relative 'agent_integrations/segment'
|
@@ -13,7 +13,7 @@ module NewRelic::Agent
|
|
13
13
|
require_relative 'agent_integrations/external_request_segment'
|
14
14
|
|
15
15
|
else
|
16
|
-
NewRelic::Agent.logger.debug(
|
16
|
+
NewRelic::Agent.logger.debug('Skipped Integrating Infinite Tracer with Agent')
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -55,7 +55,7 @@ module NewRelic::Agent
|
|
55
55
|
|
56
56
|
# Turns camelcase base class name into upper snake case version of the name.
|
57
57
|
def formatted_class_name(class_name)
|
58
|
-
class_name = class_name.split(
|
58
|
+
class_name = class_name.split(':')[-1]
|
59
59
|
(class_name.gsub!(/(.)([A-Z])/, '\1_\2') || class_name).upcase
|
60
60
|
end
|
61
61
|
|
@@ -73,7 +73,7 @@ module NewRelic::Agent
|
|
73
73
|
else
|
74
74
|
NewRelic::Agent.record_metric(GRPC_OTHER_ERROR_METRIC, 0.0)
|
75
75
|
end
|
76
|
-
NewRelic::Agent.logger.warn(
|
76
|
+
NewRelic::Agent.logger.warn('gRPC response error received.', error)
|
77
77
|
end
|
78
78
|
|
79
79
|
def handle_error(error)
|
@@ -99,8 +99,8 @@ module NewRelic::Agent
|
|
99
99
|
# server and re-establish the gRPC bi-directional stream. Useful for the server
|
100
100
|
# to initiate a load-balancing scheme.
|
101
101
|
def handle_close
|
102
|
-
NewRelic::Agent.logger.debug(
|
103
|
-
|
102
|
+
NewRelic::Agent.logger.debug('The gRPC Trace Observer closed the stream with OK response. ' \
|
103
|
+
'Restarting the stream.')
|
104
104
|
start_streaming
|
105
105
|
end
|
106
106
|
|
@@ -113,8 +113,8 @@ module NewRelic::Agent
|
|
113
113
|
@lock.synchronize do
|
114
114
|
@suspended = true
|
115
115
|
@buffer = new_streaming_buffer
|
116
|
-
NewRelic::Agent.logger.warn(
|
117
|
-
|
116
|
+
NewRelic::Agent.logger.warn('The Trace Observer host signaled to suspend streaming span events. ' \
|
117
|
+
'No more span events will be sent during this session.')
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
@@ -133,9 +133,11 @@ module NewRelic::Agent
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def restart
|
136
|
-
|
137
|
-
|
138
|
-
|
136
|
+
NewRelic::Agent.disable_all_tracing do
|
137
|
+
reset_connection
|
138
|
+
transfer_buffer
|
139
|
+
start_streaming
|
140
|
+
end
|
139
141
|
end
|
140
142
|
|
141
143
|
def stop
|
@@ -150,8 +152,10 @@ module NewRelic::Agent
|
|
150
152
|
def start_streaming(exponential_backoff = true)
|
151
153
|
return if suspended?
|
152
154
|
|
153
|
-
|
154
|
-
|
155
|
+
NewRelic::Agent.disable_all_tracing do
|
156
|
+
Connection.instance.wait_for_agent_connect
|
157
|
+
@lock.synchronize { response_handler(exponential_backoff) }
|
158
|
+
end
|
155
159
|
end
|
156
160
|
|
157
161
|
def record_spans(exponential_backoff)
|
@@ -10,7 +10,7 @@ module NewRelic::Agent
|
|
10
10
|
COMPRESSION_LEVEL_DISABLED = :none
|
11
11
|
COMPRESSION_LEVEL_DEFAULT = :high
|
12
12
|
COMPRESSION_LEVEL_LIST = %i[none low medium high].freeze
|
13
|
-
TRACE_OBSERVER_NOT_CONFIGURED_ERROR =
|
13
|
+
TRACE_OBSERVER_NOT_CONFIGURED_ERROR = 'Trace Observer host not configured!'
|
14
14
|
|
15
15
|
# We only want to load the infinite tracing gem's files when
|
16
16
|
# a) we're inside test framework and running tests
|
@@ -64,7 +64,7 @@ module NewRelic::Agent
|
|
64
64
|
# is overridden by the presence of the port on the host entry.
|
65
65
|
def port_from_host_entry
|
66
66
|
port_str = NewRelic::Agent.config[:'infinite_tracing.trace_observer.host'].scan(%r{:(\d+)$}).flatten
|
67
|
-
if port =
|
67
|
+
if port = port_str[0]&.to_i
|
68
68
|
NewRelic::Agent.logger.warn(":'infinite_tracing.trace_observer.port' is ignored if present because :'infinite_tracing.trace_observer.host' specifies the port")
|
69
69
|
return port
|
70
70
|
end
|
@@ -31,7 +31,7 @@ module NewRelic::Agent
|
|
31
31
|
Connection.instance.notify_agent_started
|
32
32
|
rescue => error
|
33
33
|
NewRelic::Agent.logger.error( \
|
34
|
-
|
34
|
+
'Error during notify :server_source_configuration_added event',
|
35
35
|
error
|
36
36
|
)
|
37
37
|
end
|
@@ -102,8 +102,8 @@ module NewRelic::Agent
|
|
102
102
|
|
103
103
|
@lock.synchronize do
|
104
104
|
@metadata = {
|
105
|
-
|
106
|
-
|
105
|
+
'license_key' => license_key,
|
106
|
+
'agent_run_token' => agent_id
|
107
107
|
}
|
108
108
|
@metadata.merge!(request_headers_map)
|
109
109
|
merge_gzip_metadata
|
@@ -168,7 +168,7 @@ module NewRelic::Agent
|
|
168
168
|
yield
|
169
169
|
rescue => exception
|
170
170
|
retry_connection_period = retry_connection_period(exponential_backoff)
|
171
|
-
::NewRelic::Agent.logger.error(
|
171
|
+
::NewRelic::Agent.logger.error('Error establishing connection with infinite tracing service:', exception)
|
172
172
|
::NewRelic::Agent.logger.info("Will re-attempt infinite tracing connection in #{retry_connection_period} seconds")
|
173
173
|
sleep(retry_connection_period)
|
174
174
|
note_connect_failure
|
@@ -5,7 +5,7 @@
|
|
5
5
|
module NewRelic::Agent
|
6
6
|
module InfiniteTracing
|
7
7
|
module Constants
|
8
|
-
SUPPORTABILITY_PREFIX =
|
8
|
+
SUPPORTABILITY_PREFIX = 'Supportability/InfiniteTracing/Span'
|
9
9
|
|
10
10
|
SPANS_SEEN_METRIC = "#{SUPPORTABILITY_PREFIX}/Seen"
|
11
11
|
SPANS_SENT_METRIC = "#{SUPPORTABILITY_PREFIX}/Sent"
|
@@ -13,7 +13,7 @@ module NewRelic::Agent
|
|
13
13
|
RESPONSE_ERROR_METRIC = "#{SUPPORTABILITY_PREFIX}/Response/Error"
|
14
14
|
|
15
15
|
GRPC_ERROR_NAME_METRIC = "#{SUPPORTABILITY_PREFIX}/gRPC/%s"
|
16
|
-
GRPC_OTHER_ERROR_METRIC = GRPC_ERROR_NAME_METRIC %
|
16
|
+
GRPC_OTHER_ERROR_METRIC = GRPC_ERROR_NAME_METRIC % 'Other'
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -6,16 +6,16 @@
|
|
6
6
|
# source: infinite_tracing.proto
|
7
7
|
|
8
8
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
|
-
add_message
|
10
|
-
repeated :spans, :message, 1,
|
9
|
+
add_message 'com.newrelic.trace.v1.SpanBatch' do
|
10
|
+
repeated :spans, :message, 1, 'com.newrelic.trace.v1.Span'
|
11
11
|
end
|
12
|
-
add_message
|
12
|
+
add_message 'com.newrelic.trace.v1.Span' do
|
13
13
|
optional :trace_id, :string, 1
|
14
|
-
map :intrinsics, :string, :message, 2,
|
15
|
-
map :user_attributes, :string, :message, 3,
|
16
|
-
map :agent_attributes, :string, :message, 4,
|
14
|
+
map :intrinsics, :string, :message, 2, 'com.newrelic.trace.v1.AttributeValue'
|
15
|
+
map :user_attributes, :string, :message, 3, 'com.newrelic.trace.v1.AttributeValue'
|
16
|
+
map :agent_attributes, :string, :message, 4, 'com.newrelic.trace.v1.AttributeValue'
|
17
17
|
end
|
18
|
-
add_message
|
18
|
+
add_message 'com.newrelic.trace.v1.AttributeValue' do
|
19
19
|
oneof :value do
|
20
20
|
optional :string_value, :string, 1
|
21
21
|
optional :bool_value, :bool, 2
|
@@ -23,7 +23,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
23
23
|
optional :double_value, :double, 4
|
24
24
|
end
|
25
25
|
end
|
26
|
-
add_message
|
26
|
+
add_message 'com.newrelic.trace.v1.RecordStatus' do
|
27
27
|
optional :messages_seen, :uint64, 1
|
28
28
|
end
|
29
29
|
end
|
@@ -32,10 +32,10 @@ module Com
|
|
32
32
|
module Newrelic
|
33
33
|
module Trace
|
34
34
|
module V1
|
35
|
-
SpanBatch = Google::Protobuf::DescriptorPool.generated_pool.lookup(
|
36
|
-
Span = Google::Protobuf::DescriptorPool.generated_pool.lookup(
|
37
|
-
AttributeValue = Google::Protobuf::DescriptorPool.generated_pool.lookup(
|
38
|
-
RecordStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup(
|
35
|
+
SpanBatch = Google::Protobuf::DescriptorPool.generated_pool.lookup('com.newrelic.trace.v1.SpanBatch').msgclass
|
36
|
+
Span = Google::Protobuf::DescriptorPool.generated_pool.lookup('com.newrelic.trace.v1.Span').msgclass
|
37
|
+
AttributeValue = Google::Protobuf::DescriptorPool.generated_pool.lookup('com.newrelic.trace.v1.AttributeValue').msgclass
|
38
|
+
RecordStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup('com.newrelic.trace.v1.RecordStatus').msgclass
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -21,7 +21,7 @@ module NewRelic::Agent
|
|
21
21
|
return if @worker.nil?
|
22
22
|
|
23
23
|
@lock.synchronize do
|
24
|
-
NewRelic::Agent.logger.debug(
|
24
|
+
NewRelic::Agent.logger.debug('gRPC Stopping Response Handler')
|
25
25
|
@worker.stop
|
26
26
|
@worker = nil
|
27
27
|
end
|
@@ -43,13 +43,13 @@ module NewRelic::Agent
|
|
43
43
|
def start_handler
|
44
44
|
Worker.new(self.class.name) do
|
45
45
|
handle_response
|
46
|
-
NewRelic::Agent.logger.debug(
|
46
|
+
NewRelic::Agent.logger.debug('gRPC Infinite Tracer Observer closed the stream')
|
47
47
|
@client.handle_close
|
48
48
|
rescue => error
|
49
49
|
@client.handle_error(error)
|
50
50
|
end
|
51
51
|
rescue => error
|
52
|
-
NewRelic::Agent.logger.error(
|
52
|
+
NewRelic::Agent.logger.error('gRPC Worker Error', error)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -10,10 +10,10 @@ module NewRelic::Agent
|
|
10
10
|
def transform(span_event)
|
11
11
|
intrinsics, user_attributes, agent_attributes = span_event
|
12
12
|
{
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
'trace_id' => intrinsics[NewRelic::Agent::SpanEventPrimitive::TRACE_ID_KEY],
|
14
|
+
'intrinsics' => hash_to_attributes(intrinsics),
|
15
|
+
'user_attributes' => hash_to_attributes(user_attributes),
|
16
|
+
'agent_attributes' => hash_to_attributes(agent_attributes)
|
17
17
|
}
|
18
18
|
end
|
19
19
|
|
@@ -21,12 +21,12 @@ module NewRelic::Agent
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def status
|
24
|
-
return
|
24
|
+
return 'error' if error?
|
25
25
|
|
26
26
|
@lock.synchronize do
|
27
|
-
return
|
27
|
+
return 'stopped' if @worker_thread.nil?
|
28
28
|
|
29
|
-
@worker_thread.status ||
|
29
|
+
@worker_thread.status || 'idle'
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -55,7 +55,7 @@ module NewRelic::Agent
|
|
55
55
|
|
56
56
|
def start_thread
|
57
57
|
NewRelic::Agent.logger.debug("starting worker #{@name} thread...")
|
58
|
-
@worker_thread = NewRelic::Agent::Threading::AgentThread.create(
|
58
|
+
@worker_thread = NewRelic::Agent::Threading::AgentThread.create('infinite_tracing_worker') do
|
59
59
|
catch(:exit) do
|
60
60
|
begin
|
61
61
|
@job.call
|
@@ -67,7 +67,7 @@ module NewRelic::Agent
|
|
67
67
|
end
|
68
68
|
@worker_thread.abort_on_exception = true
|
69
69
|
if @worker_thread.respond_to?(:report_on_exception)
|
70
|
-
@worker_thread.report_on_exception = NewRelic::Agent.config[:log_level] ==
|
70
|
+
@worker_thread.report_on_exception = NewRelic::Agent.config[:log_level] == 'debug'
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
@@ -8,7 +8,7 @@ require 'uri'
|
|
8
8
|
|
9
9
|
require 'newrelic_rpm'
|
10
10
|
|
11
|
-
NewRelic::Agent.logger.debug(
|
11
|
+
NewRelic::Agent.logger.debug('Detected New Relic Infinite Tracing Gem')
|
12
12
|
|
13
13
|
require 'infinite_tracing/version'
|
14
14
|
require 'infinite_tracing/config'
|
@@ -21,7 +21,7 @@ DependencyDetection.defer do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
executes do
|
24
|
-
NewRelic::Agent.logger.debug(
|
24
|
+
NewRelic::Agent.logger.debug('Loading New Relic Infinite Tracing Library')
|
25
25
|
|
26
26
|
require 'infinite_tracing/proto'
|
27
27
|
|
@@ -22,38 +22,38 @@ Gem::Specification.new do |s|
|
|
22
22
|
end
|
23
23
|
|
24
24
|
shared_files = [
|
25
|
-
|
26
|
-
|
25
|
+
'../LICENSE',
|
26
|
+
'../CONTRIBUTING.md'
|
27
27
|
]
|
28
28
|
|
29
29
|
self.copy_files(shared_files)
|
30
30
|
|
31
|
-
s.name =
|
31
|
+
s.name = 'newrelic-infinite_tracing'
|
32
32
|
s.version = NewRelic::VERSION::STRING
|
33
33
|
s.required_ruby_version = '>= 2.5.0'
|
34
|
-
s.required_rubygems_version = Gem::Requirement.new(
|
35
|
-
s.authors = [
|
34
|
+
s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to?(:required_rubygems_version=)
|
35
|
+
s.authors = ['Tanna McClure', 'Kayla Reopelle', 'James Bunch', 'Hannah Ramadan']
|
36
36
|
s.licenses = ['Apache-2.0']
|
37
|
-
s.description =
|
38
|
-
The New Relic Ruby agent requires the gem newrelic_rpm, and it includes distributed
|
39
|
-
tracing that uses head-based sampling (standard distributed tracing).
|
40
|
-
|
41
|
-
If you want distributed tracing to use tail-based sampling (Infinite Tracing),
|
42
|
-
you need to add both newrelic_rpm and newrelic-infinite_tracing to your application's
|
43
|
-
Gemfile. For more information, see: https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing
|
44
|
-
|
45
|
-
New Relic is a performance management system, developed by New Relic,
|
46
|
-
Inc (http://www.newrelic.com). New Relic provides you with deep
|
47
|
-
information about the performance of your web application as it runs
|
48
|
-
in production. The New Relic Ruby Agent is dual-purposed as a either a
|
49
|
-
Gem or plugin, hosted on https://github.com/newrelic/newrelic-ruby-agent/
|
37
|
+
s.description = <<~EOS
|
38
|
+
The New Relic Ruby agent requires the gem newrelic_rpm, and it includes distributed
|
39
|
+
tracing that uses head-based sampling (standard distributed tracing).
|
40
|
+
|
41
|
+
If you want distributed tracing to use tail-based sampling (Infinite Tracing),
|
42
|
+
you need to add both newrelic_rpm and newrelic-infinite_tracing to your application's
|
43
|
+
Gemfile. For more information, see: https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing
|
44
|
+
|
45
|
+
New Relic is a performance management system, developed by New Relic,
|
46
|
+
Inc (http://www.newrelic.com). New Relic provides you with deep
|
47
|
+
information about the performance of your web application as it runs
|
48
|
+
in production. The New Relic Ruby Agent is dual-purposed as a either a
|
49
|
+
Gem or plugin, hosted on https://github.com/newrelic/newrelic-ruby-agent/
|
50
50
|
EOS
|
51
51
|
|
52
|
-
s.email =
|
52
|
+
s.email = 'support@newrelic.com'
|
53
53
|
s.executables = []
|
54
54
|
s.extra_rdoc_files = [
|
55
|
-
|
56
|
-
|
55
|
+
'CHANGELOG.md',
|
56
|
+
'LICENSE'
|
57
57
|
]
|
58
58
|
|
59
59
|
s.metadata = {
|
@@ -61,22 +61,22 @@ Gem or plugin, hosted on https://github.com/newrelic/newrelic-ruby-agent/
|
|
61
61
|
'changelog_uri' => 'https://github.com/newrelic/newrelic-ruby-agent/blob/main/infinite_tracing/CHANGELOG.md',
|
62
62
|
'documentation_uri' => 'https://docs.newrelic.com/docs/agents/ruby-agent',
|
63
63
|
'source_code_uri' => 'https://github.com/newrelic/newrelic-ruby-agent',
|
64
|
-
|
64
|
+
'homepage_uri' => 'https://newrelic.com/products/edge-infinite-tracing'
|
65
65
|
}
|
66
66
|
|
67
67
|
file_list = `git ls-files . -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/(?!agent_helper.rb)}) }
|
68
68
|
s.files = file_list
|
69
69
|
|
70
|
-
s.homepage =
|
70
|
+
s.homepage = 'https://github.com/newrelic/newrelic-ruby-agent/tree/main/infinite_tracing'
|
71
71
|
s.require_paths = %w[lib infinite_tracing]
|
72
|
-
s.summary =
|
72
|
+
s.summary = 'New Relic Infinite Tracing for the Ruby agent'
|
73
73
|
|
74
74
|
s.add_dependency 'newrelic_rpm', NewRelic::VERSION::STRING
|
75
75
|
s.add_dependency 'grpc', '~> 1.34'
|
76
76
|
|
77
77
|
s.add_development_dependency 'rake', '12.3.3'
|
78
|
-
s.add_development_dependency 'rb-inotify'
|
79
|
-
s.add_development_dependency 'listen'
|
78
|
+
s.add_development_dependency 'rb-inotify'
|
79
|
+
s.add_development_dependency 'listen'
|
80
80
|
s.add_development_dependency 'minitest', '~> 5.15'
|
81
81
|
s.add_development_dependency 'minitest-stub-const', '0.6'
|
82
82
|
s.add_development_dependency 'mocha', '~> 1.9.0'
|
@@ -87,5 +87,5 @@ Gem or plugin, hosted on https://github.com/newrelic/newrelic-ruby-agent/
|
|
87
87
|
s.add_development_dependency 'bundler'
|
88
88
|
s.add_development_dependency 'simplecov'
|
89
89
|
|
90
|
-
s.add_development_dependency 'grpc-tools',
|
90
|
+
s.add_development_dependency 'grpc-tools', '~> 1.14'
|
91
91
|
end
|
data/tasks/helpers/license.rb
CHANGED
@@ -6,14 +6,14 @@ module License
|
|
6
6
|
def extract_license_terms(file_contents)
|
7
7
|
text = []
|
8
8
|
text << file_contents.shift while !file_contents.empty? && file_contents[0] =~ /^#/
|
9
|
-
text <<
|
9
|
+
text << ''
|
10
10
|
text
|
11
11
|
end
|
12
12
|
|
13
13
|
def add_license_preamble_and_remove_requires(output_path)
|
14
14
|
gemspec_path = File.expand_path(File.join(output_path, '..', '..', '..', '..', '..'))
|
15
|
-
license_terms = extract_license_terms(File.readlines(File.join(gemspec_path,
|
16
|
-
Dir.glob(File.join(output_path,
|
15
|
+
license_terms = extract_license_terms(File.readlines(File.join(gemspec_path, 'Gemfile')))
|
16
|
+
Dir.glob(File.join(output_path, '*.rb')) do |filename|
|
17
17
|
contents = File.readlines(filename)
|
18
18
|
contents.reject! { |r| r =~ /^\s*require\s.*$/ }
|
19
19
|
File.open(filename, 'w') do |output|
|
data/tasks/proto.rake
CHANGED
@@ -6,25 +6,25 @@ require_relative 'helpers/license'
|
|
6
6
|
include License
|
7
7
|
|
8
8
|
namespace :proto do
|
9
|
-
desc
|
9
|
+
desc 'Generate proto files'
|
10
10
|
task :generate do
|
11
|
-
gem_folder = File.expand_path(File.join(File.dirname(__FILE__),
|
12
|
-
proto_filename = File.join(gem_folder,
|
13
|
-
output_path = File.join(gem_folder,
|
11
|
+
gem_folder = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
12
|
+
proto_filename = File.join(gem_folder, 'lib', 'new_relic', 'proto', 'infinite_tracing.proto')
|
13
|
+
output_path = File.join(gem_folder, 'lib', 'new_relic', 'infinite_tracing', 'proto')
|
14
14
|
|
15
15
|
FileUtils.mkdir_p(output_path)
|
16
16
|
cmd = [
|
17
|
-
|
17
|
+
'grpc_tools_ruby_protoc',
|
18
18
|
"-I#{gem_folder}/lib/new_relic/proto",
|
19
19
|
"--ruby_out=#{output_path}",
|
20
20
|
"--grpc_out=#{output_path} #{proto_filename}"
|
21
|
-
].join(
|
21
|
+
].join(' ')
|
22
22
|
|
23
23
|
if system(cmd)
|
24
|
-
puts
|
24
|
+
puts 'Proto file generated!'
|
25
25
|
add_license_preamble_and_remove_requires(output_path)
|
26
26
|
else
|
27
|
-
puts
|
27
|
+
puts 'Failed to generate proto file.'
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic-infinite_tracing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanna McClure
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-
|
14
|
+
date: 2023-03-30 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: newrelic_rpm
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 9.1.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:
|
29
|
+
version: 9.1.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: grpc
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,30 +59,30 @@ dependencies:
|
|
59
59
|
name: rb-inotify
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- -
|
62
|
+
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 0
|
64
|
+
version: '0'
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: 0
|
71
|
+
version: '0'
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: listen
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: '0'
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: '0'
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: minitest
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|