class GraphQL::Tracing::PrometheusTrace::PrometheusMonitor
Public Instance Methods
Source
# File lib/graphql/tracing/prometheus_trace.rb, line 67 def active?(keyword) @trace.prometheus_keys_whitelist.include?(keyword) end
Source
# File lib/graphql/tracing/prometheus_trace.rb, line 71 def gettime ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) end
# File lib/graphql/tracing/prometheus_trace.rb, line 55 def instrument(keyword, object) if active?(keyword) start = gettime result = yield duration = gettime - start send_json(duration, keyword, object) result else yield end end
# File lib/graphql/tracing/prometheus_trace.rb, line 75 def send_json(duration, keyword, object) event_name = name_for(keyword, object) @trace.prometheus_client.send_json( type: @trace.prometheus_collector_type, duration: duration, platform_key: event_name, key: keyword ) end