opentelemetry-exporter-google_cloud_trace 0.a → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []