acfs 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +1 -1
- data/acfs.gemspec +2 -0
- data/lib/acfs/global.rb +10 -6
- data/lib/acfs/request.rb +4 -3
- data/lib/acfs/runner.rb +46 -8
- data/lib/acfs/telemetry.rb +19 -0
- data/lib/acfs/version.rb +1 -1
- data/lib/acfs.rb +4 -0
- data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec +1 -1
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.6.0/CHANGELOG.md +491 -0
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.6.0/README.md +92 -0
- data/vendor/bundle/ruby/3.4.0/gems/{json-2.9.1 → json-2.10.1}/README.md +75 -2
- data/vendor/bundle/ruby/3.4.0/gems/{json-2.9.1 → json-2.10.1}/json.gemspec +3 -4
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-api-1.4.0/CHANGELOG.md +188 -0
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-api-1.4.0/LICENSE +201 -0
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-api-1.4.0/README.md +69 -0
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-common-0.21.0/CHANGELOG.md +94 -0
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-common-0.21.0/LICENSE +201 -0
- data/vendor/bundle/ruby/3.4.0/gems/opentelemetry-common-0.21.0/README.md +62 -0
- data/vendor/bundle/ruby/3.4.0/gems/{rack-3.1.8 → rack-3.1.10}/CHANGELOG.md +14 -0
- data/vendor/bundle/ruby/3.4.0/gems/{rspec-core-3.13.2 → rspec-core-3.13.3}/Changelog.md +271 -261
- data/vendor/bundle/ruby/3.4.0/gems/{webmock-3.24.0 → webmock-3.25.0}/CHANGELOG.md +6 -0
- data/vendor/bundle/ruby/3.4.0/gems/{webmock-3.24.0 → webmock-3.25.0}/README.md +1 -0
- data/vendor/bundle/ruby/3.4.0/specifications/{diff-lcs-1.5.1.gemspec → diff-lcs-1.6.0.gemspec} +11 -10
- data/vendor/bundle/ruby/3.4.0/specifications/{i18n-1.14.6.gemspec → i18n-1.14.7.gemspec} +4 -5
- data/vendor/bundle/ruby/3.4.0/specifications/{json-2.9.1.gemspec → json-2.10.1.gemspec} +0 -0
- data/vendor/bundle/ruby/3.4.0/specifications/{logger-1.6.5.gemspec → logger-1.6.6.gemspec} +3 -3
- data/vendor/bundle/ruby/3.4.0/specifications/{nokogiri-1.18.1-x86_64-linux-gnu.gemspec → nokogiri-1.18.2-x86_64-linux-gnu.gemspec} +3 -3
- data/vendor/bundle/ruby/3.4.0/specifications/opentelemetry-api-1.4.0.gemspec +35 -0
- data/vendor/bundle/ruby/3.4.0/specifications/opentelemetry-common-0.21.0.gemspec +34 -0
- data/vendor/bundle/ruby/3.4.0/specifications/{rack-3.1.8.gemspec → rack-3.1.10.gemspec} +4 -4
- data/vendor/bundle/ruby/3.4.0/specifications/{rspec-core-3.13.2.gemspec → rspec-core-3.13.3.gemspec} +7 -15
- data/vendor/bundle/ruby/3.4.0/specifications/{webmock-3.24.0.gemspec → webmock-3.25.0.gemspec} +5 -5
- metadata +67 -30
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/License.md +0 -41
- data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/README.rdoc +0 -84
- /data/vendor/bundle/ruby/3.4.0/gems/{i18n-1.14.6 → i18n-1.14.7}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{i18n-1.14.6 → i18n-1.14.7}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{logger-1.6.5 → logger-1.6.6}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{logger-1.6.5 → logger-1.6.6}/logger.gemspec +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{nokogiri-1.18.1-x86_64-linux-gnu → nokogiri-1.18.2-x86_64-linux-gnu}/LICENSE-DEPENDENCIES.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{nokogiri-1.18.1-x86_64-linux-gnu → nokogiri-1.18.2-x86_64-linux-gnu}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{nokogiri-1.18.1-x86_64-linux-gnu → nokogiri-1.18.2-x86_64-linux-gnu}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.1.8 → rack-3.1.10}/MIT-LICENSE +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rack-3.1.8 → rack-3.1.10}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rspec-core-3.13.2 → rspec-core-3.13.3}/LICENSE.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{rspec-core-3.13.2 → rspec-core-3.13.3}/README.md +0 -0
- /data/vendor/bundle/ruby/3.4.0/gems/{webmock-3.24.0 → webmock-3.25.0}/LICENSE +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a8433e212c204d4d4cfac1240933f0db9205e1c7290dd8f22a3cf0f17f41ad2
|
4
|
+
data.tar.gz: e89a53d16da8d2899ec89bbca9d4cf818e820dc7bb7887a34314faa6eaa60ad1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a752de373a4d503da9de34886bb4d5e5988c0d04fd40afd95d3570d24f6ccc70136ef487491301d25f0b50120b7e81b38c2f79cf12492d016498c768ed7bb1dd
|
7
|
+
data.tar.gz: fa18f22c3cbb3dddf61d96e660a4c869cbe58efb991a6d2d4460c2b4a2a9388e77ad7f5b54210eb8829c6865d920e3e45ad34f09ece63ecbe0045f7a2d020a28
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/acfs.gemspec
CHANGED
@@ -32,6 +32,8 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency 'activemodel', '>= 7.0'
|
33
33
|
spec.add_dependency 'activesupport', '>= 7.0'
|
34
34
|
spec.add_dependency 'multi_json', '~> 1.0'
|
35
|
+
spec.add_dependency 'opentelemetry-api', '~> 1.0'
|
36
|
+
spec.add_dependency 'opentelemetry-common'
|
35
37
|
spec.add_dependency 'rack'
|
36
38
|
spec.add_dependency 'typhoeus', '~> 1.0'
|
37
39
|
end
|
data/lib/acfs/global.rb
CHANGED
@@ -28,9 +28,11 @@ module Acfs
|
|
28
28
|
# @return [undefined]
|
29
29
|
#
|
30
30
|
def run
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
Telemetry.in_span('acfs.run', attributes: {'code.stacktrace' => caller.join("\n")}) do
|
32
|
+
::ActiveSupport::Notifications.instrument 'acfs.before_run'
|
33
|
+
::ActiveSupport::Notifications.instrument 'acfs.run' do
|
34
|
+
runner.start
|
35
|
+
end
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
@@ -50,9 +52,11 @@ module Acfs
|
|
50
52
|
# Reset all queues, stubs and internal state.
|
51
53
|
#
|
52
54
|
def reset
|
53
|
-
|
54
|
-
|
55
|
-
|
55
|
+
Telemetry.in_span('acfs.reset') do
|
56
|
+
::ActiveSupport::Notifications.instrument 'acfs.reset' do
|
57
|
+
runner.clear
|
58
|
+
Acfs::Stub.clear
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
data/lib/acfs/request.rb
CHANGED
@@ -8,17 +8,18 @@ module Acfs
|
|
8
8
|
#
|
9
9
|
class Request
|
10
10
|
attr_accessor :body, :format
|
11
|
-
attr_reader :url, :headers, :params, :data, :method, :operation
|
11
|
+
attr_reader :uri, :url, :headers, :params, :data, :method, :operation
|
12
12
|
|
13
13
|
include Request::Callbacks
|
14
14
|
def initialize(url, **options, &block)
|
15
|
-
@
|
15
|
+
@uri = URI.parse(url.to_s).tap do |_url|
|
16
16
|
@data = options.delete(:data) || nil
|
17
17
|
@format = options.delete(:format) || :json
|
18
18
|
@headers = options.delete(:headers) || {}
|
19
19
|
@params = options.delete(:params) || {}
|
20
20
|
@method = options.delete(:method) || :get
|
21
|
-
end
|
21
|
+
end
|
22
|
+
@url = @uri.to_s
|
22
23
|
|
23
24
|
@operation = options.delete(:operation) || nil
|
24
25
|
|
data/lib/acfs/runner.rb
CHANGED
@@ -7,6 +7,8 @@ module Acfs
|
|
7
7
|
#
|
8
8
|
class Runner
|
9
9
|
include Service::Middleware
|
10
|
+
include Acfs::Telemetry
|
11
|
+
|
10
12
|
attr_reader :adapter
|
11
13
|
|
12
14
|
def initialize(adapter)
|
@@ -25,8 +27,10 @@ module Acfs
|
|
25
27
|
# Run operation right now skipping queue.
|
26
28
|
#
|
27
29
|
def run(operation)
|
28
|
-
|
29
|
-
|
30
|
+
tracer.in_span('acfs.runner.sync_run') do
|
31
|
+
::ActiveSupport::Notifications.instrument('acfs.runner.sync_run', operation: operation) do
|
32
|
+
operation_request(operation) {|req| adapter.run req }
|
33
|
+
end
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
@@ -39,11 +43,13 @@ module Acfs
|
|
39
43
|
# Enqueue operation to be run later.
|
40
44
|
#
|
41
45
|
def enqueue(operation)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
tracer.in_span('acfs.runner.enqueue') do
|
47
|
+
::ActiveSupport::Notifications.instrument('acfs.runner.enqueue', operation: operation) do
|
48
|
+
if running?
|
49
|
+
operation_request(operation) {|req| adapter.queue req }
|
50
|
+
else
|
51
|
+
queue << operation
|
52
|
+
end
|
47
53
|
end
|
48
54
|
end
|
49
55
|
end
|
@@ -93,10 +99,42 @@ module Acfs
|
|
93
99
|
req = operation.service.prepare(operation.request)
|
94
100
|
return unless req.is_a? Acfs::Request
|
95
101
|
|
96
|
-
req = prepare
|
102
|
+
req = prepare(req)
|
97
103
|
return unless req.is_a? Acfs::Request
|
98
104
|
|
99
105
|
yield req
|
100
106
|
end
|
107
|
+
|
108
|
+
def prepare(request)
|
109
|
+
method = request.method.to_s.upcase
|
110
|
+
template = request.operation.location&.raw_uri.to_s
|
111
|
+
|
112
|
+
name = "HTTP #{method}"
|
113
|
+
name = "#{method} #{template}" if template
|
114
|
+
|
115
|
+
attributes = {
|
116
|
+
'http.request.method' => method,
|
117
|
+
'server.address' => request.uri.host,
|
118
|
+
'server.port' => request.uri.port,
|
119
|
+
'url.full' => request.uri.to_s,
|
120
|
+
'url.scheme' => request.uri.scheme,
|
121
|
+
'url.template' => template,
|
122
|
+
}
|
123
|
+
|
124
|
+
span = tracer.start_span(name, attributes:, kind: :client)
|
125
|
+
OpenTelemetry::Trace.with_span(span) do
|
126
|
+
OpenTelemetry.propagation.inject(request.headers)
|
127
|
+
|
128
|
+
request.on_complete do |response, nxt|
|
129
|
+
span.set_attribute('http.response.status_code', response.status_code)
|
130
|
+
span.status = OpenTelemetry::Trace::Status.error unless (100..399).cover?(response.status_code)
|
131
|
+
|
132
|
+
span.finish
|
133
|
+
nxt.call(response)
|
134
|
+
end
|
135
|
+
|
136
|
+
super
|
137
|
+
end
|
138
|
+
end
|
101
139
|
end
|
102
140
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Acfs
|
4
|
+
module Telemetry
|
5
|
+
class << self
|
6
|
+
delegate :in_span, :start_span, to: :tracer
|
7
|
+
|
8
|
+
def tracer
|
9
|
+
@tracer ||= OpenTelemetry.tracer_provider.tracer('acfs', Acfs::VERSION.to_s)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def tracer
|
16
|
+
Acfs::Telemetry.tracer
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/acfs/version.rb
CHANGED
data/lib/acfs.rb
CHANGED
@@ -7,12 +7,16 @@ require 'active_support/core_ext/string'
|
|
7
7
|
require 'active_support/core_ext/module'
|
8
8
|
require 'active_support/notifications'
|
9
9
|
|
10
|
+
require 'opentelemetry'
|
11
|
+
require 'opentelemetry/common'
|
12
|
+
|
10
13
|
module Acfs
|
11
14
|
extend ActiveSupport::Autoload
|
12
15
|
require 'acfs/version'
|
13
16
|
require 'acfs/errors'
|
14
17
|
require 'acfs/global'
|
15
18
|
require 'acfs/util'
|
19
|
+
require 'acfs/telemetry'
|
16
20
|
|
17
21
|
require 'acfs/collection'
|
18
22
|
require 'acfs/configuration'
|
data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.metadata = { "allowed_push_host" => ".", "rubygems_mfa_required" => "true" } if s.respond_to? :metadata=
|
10
10
|
s.require_paths = ["lib".freeze]
|
11
11
|
s.authors = ["Jan Graichen".freeze]
|
12
|
-
s.date = "2025-
|
12
|
+
s.date = "2025-02-14"
|
13
13
|
s.email = ["jgraichen@altimos.de".freeze]
|
14
14
|
s.files = ["LICENSE".freeze, "README.md".freeze, "default.yml".freeze]
|
15
15
|
s.homepage = "https://github.com/jgraichen/rubocop-config".freeze
|