hypertrace-agent 0.1.0 → 0.1.2

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: cd902302c28208a7f321249b2b10a682d191e0fcd5109832bf26096ab9cc89e7
4
- data.tar.gz: ad3be3804d501059bb320e4c673d85b1cd8668973d9e322b629ecbe1ac16e5db
3
+ metadata.gz: 0f4e3af544ca2b87293959ce1bf8e81eaea8581e0447d4a2fd4767a3f208d4bd
4
+ data.tar.gz: beb4a87a206b3f8fc4994c0577dfd8dda6db6d479493f063623bf5d5c967bbb8
5
5
  SHA512:
6
- metadata.gz: 11acc90ba4879bc17c3f790d518356407a4acc64a232f7122bf61843d8760ba25d4029d9a8ff537d0ee81e3e49eb6eca8baf471dc8f26dd1c826f7feaa0e5cde
7
- data.tar.gz: bac8741ffccfa66832fac4bf768a700228b2f4ed84b672c0f1052b354a0a096335179bfd7278ee062edf9c0ba9c6283d04c05bee78a91a88113ca6836e9af5a3
6
+ metadata.gz: 3d22245c00b22746c8cb3addae5d48def9a719e9b0a92aa82e5cafdb397348c047b2466856afe6f05e55f06196fb3be0bbdce349087a0a346fc796f9075af708
7
+ data.tar.gz: 4058fc87586fce6f5f75ba57d16e9b2a68ff25577d33b8dc3af4e9483123d4a6032698594a393afc1ec6017c9da6bf0c3cc928b642ce5d0ff6dbec7852870b93
@@ -1,4 +1,5 @@
1
1
  class Hypertrace::Instrumentation::DataCapture
2
+ include Hypertrace::Logging
2
3
  TYPE_REQUEST = 'request'
3
4
  TYPE_RESPONSE = 'response'
4
5
  CONTENT_TYPE_SUBSTRINGS = %w[json x-www-form-urlencoded]
@@ -21,17 +22,22 @@ class Hypertrace::Instrumentation::DataCapture
21
22
  end
22
23
 
23
24
  def self.capturable_body body_object
24
- max_capture = Hypertrace::RubyAgent.config.data_capture.body_max_size_bytes.value
25
- if body_object.is_a?(String)
26
- return body_object.byteslice(0..max_capture)
27
- elsif body_object.is_a?(StringIO)
28
- result = body_object.read(max_capture)
29
- body_object.rewind
30
- return result
25
+ begin
26
+ max_capture = Hypertrace::RubyAgent.config.data_capture.body_max_size_bytes.value
27
+ if body_object.is_a?(String)
28
+ return body_object.byteslice(0..max_capture)
29
+ elsif body_object.is_a?(StringIO)
30
+ result = body_object.read(max_capture)
31
+ body_object.rewind
32
+ return result
33
+ end
34
+ rescue => e
35
+ log.error("Erroring reading response body" + e.backtrace&.join("\n"))
31
36
  end
32
37
  end
33
38
 
34
39
  def self.can_capture?(content_type, type)
40
+ content_type = content_type.join('') if content_type.is_a?(Array)
35
41
  return false unless content_type
36
42
  return false unless body_allowed_by_config?(type)
37
43
 
@@ -53,5 +59,4 @@ class Hypertrace::Instrumentation::DataCapture
53
59
  return Hypertrace::RubyAgent.config.data_capture.http_body.request.value if type == TYPE_REQUEST
54
60
  Hypertrace::RubyAgent.config.data_capture.http_body.response.value
55
61
  end
56
-
57
62
  end
@@ -1,4 +1,6 @@
1
1
  class OpenTelemetry::Instrumentation::Faraday::Middlewares::TracerMiddleware < ::Faraday::Middleware
2
+ include Hypertrace::Logging
3
+
2
4
  def call(env)
3
5
  http_method = HTTP_METHODS_SYMBOL_TO_STRING[env.method]
