telemetry_rust/middleware/aws/instrumentation/fluent_builder/
secretsmanager.rs1use super::{utils::*, *};
3
4impl<'a> AwsBuilderInstrument<'a> for GetSecretValueFluentBuilder {
6 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
7 let secret_id = self.get_secret_id().clone().unwrap_or_default();
8 let attributes = attributes![
9 self.get_version_id()
10 .as_attribute("aws.secretsmanager.version_id"),
11 self.get_version_stage()
12 .as_attribute("aws.secretsmanager.version_stage"),
13 ];
14 SecretsManagerSpanBuilder::get_secret_value(secret_id).attributes(attributes)
15 }
16}
17impl InstrumentedFluentBuilderOutput for GetSecretValueOutput {
18 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
19 attributes![
20 self.version_id()
21 .as_attribute("aws.secretsmanager.version_id"),
22 self.version_stages()
23 .len()
24 .as_attribute("aws.secretsmanager.version_stages_count"),
25 ]
26 }
27}
28instrument_aws_operation!(aws_sdk_secretsmanager::operation::get_secret_value);
29
30impl<'a> AwsBuilderInstrument<'a> for PutSecretValueFluentBuilder {
31 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
32 let secret_id = self.get_secret_id().clone().unwrap_or_default();
33 SecretsManagerSpanBuilder::put_secret_value(secret_id)
34 }
35}
36impl InstrumentedFluentBuilderOutput for PutSecretValueOutput {
37 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
38 attributes![
39 self.version_id()
40 .as_attribute("aws.secretsmanager.version_id"),
41 self.version_stages()
42 .len()
43 .as_attribute("aws.secretsmanager.version_stages_count"),
44 ]
45 }
46}
47instrument_aws_operation!(aws_sdk_secretsmanager::operation::put_secret_value);
48
49impl<'a> AwsBuilderInstrument<'a> for CreateSecretFluentBuilder {
50 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
51 let name = self.get_name().clone().unwrap_or_default();
52 SecretsManagerSpanBuilder::create_secret(name)
53 }
54}
55impl InstrumentedFluentBuilderOutput for CreateSecretOutput {
56 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
57 attributes![
58 self.version_id()
59 .as_attribute("aws.secretsmanager.version_id"),
60 ]
61 }
62}
63instrument_aws_operation!(aws_sdk_secretsmanager::operation::create_secret);
64
65impl<'a> AwsBuilderInstrument<'a> for DeleteSecretFluentBuilder {
67 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
68 let secret_id = self.get_secret_id().clone().unwrap_or_default();
69 let attributes = attributes![
70 self.get_force_delete_without_recovery()
71 .as_attribute("aws.secretsmanager.force_delete"),
72 self.get_recovery_window_in_days()
73 .map(|d| KeyValue::new("aws.secretsmanager.recovery_window_days", d)),
74 ];
75 SecretsManagerSpanBuilder::delete_secret(secret_id).attributes(attributes)
76 }
77}
78impl InstrumentedFluentBuilderOutput for DeleteSecretOutput {}
79instrument_aws_operation!(aws_sdk_secretsmanager::operation::delete_secret);
80
81impl<'a> AwsBuilderInstrument<'a> for DescribeSecretFluentBuilder {
82 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
83 let secret_id = self.get_secret_id().clone().unwrap_or_default();
84 SecretsManagerSpanBuilder::describe_secret(secret_id)
85 }
86}
87impl InstrumentedFluentBuilderOutput for DescribeSecretOutput {
88 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
89 attributes![
90 self.rotation_enabled()
91 .as_attribute("aws.secretsmanager.rotation_enabled"),
92 ]
93 }
94}
95instrument_aws_operation!(aws_sdk_secretsmanager::operation::describe_secret);
96
97impl<'a> AwsBuilderInstrument<'a> for UpdateSecretFluentBuilder {
98 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
99 let secret_id = self.get_secret_id().clone().unwrap_or_default();
100 SecretsManagerSpanBuilder::update_secret(secret_id)
101 }
102}
103impl InstrumentedFluentBuilderOutput for UpdateSecretOutput {
104 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
105 attributes![
106 self.version_id()
107 .as_attribute("aws.secretsmanager.version_id"),
108 ]
109 }
110}
111instrument_aws_operation!(aws_sdk_secretsmanager::operation::update_secret);
112
113impl<'a> AwsBuilderInstrument<'a> for RestoreSecretFluentBuilder {
114 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
115 let secret_id = self.get_secret_id().clone().unwrap_or_default();
116 SecretsManagerSpanBuilder::restore_secret(secret_id)
117 }
118}
119impl InstrumentedFluentBuilderOutput for RestoreSecretOutput {}
120instrument_aws_operation!(aws_sdk_secretsmanager::operation::restore_secret);
121
122impl<'a> AwsBuilderInstrument<'a> for RotateSecretFluentBuilder {
124 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
125 let secret_id = self.get_secret_id().clone().unwrap_or_default();
126 SecretsManagerSpanBuilder::rotate_secret(secret_id)
127 }
128}
129impl InstrumentedFluentBuilderOutput for RotateSecretOutput {
130 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
131 attributes![
132 self.version_id()
133 .as_attribute("aws.secretsmanager.version_id"),
134 ]
135 }
136}
137instrument_aws_operation!(aws_sdk_secretsmanager::operation::rotate_secret);
138
139impl<'a> AwsBuilderInstrument<'a> for CancelRotateSecretFluentBuilder {
140 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
141 let secret_id = self.get_secret_id().clone().unwrap_or_default();
142 SecretsManagerSpanBuilder::cancel_rotate_secret(secret_id)
143 }
144}
145impl InstrumentedFluentBuilderOutput for CancelRotateSecretOutput {
146 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
147 attributes![
148 self.version_id()
149 .as_attribute("aws.secretsmanager.version_id"),
150 ]
151 }
152}
153instrument_aws_operation!(aws_sdk_secretsmanager::operation::cancel_rotate_secret);
154
155impl<'a> AwsBuilderInstrument<'a> for UpdateSecretVersionStageFluentBuilder {
157 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
158 let secret_id = self.get_secret_id().clone().unwrap_or_default();
159 let attributes = attributes![
160 self.get_version_stage()
161 .as_attribute("aws.secretsmanager.version_stage"),
162 self.get_move_to_version_id()
163 .as_attribute("aws.secretsmanager.move_to_version_id"),
164 self.get_remove_from_version_id()
165 .as_attribute("aws.secretsmanager.remove_from_version_id"),
166 ];
167 SecretsManagerSpanBuilder::update_secret_version_stage(secret_id)
168 .attributes(attributes)
169 }
170}
171impl InstrumentedFluentBuilderOutput for UpdateSecretVersionStageOutput {}
172instrument_aws_operation!(aws_sdk_secretsmanager::operation::update_secret_version_stage);
173
174impl<'a> AwsBuilderInstrument<'a> for ListSecretVersionIdsFluentBuilder {
175 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
176 let secret_id = self.get_secret_id().clone().unwrap_or_default();
177 let attributes = attributes![
178 self.get_max_results()
179 .map(|v| KeyValue::new("aws.secretsmanager.max_results", v as i64)),
180 ];
181 SecretsManagerSpanBuilder::list_secret_version_ids(secret_id)
182 .attributes(attributes)
183 }
184}
185impl InstrumentedFluentBuilderOutput for ListSecretVersionIdsOutput {
186 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
187 attributes![
188 self.versions()
189 .len()
190 .as_attribute("aws.secretsmanager.version_count"),
191 ]
192 }
193}
194instrument_aws_operation!(aws_sdk_secretsmanager::operation::list_secret_version_ids);
195
196impl<'a> AwsBuilderInstrument<'a> for TagResourceFluentBuilder {
198 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
199 let secret_id = self.get_secret_id().clone().unwrap_or_default();
200 SecretsManagerSpanBuilder::tag_resource(secret_id)
201 }
202}
203impl InstrumentedFluentBuilderOutput for TagResourceOutput {}
204instrument_aws_operation!(aws_sdk_secretsmanager::operation::tag_resource);
205
206impl<'a> AwsBuilderInstrument<'a> for UntagResourceFluentBuilder {
207 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
208 let secret_id = self.get_secret_id().clone().unwrap_or_default();
209 SecretsManagerSpanBuilder::untag_resource(secret_id)
210 }
211}
212impl InstrumentedFluentBuilderOutput for UntagResourceOutput {}
213instrument_aws_operation!(aws_sdk_secretsmanager::operation::untag_resource);
214
215impl<'a> AwsBuilderInstrument<'a> for GetResourcePolicyFluentBuilder {
217 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
218 let secret_id = self.get_secret_id().clone().unwrap_or_default();
219 SecretsManagerSpanBuilder::get_resource_policy(secret_id)
220 }
221}
222impl InstrumentedFluentBuilderOutput for GetResourcePolicyOutput {}
223instrument_aws_operation!(aws_sdk_secretsmanager::operation::get_resource_policy);
224
225impl<'a> AwsBuilderInstrument<'a> for PutResourcePolicyFluentBuilder {
226 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
227 let secret_id = self.get_secret_id().clone().unwrap_or_default();
228 SecretsManagerSpanBuilder::put_resource_policy(secret_id)
229 }
230}
231impl InstrumentedFluentBuilderOutput for PutResourcePolicyOutput {}
232instrument_aws_operation!(aws_sdk_secretsmanager::operation::put_resource_policy);
233
234impl<'a> AwsBuilderInstrument<'a> for DeleteResourcePolicyFluentBuilder {
235 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
236 let secret_id = self.get_secret_id().clone().unwrap_or_default();
237 SecretsManagerSpanBuilder::delete_resource_policy(secret_id)
238 }
239}
240impl InstrumentedFluentBuilderOutput for DeleteResourcePolicyOutput {}
241instrument_aws_operation!(aws_sdk_secretsmanager::operation::delete_resource_policy);
242
243impl<'a> AwsBuilderInstrument<'a> for ValidateResourcePolicyFluentBuilder {
244 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
245 let secret_id = self.get_secret_id().clone().unwrap_or_default();
246 SecretsManagerSpanBuilder::validate_resource_policy(secret_id)
247 }
248}
249impl InstrumentedFluentBuilderOutput for ValidateResourcePolicyOutput {
250 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
251 attributes![
252 Some(KeyValue::new(
253 "aws.secretsmanager.policy_validation_passed",
254 self.policy_validation_passed(),
255 )),
256 self.validation_errors()
257 .len()
258 .as_attribute("aws.secretsmanager.validation_error_count"),
259 ]
260 }
261}
262instrument_aws_operation!(aws_sdk_secretsmanager::operation::validate_resource_policy);
263
264impl<'a> AwsBuilderInstrument<'a> for RemoveRegionsFromReplicationFluentBuilder {
266 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
267 let secret_id = self.get_secret_id().clone().unwrap_or_default();
268 SecretsManagerSpanBuilder::remove_regions_from_replication(secret_id)
269 }
270}
271impl InstrumentedFluentBuilderOutput for RemoveRegionsFromReplicationOutput {}
272instrument_aws_operation!(
273 aws_sdk_secretsmanager::operation::remove_regions_from_replication
274);
275
276impl<'a> AwsBuilderInstrument<'a> for ReplicateSecretToRegionsFluentBuilder {
277 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
278 let secret_id = self.get_secret_id().clone().unwrap_or_default();
279 SecretsManagerSpanBuilder::replicate_secret_to_regions(secret_id)
280 }
281}
282impl InstrumentedFluentBuilderOutput for ReplicateSecretToRegionsOutput {}
283instrument_aws_operation!(aws_sdk_secretsmanager::operation::replicate_secret_to_regions);
284
285impl<'a> AwsBuilderInstrument<'a> for StopReplicationToReplicaFluentBuilder {
286 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
287 let secret_id = self.get_secret_id().clone().unwrap_or_default();
288 SecretsManagerSpanBuilder::stop_replication_to_replica(secret_id)
289 }
290}
291impl InstrumentedFluentBuilderOutput for StopReplicationToReplicaOutput {}
292instrument_aws_operation!(aws_sdk_secretsmanager::operation::stop_replication_to_replica);
293
294impl<'a> AwsBuilderInstrument<'a> for ListSecretsFluentBuilder {
296 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
297 let attributes = attributes![
298 self.get_max_results()
299 .map(|v| KeyValue::new("aws.secretsmanager.max_results", v as i64)),
300 ];
301 SecretsManagerSpanBuilder::list_secrets().attributes(attributes)
302 }
303}
304impl InstrumentedFluentBuilderOutput for ListSecretsOutput {
305 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
306 attributes![
307 self.secret_list()
308 .len()
309 .as_attribute("aws.secretsmanager.secret_count"),
310 ]
311 }
312}
313instrument_aws_operation!(aws_sdk_secretsmanager::operation::list_secrets);
314
315impl<'a> AwsBuilderInstrument<'a> for BatchGetSecretValueFluentBuilder {
316 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
317 let attributes =
318 attributes![self.get_secret_id_list().as_ref().map(|ids| KeyValue::new(
319 "aws.secretsmanager.secret_count",
320 ids.len() as i64
321 )),];
322 SecretsManagerSpanBuilder::batch_get_secret_value().attributes(attributes)
323 }
324}
325impl InstrumentedFluentBuilderOutput for BatchGetSecretValueOutput {
326 fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
327 attributes![
328 self.secret_values()
329 .len()
330 .as_attribute("aws.secretsmanager.secret_values_count"),
331 self.errors()
332 .len()
333 .as_attribute("aws.secretsmanager.error_count"),
334 ]
335 }
336}
337instrument_aws_operation!(aws_sdk_secretsmanager::operation::batch_get_secret_value);
338
339impl<'a> AwsBuilderInstrument<'a> for GetRandomPasswordFluentBuilder {
340 fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
341 let attributes = attributes![
342 self.get_password_length()
343 .map(|v| KeyValue::new("aws.secretsmanager.password_length", v)),
344 ];
345 SecretsManagerSpanBuilder::get_random_password().attributes(attributes)
346 }
347}
348impl InstrumentedFluentBuilderOutput for GetRandomPasswordOutput {}
349instrument_aws_operation!(aws_sdk_secretsmanager::operation::get_random_password);