Class: GraphQL::Tracing::PrometheusTracing::GraphQLCollector
- Inherits:
-
PrometheusExporter::Server::TypeCollector
- Object
- PrometheusExporter::Server::TypeCollector
- GraphQL::Tracing::PrometheusTracing::GraphQLCollector
- Defined in:
- lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
Instance Method Summary collapse
- #collect(object) ⇒ Object
-
#initialize ⇒ GraphQLCollector
constructor
A new instance of GraphQLCollector.
- #metrics ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize ⇒ GraphQLCollector
Returns a new instance of GraphQLCollector.
7 8 9 10 11 12 |
# File 'lib/graphql/tracing/prometheus_tracing/graphql_collector.rb', line 7 def initialize @graphql_gauge = PrometheusExporter::Metric::Base.default_aggregation.new( 'graphql_duration_seconds', 'Time spent in GraphQL operations, in seconds' ) end |
Instance Method Details
#collect(object) ⇒ Object
18 19 20 21 22 23 24 |
# 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 ⇒ Object
26 27 28 |
# File 'lib/graphql/tracing/prometheus_tracing/graphql_collector.rb', line 26 def metrics [@graphql_gauge] end |
#type ⇒ Object
14 15 16 |
# File 'lib/graphql/tracing/prometheus_tracing/graphql_collector.rb', line 14 def type 'graphql' end |