|
17 | 17 | using Amazon.Runtime.Internal.Util;
|
18 | 18 | using Amazon.Runtime.Telemetry;
|
19 | 19 | using Amazon.Runtime.Telemetry.Metrics;
|
| 20 | +using Amazon.Runtime.Telemetry.Tracing; |
20 | 21 | using Amazon.Util;
|
21 | 22 | using System;
|
22 | 23 | using System.IO;
|
@@ -110,7 +111,14 @@ public static void SignRequest(IRequestContext requestContext)
|
110 | 111 | using (requestContext.Metrics.StartEvent(Metric.RequestSigningTime))
|
111 | 112 | using (MetricsUtilities.MeasureDuration(requestContext, TelemetryConstants.AuthSigningDurationMetricName))
|
112 | 113 | {
|
113 |
| - var immutableCredentials = (requestContext.Identity as AWSCredentials)?.GetCredentials(); |
| 114 | + ImmutableCredentials immutableCredentials = null; |
| 115 | + |
| 116 | + using (TracingUtilities.CreateSpan(requestContext, TelemetryConstants.CredentialsRetrievalSpanName)) |
| 117 | + using (MetricsUtilities.MeasureDuration(requestContext, TelemetryConstants.ResolveIdentityDurationMetricName)) |
| 118 | + using (requestContext.Metrics.StartEvent(Metric.CredentialsRequestTime)) |
| 119 | + { |
| 120 | + immutableCredentials = (requestContext.Identity as AWSCredentials)?.GetCredentials(); |
| 121 | + } |
114 | 122 |
|
115 | 123 | if (immutableCredentials?.UseToken == true &&
|
116 | 124 | !(requestContext.Signer is NullSigner) &&
|
@@ -155,7 +163,17 @@ private static async Task SignRequestAsync(IRequestContext requestContext)
|
155 | 163 | using (MetricsUtilities.MeasureDuration(requestContext, TelemetryConstants.AuthSigningDurationMetricName))
|
156 | 164 | {
|
157 | 165 | var awsCredentials = requestContext.Identity as AWSCredentials;
|
158 |
| - var immutableCredentials = awsCredentials != null ? await awsCredentials.GetCredentialsAsync().ConfigureAwait(false) : null; |
| 166 | + ImmutableCredentials immutableCredentials = null; |
| 167 | + |
| 168 | + if (awsCredentials != null) |
| 169 | + { |
| 170 | + using (TracingUtilities.CreateSpan(requestContext, TelemetryConstants.CredentialsRetrievalSpanName)) |
| 171 | + using (MetricsUtilities.MeasureDuration(requestContext, TelemetryConstants.ResolveIdentityDurationMetricName)) |
| 172 | + using (requestContext.Metrics.StartEvent(Metric.CredentialsRequestTime)) |
| 173 | + { |
| 174 | + immutableCredentials = await awsCredentials.GetCredentialsAsync().ConfigureAwait(false); |
| 175 | + } |
| 176 | + } |
159 | 177 |
|
160 | 178 | if (immutableCredentials?.UseToken == true &&
|
161 | 179 | !(requestContext.Signer is NullSigner) &&
|
|
0 commit comments