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
488 B
25 lines
488 B
|
2 months ago
|
# 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: {},
|
||
|
|
}
|
||
|
|
|
||
|
|
@client.send_json(obj)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|