4
6
  attributes = span_creation_attributes(
@@ -8,13 +10,18 @@ class OpenTelemetry::Instrumentation::Faraday::Middlewares::TracerMiddleware < :
8
10
  header_attrs = Hypertrace::Instrumentation::DataCapture.headers_to_attribute_keys(request_headers,
9
11
  Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
10
12
 
11
- content_type = request_headers['Content-Type']
13
+ content_type = request_headers.find{|k, v| k.downcase == "content-type"}&.last
12
14
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
13
- body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(env&.request_body&.to_s)
14
- attributes['http.request.body'] = body_cap if body_cap
15
+ begin
16
+ body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(env.body.to_s) if env.respond_to?(:body) && env.body.respond_to?(:to_s)
17
+ attributes['http.request.body'] = body_cap if body_cap
18
+ rescue => e
19
+ log.error("error attempting to read faraday request body #{e}")
20
+ end
15
21
  end
16
22
 
17
23
  attributes.merge!(header_attrs)
24
+
18
25
  tracer.in_span(
19
26
  "HTTP #{http_method}", attributes: attributes, kind: :client
20
27
  ) do |span|
@@ -27,10 +34,14 @@ class OpenTelemetry::Instrumentation::Faraday::Middlewares::TracerMiddleware < :
27
34
  Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE) do |k, v|
28
35
  span.set_attribute(k, v)
29
36
  end
30
- content_type = resp_headers['content-type']
37
+ content_type = resp_headers.find{|k, v| k.downcase == "content-type"}&.last
31
38
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE)
32
- body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(resp.body)
33
- span.set_attribute('http.response.body', body_cap) if body_cap
39
+ begin
40
+ body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(resp.body)
41
+ span.set_attribute('http.response.body', body_cap) if body_cap
42
+ rescue => e
43
+ log.error("error attempting to read faraday response body #{e}")
44
+ end
34
45
  end
35
46
 
36
47
  trace_response(span, resp)
@@ -6,7 +6,7 @@ module OpenTelemetry::Instrumentation::HTTP::Patches::Client
6
6
  headers = req.headers.to_h
7
7
  attrs = Hypertrace::Instrumentation::DataCapture.headers_to_attribute_keys(headers,
8
8
  Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
9
- content_type = headers['Content-Type']
9
+ content_type = headers.find{|k, v| k.downcase == "content-type"}&.last
10
10
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
11
11
  body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(req.body.source)
12
12
  attrs['http.request.body'] = body_cap if body_cap
@@ -29,7 +29,7 @@ module OpenTelemetry::Instrumentation::HTTP::Patches::Client
29
29
  Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE) do |k, v|
30
30
  span.set_attribute(k, v)
31
31
  end
32
- content_type = response_headers['Content-Type']
32
+ content_type = response_headers.find{|k, v| k.downcase == "content-type"}&.last
33
33
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE)
34
34
  body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(response.body.to_s)
35
35
  span.set_attribute('http.response.body', body_cap) if body_cap
@@ -17,7 +17,7 @@ module OpenTelemetry::Instrumentation::Net::HTTP::Patches::Instrumentation
17
17
  header_map = req.instance_variable_get(:@header)
18
18
  ht_attributes = Hypertrace::Instrumentation::DataCapture.headers_to_attribute_keys(header_map,
19
19
  Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
20
- content_type = header_map['content-type']&.first
20
+ content_type = header_map.find{|k, v| k.downcase == "content-type"}&.last
21
21
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_REQUEST)
22
22
  body_cap = Hypertrace::Instrumentation::DataCapture.capturable_body(req.body)
23
23
  ht_attributes['http.request.body'] = body_cap if body_cap
@@ -35,7 +35,7 @@ module OpenTelemetry::Instrumentation::Net::HTTP::Patches::Instrumentation
35
35
  Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE) do |k, v|
36
36
  span.set_attribute(k, v)
37
37
  end
38
- content_type = response_headers['content-type']&.first
38
+ content_type = response_headers.find{|k, v| k.downcase == "content-type"}&.last
39
39
  if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type, Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE)
40
40
  span.set_attribute('http.response.body', Hypertrace::Instrumentation::DataCapture.capturable_body(response.body))
41
41
  end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class OpenTelemetry::Instrumentation::Rack::Middlewares::TracerMiddleware
4
+ include Hypertrace::Logging
5
+
4
6
  def call(env)
5
7
  if untraced_request?(env)
6
8
  OpenTelemetry::Common::Utilities.untraced do
@@ -41,13 +43,17 @@ class OpenTelemetry::Instrumentation::Rack::Middlewares::TracerMiddleware
41
43
  request_span.set_attribute("http.response.header.#{h_k.downcase}", h_v)
42
44
  end
43
45
  content_type_arr = response_headers.find{|x|x[0].downcase == "content-type"}
