Sha256: 2c677a666ee6ea036bf93ace097a15c0c38c9b4e84cfa2a9fabadd38a3860453
Contents?: true
Size: 946 Bytes
Versions: 37
Compression:
Stored size: 946 Bytes
Contents
# frozen_string_literal: true module GraphQL module Tracing module PrometheusTrace class GraphQLCollector < ::PrometheusExporter::Server::TypeCollector def initialize @graphql_gauge = PrometheusExporter::Metric::Base.default_aggregation.new( 'graphql_duration_seconds', 'Time spent in GraphQL operations, in seconds' ) end def type 'graphql' end 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 def metrics [@graphql_gauge] end end end # Backwards-compat: PrometheusTracing::GraphQLCollector = PrometheusTrace::GraphQLCollector end end
Version data entries
37 entries across 37 versions & 1 rubygems