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.
@@ -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
- # http://www.apache.org/licenses/LICENSE-2.0
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
- module Opentelemetry
17
+
18
+ module OpenTelemetry
16
19
  module Exporter
17
20
  module GoogleCloudTrace
18
- VERSION = "0.a"
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.a
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Google LLC
7
+ - Nivedha
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-13 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Placeholder for the future Google-authored gem opentelemetry-exporter-google_cloud_trace.
14
- This placeholder is being released on 2023-06-13 in order to reserve the name. The
15
- final gem should be available shortly after that date. If it has not been released
16
- in a timely manner, or if this placeholder interferes with your work, you can contact
17
- the Google Ruby team by opening an issue in the GitHub repository https://github.com/googleapis/google-cloud-ruby.
18
- email: googleapis-packages@google.com
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
- - LICENSE.md
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
- homepage: https://github.com/googleapis/google-cloud-ruby
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: '3.0'
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: 1.3.1
278
+ version: '0'
44
279
  requirements: []
45
280
  rubygems_version: 3.4.2
46
281
  signing_key:
47
282
  specification_version: 4
48
- summary: Placeholder for the future Google-authored gem opentelemetry-exporter-google_cloud_trace
283
+ summary: Opentelemetry exporter for Google Cloud Trace
49
284
  test_files: []