use super::{utils::*, *};
use crate::semconv;
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);
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);
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);