Module: Logister::ContextStore
- Defined in:
- lib/logister/context_store.rb
Constant Summary collapse
- REQUEST_SCOPE_KEY =
:__logister_request_scope- MAX_REQUEST_SUMMARIES =
200
Class Method Summary collapse
- .add_breadcrumb(category:, message:, data: {}, level: "info", timestamp: Time.now.utc.iso8601) ⇒ Object
- .add_dependency(name:, host: nil, method: nil, status: nil, duration_ms: nil, kind: nil, data: {}) ⇒ Object
- .add_manual_breadcrumb(**kwargs) ⇒ Object
- .add_manual_dependency(**kwargs) ⇒ Object
- .breadcrumbs ⇒ Object
- .clear_request_summary(request_id) ⇒ Object
- .dependencies ⇒ Object
- .request_summary(request_id) ⇒ Object
- .reset_request_scope! ⇒ Object
- .store_request_summary(request_id, summary) ⇒ Object
Class Method Details
.add_breadcrumb(category:, message:, data: {}, level: "info", timestamp: Time.now.utc.iso8601) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/logister/context_store.rb', line 15 def (category:, message:, data: {}, level: "info", timestamp: Time.now.utc.iso8601) scope = request_scope = scope[:breadcrumbs] << { category: category.to_s, message: .to_s, level: level.to_s, timestamp: , data: sanitize_hash(data) }.compact trim_collection!(, ) end |
.add_dependency(name:, host: nil, method: nil, status: nil, duration_ms: nil, kind: nil, data: {}) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/logister/context_store.rb', line 32 def add_dependency(name:, host: nil, method: nil, status: nil, duration_ms: nil, kind: nil, data: {}) scope = request_scope deps = scope[:dependencies] deps << sanitize_hash( { name: name.to_s.presence, host: host.to_s.presence, method: method.to_s.presence, status: status, durationMs: duration_ms && duration_ms.to_f.round(2), kind: kind.to_s.presence, data: sanitize_hash(data) }.compact ) trim_collection!(deps, max_dependencies) end |
.add_manual_breadcrumb(**kwargs) ⇒ Object
75 76 77 |
# File 'lib/logister/context_store.rb', line 75 def (**kwargs) (**kwargs) end |
.add_manual_dependency(**kwargs) ⇒ Object
71 72 73 |
# File 'lib/logister/context_store.rb', line 71 def add_manual_dependency(**kwargs) add_dependency(**kwargs) end |
.breadcrumbs ⇒ Object
28 29 30 |
# File 'lib/logister/context_store.rb', line 28 def request_scope[:breadcrumbs].dup end |
.clear_request_summary(request_id) ⇒ Object
67 68 69 |
# File 'lib/logister/context_store.rb', line 67 def clear_request_summary(request_id) request_summaries.delete(request_id.to_s) end |
.dependencies ⇒ Object
49 50 51 |
# File 'lib/logister/context_store.rb', line 49 def dependencies request_scope[:dependencies].dup end |
.request_summary(request_id) ⇒ Object
61 62 63 64 65 |
# File 'lib/logister/context_store.rb', line 61 def request_summary(request_id) return nil if request_id.to_s.empty? request_summaries[request_id.to_s] end |
.reset_request_scope! ⇒ Object
8 9 10 11 12 13 |
# File 'lib/logister/context_store.rb', line 8 def reset_request_scope! Thread.current[REQUEST_SCOPE_KEY] = { breadcrumbs: [], dependencies: [] } end |
.store_request_summary(request_id, summary) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/logister/context_store.rb', line 53 def store_request_summary(request_id, summary) return if request_id.to_s.empty? cache = request_summaries cache[request_id.to_s] = sanitize_hash(summary) trim_hash!(cache, MAX_REQUEST_SUMMARIES) end |