helios-opentelemetry-sdk 0.1.10 → 0.1.13

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: f1d3fe333d6751dc18b4e99aa1a690ca30d529bd5be1b3f2d5c398df1015d41e
4
- data.tar.gz: e13ee0878d94cfc85e0783555a30b479aeb51b29effab55e13fabe08036ec178
3
+ metadata.gz: 839240a7807e3a23aada787e2a4a16b3d675894d42262e628fbf442966c84c9b
4
+ data.tar.gz: 115d834f15654a082a0898c668047e71d567d43f7f68450192447a8934f672bc
5
5
  SHA512:
6
- metadata.gz: b58a65d921e96eed8b201190dd5231f0095857bbc17b4bc7cfbdc6baa4260d545f6284a8eb982d1b4da9f6f086087613e31a004de90a43475f7336ecbee7777c
7
- data.tar.gz: 4a097e8413457df732f7283442d32ee2bacfb554fccb92e3c04d3dc801552c663ccf93f105ef8c137ab83fff82d9af3d2aca364f6a0da42ba774816babcf4c12
6
+ metadata.gz: 5c90089b6aad919130c213ac9fe360e406d464f07dbff72afa708b5a553e1b1ff9832b4311bfb9a07f196e4f4352556e4818029126ea4c4630af1813d26e2e88
7
+ data.tar.gz: f5b919fe906d2be9276eb19588e2035ccf3c8bc8a673a2183517ac495e0abace2df04b4313f754c1f837c5c5122814682003fbb5a9c7ec4b1be6933419b70f34
data/.rubocop.yml CHANGED
@@ -18,3 +18,6 @@ AllCops:
18
18
 
19
19
  Style/HashSyntax:
20
20
  Enabled: false
21
+
22
+ Metrics/BlockLength:
23
+ Enabled: false
data/Gemfile.lock CHANGED
@@ -1,7 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- helios-opentelemetry-sdk (0.1.10)
4
+ helios-opentelemetry-sdk (0.1.13)
5
+ opentelemetry-exporter-otlp (~> 0.22.0)
6
+ opentelemetry-instrumentation-all (~> 0.25.0)
7
+ opentelemetry-instrumentation-rspec (~> 0.2.0)
8
+ opentelemetry-sdk (~> 1.1.0)
5
9
 
6
10
  GEM
7
11
  remote: https://rubygems.org/
@@ -37,4 +37,8 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency "bundler", "~> 2.3.16"
38
38
  spec.add_development_dependency "rake", "~> 13.0"
39
39
  spec.add_development_dependency "rspec", "~> 3.0"
40
+ spec.add_runtime_dependency "opentelemetry-sdk", "~> 1.1.0"
41
+ spec.add_runtime_dependency "opentelemetry-exporter-otlp", "~> 0.22.0"
42
+ spec.add_runtime_dependency "opentelemetry-instrumentation-all", "~> 0.25.0"
43
+ spec.add_runtime_dependency "opentelemetry-instrumentation-rspec", "~> 0.2.0"
40
44
  end
@@ -48,4 +48,11 @@ def apply_instrumentations(otel_config)
48
48
 
49
49
  otel_config.use(instrumentation, config)
50
50
  end
51
+
52
+ additional_patches
53
+ end
54
+
55
+ def additional_patches
56
+ require_relative 'net_http_patch'
57
+ ::Net::HTTP.prepend(NetHttpPatch::Instrumentation)
51
58
  end
@@ -0,0 +1,31 @@
1
+ require 'json'
2
+ require_relative '../semantic_attributes'
3
+
4
+ module NetHttpPatch
5
+ # Module to prepend to Net::HTTP for instrumentation
6
+ module Instrumentation
7
+ def request(req, body = nil, &block)
8
+ current_span = OpenTelemetry::Trace.current_span
9
+ current_span.set_attribute(Helios::OpenTelemetry::SemanticAttributes::HTTP_REQUEST_HEADERS, collect_headers(req))
10
+ unless body.nil?
11
+ current_span.set_attribute(Helios::OpenTelemetry::SemanticAttributes::HTTP_REQUEST_BODY,
12
+ body.is_a?(String) ? body : body.to_s)
13
+ end
14
+
15
+ super(req, body, &block).tap do |response|
16
+ current_span.set_attribute(Helios::OpenTelemetry::SemanticAttributes::HTTP_RESPONSE_HEADERS,
17
+ collect_headers(response))
18
+ current_span.set_attribute(Helios::OpenTelemetry::SemanticAttributes::HTTP_RESPONSE_BODY, response.body)
19
+ end
20
+ end
21
+
22
+ def collect_headers(obj)
23
+ headers = {}
24
+ obj.each_header do |k, v|
25
+ headers[k] = v
26
+ end
27
+
28
+ headers.to_json
29
+ end
30
+ end
31
+ end
@@ -1,7 +1,7 @@
1
1
  module Helios
2
2
  module OpenTelemetry
3
3
  module SDK
4
- VERSION = '0.1.10'
4
+ VERSION = '0.1.13'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,10 @@
1
+ module Helios
2
+ module OpenTelemetry
3
+ class SemanticAttributes
4
+ HTTP_REQUEST_BODY = 'http.request.body'
5
+ HTTP_REQUEST_HEADERS = 'http.request.headers'
6
+ HTTP_RESPONSE_BODY = 'http.response.body'
7
+ HTTP_RESPONSE_HEADERS = 'http.response.headers'
8
+ end
9
+ end
10
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helios-opentelemetry-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Helios
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-03 00:00:00.000000000 Z
11
+ date: 2022-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,62 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: opentelemetry-sdk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: opentelemetry-exporter-otlp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.22.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.22.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: opentelemetry-instrumentation-all
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.25.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.25.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: opentelemetry-instrumentation-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.0
55
111
  description: Helios OpenTelemetry SDK for Ruby
56
112
  email:
57
113
  - support@gethelios.dev
@@ -74,7 +130,9 @@ files:
74
130
  - helios-opentelemetry-sdk.gemspec
75
131
  - lib/helios/opentelemetry/sdk.rb
76
132
  - lib/helios/opentelemetry/sdk/instrumentations.rb
133
+ - lib/helios/opentelemetry/sdk/net_http_patch.rb
77
134
  - lib/helios/opentelemetry/sdk/version.rb
135
+ - lib/helios/opentelemetry/semantic_attributes.rb
78
136
  homepage: https://gethelios.dev
79
137
  licenses:
80
138
  - Apache-2.0