class GraphQL::Tracing::PrometheusTracing::GraphQLCollector

Public Class Methods

new() click to toggle source
# File lib/graphql/tracing/prometheus_tracing/graphql_collector.rb, line 7
def initialize
  @graphql_gauge = PrometheusExporter::Metric::Summary.new(
    'graphql_duration_seconds',
    'Time spent in GraphQL operations, in seconds'
  )
end

Public Instance Methods

collect(object) click to toggle source
# File lib/graphql/tracing/prometheus_tracing/graphql_collector.rb, line 18
def collect(object)
  default_labels = { key: object['key'], platform_key: object['platform_key'] }
  custom = object['custom_labels']
  labels = custom.nil? ? default_labels : default_labels.merge(custom)

  @graphql_gauge.observe object['duration'], labels
end
metrics() click to toggle source
# File lib/graphql/tracing/prometheus_tracing/graphql_collector.rb, line 26
def metrics
  [@graphql_gauge]
end
type() click to toggle source
# File lib/graphql/tracing/prometheus_tracing/graphql_collector.rb, line 14
def type
  'graphql'
end