Module: Promenade
- Defined in:
- lib/promenade.rb,
lib/promenade/setup.rb,
lib/promenade/engine.rb,
lib/promenade/railtie.rb,
lib/promenade/version.rb,
lib/promenade/prometheus.rb,
lib/promenade/configuration.rb,
lib/promenade/kafka/subscriber.rb,
lib/promenade/karafka/subscriber.rb,
lib/promenade/waterdrop/subscriber.rb,
lib/promenade/kafka/fetcher_subscriber.rb,
lib/promenade/karafka/error_subscriber.rb,
lib/promenade/kafka/consumer_subscriber.rb,
lib/promenade/kafka/producer_subscriber.rb,
lib/promenade/waterdrop/error_subscriber.rb,
lib/promenade/client/rack/middleware_base.rb,
lib/promenade/client/rack/request_labeler.rb,
lib/promenade/kafka/connection_subscriber.rb,
lib/promenade/karafka/consumer_subscriber.rb,
lib/promenade/client/rack/singleton_caller.rb,
lib/promenade/waterdrop/message_subscriber.rb,
lib/promenade/client/rack/exception_handler.rb,
lib/promenade/karafka/statistics_subscriber.rb,
lib/promenade/client/rack/queue_time_duration.rb,
lib/promenade/kafka/async_producer_subscriber.rb,
lib/promenade/waterdrop/statistics_subscriber.rb,
lib/promenade/client/rack/http_request_duration_collector.rb,
lib/promenade/client/rack/http_request_queue_time_collector.rb,
lib/promenade/client/rack/request_controller_action_labeler.rb
Defined Under Namespace
Modules: Client, Kafka, Karafka, Prometheus, Waterdrop
Classes: Configuration, Engine, Railtie
Constant Summary
collapse
- VERSION =
"0.12.0".freeze
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
19
20
21
|
# File 'lib/promenade.rb', line 19
def configuration
@_configuration ||= Configuration.new
end
|
23
24
25
|
# File 'lib/promenade.rb', line 23
def configure
yield(configuration)
end
|
.multiprocess_files_dir ⇒ Object
18
19
20
|
# File 'lib/promenade/setup.rb', line 18
def multiprocess_files_dir
ENV.fetch("PROMETHEUS_MULTIPROC_DIR", root_dir.join("tmp", "promenade"))
end
|
.rails_defined? ⇒ Boolean
14
15
16
|
# File 'lib/promenade/setup.rb', line 14
def rails_defined?
defined?(Rails)
end
|
.root_dir ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/promenade/setup.rb', line 6
def root_dir
if rails_defined?
Rails.root
else
Pathname.new(ENV.fetch("RAILS_ROOT", Dir.pwd))
end
end
|
.setup ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/promenade/setup.rb', line 22
def setup
unless File.directory? multiprocess_files_dir
FileUtils.mkdir_p multiprocess_files_dir
end
ENV["prometheus_multiproc_dir"] = multiprocess_files_dir.to_s
require "prometheus/client"
require "prometheus/client/support/unicorn"
::Prometheus::Client.configure do |config|
config.multiprocess_files_dir = multiprocess_files_dir
config.pid_provider = ::Prometheus::Client::Support::Unicorn.method(:worker_pid_provider)
end
end
|