Class: Gritz::Context

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

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

Returns:

  • (Boolean)


37
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/context.rb', line 37

def cancelled? = call.cancelled?

#check_cancelled! ⇒ Object

Raises:



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