You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.2 KiB
25 lines
1.2 KiB
# frozen_string_literal: true |
|
|
|
if ENV['MASTODON_PROMETHEUS_EXPORTER_ENABLED'] == 'true' |
|
require 'prometheus_exporter' |
|
require 'prometheus_exporter/middleware' |
|
|
|
if ENV['MASTODON_PROMETHEUS_EXPORTER_LOCAL'] == 'true' |
|
require 'mastodon/prometheus_exporter/local_server' |
|
|
|
# bind is the address, on which the webserver will listen |
|
# port is the port that will provide the /metrics route |
|
Mastodon::PrometheusExporter::LocalServer.bind = ENV.fetch('MASTODON_PROMETHEUS_EXPORTER_HOST', 'localhost') |
|
Mastodon::PrometheusExporter::LocalServer.port = ENV.fetch('MASTODON_PROMETHEUS_EXPORTER_PORT', '9394').to_i |
|
end |
|
|
|
if ENV['MASTODON_PROMETHEUS_EXPORTER_WEB_DETAILED_METRICS'] == 'true' |
|
# Optional, as those metrics might generate extra overhead and be redundant with what OTEL provides |
|
# Per-action/controller request stats like HTTP status and timings |
|
Rails.application.middleware.unshift PrometheusExporter::Middleware |
|
else |
|
# Include stripped down version of PrometheusExporter::Middleware that only collects queue time |
|
require 'mastodon/middleware/prometheus_queue_time' |
|
Rails.application.middleware.unshift Mastodon::Middleware::PrometheusQueueTime, instrument: false |
|
end |
|
end
|
|
|