Class: Gritz::Context
- Inherits:
-
Object
- Object
- Gritz::Context
- Defined in:
- /home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb
Overview
Request state inherited by child fibers and threads using Ruby Fiber storage.
Instance Attribute Summary collapse
- #bytes_in ⇒ Object readonly
- #bytes_out ⇒ Object readonly
- #call ⇒ Object readonly
- #log_format ⇒ Object readonly
- #log_redact ⇒ Object readonly
- #logger ⇒ Object readonly
- #metrics ⇒ Object readonly
- #request_id ⇒ Object
- #requests_count ⇒ Object readonly
- #responses_count ⇒ Object readonly
- #store ⇒ Object readonly
- #trace_context ⇒ Object
- #worker ⇒ Object readonly
Class Method Summary collapse
Instance Method Summary collapse
- #cancelled? ⇒ Boolean
- #check_cancelled! ⇒ Object
- #check_deadline! ⇒ Object
- #deadline ⇒ Object
-
#initialize(call:, logger:, metrics: nil, worker: nil, log_format: :json, log_redact: []) ⇒ Context
constructor
A new instance of Context.
- #metadata ⇒ Object
- #method ⇒ Object
- #peer ⇒ Object
- #peer_identity ⇒ Object
- #remaining ⇒ Object
Constructor Details
#initialize(call:, logger:, metrics: nil, worker: nil, log_format: :json, log_redact: []) ⇒ Context
Returns a new instance of Context.
11 12 13 14 15 16 17 18 19 20 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 11 def initialize(call:, logger:, metrics: nil, worker: nil, log_format: :json, log_redact: []) @call = call @logger = logger @store = {} @metrics = metrics @worker = worker @log_format = log_format @log_redact = log_redact.map(&:to_s) @requests_count = @responses_count = @bytes_in = @bytes_out = 0 end |
Instance Attribute Details
#bytes_in ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def bytes_in @bytes_in end |
#bytes_out ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def bytes_out @bytes_out end |
#call ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def call @call end |
#log_format ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def log_format @log_format end |
#log_redact ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def log_redact @log_redact end |
#logger ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def logger @logger end |
#metrics ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def metrics @metrics end |
#request_id ⇒ Object
9 10 11 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 9 def request_id @request_id end |
#requests_count ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def requests_count @requests_count end |
#responses_count ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def responses_count @responses_count end |
#store ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def store @store end |
#trace_context ⇒ Object
9 10 11 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 9 def trace_context @trace_context end |
#worker ⇒ Object (readonly)
7 8 9 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 7 def worker @worker end |
Class Method Details
.current ⇒ Object
22 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 22 def self.current = Fiber[:gritz_context] |
.with(context) ⇒ Object
24 25 26 27 28 29 30 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 24 def self.with(context) previous = current Fiber[:gritz_context] = context yield ensure Fiber[:gritz_context] = previous end |
Instance Method Details
#cancelled? ⇒ Boolean
37 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 37 def cancelled? = call.cancelled? |
#check_cancelled! ⇒ Object
44 45 46 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 44 def check_cancelled! raise Errors::Cancelled, "request cancelled" if cancelled? end |
#check_deadline! ⇒ Object
40 41 42 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 40 def check_deadline! raise Errors::DeadlineExceeded, "deadline exceeded" if deadline && remaining.zero? end |
#deadline ⇒ Object
33 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 33 def deadline = call.deadline |
#metadata ⇒ Object
32 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 32 def = call. |
#method ⇒ Object
34 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 34 def method = call.method_descriptor |
#peer ⇒ Object
35 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 35 def peer = call.peer |
#peer_identity ⇒ Object
36 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 36 def peer_identity = call.peer_identity |
#remaining ⇒ Object
38 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 38 def remaining = deadline && [deadline - Time.now, 0.0].max |