44
- if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type_arr&.join(''),
45
- Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE)
46
- cap_body = Hypertrace::Instrumentation::RackCompatible.extract_response_body(response)
47
- request_span.set_attribute('http.response.body', cap_body) if cap_body
48
- end
46
+ begin
47
+ if Hypertrace::Instrumentation::DataCapture.can_capture?(content_type_arr&.join(''),
48
+ Hypertrace::Instrumentation::DataCapture::TYPE_RESPONSE)
49
+ cap_body = Hypertrace::Instrumentation::RackCompatible.extract_response_body(response)
50
+ request_span.set_attribute('http.response.body', cap_body) if cap_body
51
+ end
49
52
 
50
- set_attributes_after_request(request_span, status, headers, response)
53
+ set_attributes_after_request(request_span, status, headers, response)
54
+ rescue => e
55
+ log.error("Error in Hypertrace response capture" + e.backtrace&.join("\n"))
56
+ end
51
57
  end
52
58
  end
53
59
  end
@@ -33,10 +33,32 @@ module Hypertrace
33
33
  end
34
34
 
35
35
  def self.extract_response_body rack_response
36
+ if rack_response.is_a?(Rack::Response)
37
+ body = rack_response.respond_to?(:body) ? rack_response.body : nil
38
+ return Hypertrace::Instrumentation::DataCapture.capturable_body(body)
39
+ end
40
+
36
41
  if rack_response.is_a?(Rack::BodyProxy)
37
- Hypertrace::Instrumentation::DataCapture.capturable_body(rack_response.join(''))
42
+ count = 0
43
+ while count < 15
44
+ rack_response = rack_response.instance_variable_get(:'@body')
45
+ if rack_response.is_a?(Array)
46
+ body = rack_response.respond_to?(:join) ? rack_response.join('') : nil
47
+ return Hypertrace::Instrumentation::DataCapture.capturable_body(body)
48
+ end
49
+ if action_dispatch_defined? && rack_response.is_a?(ActionDispatch::Response::RackBody)
50
+ return Hypertrace::Instrumentation::DataCapture.capturable_body(rack_response.body) if rack_response.respond_to?(:body)
51
+ end
52
+ unless rack_response.is_a?(Rack::BodyProxy)
53
+ return
54
+ end
55
+ count += 1
56
+ end
38
57
  elsif rack_response.is_a?(Array) && rack_response.length == 3
39
- Hypertrace::Instrumentation::DataCapture.capturable_body(rack_response[2].join(''))
58
+ body = rack_response[2]
59
+ if body.is_a?(Array)
60
+ return Hypertrace::Instrumentation::DataCapture.capturable_body(body.join(''))
61
+ end
40
62
  end
41
63
  end
42
64
 
@@ -49,6 +71,11 @@ module Hypertrace
49
71
  end.to_h
50
72
  end
51
73
 
74
+ # memoize so we don't check action dispatch
75
+ def self.action_dispatch_defined?
76
+ @_action_dispatch_defined ||= defined?(ActionDispatch) && defined?(ActionDispatch::Response) && defined?(ActionDispatch::Response::RackBody)
77
+ end
78
+
52
79
  def self.extract_headers_from_env env
53
80
  result = env.select{|x|x.start_with?("HTTP_")}
54
81
  result.transform_keys!{|k|k[5..-1]}
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Custom patch to temporarily maintain 2.7.x support
4
+
5
+ module OpenTelemetry
6
+ module Common
7
+ module Propagation
8
+ # The RackEnvGetter class provides a common methods for reading
9
+ # keys from a rack environment. It abstracts away the rack-normalization
10
+ # process so that keys can be looked up without having to transform them
11
+ # first. With this class you can get +traceparent+ instead of
12
+ # +HTTP_TRACEPARENT+
13
+ class RackEnvGetter
14
+
15
+ private
16
+
17
+ def to_rack_key(key)
18
+ ret = "HTTP_#{key}"
19
+ ret = ret.tr('-', '_')
20
+ ret = ret.upcase
21
+ ret
22
+ end
23
+
24
+ def from_rack_key(key)
25
+ start = key.start_with?('HTTP_') ? 5 : 0
26
+ ret = key[start..]
27
+ ret = ret.tr('_', '-')
28
+ ret = ret.downcase!
29
+ ret
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -91,6 +91,7 @@ class Hypertrace::RubyAgent
91
91
  apply_custom_patch './instrumentation/http_patch'
