Skip to content

Commit 30648d2

Browse files
committed
Fix formatting, bump codegen version to 0.1.7, and add observability dependencies
1 parent 740742f commit 30648d2

File tree

8 files changed

+21
-12
lines changed

8 files changed

+21
-12
lines changed

aws/codegen-aws-sdk/src/main/kotlin/software/amazon/smithy/rustsdk/ObservabilityMetricDecorator.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext
99
import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator
1010
import software.amazon.smithy.rust.codegen.client.smithy.generators.ServiceRuntimePluginCustomization
1111
import software.amazon.smithy.rust.codegen.client.smithy.generators.ServiceRuntimePluginSection
12+
import software.amazon.smithy.rust.codegen.core.rustlang.CargoDependency
1213
import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
1314
import software.amazon.smithy.rust.codegen.core.rustlang.writable
1415
import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType
@@ -27,18 +28,21 @@ class ObservabilityMetricDecorator : ClientCodegenDecorator {
2728
baseCustomizations + listOf(ObservabilityFeatureTrackerInterceptor(codegenContext))
2829
}
2930

30-
private class ObservabilityFeatureTrackerInterceptor(codegenContext: ClientCodegenContext) :
31+
private class ObservabilityFeatureTrackerInterceptor(private val codegenContext: ClientCodegenContext) :
3132
ServiceRuntimePluginCustomization() {
3233
override fun section(section: ServiceRuntimePluginSection) =
3334
writable {
3435
if (section is ServiceRuntimePluginSection.RegisterRuntimeComponents) {
3536
section.registerInterceptor(this) {
37+
val runtimeConfig = codegenContext.runtimeConfig
3638
rustTemplate(
3739
"#{Interceptor}",
3840
"Interceptor" to
3941
RuntimeType.forInlineDependency(
4042
InlineAwsDependency.forRustFile(
4143
"observability_feature",
44+
CargoDependency.smithyObservability(runtimeConfig),
45+
CargoDependency.smithyObservabilityOtel(runtimeConfig),
4246
),
4347
).resolve("ObservabilityFeatureTrackerInterceptor"),
4448
)

aws/rust-runtime/aws-inlineable/src/observability_feature.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,15 @@ impl Intercept for ObservabilityFeatureTrackerInterceptor {
2525
cfg: &mut ConfigBag,
2626
) -> Result<(), BoxError> {
2727
// Check if an OpenTelemetry meter provider is configured via the global provider
28-
if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider()
29-
{
28+
if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider() {
3029
let meter_provider = telemetry_provider.meter_provider();
31-
30+
3231
// Use downcast to check if it's specifically the OTel implementation
3332
// This is more reliable than string matching on type names
3433
if let Some(_otel_provider) = meter_provider
3534
.as_any()
36-
.downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>()
37-
{
35+
.downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>(
36+
) {
3837
cfg.interceptor_state()
3938
.store_append(AwsSdkFeature::ObservabilityOtelMetrics);
4039
}

aws/sdk/integration-tests/dynamodb/tests/observability-metrics.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ use aws_smithy_types::body::SdkBody;
1313
use http::header::USER_AGENT;
1414
use std::sync::Arc;
1515

16-
fn test_client(update_builder: fn(Builder) -> Builder) -> (aws_sdk_dynamodb::Client, StaticReplayClient) {
16+
fn test_client(
17+
update_builder: fn(Builder) -> Builder,
18+
) -> (aws_sdk_dynamodb::Client, StaticReplayClient) {
1719
let http_client = StaticReplayClient::new(vec![ReplayEvent::new(
1820
http::Request::builder()
1921
.uri("https://dynamodb.us-east-1.amazonaws.com/")
@@ -48,7 +50,7 @@ async fn observability_metrics_in_user_agent() {
4850
call_operation(client).await;
4951
let req = rx.expect_request();
5052
let user_agent = req.headers().get("x-amz-user-agent").unwrap();
51-
53+
5254
// Should NOT contain observability metrics when using noop provider
5355
let ua_str = user_agent.to_str().unwrap();
5456
assert!(!ua_str.contains("m/4")); // OBSERVABILITY_TRACING = "4"

codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/CargoDependency.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,10 @@ data class CargoDependency(
413413
fun smithyMocks(runtimeConfig: RuntimeConfig) =
414414
runtimeConfig.smithyRuntimeCrate("smithy-mocks", scope = DependencyScope.Dev)
415415

416+
fun smithyObservability(runtimeConfig: RuntimeConfig) = runtimeConfig.smithyRuntimeCrate("smithy-observability")
417+
418+
fun smithyObservabilityOtel(runtimeConfig: RuntimeConfig) = runtimeConfig.smithyRuntimeCrate("smithy-observability-otel")
419+
416420
// behind feature-gate
417421
val Serde =
418422
CargoDependency("serde", CratesIo("1.0"), features = setOf("derive"), scope = DependencyScope.CfgUnstable)

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ allowLocalDeps=false
1717
# Avoid registering dependencies/plugins/tasks that are only used for testing purposes
1818
isTestingEnabled=true
1919
# codegen publication version
20-
codegenVersion=0.1.6
20+
codegenVersion=0.1.7

rust-runtime/aws-smithy-observability-otel/src/meter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ impl ProvideMeter for OtelMeterProvider {
286286
fn get_meter(&self, scope: &'static str, _attributes: Option<&Attributes>) -> Meter {
287287
Meter::new(Arc::new(MeterWrap(self.meter_provider.meter(scope))))
288288
}
289-
289+
290290
fn as_any(&self) -> &dyn std::any::Any {
291291
self
292292
}

rust-runtime/aws-smithy-observability/src/meter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use std::{borrow::Cow, fmt::Debug, sync::Arc};
1717
pub trait ProvideMeter: Send + Sync + Debug {
1818
/// Get or create a named [Meter].
1919
fn get_meter(&self, scope: &'static str, attributes: Option<&Attributes>) -> Meter;
20-
20+
2121
/// Returns a reference to `self` as `&dyn Any` for downcasting.
2222
fn as_any(&self) -> &dyn std::any::Any;
2323
}

rust-runtime/aws-smithy-observability/src/noop.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl ProvideMeter for NoopMeterProvider {
2424
fn get_meter(&self, _scope: &'static str, _attributes: Option<&Attributes>) -> Meter {
2525
Meter::new(Arc::new(NoopMeter))
2626
}
27-
27+
2828
fn as_any(&self) -> &dyn std::any::Any {
2929
self
3030
}

0 commit comments

Comments
 (0)