telemetry-rust 6.10.0

Open Telemetry fox Axum and Tracing
Documentation
/// AWS SQS fluent builder instrumentation implementations
/// Generated by GitHub Copilot with human guidance
use super::{utils::*, *};
use crate::semconv;

// Message operations
impl<'a> AwsBuilderInstrument<'a> for SendMessageFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::send_message(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for SendMessageOutput {
    fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
        attributes![
            self.message_id()
                .as_attribute(semconv::MESSAGING_MESSAGE_ID),
        ]
    }
}
instrument_aws_operation!(aws_sdk_sqs::operation::send_message);

impl<'a> AwsBuilderInstrument<'a> for SendMessageBatchFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        let attributes = attributes![
            self.get_entries()
                .as_ref()
                .map(|entries| entries.len())
                .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
        ];
        SqsSpanBuilder::send_message_batch(queue_url).attributes(attributes)
    }
}
impl InstrumentedFluentBuilderOutput for SendMessageBatchOutput {
    fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
        attributes![
            self.failed()
                .len()
                .as_attribute("messaging.batch.message_count.failed"),
        ]
    }
}
instrument_aws_operation!(aws_sdk_sqs::operation::send_message_batch);

impl<'a> AwsBuilderInstrument<'a> for ReceiveMessageFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::receive_message(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for ReceiveMessageOutput {
    fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
        attributes![
            self.messages()
                .len()
                .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
        ]
    }
}
instrument_aws_operation!(aws_sdk_sqs::operation::receive_message);

impl<'a> AwsBuilderInstrument<'a> for DeleteMessageFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::delete_message(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for DeleteMessageOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::delete_message);

impl<'a> AwsBuilderInstrument<'a> for DeleteMessageBatchFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        let attributes = attributes![
            self.get_entries()
                .as_ref()
                .map(|entries| entries.len())
                .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
        ];
        SqsSpanBuilder::delete_message_batch(queue_url).attributes(attributes)
    }
}
impl InstrumentedFluentBuilderOutput for DeleteMessageBatchOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::delete_message_batch);

impl<'a> AwsBuilderInstrument<'a> for ChangeMessageVisibilityFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::change_message_visibility(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for ChangeMessageVisibilityOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::change_message_visibility);

impl<'a> AwsBuilderInstrument<'a> for ChangeMessageVisibilityBatchFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        let attributes = attributes![
            self.get_entries()
                .as_ref()
                .map(|entries| entries.len())
                .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
        ];
        SqsSpanBuilder::change_message_visibility_batch(queue_url).attributes(attributes)
    }
}
impl InstrumentedFluentBuilderOutput for ChangeMessageVisibilityBatchOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::change_message_visibility_batch);

// Queue management operations
impl<'a> AwsBuilderInstrument<'a> for CreateQueueFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_name = self.get_queue_name().clone().unwrap_or_default();
        SqsSpanBuilder::create_queue(queue_name)
    }
}
impl InstrumentedFluentBuilderOutput for CreateQueueOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::create_queue);

impl<'a> AwsBuilderInstrument<'a> for DeleteQueueFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::delete_queue(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for DeleteQueueOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::delete_queue);

impl<'a> AwsBuilderInstrument<'a> for GetQueueAttributesFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::get_queue_attributes(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for GetQueueAttributesOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::get_queue_attributes);

impl<'a> AwsBuilderInstrument<'a> for SetQueueAttributesFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::set_queue_attributes(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for SetQueueAttributesOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::set_queue_attributes);

impl<'a> AwsBuilderInstrument<'a> for PurgeQueueFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::purge_queue(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for PurgeQueueOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::purge_queue);

impl<'a> AwsBuilderInstrument<'a> for AddPermissionFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::add_permission(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for AddPermissionOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::add_permission);

impl<'a> AwsBuilderInstrument<'a> for RemovePermissionFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::remove_permission(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for RemovePermissionOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::remove_permission);

// Global operations
impl<'a> AwsBuilderInstrument<'a> for GetQueueUrlFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_name = self.get_queue_name().clone().unwrap_or_default();
        let attributes = attributes![
            self.get_queue_owner_aws_account_id()
                .as_attribute(semconv::CLOUD_ACCOUNT_ID)
        ];
        SqsSpanBuilder::get_queue_url(queue_name).attributes(attributes)
    }
}
impl InstrumentedFluentBuilderOutput for GetQueueUrlOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::get_queue_url);

impl<'a> AwsBuilderInstrument<'a> for ListQueuesFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        SqsSpanBuilder::list_queues()
    }
}
impl InstrumentedFluentBuilderOutput for ListQueuesOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::list_queues);

impl<'a> AwsBuilderInstrument<'a> for ListQueueTagsFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::list_queue_tags(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for ListQueueTagsOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::list_queue_tags);

impl<'a> AwsBuilderInstrument<'a> for TagQueueFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::tag_queue(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for TagQueueOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::tag_queue);

impl<'a> AwsBuilderInstrument<'a> for UntagQueueFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::untag_queue(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for UntagQueueOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::untag_queue);

impl<'a> AwsBuilderInstrument<'a> for ListDeadLetterSourceQueuesFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        let queue_url = self.get_queue_url().clone().unwrap_or_default();
        SqsSpanBuilder::list_dead_letter_source_queues(queue_url)
    }
}
impl InstrumentedFluentBuilderOutput for ListDeadLetterSourceQueuesOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::list_dead_letter_source_queues);

impl<'a> AwsBuilderInstrument<'a> for StartMessageMoveTaskFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        SqsSpanBuilder::start_message_move_task()
    }
}
impl InstrumentedFluentBuilderOutput for StartMessageMoveTaskOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::start_message_move_task);

impl<'a> AwsBuilderInstrument<'a> for CancelMessageMoveTaskFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        SqsSpanBuilder::cancel_message_move_task()
    }
}
impl InstrumentedFluentBuilderOutput for CancelMessageMoveTaskOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::cancel_message_move_task);

impl<'a> AwsBuilderInstrument<'a> for ListMessageMoveTasksFluentBuilder {
    fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
        SqsSpanBuilder::list_message_move_tasks()
    }
}
impl InstrumentedFluentBuilderOutput for ListMessageMoveTasksOutput {}
instrument_aws_operation!(aws_sdk_sqs::operation::list_message_move_tasks);