codecov_opentelem 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6914eed45d30e64ce8c2982e130fc182539e953e463ec31eb5924ebac9347002
4
- data.tar.gz: bdc8110f1234339151b7a8bbc51aead42603faf263f1fc75d1fc89f73ff07993
3
+ metadata.gz: 605e855408e313442cbad82cc91a2196ac78c00b28b31392ebb29866b5b9e905
4
+ data.tar.gz: bd615050396e4f6f5b49672bb18db56c61e6da2dd7615d067177f955b2ed5d8a
5
5
  SHA512:
6
- metadata.gz: 66932b7701993e76e43798ec280718293333ab88520cb1bd881f1a9f0ce653dc4680b727fb22288e082296f6479bf8fe7161d3e834c3c562c7ccce4870d8b2f2
7
- data.tar.gz: a727af20f23a98ca148612f0cc792da9733f5c8e37290a4e532ba8396a145b6129e77f1bf3e14b919407a82140ff39227a536082bd6092b1dd7bbb76032d005c
6
+ metadata.gz: 291d786144b93336b21540737ea4cf0983ec28eb2d03f507566d857ef8784d0a2cc7d7aaa8938473f7a15e5b16866a93761e5f81b43ad1dddf7665e9fdee9270
7
+ data.tar.gz: a1d7580bc43a5fa05246ac2920fe5ab03c4f8dad3f0ba6b1d51f670ac99ddda3639699627f27c7954eac7d65658f2a5f30c45ac2896aee22390ccc5c1c7b25ed
data/Gemfile.lock ADDED
@@ -0,0 +1,221 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ codecov_opentelem (0.1.3)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.5.0)
10
+ google-protobuf (3.21.1-x86_64-darwin)
11
+ googleapis-common-protos-types (1.3.1)
12
+ google-protobuf (~> 3.14)
13
+ opentelemetry-api (1.0.2)
14
+ opentelemetry-common (0.19.6)
15
+ opentelemetry-api (~> 1.0)
16
+ opentelemetry-exporter-otlp (0.22.0)
17
+ google-protobuf (~> 3.19)
18
+ googleapis-common-protos-types (~> 1.3)
19
+ opentelemetry-api (~> 1.0)
20
+ opentelemetry-common (~> 0.19.6)
21
+ opentelemetry-sdk (~> 1.0)
22
+ opentelemetry-semantic_conventions
23
+ opentelemetry-instrumentation-action_pack (0.2.0)
24
+ opentelemetry-api (~> 1.0)
25
+ opentelemetry-instrumentation-base (~> 0.21.0)
26
+ opentelemetry-instrumentation-rack (~> 0.21.0)
27
+ opentelemetry-instrumentation-action_view (0.3.0)
28
+ opentelemetry-api (~> 1.0)
29
+ opentelemetry-instrumentation-active_support (~> 0.1)
30
+ opentelemetry-instrumentation-base (~> 0.20)
31
+ opentelemetry-instrumentation-active_job (0.3.0)
32
+ opentelemetry-api (~> 1.0)
33
+ opentelemetry-instrumentation-base (~> 0.21.0)
34
+ opentelemetry-instrumentation-active_model_serializers (0.19.0)
35
+ opentelemetry-api (~> 1.0)
36
+ opentelemetry-instrumentation-base (~> 0.21.0)
37
+ opentelemetry-instrumentation-active_record (0.4.0)
38
+ opentelemetry-api (~> 1.0)
39
+ opentelemetry-instrumentation-base (~> 0.21.0)
40
+ ruby2_keywords
41
+ opentelemetry-instrumentation-active_support (0.2.0)
42
+ opentelemetry-api (~> 1.0)
43
+ opentelemetry-instrumentation-base (~> 0.21.0)
44
+ opentelemetry-instrumentation-all (0.25.0)
45
+ opentelemetry-instrumentation-action_pack (~> 0.2.0)
46
+ opentelemetry-instrumentation-action_view (~> 0.3.0)
47
+ opentelemetry-instrumentation-active_job (~> 0.3.0)
48
+ opentelemetry-instrumentation-active_model_serializers (~> 0.19.0)
49
+ opentelemetry-instrumentation-active_record (~> 0.4.0)
50
+ opentelemetry-instrumentation-active_support (~> 0.2.0)
51
+ opentelemetry-instrumentation-aws_sdk (~> 0.3.0)
52
+ opentelemetry-instrumentation-bunny (~> 0.19.0)
53
+ opentelemetry-instrumentation-concurrent_ruby (~> 0.20.0)
54
+ opentelemetry-instrumentation-dalli (~> 0.22.0)
55
+ opentelemetry-instrumentation-delayed_job (~> 0.19.0)
56
+ opentelemetry-instrumentation-ethon (~> 0.20.0)
57
+ opentelemetry-instrumentation-excon (~> 0.20.0)
58
+ opentelemetry-instrumentation-faraday (~> 0.21.0)
59
+ opentelemetry-instrumentation-graphql (~> 0.20.0)
60
+ opentelemetry-instrumentation-http (~> 0.20.0)
61
+ opentelemetry-instrumentation-http_client (~> 0.20.0)
62
+ opentelemetry-instrumentation-koala (~> 0.19.0)
63
+ opentelemetry-instrumentation-lmdb (~> 0.21.0)
64
+ opentelemetry-instrumentation-mongo (~> 0.20.0)
65
+ opentelemetry-instrumentation-mysql2 (~> 0.21.0)
66
+ opentelemetry-instrumentation-net_http (~> 0.20.0)
67
+ opentelemetry-instrumentation-pg (~> 0.21.0)
68
+ opentelemetry-instrumentation-que (~> 0.4.0)
69
+ opentelemetry-instrumentation-rack (~> 0.21.0)
70
+ opentelemetry-instrumentation-rails (~> 0.22.0)
71
+ opentelemetry-instrumentation-rdkafka (~> 0.2.0)
72
+ opentelemetry-instrumentation-redis (~> 0.23.0)
73
+ opentelemetry-instrumentation-resque (~> 0.3.0)
74
+ opentelemetry-instrumentation-restclient (~> 0.20.0)
75
+ opentelemetry-instrumentation-ruby_kafka (~> 0.19.0)
76
+ opentelemetry-instrumentation-sidekiq (~> 0.22.0)
77
+ opentelemetry-instrumentation-sinatra (~> 0.20.0)
78
+ opentelemetry-instrumentation-trilogy (~> 0.51.0)
79
+ opentelemetry-instrumentation-aws_sdk (0.3.0)
80
+ opentelemetry-api (~> 1.0)
81
+ opentelemetry-instrumentation-base (~> 0.21.0)
82
+ opentelemetry-instrumentation-base (0.21.0)
83
+ opentelemetry-api (~> 1.0)
84
+ opentelemetry-registry (~> 0.1)
85
+ opentelemetry-instrumentation-bunny (0.19.0)
86
+ opentelemetry-api (~> 1.0)
87
+ opentelemetry-instrumentation-base (~> 0.21.0)
88
+ opentelemetry-instrumentation-concurrent_ruby (0.20.0)
89
+ opentelemetry-api (~> 1.0)
90
+ opentelemetry-instrumentation-base (~> 0.21.0)
91
+ opentelemetry-instrumentation-dalli (0.22.0)
92
+ opentelemetry-api (~> 1.0)
93
+ opentelemetry-common (~> 0.19.3)
94
+ opentelemetry-instrumentation-base (~> 0.21.0)
95
+ opentelemetry-instrumentation-delayed_job (0.19.0)
96
+ opentelemetry-api (~> 1.0)
97
+ opentelemetry-instrumentation-base (~> 0.21.0)
98
+ opentelemetry-instrumentation-ethon (0.20.0)
99
+ opentelemetry-api (~> 1.0)
100
+ opentelemetry-common (~> 0.19.3)
101
+ opentelemetry-instrumentation-base (~> 0.21.0)
102
+ opentelemetry-instrumentation-excon (0.20.0)
103
+ opentelemetry-api (~> 1.0)
104
+ opentelemetry-common (~> 0.19.3)
105
+ opentelemetry-instrumentation-base (~> 0.21.0)
106
+ opentelemetry-instrumentation-faraday (0.21.0)
107
+ opentelemetry-api (~> 1.0)
108
+ opentelemetry-common (~> 0.19.3)
109
+ opentelemetry-instrumentation-base (~> 0.21.0)
110
+ opentelemetry-instrumentation-graphql (0.20.0)
111
+ opentelemetry-api (~> 1.0)
112
+ opentelemetry-instrumentation-base (~> 0.21.0)
113
+ opentelemetry-instrumentation-http (0.20.0)
114
+ opentelemetry-api (~> 1.0)
115
+ opentelemetry-instrumentation-base (~> 0.21.0)
116
+ opentelemetry-instrumentation-http_client (0.20.0)
117
+ opentelemetry-api (~> 1.0)
118
+ opentelemetry-common (~> 0.19.3)
119
+ opentelemetry-instrumentation-base (~> 0.21.0)
120
+ opentelemetry-instrumentation-koala (0.19.0)
121
+ opentelemetry-api (~> 1.0)
122
+ opentelemetry-common (~> 0.19.3)
123
+ opentelemetry-instrumentation-base (~> 0.21.0)
124
+ opentelemetry-instrumentation-lmdb (0.21.0)
125
+ opentelemetry-api (~> 1.0)
126
+ opentelemetry-instrumentation-base (~> 0.21.0)
127
+ opentelemetry-instrumentation-mongo (0.20.0)
128
+ opentelemetry-api (~> 1.0)
129
+ opentelemetry-instrumentation-base (~> 0.21.0)
130
+ opentelemetry-instrumentation-mysql2 (0.21.0)
131
+ opentelemetry-api (~> 1.0)
132
+ opentelemetry-instrumentation-base (~> 0.21.0)
133
+ opentelemetry-instrumentation-net_http (0.20.0)
134
+ opentelemetry-api (~> 1.0)
135
+ opentelemetry-common (~> 0.19.3)
136
+ opentelemetry-instrumentation-base (~> 0.21.0)
137
+ opentelemetry-instrumentation-pg (0.21.0)
138
+ opentelemetry-api (~> 1.0)
139
+ opentelemetry-instrumentation-base (~> 0.21.0)
140
+ opentelemetry-instrumentation-que (0.4.0)
141
+ opentelemetry-api (~> 1.0)
142
+ opentelemetry-instrumentation-base (~> 0.21.0)
143
+ opentelemetry-instrumentation-rack (0.21.0)
144
+ opentelemetry-api (~> 1.0)
145
+ opentelemetry-common (~> 0.19.3)
146
+ opentelemetry-instrumentation-base (~> 0.21.0)
147
+ opentelemetry-instrumentation-rails (0.22.0)
148
+ opentelemetry-api (~> 1.0)
149
+ opentelemetry-instrumentation-action_pack (~> 0.2.0)
150
+ opentelemetry-instrumentation-action_view (~> 0.3.0)
151
+ opentelemetry-instrumentation-active_record (~> 0.4.0)
152
+ opentelemetry-instrumentation-active_support (~> 0.2.0)
153
+ opentelemetry-instrumentation-base (~> 0.21.0)
154
+ opentelemetry-instrumentation-rdkafka (0.2.0)
155
+ opentelemetry-api (~> 1.0.0)
156
+ opentelemetry-common (~> 0.19.3)
157
+ opentelemetry-instrumentation-base (~> 0.21.0)
158
+ opentelemetry-instrumentation-redis (0.23.0)
159
+ opentelemetry-api (~> 1.0)
160
+ opentelemetry-common (~> 0.19.3)
161
+ opentelemetry-instrumentation-base (~> 0.21.0)
162
+ opentelemetry-instrumentation-resque (0.3.0)
163
+ opentelemetry-api (~> 1.0)
164
+ opentelemetry-instrumentation-base (~> 0.21.0)
165
+ opentelemetry-instrumentation-restclient (0.20.0)
166
+ opentelemetry-api (~> 1.0)
167
+ opentelemetry-common (~> 0.19.3)
168
+ opentelemetry-instrumentation-base (~> 0.21.0)
169
+ opentelemetry-instrumentation-ruby_kafka (0.19.0)
170
+ opentelemetry-api (~> 1.0)
171
+ opentelemetry-instrumentation-base (~> 0.21.0)
172
+ opentelemetry-instrumentation-sidekiq (0.22.0)
173
+ opentelemetry-api (~> 1.0)
174
+ opentelemetry-common (~> 0.19.3)
175
+ opentelemetry-instrumentation-base (~> 0.21.0)
176
+ opentelemetry-instrumentation-sinatra (0.20.0)
177
+ opentelemetry-api (~> 1.0)
178
+ opentelemetry-common (~> 0.19.3)
179
+ opentelemetry-instrumentation-base (~> 0.21.0)
180
+ opentelemetry-instrumentation-trilogy (0.51.0)
181
+ opentelemetry-api (~> 1.0)
182
+ opentelemetry-instrumentation-base (~> 0.21.0)
183
+ opentelemetry-semantic_conventions (>= 1.8.0)
184
+ opentelemetry-registry (0.1.0)
185
+ opentelemetry-api (~> 1.0.1)
186
+ opentelemetry-sdk (1.1.0)
187
+ opentelemetry-api (~> 1.0)
188
+ opentelemetry-common (~> 0.19.3)
189
+ opentelemetry-registry (~> 0.1)
190
+ opentelemetry-semantic_conventions
191
+ opentelemetry-semantic_conventions (1.8.0)
192
+ opentelemetry-api (~> 1.0)
193
+ rake (13.0.6)
194
+ rspec (3.11.0)
195
+ rspec-core (~> 3.11.0)
196
+ rspec-expectations (~> 3.11.0)
197
+ rspec-mocks (~> 3.11.0)
198
+ rspec-core (3.11.0)
199
+ rspec-support (~> 3.11.0)
200
+ rspec-expectations (3.11.0)
201
+ diff-lcs (>= 1.2.0, < 2.0)
202
+ rspec-support (~> 3.11.0)
203
+ rspec-mocks (3.11.1)
204
+ diff-lcs (>= 1.2.0, < 2.0)
205
+ rspec-support (~> 3.11.0)
206
+ rspec-support (3.11.0)
207
+ ruby2_keywords (0.0.5)
208
+
209
+ PLATFORMS
210
+ x86_64-darwin-21
211
+
212
+ DEPENDENCIES
213
+ codecov_opentelem!
214
+ opentelemetry-exporter-otlp
215
+ opentelemetry-instrumentation-all
216
+ opentelemetry-sdk
217
+ rake (~> 13.0)
218
+ rspec
219
+
220
+ BUNDLED WITH
221
+ 2.3.16
@@ -28,14 +28,14 @@ class CodecovCoverageStorageManager
28
28
  true
