Skip to content

Commit d92f45b

Browse files
committed
Set<String> -> Set<BusinessMetric> business metrics
1 parent 1cc05b1 commit d92f45b

File tree

3 files changed

+14
-27
lines changed

3 files changed

+14
-27
lines changed

runtime/runtime-core/api/runtime-core.api

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,8 @@ public abstract interface class aws/smithy/kotlin/runtime/businessmetrics/Busine
8383

8484
public final class aws/smithy/kotlin/runtime/businessmetrics/BusinessMetricsUtilsKt {
8585
public static final fun containsBusinessMetric (Laws/smithy/kotlin/runtime/operation/ExecutionContext;Laws/smithy/kotlin/runtime/businessmetrics/BusinessMetric;)Z
86-
public static final fun emitBusinessMetric (Laws/smithy/kotlin/runtime/collections/MutableAttributes;Ljava/lang/String;)V
86+
public static final fun emitBusinessMetric (Laws/smithy/kotlin/runtime/collections/MutableAttributes;Laws/smithy/kotlin/runtime/businessmetrics/BusinessMetric;)V
8787
public static final fun emitBusinessMetric (Laws/smithy/kotlin/runtime/operation/ExecutionContext;Laws/smithy/kotlin/runtime/businessmetrics/BusinessMetric;)V
88-
public static final fun emitBusinessMetric (Laws/smithy/kotlin/runtime/operation/ExecutionContext;Ljava/lang/String;)V
8988
public static final fun getAccountIdBasedEndpointAccountId ()Laws/smithy/kotlin/runtime/collections/AttributeKey;
9089
public static final fun getBusinessMetrics ()Laws/smithy/kotlin/runtime/collections/AttributeKey;
9190
public static final fun getServiceEndpointOverride ()Laws/smithy/kotlin/runtime/collections/AttributeKey;

runtime/runtime-core/common/src/aws/smithy/kotlin/runtime/businessmetrics/BusinessMetricsUtils.kt

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import aws.smithy.kotlin.runtime.operation.ExecutionContext
1414
* Keeps track of all business metrics along an operations execution
1515
*/
1616
@InternalApi
17-
public val BusinessMetrics: AttributeKey<MutableSet<String>> = AttributeKey("aws.sdk.kotlin#BusinessMetrics")
17+
public val BusinessMetrics: AttributeKey<MutableSet<BusinessMetric>> = AttributeKey("aws.sdk.kotlin#BusinessMetrics")
1818

1919
/**
2020
* The account ID in an account ID based endpoint
@@ -34,33 +34,21 @@ public val ServiceEndpointOverride: AttributeKey<Boolean> = AttributeKey("aws.sm
3434
@InternalApi
3535
public fun ExecutionContext.emitBusinessMetric(metric: BusinessMetric) {
3636
if (this.attributes.contains(BusinessMetrics)) {
37-
this.attributes[BusinessMetrics].add(metric.identifier)
37+
this.attributes[BusinessMetrics].add(metric)
3838
} else {
39-
this.attributes[BusinessMetrics] = mutableSetOf(metric.identifier)
40-
}
41-
}
42-
43-
/**
44-
* Emit a business metric to the execution context attributes using its identifier
45-
*/
46-
@InternalApi
47-
public fun ExecutionContext.emitBusinessMetric(identifier: String) {
48-
if (this.attributes.contains(BusinessMetrics)) {
49-
this.attributes[BusinessMetrics].add(identifier)
50-
} else {
51-
this.attributes[BusinessMetrics] = mutableSetOf(identifier)
39+
this.attributes[BusinessMetrics] = mutableSetOf(metric)
5240
}
5341
}
5442

5543
/**
5644
* Emit a business metric to the mutable attributes
5745
*/
5846
@InternalApi
59-
public fun MutableAttributes.emitBusinessMetric(identifier: String) {
47+
public fun MutableAttributes.emitBusinessMetric(metric: BusinessMetric) {
6048
if (this.contains(BusinessMetrics)) {
61-
this[BusinessMetrics].add(identifier)
49+
this[BusinessMetrics].add(metric)
6250
} else {
63-
this[BusinessMetrics] = mutableSetOf(identifier)
51+
this[BusinessMetrics] = mutableSetOf(metric)
6452
}
6553
}
6654

@@ -70,7 +58,7 @@ public fun MutableAttributes.emitBusinessMetric(identifier: String) {
7058
@InternalApi
7159
public fun ExecutionContext.removeBusinessMetric(metric: BusinessMetric) {
7260
if (this.attributes.contains(BusinessMetrics)) {
73-
this.attributes[BusinessMetrics].remove(metric.identifier)
61+
this.attributes[BusinessMetrics].remove(metric)
7462
}
7563
}
7664

@@ -79,7 +67,7 @@ public fun ExecutionContext.removeBusinessMetric(metric: BusinessMetric) {
7967
*/
8068
@InternalApi
8169
public fun ExecutionContext.containsBusinessMetric(metric: BusinessMetric): Boolean =
82-
(this.attributes.contains(BusinessMetrics)) && this.attributes[BusinessMetrics].contains(metric.identifier)
70+
(this.attributes.contains(BusinessMetrics)) && this.attributes[BusinessMetrics].contains(metric)
8371

8472
/**
8573
* Valid business metrics

runtime/runtime-core/common/test/aws/smithy/kotlin/runtime/businessmetrics/BusinessMetricsUtilsTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class BusinessMetricsUtilsTest {
1717
executionContext.emitBusinessMetric(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION)
1818

1919
assertTrue(executionContext.attributes.contains(BusinessMetrics))
20-
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION.identifier))
20+
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION))
2121
}
2222

2323
@Test
@@ -27,8 +27,8 @@ class BusinessMetricsUtilsTest {
2727
executionContext.emitBusinessMetric(SmithyBusinessMetric.SIGV4A_SIGNING)
2828

2929
assertTrue(executionContext.attributes.contains(BusinessMetrics))
30-
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION.identifier))
31-
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.SIGV4A_SIGNING.identifier))
30+
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION))
31+
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.SIGV4A_SIGNING))
3232
}
3333

3434
@Test
@@ -37,12 +37,12 @@ class BusinessMetricsUtilsTest {
3737
executionContext.emitBusinessMetric(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION)
3838

3939
assertTrue(executionContext.attributes.contains(BusinessMetrics))
40-
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION.identifier))
40+
assertTrue(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION))
4141

4242
executionContext.removeBusinessMetric(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION)
4343

4444
assertTrue(executionContext.attributes.contains(BusinessMetrics))
45-
assertFalse(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION.identifier))
45+
assertFalse(executionContext.attributes[BusinessMetrics].contains(SmithyBusinessMetric.GZIP_REQUEST_COMPRESSION))
4646
}
4747

4848
@Test

0 commit comments

Comments
 (0)