Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions lib/rage/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1049,6 +1049,14 @@ def parse_disk_backend_options(opts)
# @see Rage::Configuration::MiddlewareRegistry
# @see Rage::Telemetry
class Telemetry < MiddlewareRegistry
attr_accessor :gc_pressure_monitoring_enabled

# @private
def initialize
@gc_pressure_monitoring_enabled = false
super
end

# @private
# @return [Hash{String => Array<Rage::Telemetry::HandlerRef>}] a map of span IDs to handler references
def handlers_map
Expand Down
10 changes: 10 additions & 0 deletions lib/rage/telemetry/health_checks/gc_pressure_checker.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# frozen_string_literal: true

module Rage::Telemetry
module HealthChecks
class GCPressureChecker
def gc_stats
end
end
end
end
17 changes: 17 additions & 0 deletions lib/rage/telemetry/health_checks/health_checks.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# frozen_string_literal: true

require_relative "gc_pressure_checker"

module Rage::Telemetry::HealthChecks
def self.__initialize
return unless Rage.config.telemetry.gc_pressure_monitoring_enabled

Iodine.run_every(1000) { GCPressureChecker.new.gc_stats }
end
end

if Iodine.running?
Rage::Telemetry::HealthChecks.__initialize
else
Iodine.on_state(:on_start) { Rage::Telemetry::HealthChecks.__initialize }
end
1 change: 1 addition & 0 deletions lib/rage/telemetry/telemetry.rb
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,5 @@ def success?

require_relative "tracer"
require_relative "handler"
require_relative "health_checks/health_checks"
Dir["#{__dir__}/spans/*.rb"].each { |span| require_relative span }
Loading