module NewRelic::Agent::Instrumentation::Firehose
Constants
- AWS_KINESIS_DELIVERY_STREAMS
- FIREHOSE
- INSTRUMENTED_METHODS
Public Instance Methods
Source
# File lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb, line 58 def get_arn(params) stream_arn = params&.dig(:delivery_stream_arn) return stream_arn if stream_arn stream_name = params&.dig(:delivery_stream_name) NewRelic::Agent::Aws.create_arn(FIREHOSE.downcase, "deliverystream/#{stream_name}", config&.region, nr_account_id) if stream_name end
Source
# File lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb, line 43 def get_segment_name(method_name, params) stream_name = params&.dig(:delivery_stream_name) return "#{FIREHOSE}/#{method_name}/#{stream_name}" if stream_name "#{FIREHOSE}/#{method_name}" rescue => e NewRelic::Agent.logger.warn("Failed to create segment name: #{e}") end
Source
# File lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb, line 25 def instrument_method_with_new_relic(method_name, *args) return yield unless NewRelic::Agent::Tracer.tracing_enabled? NewRelic::Agent.record_instrumentation_invocation(FIREHOSE) params = args[0] segment = NewRelic::Agent::Tracer.start_segment(name: get_segment_name(method_name, params)) arn = get_arn(params) if params segment&.add_agent_attribute('cloud.resource_id', arn) if arn begin NewRelic::Agent::Tracer.capture_segment_error(segment) { yield } ensure segment&.add_agent_attribute('cloud.platform', AWS_KINESIS_DELIVERY_STREAMS) segment&.finish end end
Source
# File lib/new_relic/agent/instrumentation/aws_sdk_firehose/instrumentation.rb, line 52 def nr_account_id return @nr_account_id if defined?(@nr_account_id) @nr_account_id = NewRelic::Agent::Aws.get_account_id(config) end