29
29
  end
30
30
 
31
- def stop_coverage_for_span(_span)
32
- span_id = span.context.span_id
31
+ def stop_coverage_for_span(span)
32
+ span_id = span.span_id
33
33
  Coverage.suspend
34
34
  @inner[span_id] = Coverage.result(stop: false, clear: true)
35
35
  end
36
36
 
37
- def pop_coverage_for_span(_span)
38
- span_id = span.context.span_id
37
+ def pop_coverage_for_span(span)
38
+ span_id = span.span_id
39
39
  @inner.delete(span_id)
40
40
  end
41
41
  end
@@ -66,12 +66,19 @@ class CoverageExporter < OpenTelemetry::SDK::Trace::Export::SpanExporter
66
66
  @untracked_export_rate = untracked_export_rate
67
67
  end
68
68
 
69
- def export(spans)
69
+ def export(spans, timeout)
70
70
  tracked_spans = []
71
71
  untracked_spans = []
72
72
  spans.each do |span|
73
- cov = cov_storage.pop_coverage_for_span(span)
74
- s = JSON.parse(span)
73
+ cov = @cov_storage.pop_coverage_for_span(span)
74
+
75
+ span_hash = Hash.new
76
+ span.to_h.each do |k, v|
77
+ v = v.dup.force_encoding("ISO-8859-1").encode("UTF-8") if v.is_a? String
78
+ span_hash[k] = v
79
+ end
80
+ s = span_hash.to_json
81
+
75
82
  if !cov.nil?
