Mastodon/lib/mastodon/middleware/prometheus_queue_time.rb
2025-03-14 13:52:04 +00:00

27 lines
606 B
Ruby

# frozen_string_literal: true
module Mastodon
module Middleware
class PrometheusQueueTime < ::PrometheusExporter::Middleware
# Overwrite to only collect the queue time metric
def call(env)
queue_time = measure_queue_time(env)
result = @app.call(env)
result
ensure
obj = {
type: 'web',
queue_time: queue_time,
default_labels: default_labels(env, result),
}
labels = custom_labels(env)
obj = obj.merge(custom_labels: labels) if labels
@client.send_json(obj)
end
end
end
end