helios-opentelemetry-sdk 0.1.10 → 0.1.13

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