Module: RosettAi::Telemetry
- Defined in:
- lib/rosett_ai/telemetry.rb,
lib/rosett_ai/telemetry/provider.rb,
lib/rosett_ai/telemetry/reporter.rb,
lib/rosett_ai/telemetry/log_rotator.rb,
lib/rosett_ai/telemetry/json_lines_writer.rb
Overview
Opt-in structured telemetry for CLI observability.
Enabled via +RAI_TELEMETRY=1+. Captures JSON Lines events for command timing, errors, and diagnostics. All data stays local.
Defined Under Namespace
Modules: Provider Classes: JsonLinesWriter, LogRotator, Reporter
Constant Summary collapse
- LEVELS =
['debug', 'info', 'warn', 'error'].freeze
Class Method Summary collapse
-
.enabled? ⇒ Boolean
True if telemetry is enabled via environment variable.
-
.level ⇒ String
Configured telemetry level (default: info).
-
.level_enabled?(level) ⇒ Boolean
True if the level meets the configured threshold.
-
.reporter ⇒ RosettAi::Telemetry::Reporter
Singleton reporter instance.
-
.reset!
Reset singleton state.
Class Method Details
.enabled? ⇒ Boolean
Returns true if telemetry is enabled via environment variable.
19 20 21 |
# File 'lib/rosett_ai/telemetry.rb', line 19 def self.enabled? ENV['RAI_TELEMETRY'] == '1' end |
.level ⇒ String
Returns configured telemetry level (default: info).
29 30 31 32 |
# File 'lib/rosett_ai/telemetry.rb', line 29 def self.level raw = ENV.fetch('RAI_TELEMETRY_LEVEL', 'info').downcase LEVELS.include?(raw) ? raw : 'info' end |
.level_enabled?(level) ⇒ Boolean
Returns true if the level meets the configured threshold.
36 37 38 |
# File 'lib/rosett_ai/telemetry.rb', line 36 def self.level_enabled?(level) LEVELS.index(level.to_s) >= LEVELS.index(self.level) end |
.reporter ⇒ RosettAi::Telemetry::Reporter
Returns singleton reporter instance.
24 25 26 |
# File 'lib/rosett_ai/telemetry.rb', line 24 def self.reporter Reporter.instance end |