76
83
  s['codecov'] = { 'type' => 'bytes', 'coverage' => cov }
77
84
  tracked_spans.append(s)
@@ -79,19 +86,32 @@ class CoverageExporter < OpenTelemetry::SDK::Trace::Export::SpanExporter
79
86
  untracked_spans.append(s)
80
87
  end
81
88
  end
82
- return SpanExportResult.SUCCESS if !tracked_spans && !untracked_spans
83
-
84
- res = Net::HTTP.post(URI.join(@codecov_url, '/profiling/uploads'),
85
- { 'code' => @code }.to_json,
86
- 'Content-Type' => 'application/json',
87
- 'Authorization' => "repotoken #{@repository_token}")
88
- return SpanExportResult.FAILURE if res.is_a?(Net::HTTPError)
89
-
90
- location = res.body.raw_upload_location
91
- Net::HTTP.put(URI(location),
92
- { 'spans' => tracked_spans,
93
- 'untracked' => untracked_spans }.to_json,
94
- 'Content-Type' => 'text/plain')
95
- SpanExportResult.SUCCESS
89
+ return OpenTelemetry::SDK::Trace::Export::SUCCESS if !tracked_spans && !untracked_spans
90
+
91
+ body = { 'profiling' => @code }.to_json
92
+ res = Net::HTTP.post(
93
+ URI.join(@codecov_url, '/profiling/uploads'),
94
+ { 'profiling' => @code }.to_json,
95
+ 'Content-Type' => 'application/json',
96
+ 'Authorization' => "repotoken #{@repository_token}"
97
+ )
98
+ return OpenTelemetry::SDK::Trace::Export::FAILURE if res.is_a?(Net::HTTPError)
99
+
100
+ location = JSON(res.body)['raw_upload_location']
101
+ uri = URI(location)
102
+ https = Net::HTTP.new(uri.host, uri.port)
103
+ https.use_ssl = true
104
+ req = Net::HTTP::Put.new(
105
+ location,
106
+ {
107
+ 'Content-Type' => 'text/plain'
108
+ }
109
+ )
110
+ req.body = {
111
+ 'spans' => tracked_spans,
112
+ 'untracked' => untracked_spans
113
+ }.to_json,
114
+ https.request(req)
115
+ OpenTelemetry::SDK::Trace::Export::SUCCESS
96
116
  end
97
117
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CodecovOpentelem
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codecov_opentelem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed-Elghrbawy
@@ -19,6 +19,7 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - CHANGELOG.md
21
21
  - Gemfile
22
+ - Gemfile.lock
22
23
  - LICENSE.txt
23
24
  - README.md
24
25
  - Rakefile