92
92
  apply_custom_patch './instrumentation/faraday_patch'
93
93
  apply_custom_patch './instrumentation/rest_client_patch'
94
+ apply_custom_patch './instrumentation/rack_env_getter'
94
95
 
95
96
  configure_propagators
96
97
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hypertrace
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
data/release.sh ADDED
@@ -0,0 +1,24 @@
1
+ echo "Setting up gem credentials..."
2
+ set +x
3
+ mkdir -p ~/.gem
4
+
5
+ cat << EOF > ~/.gem/credentials
6
+ ---
7
+ :github: Bearer ${GITHUB_TOKEN}
8
+ :rubygems_api_key: ${RUBYGEMS_API_KEY}
9
+ EOF
10
+
11
+ chmod 0600 ~/.gem/credentials
12
+ set -x
13
+
14
+ git config --global --add safe.directory "$(pwd)"
15
+
16
+ work_directory="${WORKDIR:-.}"
17
+ cd $work_directory
18
+
19
+ echo "Installing dependencies..."
20
+ bundle install > /dev/null
21
+
22
+ echo "Running gem release task..."
23
+ release_command="${RELEASE_COMMAND:-rake release}"
24
+ $release_command
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hypertrace-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - prodion23
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-09 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.21.5
19
+ version: 3.21.7
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: 3.21.5
26
+ version: 3.21.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: opentelemetry-api
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -232,7 +232,6 @@ files:
232
232
  - ".ruby-gemset"
233
233
  - ".ruby-version"
234
234
  - Gemfile
235
- - Gemfile.lock
236
235
  - LICENSE
237
236
  - README.md
238
237
  - Rakefile
@@ -254,12 +253,13 @@ files:
254
253
  - lib/hypertrace/instrumentation/net_http_patch.rb
255
254
  - lib/hypertrace/instrumentation/rack.rb
256
255
  - lib/hypertrace/instrumentation/rack_compatible.rb
256
+ - lib/hypertrace/instrumentation/rack_env_getter.rb
257
257
  - lib/hypertrace/instrumentation/rest_client_patch.rb
258
258
  - lib/hypertrace/instrumentation/sinatra.rb
259
259
  - lib/hypertrace/logging.rb
260
260
  - lib/hypertrace/ruby_agent.rb
261
261
  - lib/hypertrace/version.rb
262
- - rubyagent.gemspec
262
+ - release.sh
263
263
  - sig/rubyagent.rbs
264
264
  homepage: https://hypertrace.com
265
265
  licenses: []
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  - !ruby/object:Gem::Version
282
282
  version: '0'
283
283
  requirements: []
284
- rubygems_version: 3.3.7
284
+ rubygems_version: 3.1.6
285
285
  signing_key:
286
286
  specification_version: 4
287
287
  summary: Write a short summary, because RubyGems requires one.
