Sha256: d7c1a0e760eed0104696e33a6c425d39a8a2815e651bb8d6dcbf218dc7bba07b
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
# frozen_string_literal: true # Copyright The OpenTelemetry Authors # # SPDX-License-Identifier: Apache-2.0 module OpenTelemetry module Instrumentation module AwsSdk # MessagingHelper class provides methods for calculating messaging span attributes class MessagingHelper class << self def queue_name(context) # rubocop:disable Metrics/CyclomaticComplexity topic_arn = context.params[:topic_arn] target_arn = context.params[:target_arn] phone_number = context.params[:phone_number] queue_url = context.params[:queue_url] if topic_arn || target_arn arn = topic_arn || target_arn begin return arn.split(':')[-1] rescue StandardError return arn end end return 'phone_number' if phone_number return queue_url.split('/')[-1] if queue_url 'unknown' end def apply_sqs_attributes(attributes, context, client_method) attributes[SemanticConventions::Trace::MESSAGING_SYSTEM] = 'aws.sqs' attributes[SemanticConventions::Trace::MESSAGING_DESTINATION_KIND] = 'queue' attributes[SemanticConventions::Trace::MESSAGING_DESTINATION] = queue_name(context) attributes[SemanticConventions::Trace::MESSAGING_URL] = context.params[:queue_url] attributes[SemanticConventions::Trace::MESSAGING_OPERATION] = 'receive' if client_method == 'SQS.ReceiveMessage' end def apply_sns_attributes(attributes, context, client_method) attributes[SemanticConventions::Trace::MESSAGING_SYSTEM] = 'aws.sns' return unless client_method == 'SNS.Publish' attributes[SemanticConventions::Trace::MESSAGING_DESTINATION_KIND] = 'topic' attributes[SemanticConventions::Trace::MESSAGING_DESTINATION] = queue_name(context) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aspecto-opentelemetry-instrumentation-aws_sdk-0.1.7 | lib/opentelemetry/instrumentation/aws_sdk/messaging_helper.rb |