opentelemetry-exporter-google_cloud_trace 0.a → 0.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/.rubocop.yml +21 -0
- data/.yardopts +17 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +27 -0
- data/README.md +38 -8
- data/Rakefile +61 -0
- data/acceptance/sinatra/gcp_trace_exporter_test.rb +99 -0
- data/acceptance/sinatra/sinatra_app.rb +25 -0
- data/acceptance/test_helper.rb +25 -0
- data/lib/opentelemetry/exporter/google_cloud_trace/span_exporter.rb +145 -0
- data/lib/opentelemetry/exporter/google_cloud_trace/translator.rb +239 -0
- data/lib/opentelemetry/exporter/google_cloud_trace/version.rb +6 -3
- data/lib/opentelemetry/exporter/google_cloud_trace.rb +37 -0
- data/lib/opentelemetry-exporter-google_cloud_trace.rb +17 -0
- data/opentelemetry-exporter-google_cloud_trace.gemspec +60 -0
- metadata +252 -17
- data/LICENSE.md +0 -201
@@ -0,0 +1,239 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2023 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require "google/protobuf/well_known_types"
|
19
|
+
require "google/rpc/status_pb"
|
20
|
+
require "google/rpc/code_pb"
|
21
|
+
require "opentelemetry/trace/status"
|
22
|
+
require "opentelemetry/trace/span_kind"
|
23
|
+
require "opentelemetry/exporter/google_cloud_trace/version"
|
24
|
+
|
25
|
+
module OpenTelemetry
|
26
|
+
module Exporter
|
27
|
+
module GoogleCloudTrace
|
28
|
+
##
|
29
|
+
# @private
|
30
|
+
# This class helps translating the opentelemetry
|
31
|
+
# span data [Enumerable<OpenTelemetry::SDK::Trace::SpanData>] into
|
32
|
+
# cloud trace spans [Google::Cloud::Trace::V2::Span]
|
33
|
+
class Translator
|
34
|
+
MAX_LINKS = 128
|
35
|
+
MAX_EVENTS = 32
|
36
|
+
MAX_EVENT_ATTRIBUTES = 4
|
37
|
+
MAX_LINK_ATTRIBUTES = 32
|
38
|
+
MAX_SPAN_ATTRIBUTES = 32
|
39
|
+
MAX_ATTRIBUTES_KEY_BYTES = 128
|
40
|
+
MAX_ATTRIBUTES_VAL_BYTES = 16 * 1024 # 16 kilobytes
|
41
|
+
MAX_DISPLAY_NAME_BYTE_COUNT = 128
|
42
|
+
MAX_EVENT_NAME_BYTE_COUNT = 256
|
43
|
+
LABELS_MAPPING = {
|
44
|
+
"http.scheme": "/http/client_protocol",
|
45
|
+
"http.method": "/http/method",
|
46
|
+
# https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#common-attributes
|
47
|
+
"http.request_content_length": "/http/request/size",
|
48
|
+
"http.response_content_length": "/http/response/size",
|
49
|
+
"http.route": "/http/route",
|
50
|
+
"http.status_code": "/http/status_code",
|
51
|
+
"http.url": "/http/url",
|
52
|
+
"http.user_agent": "/http/user_agent",
|
53
|
+
"http.host": "/http/host"
|
54
|
+
}.freeze
|
55
|
+
|
56
|
+
def initialize project_id
|
57
|
+
@project_id = project_id
|
58
|
+
end
|
59
|
+
|
60
|
+
# Creates batch_write_spans_request from opentelemetry spans
|
61
|
+
#
|
62
|
+
# @param [Enumerable<OpenTelemetry::SDK::Trace::SpanData>] span_data the
|
63
|
+
# list of recorded {OpenTelemetry::SDK::Trace::SpanData} structs to be
|
64
|
+
# exported.
|
65
|
+
# @return [Google::Cloud::Trace::V2::BatchWriteSpansRequest]
|
66
|
+
# The request message for the BatchWriteSpans method.
|
67
|
+
def create_batch spans
|
68
|
+
cloud_trace_spans = spans.map do |span|
|
69
|
+
trace_id = span.hex_trace_id
|
70
|
+
span_id = span.hex_span_id
|
71
|
+
parent_id = span.hex_parent_span_id
|
72
|
+
span_name = "projects/#{@project_id}/traces/#{trace_id}/spans/#{span_id}"
|
73
|
+
Google::Cloud::Trace::V2::Span.new(
|
74
|
+
name: span_name,
|
75
|
+
span_id: span_id,
|
76
|
+
parent_span_id: parent_id,
|
77
|
+
display_name: create_name(span.name, MAX_DISPLAY_NAME_BYTE_COUNT),
|
78
|
+
start_time: create_time(span.start_timestamp),
|
79
|
+
end_time: create_time(span.end_timestamp),
|
80
|
+
attributes: create_attributes(span.attributes, MAX_SPAN_ATTRIBUTES, add_agent_attribute: true),
|
81
|
+
links: create_links(span.links),
|
82
|
+
status: create_status(span.status),
|
83
|
+
time_events: create_time_events(span.events),
|
84
|
+
span_kind: create_span_kind(span.kind)
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
{
|
89
|
+
name: "projects/#{@project_id}",
|
90
|
+
spans: cloud_trace_spans
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def create_time epoch
|
97
|
+
return if epoch.nil?
|
98
|
+
time_nsec = Time.at 0, epoch, :nsec # create Time from nanoseconds epoch
|
99
|
+
Google::Protobuf::Timestamp.from_time time_nsec
|
100
|
+
end
|
101
|
+
|
102
|
+
def create_name name, max_bytes
|
103
|
+
truncated_str, truncated_byte_count = truncate_str name, max_bytes
|
104
|
+
Google::Cloud::Trace::V2::TruncatableString.new value: truncated_str,
|
105
|
+
truncated_byte_count: truncated_byte_count
|
106
|
+
end
|
107
|
+
|
108
|
+
def truncate_str str, max_bytes
|
109
|
+
encoded = str.encode "utf-8"
|
110
|
+
truncated_str = encoded.byteslice 0, max_bytes
|
111
|
+
[truncated_str, encoded.length - truncated_str.encode("utf-8").length]
|
112
|
+
end
|
113
|
+
|
114
|
+
def create_attributes attributes, max_attributes, add_agent_attribute: false
|
115
|
+
return if attributes.nil? || attributes.empty?
|
116
|
+
attribute_map = {}
|
117
|
+
|
118
|
+
if add_agent_attribute
|
119
|
+
attribute_map["g.co/agent"] = create_attribute_value(
|
120
|
+
"opentelemetry-ruby #{OpenTelemetry::SDK::VERSION};" \
|
121
|
+
"google-cloud-trace-exporter #{OpenTelemetry::Exporter::GoogleCloudTrace::VERSION}"
|
122
|
+
)
|
123
|
+
end
|
124
|
+
|
125
|
+
attributes.each_pair do |k, v|
|
126
|
+
key = truncate_str(k.to_s, MAX_ATTRIBUTES_KEY_BYTES).first
|
127
|
+
key = LABELS_MAPPING[key.to_sym] if LABELS_MAPPING.key? key.to_sym
|
128
|
+
value = create_attribute_value v
|
129
|
+
attribute_map[key] = value unless value.nil?
|
130
|
+
|
131
|
+
break if attribute_map.count >= max_attributes
|
132
|
+
end
|
133
|
+
|
134
|
+
dropped_attributes_count = attributes.count - attribute_map.count
|
135
|
+
dropped_attributes_count += 1 if add_agent_attribute
|
136
|
+
|
137
|
+
Google::Cloud::Trace::V2::Span::Attributes.new(
|
138
|
+
attribute_map: attribute_map,
|
139
|
+
dropped_attributes_count: dropped_attributes_count
|
140
|
+
)
|
141
|
+
end
|
142
|
+
|
143
|
+
def create_attribute_value value
|
144
|
+
case value
|
145
|
+
when true, false
|
146
|
+
Google::Cloud::Trace::V2::AttributeValue.new bool_value: value
|
147
|
+
when Integer
|
148
|
+
Google::Cloud::Trace::V2::AttributeValue.new int_value: value
|
149
|
+
else
|
150
|
+
Google::Cloud::Trace::V2::AttributeValue.new(
|
151
|
+
string_value: create_name(value.to_s, MAX_ATTRIBUTES_VAL_BYTES)
|
152
|
+
)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def create_links links
|
157
|
+
return if links.nil?
|
158
|
+
dropped_links_count = 0
|
159
|
+
|
160
|
+
if links.length > MAX_LINKS
|
161
|
+
dropped_links_count = links.length - MAX_LINKS
|
162
|
+
links = links[0...MAX_LINKS]
|
163
|
+
end
|
164
|
+
|
165
|
+
trace_links = links.map do |link|
|
166
|
+
trace_id = link.span_context&.hex_trace_id
|
167
|
+
span_id = link.span_context&.hex_span_id
|
168
|
+
Google::Cloud::Trace::V2::Span::Link.new(
|
169
|
+
trace_id: trace_id,
|
170
|
+
span_id: span_id,
|
171
|
+
type: "TYPE_UNSPECIFIED",
|
172
|
+
attributes: create_attributes(link.attributes, MAX_LINK_ATTRIBUTES)
|
173
|
+
)
|
174
|
+
end
|
175
|
+
|
176
|
+
Google::Cloud::Trace::V2::Span::Links.new(
|
177
|
+
link: trace_links,
|
178
|
+
dropped_links_count: dropped_links_count
|
179
|
+
)
|
180
|
+
end
|
181
|
+
|
182
|
+
def create_status status
|
183
|
+
case status.code
|
184
|
+
when OpenTelemetry::Trace::Status::OK
|
185
|
+
Google::Rpc::Status.new code: Google::Rpc::Code::OK, message: status.description
|
186
|
+
when OpenTelemetry::Trace::Status::UNSET
|
187
|
+
nil
|
188
|
+
else
|
189
|
+
Google::Rpc::Status.new code: Google::Rpc::Code::UNKNOWN, message: status.description
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def create_time_events events
|
194
|
+
return if events.nil?
|
195
|
+
dropped_message_events_count = 0
|
196
|
+
|
197
|
+
dropped_annotations_count = 0
|
198
|
+
if events.length > MAX_EVENTS
|
199
|
+
dropped_annotations_count = events.length - MAX_EVENTS
|
200
|
+
events = events[0...MAX_EVENTS]
|
201
|
+
end
|
202
|
+
|
203
|
+
time_events = events.map do |event|
|
204
|
+
Google::Cloud::Trace::V2::Span::TimeEvent.new(
|
205
|
+
time: create_time(event.timestamp),
|
206
|
+
annotation: Google::Cloud::Trace::V2::Span::TimeEvent::Annotation.new(
|
207
|
+
description: create_name(event.name, MAX_EVENT_NAME_BYTE_COUNT),
|
208
|
+
attributes: create_attributes(event.attributes, MAX_EVENT_ATTRIBUTES)
|
209
|
+
)
|
210
|
+
)
|
211
|
+
end
|
212
|
+
|
213
|
+
Google::Cloud::Trace::V2::Span::TimeEvents.new(
|
214
|
+
time_event: time_events,
|
215
|
+
dropped_annotations_count: dropped_annotations_count,
|
216
|
+
dropped_message_events_count: dropped_message_events_count
|
217
|
+
)
|
218
|
+
end
|
219
|
+
|
220
|
+
def create_span_kind kind
|
221
|
+
case kind
|
222
|
+
when OpenTelemetry::Trace::SpanKind::INTERNAL
|
223
|
+
Google::Cloud::Trace::V2::Span::SpanKind::INTERNAL
|
224
|
+
when OpenTelemetry::Trace::SpanKind::CLIENT
|
225
|
+
Google::Cloud::Trace::V2::Span::SpanKind::CLIENT
|
226
|
+
when OpenTelemetry::Trace::SpanKind::SERVER
|
227
|
+
Google::Cloud::Trace::V2::Span::SpanKind::SERVER
|
228
|
+
when OpenTelemetry::Trace::SpanKind::PRODUCER
|
229
|
+
Google::Cloud::Trace::V2::Span::SpanKind::PRODUCER
|
230
|
+
when OpenTelemetry::Trace::SpanKind::CONSUMER
|
231
|
+
Google::Cloud::Trace::V2::Span::SpanKind::CONSUMER
|
232
|
+
else
|
233
|
+
Google::Cloud::Trace::V2::Span::SpanKind::SPAN_KIND_UNSPECIFIED
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright 2023 Google LLC
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
5
7
|
# You may obtain a copy of the License at
|
6
8
|
#
|
7
|
-
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
10
|
#
|
9
11
|
# Unless required by applicable law or agreed to in writing, software
|
10
12
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -12,10 +14,11 @@
|
|
12
14
|
# See the License for the specific language governing permissions and
|
13
15
|
# limitations under the License.
|
14
16
|
|
15
|
-
|
17
|
+
|
18
|
+
module OpenTelemetry
|
16
19
|
module Exporter
|
17
20
|
module GoogleCloudTrace
|
18
|
-
VERSION = "0.
|
21
|
+
VERSION = "0.1.0"
|
19
22
|
end
|
20
23
|
end
|
21
24
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2023 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
module OpenTelemetry
|
18
|
+
module Exporter
|
19
|
+
##
|
20
|
+
# # Google Cloud Trace
|
21
|
+
#
|
22
|
+
# Cloud Trace is a distributed tracing system that collects latency data
|
23
|
+
# from your applications and displays it in the Google Cloud Console.
|
24
|
+
# You can track how requests propagate through your application and
|
25
|
+
# receive detailed near real-time performance insights.
|
26
|
+
# Cloud Trace automatically analyzes all of your application's traces
|
27
|
+
# to generate in-depth latency reports to surface performance degradations,
|
28
|
+
# and can capture traces from all of your VMs, containers, or App Engine projects.
|
29
|
+
module GoogleCloudTrace
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
require "opentelemetry/sdk"
|
36
|
+
require "opentelemetry/exporter/google_cloud_trace/span_exporter"
|
37
|
+
require "opentelemetry/exporter/google_cloud_trace/version"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2023 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require "opentelemetry/exporter/google_cloud_trace"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright 2023 Google LLC
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
|
18
|
+
require_relative "lib/opentelemetry/exporter/google_cloud_trace/version"
|
19
|
+
|
20
|
+
Gem::Specification.new do |spec|
|
21
|
+
spec.name = "opentelemetry-exporter-google_cloud_trace"
|
22
|
+
spec.version = OpenTelemetry::Exporter::GoogleCloudTrace::VERSION
|
23
|
+
spec.authors = ["Nivedha"]
|
24
|
+
spec.email = ["nivedhasenthil@gmail.com"]
|
25
|
+
|
26
|
+
spec.summary = "Opentelemetry exporter for Google Cloud Trace"
|
27
|
+
spec.description = "opentelemetry-exporter-google_cloud_trace is \
|
28
|
+
the officially supported exporter for Google Cloud Trace"
|
29
|
+
spec.homepage = "https://github.com/GoogleCloudPlatform/opentelemetry-operations-ruby/tree/main/opentelemetry-exporter-google_cloud_trace"
|
30
|
+
spec.required_ruby_version = ">= 2.6.0"
|
31
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
32
|
+
spec.require_paths = ["lib"]
|
33
|
+
spec.license = "Apache-2.0"
|
34
|
+
|
35
|
+
# Specify which files should be added to the gem when it is released.
|
36
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
37
|
+
spec.files = Dir.chdir __dir__ do
|
38
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
39
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
spec.add_dependency "google-cloud-env"
|
44
|
+
spec.add_dependency "google-cloud-trace-v2", "~> 0.0"
|
45
|
+
spec.add_dependency "opentelemetry-sdk"
|
46
|
+
|
47
|
+
spec.add_development_dependency "google-cloud-core"
|
48
|
+
spec.add_development_dependency "google-cloud-trace-v1"
|
49
|
+
spec.add_development_dependency "google-style", "~> 1.26.1"
|
50
|
+
spec.add_development_dependency "minitest", "~> 5.16"
|
51
|
+
spec.add_development_dependency "minitest-autotest", "~> 1.0"
|
52
|
+
spec.add_development_dependency "minitest-focus", "~> 1.1"
|
53
|
+
spec.add_development_dependency "minitest-hooks"
|
54
|
+
spec.add_development_dependency "minitest-rg", "~> 5.2"
|
55
|
+
spec.add_development_dependency "opentelemetry-instrumentation-sinatra"
|
56
|
+
spec.add_development_dependency "sinatra"
|
57
|
+
spec.add_development_dependency "webrick"
|
58
|
+
spec.add_development_dependency "yard", "~> 0.9"
|
59
|
+
spec.add_development_dependency "yard-doctest", "~> 0.1.13"
|
60
|
+
end
|
metadata
CHANGED
@@ -1,32 +1,267 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-exporter-google_cloud_trace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Nivedha
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
date: 2023-07-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: google-cloud-env
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: google-cloud-trace-v2
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: opentelemetry-sdk
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: google-cloud-core
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: google-cloud-trace-v1
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: google-style
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.26.1
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.26.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '5.16'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '5.16'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: minitest-autotest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: minitest-focus
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: minitest-hooks
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: minitest-rg
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '5.2'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '5.2'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: opentelemetry-instrumentation-sinatra
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: sinatra
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: webrick
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: yard
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0.9'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0.9'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yard-doctest
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 0.1.13
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: 0.1.13
|
237
|
+
description: opentelemetry-exporter-google_cloud_trace is the
|
238
|
+
officially supported exporter for Google Cloud Trace
|
239
|
+
email:
|
240
|
+
- nivedhasenthil@gmail.com
|
19
241
|
executables: []
|
20
242
|
extensions: []
|
21
243
|
extra_rdoc_files: []
|
22
244
|
files:
|
23
|
-
-
|
245
|
+
- ".rubocop.yml"
|
246
|
+
- ".yardopts"
|
247
|
+
- CHANGELOG.md
|
248
|
+
- Gemfile
|
24
249
|
- README.md
|
250
|
+
- Rakefile
|
251
|
+
- acceptance/sinatra/gcp_trace_exporter_test.rb
|
252
|
+
- acceptance/sinatra/sinatra_app.rb
|
253
|
+
- acceptance/test_helper.rb
|
254
|
+
- lib/opentelemetry-exporter-google_cloud_trace.rb
|
255
|
+
- lib/opentelemetry/exporter/google_cloud_trace.rb
|
256
|
+
- lib/opentelemetry/exporter/google_cloud_trace/span_exporter.rb
|
257
|
+
- lib/opentelemetry/exporter/google_cloud_trace/translator.rb
|
25
258
|
- lib/opentelemetry/exporter/google_cloud_trace/version.rb
|
26
|
-
|
259
|
+
- opentelemetry-exporter-google_cloud_trace.gemspec
|
260
|
+
homepage: https://github.com/GoogleCloudPlatform/opentelemetry-operations-ruby/tree/main/opentelemetry-exporter-google_cloud_trace
|
27
261
|
licenses:
|
28
262
|
- Apache-2.0
|
29
|
-
metadata:
|
263
|
+
metadata:
|
264
|
+
homepage_uri: https://github.com/GoogleCloudPlatform/opentelemetry-operations-ruby/tree/main/opentelemetry-exporter-google_cloud_trace
|
30
265
|
post_install_message:
|
31
266
|
rdoc_options: []
|
32
267
|
require_paths:
|
@@ -35,15 +270,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
35
270
|
requirements:
|
36
271
|
- - ">="
|
37
272
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
273
|
+
version: 2.6.0
|
39
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
275
|
requirements:
|
41
|
-
- - "
|
276
|
+
- - ">="
|
42
277
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
278
|
+
version: '0'
|
44
279
|
requirements: []
|
45
280
|
rubygems_version: 3.4.2
|
46
281
|
signing_key:
|
47
282
|
specification_version: 4
|
48
|
-
summary:
|
283
|
+
summary: Opentelemetry exporter for Google Cloud Trace
|
49
284
|
test_files: []
|