data/Gemfile.lock DELETED
@@ -1,346 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- hypertrace-agent (0.1.0)
5
- google-protobuf (= 3.21.5)
6
- opentelemetry-api (= 1.0.2)
7
- opentelemetry-exporter-otlp (= 0.21.1)
8
- opentelemetry-exporter-zipkin (= 0.20.0)
9
- opentelemetry-instrumentation-faraday (= 0.21.0)
10
- opentelemetry-instrumentation-http (= 0.20.0)
11
- opentelemetry-instrumentation-mongo (= 0.20.0)
12
- opentelemetry-instrumentation-mysql2 (= 0.21.0)
13
- opentelemetry-instrumentation-net_http (= 0.20.0)
14
- opentelemetry-instrumentation-pg (= 0.21.0)
15
- opentelemetry-instrumentation-rails (= 0.22.0)
16
- opentelemetry-instrumentation-restclient (= 0.20.0)
17
- opentelemetry-instrumentation-sinatra (= 0.20.0)
18
- opentelemetry-propagator-b3 (= 0.20.0)
19
- opentelemetry-sdk (= 1.1.0)
20
-
21
- GEM
22
- remote: https://rubygems.org/
23
- specs:
24
- actioncable (6.1.6.1)
25
- actionpack (= 6.1.6.1)
26
- activesupport (= 6.1.6.1)
27
- nio4r (~> 2.0)
28
- websocket-driver (>= 0.6.1)
29
- actionmailbox (6.1.6.1)
30
- actionpack (= 6.1.6.1)
31
- activejob (= 6.1.6.1)
32
- activerecord (= 6.1.6.1)
33
- activestorage (= 6.1.6.1)
34
- activesupport (= 6.1.6.1)
35
- mail (>= 2.7.1)
36
- actionmailer (6.1.6.1)
37
- actionpack (= 6.1.6.1)
38
- actionview (= 6.1.6.1)
39
- activejob (= 6.1.6.1)
40
- activesupport (= 6.1.6.1)
41
- mail (~> 2.5, >= 2.5.4)
42
- rails-dom-testing (~> 2.0)
43
- actionpack (6.1.6.1)
44
- actionview (= 6.1.6.1)
45
- activesupport (= 6.1.6.1)
46
- rack (~> 2.0, >= 2.0.9)
47
- rack-test (>= 0.6.3)
48
- rails-dom-testing (~> 2.0)
49
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
50
- actiontext (6.1.6.1)
51
- actionpack (= 6.1.6.1)
52
- activerecord (= 6.1.6.1)
53
- activestorage (= 6.1.6.1)
54
- activesupport (= 6.1.6.1)
55
- nokogiri (>= 1.8.5)
56
- actionview (6.1.6.1)
57
- activesupport (= 6.1.6.1)
58
- builder (~> 3.1)
59
- erubi (~> 1.4)
60
- rails-dom-testing (~> 2.0)
61
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
62
- activejob (6.1.6.1)
63
- activesupport (= 6.1.6.1)
64
- globalid (>= 0.3.6)
65
- activemodel (6.1.6.1)
66
- activesupport (= 6.1.6.1)
67
- activerecord (6.1.6.1)
68
- activemodel (= 6.1.6.1)
69
- activesupport (= 6.1.6.1)
70
- activestorage (6.1.6.1)
71
- actionpack (= 6.1.6.1)
72
- activejob (= 6.1.6.1)
73
- activerecord (= 6.1.6.1)
74
- activesupport (= 6.1.6.1)
75
- marcel (~> 1.0)
76
- mini_mime (>= 1.1.0)
77
- activesupport (6.1.6.1)
78
- concurrent-ruby (~> 1.0, >= 1.0.2)
79
- i18n (>= 1.6, < 2)
80
- minitest (>= 5.1)
81
- tzinfo (~> 2.0)
82
- zeitwerk (~> 2.3)
83
- addressable (2.8.0)
84
- public_suffix (>= 2.0.2, < 5.0)
85
- ast (2.4.2)
86
- bson (4.15.0)
87
- builder (3.2.4)
88
- concurrent-ruby (1.1.10)
89
- crass (1.0.6)
90
- diff-lcs (1.5.0)
91
- domain_name (0.5.20190701)
92
- unf (>= 0.0.5, < 1.0.0)
93
- erubi (1.11.0)
94
- faraday (2.5.2)
95
- faraday-net_http (>= 2.0, < 3.1)
96
- ruby2_keywords (>= 0.0.4)
97
- faraday-net_http (3.0.0)
98
- ffi (1.15.5)
99
- ffi-compiler (1.0.1)
100
- ffi (>= 1.0.0)
101
- rake
102
- globalid (1.0.0)
103
- activesupport (>= 5.0)
104
- google-protobuf (3.21.5-x86_64-darwin)
105
- google-protobuf (3.21.5-x86_64-linux)
106
- http (5.1.0)
107
- addressable (~> 2.8)
108
- http-cookie (~> 1.0)
109
- http-form_data (~> 2.2)
110
- llhttp-ffi (~> 0.4.0)
111
- http-cookie (1.0.5)
112
- domain_name (~> 0.5)
113
- http-form_data (2.3.0)
114
- i18n (1.12.0)
115
- concurrent-ruby (~> 1.0)
116
- json (2.6.2)
117
- llhttp-ffi (0.4.0)
118
- ffi-compiler (~> 1.0)
119
- rake (~> 13.0)
120
- loofah (2.18.0)
121
- crass (~> 1.0.2)
122
- nokogiri (>= 1.5.9)
123
- mail (2.7.1)
124
- mini_mime (>= 0.1.1)
125
- marcel (1.0.2)
126
- method_source (1.0.0)
127
- mime-types (3.4.1)
128
- mime-types-data (~> 3.2015)
129
- mime-types-data (3.2022.0105)
130
- mini_mime (1.1.2)
131
- minitest (5.16.2)
132
- mongo (2.18.1)
133
- bson (>= 4.14.1, < 5.0.0)
134
- mustermann (2.0.2)
135
- ruby2_keywords (~> 0.0.1)
136
- mysql2 (0.5.4)
137
- netrc (0.11.0)
138
- nio4r (2.5.8)
139
- nokogiri (1.13.8-x86_64-darwin)
140
- racc (~> 1.4)
141
- nokogiri (1.13.8-x86_64-linux)
142
- racc (~> 1.4)
143
- opentelemetry-api (1.0.2)
144
- opentelemetry-common (0.19.6)
145
- opentelemetry-api (~> 1.0)
146
- opentelemetry-exporter-otlp (0.21.1)
147
- google-protobuf (~> 3.7)
148
- opentelemetry-api (~> 1.0)
149
- opentelemetry-common (~> 0.19.3)
150
- opentelemetry-sdk (~> 1.0)
151
- opentelemetry-exporter-zipkin (0.20.0)
152
- opentelemetry-api (~> 1.0)
153
- opentelemetry-common (~> 0.19.6)
154
- opentelemetry-sdk (~> 1.0)
155
- opentelemetry-semantic_conventions
156
- opentelemetry-instrumentation-action_pack (0.2.0)
157
- opentelemetry-api (~> 1.0)
158
- opentelemetry-instrumentation-base (~> 0.21.0)
159
- opentelemetry-instrumentation-rack (~> 0.21.0)
160
- opentelemetry-instrumentation-action_view (0.3.0)
161
- opentelemetry-api (~> 1.0)
162
- opentelemetry-instrumentation-active_support (~> 0.1)
163
- opentelemetry-instrumentation-base (~> 0.20)
164
- opentelemetry-instrumentation-active_record (0.4.0)
165
- opentelemetry-api (~> 1.0)
166
- opentelemetry-instrumentation-base (~> 0.21.0)
167
- ruby2_keywords
168
- opentelemetry-instrumentation-active_support (0.2.0)
169
- opentelemetry-api (~> 1.0)
170
- opentelemetry-instrumentation-base (~> 0.21.0)
171
- opentelemetry-instrumentation-base (0.21.0)
172
- opentelemetry-api (~> 1.0)
173
- opentelemetry-registry (~> 0.1)
174
- opentelemetry-instrumentation-faraday (0.21.0)
175
- opentelemetry-api (~> 1.0)
176
- opentelemetry-common (~> 0.19.3)
177
- opentelemetry-instrumentation-base (~> 0.21.0)
178
- opentelemetry-instrumentation-http (0.20.0)
179
- opentelemetry-api (~> 1.0)
180
- opentelemetry-instrumentation-base (~> 0.21.0)
181
- opentelemetry-instrumentation-mongo (0.20.0)
182
- opentelemetry-api (~> 1.0)
183
- opentelemetry-instrumentation-base (~> 0.21.0)
184
- opentelemetry-instrumentation-mysql2 (0.21.0)
185
- opentelemetry-api (~> 1.0)
186
- opentelemetry-instrumentation-base (~> 0.21.0)
187
- opentelemetry-instrumentation-net_http (0.20.0)
188
- opentelemetry-api (~> 1.0)
189
- opentelemetry-common (~> 0.19.3)
190
- opentelemetry-instrumentation-base (~> 0.21.0)
191
- opentelemetry-instrumentation-pg (0.21.0)
192
- opentelemetry-api (~> 1.0)
193
- opentelemetry-instrumentation-base (~> 0.21.0)
194
- opentelemetry-instrumentation-rack (0.21.0)
195
- opentelemetry-api (~> 1.0)
196
- opentelemetry-common (~> 0.19.3)
197
- opentelemetry-instrumentation-base (~> 0.21.0)
198
- opentelemetry-instrumentation-rails (0.22.0)
199
- opentelemetry-api (~> 1.0)
200
- opentelemetry-instrumentation-action_pack (~> 0.2.0)
201
- opentelemetry-instrumentation-action_view (~> 0.3.0)
202
- opentelemetry-instrumentation-active_record (~> 0.4.0)
203
- opentelemetry-instrumentation-active_support (~> 0.2.0)
204
- opentelemetry-instrumentation-base (~> 0.21.0)
205
- opentelemetry-instrumentation-restclient (0.20.0)
206
- opentelemetry-api (~> 1.0)
207
- opentelemetry-common (~> 0.19.3)
208
- opentelemetry-instrumentation-base (~> 0.21.0)
209
- opentelemetry-instrumentation-sinatra (0.20.0)
210
- opentelemetry-api (~> 1.0)
211
- opentelemetry-common (~> 0.19.3)
212
- opentelemetry-instrumentation-base (~> 0.21.0)
213
- opentelemetry-propagator-b3 (0.20.0)
214
- opentelemetry-api (~> 1.0)
215
- opentelemetry-registry (0.1.0)
216
- opentelemetry-api (~> 1.0.1)
217
- opentelemetry-sdk (1.1.0)
218
- opentelemetry-api (~> 1.0)
219
- opentelemetry-common (~> 0.19.3)
220
- opentelemetry-registry (~> 0.1)
221
- opentelemetry-semantic_conventions
222
- opentelemetry-semantic_conventions (1.8.0)
223
- opentelemetry-api (~> 1.0)
224
- parallel (1.22.1)
225
- parser (3.1.2.0)
226
- ast (~> 2.4.1)
227
- pg (1.4.3)
228
- public_suffix (4.0.7)
229
- puma (5.2.2)
230
- nio4r (~> 2.0)
231
- racc (1.6.0)
232
- rack (2.2.4)
233
- rack-protection (2.2.2)
234
- rack
235
- rack-test (1.1.0)
236
- rack (>= 1.0, < 3)
237
- rails (6.1.6.1)
238
- actioncable (= 6.1.6.1)
239
- actionmailbox (= 6.1.6.1)
240
- actionmailer (= 6.1.6.1)
241
- actionpack (= 6.1.6.1)
242
- actiontext (= 6.1.6.1)
243
- actionview (= 6.1.6.1)
244
- activejob (= 6.1.6.1)
245
- activemodel (= 6.1.6.1)
246
- activerecord (= 6.1.6.1)
247
- activestorage (= 6.1.6.1)
248
- activesupport (= 6.1.6.1)
249
- bundler (>= 1.15.0)
250
- railties (= 6.1.6.1)
251
- sprockets-rails (>= 2.0.0)
252
- rails-dom-testing (2.0.3)
253
- activesupport (>= 4.2.0)
254
- nokogiri (>= 1.6)
255
- rails-html-sanitizer (1.4.3)
256
- loofah (~> 2.3)
257
- railties (6.1.6.1)
258
- actionpack (= 6.1.6.1)
259
- activesupport (= 6.1.6.1)
260
- method_source
261
- rake (>= 12.2)
262
- thor (~> 1.0)
263
- rainbow (3.1.1)
264
- rake (13.0.6)
265
- regexp_parser (2.5.0)
266
- rest-client (2.0.2)
267
- http-cookie (>= 1.0.2, < 2.0)
268
- mime-types (>= 1.16, < 4.0)
269
- netrc (~> 0.8)
270
- rexml (3.2.5)
271
- rspec (3.11.0)
272
- rspec-core (~> 3.11.0)
273
- rspec-expectations (~> 3.11.0)
274
- rspec-mocks (~> 3.11.0)
275
- rspec-core (3.11.0)
276
- rspec-support (~> 3.11.0)
277
- rspec-expectations (3.11.0)
278
- diff-lcs (>= 1.2.0, < 2.0)
279
- rspec-support (~> 3.11.0)
280
- rspec-mocks (3.11.1)
281
- diff-lcs (>= 1.2.0, < 2.0)
282
- rspec-support (~> 3.11.0)
283
- rspec-support (3.11.0)
284
- rubocop (1.32.0)
285
- json (~> 2.3)
286
- parallel (~> 1.10)
287
- parser (>= 3.1.0.0)
288
- rainbow (>= 2.2.2, < 4.0)
289
- regexp_parser (>= 1.8, < 3.0)
290
- rexml (>= 3.2.5, < 4.0)
291
- rubocop-ast (>= 1.19.1, < 2.0)
292
- ruby-progressbar (~> 1.7)
293
- unicode-display_width (>= 1.4.0, < 3.0)
294
- rubocop-ast (1.19.1)
295
- parser (>= 3.1.1.0)
296
- ruby-progressbar (1.11.0)
297
- ruby2_keywords (0.0.5)
298
- sinatra (2.2.2)
299
- mustermann (~> 2.0)
300
- rack (~> 2.2)
301
- rack-protection (= 2.2.2)
302
- tilt (~> 2.0)
303
- sprockets (4.1.1)
304
- concurrent-ruby (~> 1.0)
305
- rack (> 1, < 3)
306
- sprockets-rails (3.4.2)
307
- actionpack (>= 5.2)
308
- activesupport (>= 5.2)
309
- sprockets (>= 3.0.0)
310
- thor (1.2.1)
311
- tilt (2.0.11)
312
- tzinfo (2.0.5)
313
- concurrent-ruby (~> 1.0)
314
- unf (0.1.4)
315
- unf_ext
316
- unf_ext (0.0.8.2)
317
- unicode-display_width (2.2.0)
318
- websocket-driver (0.7.5)
319
- websocket-extensions (>= 0.1.0)
320
- websocket-extensions (0.1.5)
321
- zeitwerk (2.6.0)
322
-
323
- PLATFORMS
324
- x86_64-darwin-20
325
- x86_64-darwin-21
326
- x86_64-linux
327
-
328
- DEPENDENCIES
329
- faraday (~> 2.5.2)
330
- http (~> 5.1.0)
331
- hypertrace-agent!
332
- mongo (~> 2)
333
- mysql2 (~> 0.5.2)
334
- nio4r (~> 2.0)
335
- pg (~> 1.4.3)
336
- puma (~> 5.2.2)
337
- rack-test (~> 1.1)
338
- rails (~> 6.1.3)
339
- rake (~> 13.0)
340
- rest-client (~> 2.0.0)
341
- rspec (~> 3.0)
342
- rubocop (~> 1.21)
343
- sinatra (~> 2.1)
344
-
345
- BUNDLED WITH
346
- 2.3.4
data/rubyagent.gemspec DELETED
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/hypertrace/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "hypertrace-agent"
7
- spec.version = Hypertrace::VERSION
8
- spec.authors = ["prodion23"]
9
- spec.email = ["Write your email address"]
10
-
11
- spec.summary = "Write a short summary, because RubyGems requires one."
12
- spec.description = "Hypertrace ..."
13
- spec.homepage = "https://hypertrace.com"
14
- spec.required_ruby_version = ">= 2.6.0"
15
-
16
- # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
17
-
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/hypertrace/rubyagent"
20
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
21
-
22
- # Specify which files should be added to the gem when it is released.
23
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
- `git ls-files -z`.split("\x0").reject do |f|
26
- (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
27
- end
28
- end
29
- spec.bindir = "exe"
30
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
-
33
- # Uncomment to register a new dependency of your gem
34
- # spec.add_dependency "example-gem", "~> 1.0"
35
- spec.add_dependency 'google-protobuf', '3.21.5'
36
- spec.add_dependency 'opentelemetry-api', '1.0.2'
37
- spec.add_dependency 'opentelemetry-sdk', '1.1.0'
38
- spec.add_dependency 'opentelemetry-propagator-b3', '0.20.0'
39
- spec.add_dependency 'opentelemetry-exporter-otlp', '0.21.1'
40
- spec.add_dependency 'opentelemetry-exporter-zipkin', '0.20.0'
41
- spec.add_dependency 'opentelemetry-instrumentation-faraday', '0.21.0'
42
- spec.add_dependency 'opentelemetry-instrumentation-mysql2', '0.21.0'
43
- spec.add_dependency 'opentelemetry-instrumentation-pg', '0.21.0'
44
- spec.add_dependency 'opentelemetry-instrumentation-mongo', '0.20.0'
45
- spec.add_dependency 'opentelemetry-instrumentation-net_http', '0.20.0'
46
- spec.add_dependency 'opentelemetry-instrumentation-http', '0.20.0'
47
- spec.add_dependency 'opentelemetry-instrumentation-rails', '0.22.0'
48
- spec.add_dependency 'opentelemetry-instrumentation-restclient', '0.20.0'
49
- spec.add_dependency 'opentelemetry-instrumentation-sinatra', '0.20.0'
50
-
51
- # For more information and examples about making a new gem, check out our
52
- # guide at: https://bundler.io/guides/creating_gem.html
53
- end