Sha256: 739a686a824952a634cca0b2bd5f02a7d7baf372478ff5d257fefcc9f61ca158
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module ElasticAPM module Normalizers module Grape # @api private class EndpointRun < Normalizer register 'endpoint_run.grape' TYPE = 'app' SUBTYPE = 'resource' FRAMEWORK_NAME = 'Grape' def normalize(transaction, _name, payload) transaction.name = endpoint(payload[:env]) if transaction_from_host_app?(transaction) transaction.context.set_service( framework_name: FRAMEWORK_NAME, framework_version: ::Grape::VERSION ) end [transaction.name, TYPE, SUBTYPE, nil, nil] end def backtrace(payload) source_location = payload[:endpoint].source.source_location ["#{source_location[0]}:#{source_location[1]}"] end private def transaction_from_host_app?(transaction) transaction.config.framework_name != FRAMEWORK_NAME end def endpoint(env) route_name = env['api.endpoint']&.routes&.first&.pattern&.origin || env['REQUEST_PATH'] [env['REQUEST_METHOD'], route_name].join(' ') end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
elastic-apm-3.2.0 | lib/elastic_apm/normalizers/grape/endpoint_run.rb |