telemetry_rust/middleware/aws/instrumentation/fluent_builder/
sqs.rs1use super::{utils::*, *};
4use crate::semconv;
5
6impl<'a> AwsBuilderInstrument<'a> for SendMessageFluentBuilder {
8 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
9 let queue_url = self.get_queue_url().clone().unwrap_or_default();
10 SqsSpanBuilder::send_message(queue_url)
11 }
12}
13impl InstrumentedFluentBuilderOutput for SendMessageOutput {
14 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
15 attributes![
16 self.message_id()
17 .as_attribute(semconv::MESSAGING_MESSAGE_ID),
18 ]
19 }
20}
21instrument_aws_operation!(aws_sdk_sqs::operation::send_message);
22
23impl<'a> AwsBuilderInstrument<'a> for SendMessageBatchFluentBuilder {
24 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
25 let queue_url = self.get_queue_url().clone().unwrap_or_default();
26 let attributes = attributes![
27 self.get_entries()
28 .as_ref()
29 .map(|entries| entries.len())
30 .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
31 ];
32 SqsSpanBuilder::send_message_batch(queue_url).attributes(attributes)
33 }
34}
35impl InstrumentedFluentBuilderOutput for SendMessageBatchOutput {
36 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
37 attributes![
38 self.failed()
39 .len()
40 .as_attribute("messaging.batch.message_count.failed"),
41 ]
42 }
43}
44instrument_aws_operation!(aws_sdk_sqs::operation::send_message_batch);
45
46impl<'a> AwsBuilderInstrument<'a> for ReceiveMessageFluentBuilder {
47 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
48 let queue_url = self.get_queue_url().clone().unwrap_or_default();
49 SqsSpanBuilder::receive_message(queue_url)
50 }
51}
52impl InstrumentedFluentBuilderOutput for ReceiveMessageOutput {
53 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
54 attributes![
55 self.messages()
56 .len()
57 .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
58 ]
59 }
60}
61instrument_aws_operation!(aws_sdk_sqs::operation::receive_message);
62
63impl<'a> AwsBuilderInstrument<'a> for DeleteMessageFluentBuilder {
64 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
65 let queue_url = self.get_queue_url().clone().unwrap_or_default();
66 SqsSpanBuilder::delete_message(queue_url)
67 }
68}
69impl InstrumentedFluentBuilderOutput for DeleteMessageOutput {}
70instrument_aws_operation!(aws_sdk_sqs::operation::delete_message);
71
72impl<'a> AwsBuilderInstrument<'a> for DeleteMessageBatchFluentBuilder {
73 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
74 let queue_url = self.get_queue_url().clone().unwrap_or_default();
75 let attributes = attributes![
76 self.get_entries()
77 .as_ref()
78 .map(|entries| entries.len())
79 .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
80 ];
81 SqsSpanBuilder::delete_message_batch(queue_url).attributes(attributes)
82 }
83}
84impl InstrumentedFluentBuilderOutput for DeleteMessageBatchOutput {}
85instrument_aws_operation!(aws_sdk_sqs::operation::delete_message_batch);
86
87impl<'a> AwsBuilderInstrument<'a> for ChangeMessageVisibilityFluentBuilder {
88 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
89 let queue_url = self.get_queue_url().clone().unwrap_or_default();
90 SqsSpanBuilder::change_message_visibility(queue_url)
91 }
92}
93impl InstrumentedFluentBuilderOutput for ChangeMessageVisibilityOutput {}
94instrument_aws_operation!(aws_sdk_sqs::operation::change_message_visibility);
95
96impl<'a> AwsBuilderInstrument<'a> for ChangeMessageVisibilityBatchFluentBuilder {
97 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
98 let queue_url = self.get_queue_url().clone().unwrap_or_default();
99 let attributes = attributes![
100 self.get_entries()
101 .as_ref()
102 .map(|entries| entries.len())
103 .as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
104 ];
105 SqsSpanBuilder::change_message_visibility_batch(queue_url).attributes(attributes)
106 }
107}
108impl InstrumentedFluentBuilderOutput for ChangeMessageVisibilityBatchOutput {}
109instrument_aws_operation!(aws_sdk_sqs::operation::change_message_visibility_batch);
110
111impl<'a> AwsBuilderInstrument<'a> for CreateQueueFluentBuilder {
113 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
114 let queue_name = self.get_queue_name().clone().unwrap_or_default();
115 SqsSpanBuilder::create_queue(queue_name)
116 }
117}
118impl InstrumentedFluentBuilderOutput for CreateQueueOutput {}
119instrument_aws_operation!(aws_sdk_sqs::operation::create_queue);
120
121impl<'a> AwsBuilderInstrument<'a> for DeleteQueueFluentBuilder {
122 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
123 let queue_url = self.get_queue_url().clone().unwrap_or_default();
124 SqsSpanBuilder::delete_queue(queue_url)
125 }
126}
127impl InstrumentedFluentBuilderOutput for DeleteQueueOutput {}
128instrument_aws_operation!(aws_sdk_sqs::operation::delete_queue);
129
130impl<'a> AwsBuilderInstrument<'a> for GetQueueAttributesFluentBuilder {
131 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
132 let queue_url = self.get_queue_url().clone().unwrap_or_default();
133 SqsSpanBuilder::get_queue_attributes(queue_url)
134 }
135}
136impl InstrumentedFluentBuilderOutput for GetQueueAttributesOutput {}
137instrument_aws_operation!(aws_sdk_sqs::operation::get_queue_attributes);
138
139impl<'a> AwsBuilderInstrument<'a> for SetQueueAttributesFluentBuilder {
140 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
141 let queue_url = self.get_queue_url().clone().unwrap_or_default();
142 SqsSpanBuilder::set_queue_attributes(queue_url)
143 }
144}
145impl InstrumentedFluentBuilderOutput for SetQueueAttributesOutput {}
146instrument_aws_operation!(aws_sdk_sqs::operation::set_queue_attributes);
147
148impl<'a> AwsBuilderInstrument<'a> for PurgeQueueFluentBuilder {
149 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
150 let queue_url = self.get_queue_url().clone().unwrap_or_default();
151 SqsSpanBuilder::purge_queue(queue_url)
152 }
153}
154impl InstrumentedFluentBuilderOutput for PurgeQueueOutput {}
155instrument_aws_operation!(aws_sdk_sqs::operation::purge_queue);
156
157impl<'a> AwsBuilderInstrument<'a> for AddPermissionFluentBuilder {
158 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
159 let queue_url = self.get_queue_url().clone().unwrap_or_default();
160 SqsSpanBuilder::add_permission(queue_url)
161 }
162}
163impl InstrumentedFluentBuilderOutput for AddPermissionOutput {}
164instrument_aws_operation!(aws_sdk_sqs::operation::add_permission);
165
166impl<'a> AwsBuilderInstrument<'a> for RemovePermissionFluentBuilder {
167 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
168 let queue_url = self.get_queue_url().clone().unwrap_or_default();
169 SqsSpanBuilder::remove_permission(queue_url)
170 }
171}
172impl InstrumentedFluentBuilderOutput for RemovePermissionOutput {}
173instrument_aws_operation!(aws_sdk_sqs::operation::remove_permission);
174
175impl<'a> AwsBuilderInstrument<'a> for GetQueueUrlFluentBuilder {
177 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
178 let queue_name = self.get_queue_name().clone().unwrap_or_default();
179 let attributes = attributes![
180 self.get_queue_owner_aws_account_id()
181 .as_attribute(semconv::CLOUD_ACCOUNT_ID)
182 ];
183 SqsSpanBuilder::get_queue_url(queue_name).attributes(attributes)
184 }
185}
186impl InstrumentedFluentBuilderOutput for GetQueueUrlOutput {}
187instrument_aws_operation!(aws_sdk_sqs::operation::get_queue_url);
188
189impl<'a> AwsBuilderInstrument<'a> for ListQueuesFluentBuilder {
190 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
191 SqsSpanBuilder::list_queues()
192 }
193}
194impl InstrumentedFluentBuilderOutput for ListQueuesOutput {}
195instrument_aws_operation!(aws_sdk_sqs::operation::list_queues);
196
197impl<'a> AwsBuilderInstrument<'a> for ListQueueTagsFluentBuilder {
198 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
199 let queue_url = self.get_queue_url().clone().unwrap_or_default();
200 SqsSpanBuilder::list_queue_tags(queue_url)
201 }
202}
203impl InstrumentedFluentBuilderOutput for ListQueueTagsOutput {}
204instrument_aws_operation!(aws_sdk_sqs::operation::list_queue_tags);
205
206impl<'a> AwsBuilderInstrument<'a> for TagQueueFluentBuilder {
207 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
208 let queue_url = self.get_queue_url().clone().unwrap_or_default();
209 SqsSpanBuilder::tag_queue(queue_url)
210 }
211}
212impl InstrumentedFluentBuilderOutput for TagQueueOutput {}
213instrument_aws_operation!(aws_sdk_sqs::operation::tag_queue);
214
215impl<'a> AwsBuilderInstrument<'a> for UntagQueueFluentBuilder {
216 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
217 let queue_url = self.get_queue_url().clone().unwrap_or_default();
218 SqsSpanBuilder::untag_queue(queue_url)
219 }
220}
221impl InstrumentedFluentBuilderOutput for UntagQueueOutput {}
222instrument_aws_operation!(aws_sdk_sqs::operation::untag_queue);
223
224impl<'a> AwsBuilderInstrument<'a> for ListDeadLetterSourceQueuesFluentBuilder {
225 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
226 let queue_url = self.get_queue_url().clone().unwrap_or_default();
227 SqsSpanBuilder::list_dead_letter_source_queues(queue_url)
228 }
229}
230impl InstrumentedFluentBuilderOutput for ListDeadLetterSourceQueuesOutput {}
231instrument_aws_operation!(aws_sdk_sqs::operation::list_dead_letter_source_queues);
232
233impl<'a> AwsBuilderInstrument<'a> for StartMessageMoveTaskFluentBuilder {
234 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
235 SqsSpanBuilder::start_message_move_task()
236 }
237}
238impl InstrumentedFluentBuilderOutput for StartMessageMoveTaskOutput {}
239instrument_aws_operation!(aws_sdk_sqs::operation::start_message_move_task);
240
241impl<'a> AwsBuilderInstrument<'a> for CancelMessageMoveTaskFluentBuilder {
242 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
243 SqsSpanBuilder::cancel_message_move_task()
244 }
245}
246impl InstrumentedFluentBuilderOutput for CancelMessageMoveTaskOutput {}
247instrument_aws_operation!(aws_sdk_sqs::operation::cancel_message_move_task);
248
249impl<'a> AwsBuilderInstrument<'a> for ListMessageMoveTasksFluentBuilder {
250 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
251 SqsSpanBuilder::list_message_move_tasks()
252 }
253}
254impl InstrumentedFluentBuilderOutput for ListMessageMoveTasksOutput {}
255instrument_aws_operation!(aws_sdk_sqs::operation::list_message_move_tasks);