Skip to content

Commit 6747287

Browse files
committed
chore: revert telemetry stabilization
Revert Java PR #809 as a release contingency. This reverts commit 6c24e07. Exporter publishing configuration remains unchanged.
1 parent 6c24e07 commit 6747287

33 files changed

Lines changed: 98 additions & 22 deletions

‎sdk/src/main/java/software/amazon/lambda/durable/plugin/InvocationEndInfo.java‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.time.Instant;
66
import java.util.Map;
7+
import software.amazon.lambda.durable.annotations.Experimental;
78

89
/**
910
* Information provided at the end of a Lambda invocation.
@@ -17,9 +18,9 @@
1718
* @param executionStartTime the stable start timestamp of the durable execution
1819
* @param operations a snapshot of operations known when the invocation ended, keyed by operation ID
1920
* @param invocationStatus the invocation outcome
20-
* @param executionError non-null if the execution failed
21-
* @param executionInput the deserialized execution input
22-
* @param executionResult the value returned by a successful handler
21+
* @param executionError non-null if the execution failed; this component is experimental
22+
* @param executionInput the deserialized execution input; this component is experimental
23+
* @param executionResult the value returned by a successful handler; this component is experimental
2324
*/
2425
public record InvocationEndInfo(
2526
String requestId,
@@ -28,9 +29,9 @@ public record InvocationEndInfo(
2829
Instant executionStartTime,
2930
Map<String, OperationChangeItemInfo> operations,
3031
InvocationStatus invocationStatus,
31-
Throwable executionError,
32-
Object executionInput,
33-
Object executionResult) {
32+
@Experimental Throwable executionError,
33+
@Experimental Object executionInput,
34+
@Experimental Object executionResult) {
3435

3536
/** Creates invocation-end information without execution payloads or operation state. */
3637
public InvocationEndInfo(

‎sdk/src/main/java/software/amazon/lambda/durable/plugin/InvocationInfo.java‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.time.Instant;
88
import java.util.Map;
9+
import software.amazon.lambda.durable.annotations.Experimental;
910

1011
/**
1112
* Invocation-level information available to plugin hooks.
@@ -19,8 +20,10 @@
1920
* @param executionStartTime the start timestamp of the durable execution, taken from the initial EXECUTION operation in
2021
* the first event delivered by the backend. Never null and stable across all invocations of the same execution.
2122
* @param executionInput the deserialized execution input passed to the user handler, or null when unavailable
22-
* @param operations checkpointed operations delivered at invocation start, keyed by operation ID
23-
* @param updatedOperations operations changed externally since the previous invocation, keyed by operation ID
23+
* @param operations checkpointed operations delivered at invocation start, keyed by operation ID; this component is
24+
* experimental
25+
* @param updatedOperations operations changed externally since the previous invocation, keyed by operation ID; this
26+
* component is experimental
2427
* @param xRayTraceId immutable invocation-local X-Ray header; null means unavailable and permits legacy carrier
2528
* fallback, while an empty string means an available runtime supplied no header
2629
*/
@@ -29,9 +32,9 @@ public record InvocationInfo(
2932
String durableExecutionArn,
3033
boolean isFirstInvocation,
3134
Instant executionStartTime,
32-
Object executionInput,
33-
Map<String, OperationChangeItemInfo> operations,
34-
Map<String, OperationChangeItemInfo> updatedOperations,
35+
@Experimental Object executionInput,
36+
@Experimental Map<String, OperationChangeItemInfo> operations,
37+
@Experimental Map<String, OperationChangeItemInfo> updatedOperations,
3538
String xRayTraceId) {
3639

3740
public InvocationInfo {

‎sdk/src/main/java/software/amazon/lambda/durable/plugin/OperationChangeItemInfo.java‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.time.Instant;
66
import software.amazon.awssdk.services.lambda.model.OperationStatus;
7+
import software.amazon.lambda.durable.annotations.Experimental;
78

89
/**
910
* Operation-level information for an {@link OperationChangeInfo} and invocation operation snapshot.
@@ -18,8 +19,8 @@
1819
* @param status operation status
1920
* @param attempt attempt number for retriable operations, null for others
2021
* @param isReplay true if this operation was present in state delivered at invocation start
21-
* @param error non-null if the operation failed
22-
* @param result checkpointed serialized result, or null if unavailable
22+
* @param error non-null if the operation failed; this component is experimental
23+
* @param result checkpointed serialized result, or null if unavailable; this component is experimental
2324
*/
2425
public record OperationChangeItemInfo(
2526
String id,
@@ -32,8 +33,8 @@ public record OperationChangeItemInfo(
3233
OperationStatus status,
3334
Integer attempt,
3435
boolean isReplay,
35-
Throwable error,
36-
String result) {
36+
@Experimental Throwable error,
37+
@Experimental String result) {
3738

3839
/** Returns a representation that omits the operation result payload. */
3940
@Override

‎sdk/src/main/java/software/amazon/lambda/durable/plugin/OperationEndInfo.java‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package software.amazon.lambda.durable.plugin;
44

55
import java.time.Instant;
6+
import software.amazon.lambda.durable.annotations.Experimental;
67

78
/**
89
* Extended operation information for operation end events.
@@ -17,8 +18,9 @@
1718
* @param status the operation's terminal status (e.g., SUCCEEDED, FAILED, TIMED_OUT) — may be null for virtual ops
1819
* @param attempt the total number of attempts for retriable operations (STEP, WAIT_FOR_CONDITION) — null for others
1920
* @param isReplay true if this operation already existed in the execution state (completed in a prior invocation)
20-
* @param error non-null if the operation failed
21-
* @param result the serialized result of the operation, or null if the operation failed or has no result
21+
* @param error non-null if the operation failed; this component is experimental
22+
* @param result the serialized result of the operation, or null if the operation failed or has no result; this
23+
* component is experimental
2224
*/
2325
public record OperationEndInfo(
2426
String id,
@@ -31,8 +33,8 @@ public record OperationEndInfo(
3133
String status,
3234
Integer attempt,
3335
boolean isReplay,
34-
Throwable error,
35-
String result) {
36+
@Experimental Throwable error,
37+
@Experimental String result) {
3638

3739
/**
3840
* Creates operation-end information without a result.

‎sdk/src/main/java/software/amazon/lambda/durable/plugin/UserFunctionEndInfo.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package software.amazon.lambda.durable.plugin;
44

55
import java.time.Instant;
6+
import software.amazon.lambda.durable.annotations.Experimental;
67

78
/**
89
* Information provided when a user function finishes executing.
@@ -19,7 +20,7 @@
1920
* @param isReplay true if this operation was present in the checkpointed state delivered at invocation start
2021
* @param attempt 1-based attempt number for steps/waitForCondition, null for context operations
2122
* @param outcome the user function outcome
22-
* @param error non-null if the user function failed or exited incompletely
23+
* @param error non-null if the user function failed or exited incompletely; this component is experimental
2324
*/
2425
public record UserFunctionEndInfo(
2526
String id,
@@ -32,4 +33,4 @@ public record UserFunctionEndInfo(
3233
boolean isReplay,
3334
Integer attempt,
3435
UserFunctionOutcome outcome,
35-
Throwable error) {}
36+
@Experimental Throwable error) {}

‎telemetry-exporter/README.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
# Durable Execution Telemetry Exporter
1+
# Durable Execution Telemetry Exporter (preview)
22

33
Instrumentation plugin for the AWS Lambda Durable Execution Java SDK that emits a curated,
44
per-execution **Durable Execution Telemetry record** to one or more pluggable exporters. It ports the
55
JavaScript `durableExecutionTelemetry()` contract (canonical record schema `1.0`) to the Java plugin hook
66
surface.
77

8+
> **Preview API.** Every public type is annotated
9+
> `@software.amazon.lambda.durable.annotations.Experimental` to signal it is experimental and may
10+
> change or be removed in a future release without a major-version bump.
11+
812
## Usage
913

1014
```java

‎telemetry-exporter/src/main/java/software/amazon/lambda/durable/telemetry/ArnParser.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
// SPDX-License-Identifier: Apache-2.0
33
package software.amazon.lambda.durable.telemetry;
44

5+
import software.amazon.lambda.durable.annotations.Experimental;
6+
57
/**
68
* Parses the durable execution ARN into its component fields, mirroring the JS {@code parseExecutionArn}.
79
*
810
* <p>Format:
911
* {@code arn:<partition>:lambda:<region>:<accountId>:function:<functionName>:<qualifier>/durable-execution/<executionName>/<invocationId>}.
1012
*/
13+
@Experimental
1114
public final class ArnParser {
1215
private final String functionName;
1316
private final String qualifier;

‎telemetry-exporter/src/main/java/software/amazon/lambda/durable/telemetry/ContentConfig.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.ArrayList;
66
import java.util.List;
77
import java.util.function.Function;
8+
import software.amazon.lambda.durable.annotations.Experimental;
89

910
/**
1011
* Controls what data is included in emitted records (input/output transforms, operation overrides, error inclusion).
@@ -23,6 +24,7 @@
2324
* the cached input snapshot or any later emission — and a non-fatal transform failure omits the field and is logged.
2425
* VM/thread-termination errors propagate.
2526
*/
27+
@Experimental
2628
public final class ContentConfig {
2729
private final boolean includeInput;
2830
private final Function<Object, Object> inputTransform;

‎telemetry-exporter/src/main/java/software/amazon/lambda/durable/telemetry/DurableExecutionTelemetry.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.slf4j.Logger;
88
import org.slf4j.LoggerFactory;
99
import software.amazon.awssdk.services.lambda.model.ErrorObject;
10+
import software.amazon.lambda.durable.annotations.Experimental;
1011
import software.amazon.lambda.durable.exception.DurableOperationException;
1112
import software.amazon.lambda.durable.exception.UnrecoverableDurableExecutionException;
1213
import software.amazon.lambda.durable.plugin.DurableExecutionPluginFactory;
@@ -41,6 +42,7 @@
4142
* {@link TelemetrySettings}, the exporters, and the {@link ExportScheduler} that serializes exports across every
4243
* execution the environment hosts.
4344
*/
45+
@Experimental
4446
public final class DurableExecutionTelemetry {
4547

4648
private static final Logger logger = LoggerFactory.getLogger(DurableExecutionTelemetry.class);

‎telemetry-exporter/src/main/java/software/amazon/lambda/durable/telemetry/DurableExecutionTelemetryConfig.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@
44

55
import java.util.ArrayList;
66
import java.util.List;
7+
import software.amazon.lambda.durable.annotations.Experimental;
78

89
/** Configuration for the Durable Execution Telemetry plugin. Mirrors the JS {@code DurableExecutionTelemetryConfig}. */
10+
@Experimental
911
public final class DurableExecutionTelemetryConfig {
1012

1113
/** When records are emitted. */
14+
@Experimental
1215
public enum EmitMode {
1316
ON_COMPLETE,
1417
ON_CHANGE,
1518
ON_FAILURE
1619
}
1720

1821
/** Which operations to include in each record's operations array. */
22+
@Experimental
1923
public enum OperationDetail {
2024
TOP_LEVEL,
2125
FULL_TREE

0 commit comments

Comments
 (0)