Module: Puma::Plugin::TelemetryToo::PluginInstanceMethods

Defined in:
lib/puma/plugin/telemetry_too.rb

Overview

Contents of actual Puma Plugin

Instance Method Summary collapse

Instance Method Details

#call(telemetry) ⇒ Object



97
98
99
100
101
# File 'lib/puma/plugin/telemetry_too.rb', line 97

def call(telemetry)
  Puma::Plugin::TelemetryToo.config.targets.each do |target|
    target.call(telemetry)
  end
end

#run!Object



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/puma/plugin/telemetry_too.rb', line 83

def run!
  loop do
    log_writer.debug 'plugin=telemetry msg="publish"'

    call(Puma::Plugin::TelemetryToo.build(@launcher))
  rescue Errno::EPIPE
    # Occurs when trying to output to STDOUT while puma is shutting down
  rescue StandardError => e
    log_writer.error "plugin=telemetry err=#{e.class} msg=#{e.message.inspect}"
  ensure
    sleep Puma::Plugin::TelemetryToo.config.frequency
  end
end

#start(launcher) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/puma/plugin/telemetry_too.rb', line 67

def start(launcher)
  @launcher = launcher

  unless Puma::Plugin::TelemetryToo.config.enabled?
    log_writer.log 'plugin=telemetry msg="disabled, exiting..."'
    return
  end

  log_writer.log 'plugin=telemetry msg="enabled, setting up runner..."'

  in_background do
    sleep Puma::Plugin::TelemetryToo.config.initial_delay
    run!
  end
end