newrelic-infinite_tracing 8.0.0 → 8.4.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/Rakefile +1 -1
- data/lib/infinite_tracing/agent_integrations/agent.rb +3 -4
- data/lib/infinite_tracing/agent_integrations/datastore_segment.rb +3 -0
- data/lib/infinite_tracing/agent_integrations/external_request_segment.rb +3 -0
- data/lib/infinite_tracing/agent_integrations/segment.rb +3 -1
- data/lib/infinite_tracing/agent_integrations.rb +1 -1
- data/lib/infinite_tracing/channel.rb +5 -7
- data/lib/infinite_tracing/client.rb +6 -6
- data/lib/infinite_tracing/config.rb +7 -7
- data/lib/infinite_tracing/connection.rb +5 -10
- data/lib/infinite_tracing/constants.rb +6 -6
- data/lib/infinite_tracing/proto/infinite_tracing_pb.rb +0 -1
- data/lib/infinite_tracing/proto/infinite_tracing_services_pb.rb +0 -2
- data/lib/infinite_tracing/record_status_handler.rb +1 -1
- data/lib/infinite_tracing/streaming_buffer.rb +2 -4
- data/lib/infinite_tracing/suspended_streaming_buffer.rb +3 -3
- data/lib/infinite_tracing/transformer.rb +4 -4
- data/lib/infinite_tracing/worker.rb +5 -7
- data/lib/infinite_tracing.rb +1 -1
- data/lib/new_relic/infinite_tracing.rb +1 -1
- data/lib/newrelic/infinite_tracing.rb +1 -1
- data/newrelic-infinite_tracing.gemspec +9 -11
- data/tasks/all.rb +1 -1
- data/tasks/proto.rake +1 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66f63e96a5789d5ad7310a0e4ce0b114a92a8285b9f9432effa2efc9c55d0df9
|
4
|
+
data.tar.gz: 4f5ea5924bb785c2a3b21bb1e45aabb70e93cb0a084aea03963cc2b66177eee6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65194e512d3bb1933ff16cd34625fc87c3f6f5f0fecaa77ade1fee1d6c720338721ec61320d51677de2033a389873b6226723da336460cb65f61d9f21b059e92
|
7
|
+
data.tar.gz: 6ac316b0790e67262683dabe68cd8b1242468985766c2ffea65327fb65affd8e09eb8f2002649a41708060e249839e9d46bbe2973473e3a7b180e2b98c286379
|
data/Rakefile
CHANGED
@@ -5,14 +5,13 @@
|
|
5
5
|
|
6
6
|
module NewRelic::Agent
|
7
7
|
NewRelic::Agent.logger.debug "Installing Infinite Tracer in Agent"
|
8
|
-
|
9
|
-
Agent.class_eval do
|
10
8
|
|
9
|
+
Agent.class_eval do
|
11
10
|
def new_infinite_tracer
|
12
11
|
# We must start streaming in a thread or we block/deadlock the
|
13
12
|
# entire start up process for the Agent.
|
14
|
-
InfiniteTracing::Client.new.tap do |client|
|
15
|
-
@infinite_tracer_thread = InfiniteTracing::Worker.new(:infinite_tracer) do
|
13
|
+
InfiniteTracing::Client.new.tap do |client|
|
14
|
+
@infinite_tracer_thread = InfiniteTracing::Worker.new(:infinite_tracer) do
|
16
15
|
NewRelic::Agent.logger.debug "Opening Infinite Tracer Stream with gRPC server"
|
17
16
|
client.start_streaming
|
18
17
|
end
|
@@ -8,6 +8,9 @@ module NewRelic
|
|
8
8
|
class Transaction
|
9
9
|
class DatastoreSegment
|
10
10
|
def record_span_event
|
11
|
+
# don't record a span event if the transaction is ignored
|
12
|
+
return if transaction.ignore?
|
13
|
+
|
11
14
|
tracer = ::NewRelic::Agent.agent.infinite_tracer
|
12
15
|
tracer << Proc.new { SpanEventPrimitive.for_datastore_segment self }
|
13
16
|
end
|
@@ -8,6 +8,9 @@ module NewRelic
|
|
8
8
|
class Transaction
|
9
9
|
class ExternalRequestSegment
|
10
10
|
def record_span_event
|
11
|
+
# don't record a span event if the transaction is ignored
|
12
|
+
return if transaction.ignore?
|
13
|
+
|
11
14
|
tracer = ::NewRelic::Agent.agent.infinite_tracer
|
12
15
|
tracer << Proc.new { SpanEventPrimitive.for_external_request_segment self }
|
13
16
|
end
|
@@ -7,12 +7,14 @@ module NewRelic
|
|
7
7
|
module Agent
|
8
8
|
class Transaction
|
9
9
|
class Segment
|
10
|
-
|
11
10
|
def segment_complete
|
12
11
|
record_span_event
|
13
12
|
end
|
14
13
|
|
15
14
|
def record_span_event
|
15
|
+
# don't record a span event if the transaction is ignored
|
16
|
+
return if transaction.ignore?
|
17
|
+
|
16
18
|
tracer = ::NewRelic::Agent.agent.infinite_tracer
|
17
19
|
tracer << Proc.new { SpanEventPrimitive.for_segment self }
|
18
20
|
end
|
@@ -6,23 +6,22 @@
|
|
6
6
|
module NewRelic::Agent
|
7
7
|
module InfiniteTracing
|
8
8
|
class Channel
|
9
|
-
|
10
9
|
def stub
|
11
10
|
NewRelic::Agent.logger.debug "Infinite Tracer Opening Channel to #{host_and_port}"
|
12
11
|
|
13
12
|
Com::Newrelic::Trace::V1::IngestService::Stub.new \
|
14
|
-
host_and_port,
|
15
|
-
credentials,
|
13
|
+
host_and_port,
|
14
|
+
credentials,
|
16
15
|
channel_override: channel
|
17
16
|
end
|
18
17
|
|
19
18
|
def channel
|
20
19
|
GRPC::Core::Channel.new(host_and_port, settings, credentials)
|
21
20
|
end
|
22
|
-
|
21
|
+
|
23
22
|
def credentials
|
24
23
|
if Config.local?
|
25
|
-
:this_channel_is_insecure
|
24
|
+
:this_channel_is_insecure
|
26
25
|
else
|
27
26
|
# Uses system configured certificates by default
|
28
27
|
GRPC::Core::ChannelCredentials.new
|
@@ -36,10 +35,9 @@ module NewRelic::Agent
|
|
36
35
|
def settings
|
37
36
|
{
|
38
37
|
'grpc.minimal_stack' => 1,
|
39
|
-
'grpc.enable_deadline_checking' => 0
|
38
|
+
'grpc.enable_deadline_checking' => 0
|
40
39
|
}
|
41
40
|
end
|
42
|
-
|
43
41
|
end
|
44
42
|
end
|
45
43
|
end
|
@@ -7,9 +7,9 @@
|
|
7
7
|
#
|
8
8
|
# Restarting the client will cause a new connection to the gRPC server.
|
9
9
|
# When the client is restarted, a new streaming buffer is started and contents of old
|
10
|
-
# buffer are transferred to the new buffer.
|
10
|
+
# buffer are transferred to the new buffer.
|
11
11
|
#
|
12
|
-
# Suspending the client will prevent the client from attempting to reconnect to the
|
12
|
+
# Suspending the client will prevent the client from attempting to reconnect to the
|
13
13
|
# gRPC server, but will still continue to record the span events `seen` metric.
|
14
14
|
module NewRelic::Agent
|
15
15
|
module InfiniteTracing
|
@@ -52,7 +52,7 @@ module NewRelic::Agent
|
|
52
52
|
# Turns camelcase base class name into upper snake case version of the name.
|
53
53
|
def formatted_class_name class_name
|
54
54
|
class_name = class_name.split(":")[-1]
|
55
|
-
formatted_class_name = (class_name.gsub!(/(.)([A-Z])/,'\1_\2') || class_name).upcase
|
55
|
+
formatted_class_name = (class_name.gsub!(/(.)([A-Z])/, '\1_\2') || class_name).upcase
|
56
56
|
end
|
57
57
|
|
58
58
|
# Literal codes are all mapped to unique class names, so we can deduce the
|
@@ -91,7 +91,7 @@ module NewRelic::Agent
|
|
91
91
|
|
92
92
|
# This method is called when the server closes the record status stream without
|
93
93
|
# raising an error. The Channel/Connection is not closed or reset in this case.
|
94
|
-
# We simply start streaming again, which will reuse the channel/connection to the
|
94
|
+
# We simply start streaming again, which will reuse the channel/connection to the
|
95
95
|
# server and re-establish the gRPC bi-directional stream. Useful for the server
|
96
96
|
# to initiate a load-balancing scheme.
|
97
97
|
def handle_close
|
@@ -100,7 +100,7 @@ module NewRelic::Agent
|
|
100
100
|
start_streaming
|
101
101
|
end
|
102
102
|
|
103
|
-
# Places the client into suspended state whereby client will no longer attempt to
|
103
|
+
# Places the client into suspended state whereby client will no longer attempt to
|
104
104
|
# reconnect to the gRPC server nor will it attempt to send span events henceforth.
|
105
105
|
# The Suspended Streaming Buffer will be installed in this state.
|
106
106
|
def suspend
|
@@ -141,7 +141,7 @@ module NewRelic::Agent
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
def start_streaming exponential_backoff=true
|
144
|
+
def start_streaming exponential_backoff = true
|
145
145
|
return if suspended?
|
146
146
|
Connection.instance.wait_for_agent_connect
|
147
147
|
@lock.synchronize { @response_handler = record_spans exponential_backoff }
|
@@ -24,9 +24,9 @@ module NewRelic::Agent
|
|
24
24
|
# AND the collect_span_events connect response field, AND
|
25
25
|
# c) A Trace Observer host is configured by setting infinite_tracing.trace_observer.host.
|
26
26
|
def enabled?
|
27
|
-
distributed_tracing_enabled? &&
|
28
|
-
|
29
|
-
|
27
|
+
distributed_tracing_enabled? &&
|
28
|
+
span_events_enabled? &&
|
29
|
+
trace_observer_configured?
|
30
30
|
end
|
31
31
|
|
32
32
|
# Distributed Tracing must be enabled for Infinite Tracing
|
@@ -39,9 +39,9 @@ module NewRelic::Agent
|
|
39
39
|
NewRelic::Agent.config[:'span_events.enabled']
|
40
40
|
end
|
41
41
|
|
42
|
-
# running locally is akin to communicating with the gRPC server with an
|
42
|
+
# running locally is akin to communicating with the gRPC server with an
|
43
43
|
# unencrypted channel. Generally, this is _not_ allowed by the agent
|
44
|
-
# in normal use-cases. The only known use-case for this is when
|
44
|
+
# in normal use-cases. The only known use-case for this is when
|
45
45
|
# streaming under TEST conditions.
|
46
46
|
def local?
|
47
47
|
test_framework?
|
@@ -74,7 +74,7 @@ module NewRelic::Agent
|
|
74
74
|
port_from_host_entry || NewRelic::Agent.config[:'infinite_tracing.trace_observer.port']
|
75
75
|
end
|
76
76
|
|
77
|
-
# The scheme is based on whether the Trace Observer is running locally or remotely.
|
77
|
+
# The scheme is based on whether the Trace Observer is running locally or remotely.
|
78
78
|
# Remote unsecure (unencypted) streaming is disallowed!
|
79
79
|
def trace_observer_scheme
|
80
80
|
local? ? NewRelic::HTTP : NewRelic::HTTPS
|
@@ -95,7 +95,7 @@ module NewRelic::Agent
|
|
95
95
|
"#{trace_observer_host}:#{trace_observer_port}"
|
96
96
|
end
|
97
97
|
|
98
|
-
# The maximum number of span events the Streaming Buffer can hold when buffering
|
98
|
+
# The maximum number of span events the Streaming Buffer can hold when buffering
|
99
99
|
# to stream across the gRPC channel.
|
100
100
|
def span_events_queue_size
|
101
101
|
NewRelic::Agent.config[:'span_events.queue_size']
|
@@ -18,8 +18,6 @@
|
|
18
18
|
module NewRelic::Agent
|
19
19
|
module InfiniteTracing
|
20
20
|
class Connection
|
21
|
-
|
22
|
-
|
23
21
|
# listens for server side configurations added to the agent. When a new config is
|
24
22
|
# added, we have a new agent run token and need to restart the client's RPC stream
|
25
23
|
# with the new metadata information.
|
@@ -34,7 +32,6 @@ module NewRelic::Agent
|
|
34
32
|
end
|
35
33
|
|
36
34
|
class << self
|
37
|
-
|
38
35
|
def instance
|
39
36
|
@@instance ||= new
|
40
37
|
end
|
@@ -65,8 +62,8 @@ module NewRelic::Agent
|
|
65
62
|
# We attempt to connect and record spans with reconnection backoff in order to deal with
|
66
63
|
# unavailable errors coming from the stub being created and record_span call
|
67
64
|
def record_spans client, enumerator, exponential_backoff
|
68
|
-
|
69
|
-
|
65
|
+
@active_clients[client] = client
|
66
|
+
with_reconnection_backoff(exponential_backoff) { rpc.record_span enumerator, metadata: metadata }
|
70
67
|
end
|
71
68
|
|
72
69
|
# RPC calls will pass the calling client instance in. We track this
|
@@ -84,7 +81,7 @@ module NewRelic::Agent
|
|
84
81
|
wait_for_agent_connect
|
85
82
|
@rpc ||= Channel.new.stub
|
86
83
|
end
|
87
|
-
|
84
|
+
|
88
85
|
def wait_for_agent_connect
|
89
86
|
@lock.synchronize do
|
90
87
|
@agent_started.wait(@lock) if !@agent_connected
|
@@ -98,7 +95,6 @@ module NewRelic::Agent
|
|
98
95
|
return @metadata if @metadata
|
99
96
|
|
100
97
|
@lock.synchronize do
|
101
|
-
|
102
98
|
@metadata = {
|
103
99
|
"license_key" => license_key,
|
104
100
|
"agent_run_token" => agent_id
|
@@ -152,7 +148,7 @@ module NewRelic::Agent
|
|
152
148
|
end
|
153
149
|
|
154
150
|
# Continues retrying the connection at backoff intervals until a successful connection is made
|
155
|
-
def with_reconnection_backoff exponential_backoff=true, &block
|
151
|
+
def with_reconnection_backoff exponential_backoff = true, &block
|
156
152
|
@connection_attempts = 0
|
157
153
|
begin
|
158
154
|
yield
|
@@ -166,7 +162,7 @@ module NewRelic::Agent
|
|
166
162
|
end
|
167
163
|
end
|
168
164
|
|
169
|
-
def retry_connection_period exponential_backoff=true
|
165
|
+
def retry_connection_period exponential_backoff = true
|
170
166
|
if exponential_backoff
|
171
167
|
NewRelic::CONNECT_RETRY_PERIODS[@connection_attempts] || NewRelic::MAX_RETRY_PERIOD
|
172
168
|
else
|
@@ -178,7 +174,6 @@ module NewRelic::Agent
|
|
178
174
|
def note_connect_failure
|
179
175
|
@connection_attempts += 1
|
180
176
|
end
|
181
|
-
|
182
177
|
end
|
183
178
|
end
|
184
179
|
end
|
@@ -6,14 +6,14 @@
|
|
6
6
|
module NewRelic::Agent
|
7
7
|
module InfiniteTracing
|
8
8
|
module Constants
|
9
|
-
SUPPORTABILITY_PREFIX
|
9
|
+
SUPPORTABILITY_PREFIX = "Supportability/InfiniteTracing/Span"
|
10
10
|
|
11
|
-
SPANS_SEEN_METRIC
|
12
|
-
SPANS_SENT_METRIC
|
13
|
-
QUEUE_DUMPED_METRIC
|
14
|
-
RESPONSE_ERROR_METRIC
|
11
|
+
SPANS_SEEN_METRIC = "#{SUPPORTABILITY_PREFIX}/Seen"
|
12
|
+
SPANS_SENT_METRIC = "#{SUPPORTABILITY_PREFIX}/Sent"
|
13
|
+
QUEUE_DUMPED_METRIC = "#{SUPPORTABILITY_PREFIX}/AgentQueueDumped"
|
14
|
+
RESPONSE_ERROR_METRIC = "#{SUPPORTABILITY_PREFIX}/Response/Error"
|
15
15
|
|
16
|
-
GRPC_ERROR_NAME_METRIC
|
16
|
+
GRPC_ERROR_NAME_METRIC = "#{SUPPORTABILITY_PREFIX}/gRPC/%s"
|
17
17
|
GRPC_OTHER_ERROR_METRIC = GRPC_ERROR_NAME_METRIC % "Other"
|
18
18
|
end
|
19
19
|
end
|
@@ -6,7 +6,6 @@
|
|
6
6
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
7
7
|
# source: infinite_tracing.proto
|
8
8
|
|
9
|
-
|
10
9
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
11
10
|
add_message "com.newrelic.trace.v1.SpanBatch" do
|
12
11
|
repeated :spans, :message, 1, "com.newrelic.trace.v1.Span"
|
@@ -11,14 +11,12 @@
|
|
11
11
|
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
12
12
|
#
|
13
13
|
|
14
|
-
|
15
14
|
module Com
|
16
15
|
module Newrelic
|
17
16
|
module Trace
|
18
17
|
module V1
|
19
18
|
module IngestService
|
20
19
|
class Service
|
21
|
-
|
22
20
|
include GRPC::GenericService
|
23
21
|
|
24
22
|
self.marshal_class_method = :encode
|
@@ -7,7 +7,6 @@
|
|
7
7
|
# class. The enumerator is blocking while the queue is empty.
|
8
8
|
module NewRelic::Agent
|
9
9
|
module InfiniteTracing
|
10
|
-
|
11
10
|
BATCH_SIZE = 100
|
12
11
|
|
13
12
|
class StreamingBuffer
|
@@ -17,8 +16,8 @@ module NewRelic::Agent
|
|
17
16
|
def_delegators :@queue, :empty?, :num_waiting, :push
|
18
17
|
|
19
18
|
DEFAULT_QUEUE_SIZE = 10_000
|
20
|
-
FLUSH_DELAY
|
21
|
-
MAX_FLUSH_WAIT
|
19
|
+
FLUSH_DELAY = 0.005
|
20
|
+
MAX_FLUSH_WAIT = 3 # three seconds
|
22
21
|
|
23
22
|
attr_reader :queue
|
24
23
|
|
@@ -148,7 +147,6 @@ module NewRelic::Agent
|
|
148
147
|
def transform proc_or_segment
|
149
148
|
Span.new Transformer.transform(span_event proc_or_segment)
|
150
149
|
end
|
151
|
-
|
152
150
|
end
|
153
151
|
end
|
154
152
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
# frozen_string_literal: true
|
5
5
|
|
6
|
-
# The SuspendedStreamingBuffer class discards pushed segments and records
|
7
|
-
# the seen metric. This buffer is installed when the gRPC server returns
|
6
|
+
# The SuspendedStreamingBuffer class discards pushed segments and records
|
7
|
+
# the seen metric. This buffer is installed when the gRPC server returns
|
8
8
|
# UNIMPLEMENTED (status 12) code as a signal to not reconnect to the server.
|
9
9
|
module NewRelic::Agent
|
10
10
|
module InfiniteTracing
|
@@ -30,7 +30,7 @@ module NewRelic::Agent
|
|
30
30
|
# NOOP
|
31
31
|
end
|
32
32
|
alias :flush_queue :close_queue
|
33
|
-
|
33
|
+
|
34
34
|
def enumerator
|
35
35
|
@empty_buffer
|
36
36
|
end
|
@@ -25,15 +25,15 @@ module NewRelic::Agent
|
|
25
25
|
TrueClass => :bool_value,
|
26
26
|
FalseClass => :bool_value,
|
27
27
|
Integer => :int_value,
|
28
|
-
Float => :double_value
|
28
|
+
Float => :double_value
|
29
29
|
}
|
30
30
|
if RUBY_VERSION < '2.4.0'
|
31
31
|
KLASS_TO_ARG[Fixnum] = :int_value
|
32
32
|
end
|
33
33
|
if defined? BigDecimal
|
34
|
-
KLASS_TO_ARG[BigDecimal] = :double_value
|
34
|
+
KLASS_TO_ARG[BigDecimal] = :double_value
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def safe_param_name value
|
38
38
|
KLASS_TO_ARG[value.class] || raise("Unhandled class #{value.class.name}")
|
39
39
|
end
|
@@ -51,4 +51,4 @@ module NewRelic::Agent
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
54
|
-
end
|
54
|
+
end
|
@@ -4,12 +4,11 @@
|
|
4
4
|
# frozen_string_literal: true
|
5
5
|
|
6
6
|
# The Worker class makes it easy to stop and start a thread at will.
|
7
|
-
# Some basic error handling/capture is wrapped around the Thread to help
|
7
|
+
# Some basic error handling/capture is wrapped around the Thread to help
|
8
8
|
# propagate the exceptions arising from the threaded processes to the main process
|
9
9
|
# where the main agent code lives.
|
10
10
|
module NewRelic::Agent
|
11
11
|
module InfiniteTracing
|
12
|
-
|
13
12
|
class Worker
|
14
13
|
attr_reader :name, :error
|
15
14
|
|
@@ -34,14 +33,14 @@ module NewRelic::Agent
|
|
34
33
|
!!@error
|
35
34
|
end
|
36
35
|
|
37
|
-
def join timeout=nil
|
36
|
+
def join timeout = nil
|
38
37
|
return unless @worker_thread
|
39
38
|
NewRelic::Agent.logger.debug "joining worker #{@name} thread..."
|
40
|
-
@worker_thread.join timeout
|
39
|
+
@worker_thread.join timeout
|
41
40
|
end
|
42
41
|
|
43
42
|
def stop
|
44
|
-
@lock.synchronize do
|
43
|
+
@lock.synchronize do
|
45
44
|
return unless @worker_thread
|
46
45
|
NewRelic::Agent.logger.debug "stopping worker #{@name} thread..."
|
47
46
|
@worker_thread.kill
|
@@ -69,6 +68,5 @@ module NewRelic::Agent
|
|
69
68
|
end
|
70
69
|
end
|
71
70
|
end
|
72
|
-
|
73
71
|
end
|
74
|
-
end
|
72
|
+
end
|
data/lib/infinite_tracing.rb
CHANGED
@@ -12,7 +12,6 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
12
12
|
require 'new_relic/version'
|
13
13
|
|
14
14
|
Gem::Specification.new do |s|
|
15
|
-
|
16
15
|
def self.copy_files filelist
|
17
16
|
subfolder = File.expand_path File.dirname(__FILE__)
|
18
17
|
|
@@ -25,7 +24,7 @@ Gem::Specification.new do |s|
|
|
25
24
|
|
26
25
|
shared_files = [
|
27
26
|
"../LICENSE",
|
28
|
-
"../CONTRIBUTING.md"
|
27
|
+
"../CONTRIBUTING.md"
|
29
28
|
]
|
30
29
|
|
31
30
|
self.copy_files shared_files
|
@@ -34,8 +33,7 @@ Gem::Specification.new do |s|
|
|
34
33
|
s.version = NewRelic::VERSION::STRING
|
35
34
|
s.required_ruby_version = '>= 2.5.0'
|
36
35
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
37
|
-
s.authors = [
|
38
|
-
s.date = Time.now.strftime('%Y-%m-%d')
|
36
|
+
s.authors = ["Tanna McClure", "Kayla Reopelle", "James Bunch"]
|
39
37
|
s.licenses = ['Apache-2.0']
|
40
38
|
s.description = <<-EOS
|
41
39
|
The New Relic Ruby agent requires the gem newrelic_rpm, and it includes distributed
|
@@ -50,7 +48,7 @@ Inc (http://www.newrelic.com). New Relic provides you with deep
|
|
50
48
|
information about the performance of your web application as it runs
|
51
49
|
in production. The New Relic Ruby Agent is dual-purposed as a either a
|
52
50
|
Gem or plugin, hosted on https://github.com/newrelic/newrelic-ruby-agent/
|
53
|
-
EOS
|
51
|
+
EOS
|
54
52
|
|
55
53
|
s.email = "support@newrelic.com"
|
56
54
|
s.executables = []
|
@@ -60,11 +58,11 @@ EOS
|
|
60
58
|
]
|
61
59
|
|
62
60
|
s.metadata = {
|
63
|
-
'bug_tracker_uri'
|
64
|
-
'changelog_uri'
|
61
|
+
'bug_tracker_uri' => 'https://github.com/newrelic/newrelic-ruby-agent/issues',
|
62
|
+
'changelog_uri' => 'https://github.com/newrelic/newrelic-ruby-agent/blob/main/infinite_tracing/CHANGELOG.md',
|
65
63
|
'documentation_uri' => 'https://docs.newrelic.com/docs/agents/ruby-agent',
|
66
|
-
'source_code_uri'
|
67
|
-
"homepage_uri"
|
64
|
+
'source_code_uri' => 'https://github.com/newrelic/newrelic-ruby-agent',
|
65
|
+
"homepage_uri" => "https://newrelic.com/products/edge-infinite-tracing"
|
68
66
|
}
|
69
67
|
|
70
68
|
file_list = `git ls-files . -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/(?!agent_helper.rb)}) }
|
@@ -79,8 +77,8 @@ EOS
|
|
79
77
|
s.add_dependency 'grpc', '~> 1.34'
|
80
78
|
|
81
79
|
s.add_development_dependency 'rake', '12.3.3'
|
82
|
-
s.add_development_dependency 'rb-inotify', '0.9.10'
|
83
|
-
s.add_development_dependency 'listen', '3.0.8'
|
80
|
+
s.add_development_dependency 'rb-inotify', '0.9.10' # locked to support < Ruby 2.3 (and listen 3.0.8)
|
81
|
+
s.add_development_dependency 'listen', '3.0.8' # locked to support < Ruby 2.3
|
84
82
|
s.add_development_dependency 'minitest', '~> 5.14.0'
|
85
83
|
s.add_development_dependency 'mocha', '~> 1.9.0'
|
86
84
|
s.add_development_dependency 'pry-nav', '~> 0.3.0'
|
data/tasks/all.rb
CHANGED
@@ -3,6 +3,6 @@
|
|
3
3
|
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
|
4
4
|
|
5
5
|
# This is required to load in task definitions
|
6
|
-
Dir.glob(File.join(File.dirname(__FILE__),'*.rake')) do |file|
|
6
|
+
Dir.glob(File.join(File.dirname(__FILE__), '*.rake')) do |file|
|
7
7
|
load file
|
8
8
|
end
|
data/tasks/proto.rake
CHANGED
@@ -20,7 +20,7 @@ namespace :proto do
|
|
20
20
|
license_terms = extract_license_terms File.readlines(File.join(gemspec_path, "Gemfile"))
|
21
21
|
Dir.glob(File.join output_path, "*.rb") do |filename|
|
22
22
|
contents = File.readlines filename
|
23
|
-
contents.reject!{|r| r =~ /^\s*require\s.*$/}
|
23
|
+
contents.reject! { |r| r =~ /^\s*require\s.*$/ }
|
24
24
|
File.open(filename, 'w') do |output|
|
25
25
|
output.puts license_terms
|
26
26
|
output.puts contents
|
@@ -47,5 +47,4 @@ namespace :proto do
|
|
47
47
|
puts "Failed to generate proto file."
|
48
48
|
end
|
49
49
|
end
|
50
|
-
|
51
50
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newrelic-infinite_tracing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Aaron Huntsman
|
8
7
|
- Tanna McClure
|
9
8
|
- Kayla Reopelle
|
9
|
+
- James Bunch
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: newrelic_rpm
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 8.
|
21
|
+
version: 8.4.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 8.
|
28
|
+
version: 8.4.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: grpc
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|