stack-service-base 0.0.7 → 0.0.9
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/lib/stack-service-base/open_telemetry.rb +2 -1
- data/lib/stack-service-base/rack_helpers.rb +6 -7
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5450eee19abf3aeffa5ab2ad3fed729f42c14ced177471940ce27cde61a59584
|
4
|
+
data.tar.gz: 3fe96d720e4037d1418f9a0775e715a6cb3ecc737613f87413e5f6e4516982cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01a6532aca09387fe4f5c696a93f587a16cff1ca650f4e862961570340bcbd57fe4a87a521a596312017514b64189d37eaf8386dd7722f041f8ae40de7d169bb
|
7
|
+
data.tar.gz: 73fbf5663328ef7963a073a14bdeaa78f0ed74753091182b5476f54a502d8bc4bf91a1d78a7e7d8593b27b38b01771dc94fe9bbe946a9d2572095344016f230c
|
@@ -21,7 +21,8 @@ if OTEL_ENABLED
|
|
21
21
|
require 'opentelemetry-api'
|
22
22
|
end
|
23
23
|
|
24
|
-
if defined? Async
|
24
|
+
if defined? Async and OTEL_ENABLED
|
25
|
+
require 'async'
|
25
26
|
module AsyncTaskOTELPatch
|
26
27
|
def initialize(parent = Task.current?, finished: nil, **options, &block)
|
27
28
|
ctx_ = OpenTelemetry::Context.current
|
@@ -72,16 +72,15 @@ module RackHelpers
|
|
72
72
|
[status, headers, body]
|
73
73
|
end
|
74
74
|
|
75
|
+
# use RackHelpers::RequestsLimiter, limit: 1, path_regex: %r{^(?!.*healthcheck)}
|
75
76
|
Rack.define_middleware :RequestsLimiter do |env, app, opts|
|
77
|
+
@path_regex ||= opts[0][:path_regex] || %r{.*}
|
76
78
|
@sem ||= Async::Semaphore.new(opts[0][:limit] || 5 )
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
app.call(env)
|
83
|
-
}
|
84
|
-
end
|
80
|
+
next app.call(env) unless env['PATH_INFO'] =~ @path_regex
|
81
|
+
next [429, { 'Content-Type' => 'text/plain', 'Retry-After' => '1' }, ['Too Many Requests']] if @sem.blocking?
|
82
|
+
|
83
|
+
@sem.acquire { app.call env }
|
85
84
|
end
|
86
85
|
|
87
86
|
# PATCH: for the Grape
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack-service-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prometheus-client
|