opentelemetry-instrumentation-ruby_kafka 0.12.0 → 0.17.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/CHANGELOG.md +25 -0
- data/README.md +4 -4
- data/lib/opentelemetry/instrumentation/ruby_kafka.rb +1 -0
- data/lib/opentelemetry/instrumentation/ruby_kafka/instrumentation.rb +11 -1
- data/lib/opentelemetry/instrumentation/ruby_kafka/patches/client.rb +6 -4
- data/lib/opentelemetry/instrumentation/ruby_kafka/patches/consumer.rb +8 -6
- data/lib/opentelemetry/instrumentation/ruby_kafka/patches/producer.rb +1 -1
- data/lib/opentelemetry/instrumentation/ruby_kafka/version.rb +1 -1
- metadata +36 -9
- data/lib/opentelemetry/instrumentation/ruby_kafka/events.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '087545993e138641a9314c85f6c6e03e6f259f19274ea7038612a77e3d8a90cf'
|
4
|
+
data.tar.gz: e8f0c22542c8e49e895c20d2193ccc4eecff3169237f6efeb3ebdeda440facbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1eebd1d2d20db542cfd7dc44be4a0d56819bc2ba3a9e1f792ca506ddc162a94ef8364313cd67ba905b7f22017ca154710399cb29f7fc3eb3b02bf3f27d3814e0
|
7
|
+
data.tar.gz: ae1782ba4c1598b7b3db9fc1e2f2eee22c6bd5e078f71b6450ab22a9996f8f0e9829f6bc1eca1499581eba45d5f01ffe499e4c6303502971e4b3bad21490dbba
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
# Release History: opentelemetry-instrumentation-ruby_kafka
|
2
2
|
|
3
|
+
### v0.17.0 / 2021-04-22
|
4
|
+
|
5
|
+
* (No significant changes)
|
6
|
+
|
7
|
+
### v0.16.0 / 2021-03-17
|
8
|
+
|
9
|
+
* FIXED: Example scripts now reference local common lib
|
10
|
+
* DOCS: Replace Gitter with GitHub Discussions
|
11
|
+
|
12
|
+
### v0.15.0 / 2021-02-18
|
13
|
+
|
14
|
+
* (No significant changes)
|
15
|
+
|
16
|
+
### v0.14.0 / 2021-02-03
|
17
|
+
|
18
|
+
* BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
|
19
|
+
|
20
|
+
* ADDED: Replace getter and setter callables and remove rack specific propagators
|
21
|
+
|
22
|
+
### v0.13.0 / 2021-01-29
|
23
|
+
|
24
|
+
* FIXED: Add minimum gem version for ruby-kafka
|
25
|
+
* FIXED: Ruby_kafka baggage propagation
|
26
|
+
* FIXED: Remove unused ruby-kafka events file
|
27
|
+
|
3
28
|
### v0.12.0 / 2020-12-24
|
4
29
|
|
5
30
|
* Initial release.
|
data/README.md
CHANGED
@@ -32,13 +32,13 @@ end
|
|
32
32
|
|
33
33
|
## Examples
|
34
34
|
|
35
|
-
Example usage can be seen in the `./example/ruby_kafka.rb` file [here](https://github.com/open-telemetry/opentelemetry-ruby/blob/
|
35
|
+
Example usage can be seen in the `./example/ruby_kafka.rb` file [here](https://github.com/open-telemetry/opentelemetry-ruby/blob/main/instrumentation/ruby_kafka/example/ruby_kafka.rb)
|
36
36
|
|
37
37
|
## How can I get involved?
|
38
38
|
|
39
39
|
The `opentelemetry-instrumentation-ruby_kafka` gem source is [on github][repo-github], along with related gems including `opentelemetry-api` and `opentelemetry-sdk`.
|
40
40
|
|
41
|
-
The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us
|
41
|
+
The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us in [GitHub Discussions][discussions-url] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
|
42
42
|
|
43
43
|
## License
|
44
44
|
|
@@ -47,7 +47,7 @@ The `opentelemetry-instrumentation-ruby_kafka` gem is distributed under the Apac
|
|
47
47
|
[ruby_kafka-home]: https://github.com/zendesk/ruby-kafka
|
48
48
|
[bundler-home]: https://bundler.io
|
49
49
|
[repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
|
50
|
-
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/
|
50
|
+
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
|
51
51
|
[ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
|
52
52
|
[community-meetings]: https://github.com/open-telemetry/community#community-meetings
|
53
|
-
[
|
53
|
+
[discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
|
@@ -10,17 +10,27 @@ module OpenTelemetry
|
|
10
10
|
# The Instrumentation class contains logic to detect and install the
|
11
11
|
# KafkaRuby instrumentation
|
12
12
|
class Instrumentation < OpenTelemetry::Instrumentation::Base
|
13
|
+
MINIMUM_VERSION = Gem::Version.new('0.7.0')
|
14
|
+
|
13
15
|
install do |_config|
|
14
16
|
require_patches
|
15
17
|
patch
|
16
18
|
end
|
17
19
|
|
18
20
|
present do
|
19
|
-
defined?(::Kafka)
|
21
|
+
!defined?(::Kafka).nil?
|
22
|
+
end
|
23
|
+
|
24
|
+
compatible do
|
25
|
+
gem_version >= MINIMUM_VERSION
|
20
26
|
end
|
21
27
|
|
22
28
|
private
|
23
29
|
|
30
|
+
def gem_version
|
31
|
+
Gem.loaded_specs['ruby-kafka'].version
|
32
|
+
end
|
33
|
+
|
24
34
|
def require_patches
|
25
35
|
require_relative 'patches/producer'
|
26
36
|
require_relative 'patches/consumer'
|
@@ -21,7 +21,7 @@ module OpenTelemetry
|
|
21
21
|
attributes['messaging.kafka.partition'] = partition if partition
|
22
22
|
|
23
23
|
tracer.in_span("#{topic} send", attributes: attributes, kind: :producer) do
|
24
|
-
OpenTelemetry.propagation.
|
24
|
+
OpenTelemetry.propagation.inject(headers)
|
25
25
|
super
|
26
26
|
end
|
27
27
|
end
|
@@ -37,9 +37,11 @@ module OpenTelemetry
|
|
37
37
|
|
38
38
|
attributes['messaging.kafka.message_key'] = message.key if message.key
|
39
39
|
|
40
|
-
parent_context = OpenTelemetry.propagation.
|
41
|
-
|
42
|
-
|
40
|
+
parent_context = OpenTelemetry.propagation.extract(message.headers)
|
41
|
+
OpenTelemetry::Context.with_current(parent_context) do
|
42
|
+
tracer.in_span("#{topic} process", attributes: attributes, kind: :consumer) do
|
43
|
+
yield message
|
44
|
+
end
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -22,12 +22,14 @@ module OpenTelemetry
|
|
22
22
|
|
23
23
|
attributes['messaging.kafka.message_key'] = message.key if message.key
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
links = [
|
25
|
+
parent_context = OpenTelemetry.propagation.extract(message.headers)
|
26
|
+
span_context = OpenTelemetry::Trace.current_span(parent_context).context
|
27
|
+
links = [OpenTelemetry::Trace::Link.new(span_context)] if span_context.valid?
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
OpenTelemetry::Context.with_current(parent_context) do
|
30
|
+
tracer.in_span("#{message.topic} process", links: links, attributes: attributes, kind: :consumer) do
|
31
|
+
yield message
|
32
|
+
end
|
31
33
|
end
|
32
34
|
end
|
33
35
|
end
|
@@ -45,7 +47,7 @@ module OpenTelemetry
|
|
45
47
|
}
|
46
48
|
|
47
49
|
links = batch.messages.map do |message|
|
48
|
-
span_context = OpenTelemetry::Trace.current_span(OpenTelemetry.propagation.
|
50
|
+
span_context = OpenTelemetry::Trace.current_span(OpenTelemetry.propagation.extract(message.headers)).context
|
49
51
|
OpenTelemetry::Trace::Link.new(span_context) if span_context.valid?
|
50
52
|
end
|
51
53
|
links.compact!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-instrumentation-ruby_kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.17.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.17.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: opentelemetry-instrumentation-base
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.17.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.17.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: appraisal
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,20 @@ dependencies:
|
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-mocks
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: rubocop
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,7 +192,6 @@ files:
|
|
164
192
|
- lib/opentelemetry-instrumentation-ruby_kafka.rb
|
165
193
|
- lib/opentelemetry/instrumentation.rb
|
166
194
|
- lib/opentelemetry/instrumentation/ruby_kafka.rb
|
167
|
-
- lib/opentelemetry/instrumentation/ruby_kafka/events.rb
|
168
195
|
- lib/opentelemetry/instrumentation/ruby_kafka/instrumentation.rb
|
169
196
|
- lib/opentelemetry/instrumentation/ruby_kafka/patches/client.rb
|
170
197
|
- lib/opentelemetry/instrumentation/ruby_kafka/patches/consumer.rb
|
@@ -174,10 +201,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
174
201
|
licenses:
|
175
202
|
- Apache-2.0
|
176
203
|
metadata:
|
177
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ruby_kafka/v0.
|
178
|
-
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/
|
204
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ruby_kafka/v0.17.0/file.CHANGELOG.html
|
205
|
+
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/ruby_kafka
|
179
206
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
180
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ruby_kafka/v0.
|
207
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ruby_kafka/v0.17.0
|
181
208
|
post_install_message:
|
182
209
|
rdoc_options: []
|
183
210
|
require_paths:
|
@@ -193,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
220
|
- !ruby/object:Gem::Version
|
194
221
|
version: '0'
|
195
222
|
requirements: []
|
196
|
-
rubygems_version: 3.1.
|
223
|
+
rubygems_version: 3.1.6
|
197
224
|
signing_key:
|
198
225
|
specification_version: 4
|
199
226
|
summary: RubyKafka instrumentation for the OpenTelemetry framework
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright The OpenTelemetry Authors
|
4
|
-
#
|
5
|
-
# SPDX-License-Identifier: Apache-2.0
|
6
|
-
|
7
|
-
require_relative 'events/connection/request'
|
8
|
-
require_relative 'events/consumer_group/heartbeat'
|
9
|
-
require_relative 'events/consumer_group/join_group'
|
10
|
-
require_relative 'events/consumer_group/leave_group'
|
11
|
-
require_relative 'events/consumer_group/sync_group'
|
12
|
-
require_relative 'events/produce_operation/send_messages'
|
13
|
-
require_relative 'events/producer/deliver_messages'
|
14
|
-
|
15
|
-
module OpenTelemetry
|
16
|
-
module Instrumentation
|
17
|
-
module RubyKafka
|
18
|
-
module Events
|
19
|
-
ALL = [
|
20
|
-
Events::Connection::Request,
|
21
|
-
Events::ConsumerGroup::Heartbeat,
|
22
|
-
Events::ConsumerGroup::JoinGroup,
|
23
|
-
Events::ConsumerGroup::LeaveGroup,
|
24
|
-
Events::ConsumerGroup::SyncGroup,
|
25
|
-
Events::ProduceOperation::SendMessages,
|
26
|
-
Events::Producer::DeliverMessages
|
27
|
-
].freeze
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|