aws-durable-execution-conformance-tests-telemetry
Optional Durable Execution Telemetry conformance suite for aws-durable-execution-conformance-tests. This
distribution adds the telemetry suite to the core runner through the
aws_durable_execution_conformance_tests.extensions entry point.
The suite checks that the SDK's Durable Execution Telemetry plugin, configured with the
CloudWatch Logs exporter, delivers one complete DurableExecutionTelemetry record for a
successful single-step execution.
The SDK handler and SAM template that exercises this suite live in each SDK repository, not here.
Install
pip install aws-durable-execution-conformance-tests-telemetry
Version of this package 0.1.x requires a compatiable core runner (>=1.0.0,<2.0.0).
Run
durable-execution-conformance \
--template <path/to/template.yaml> \
--language js \
--region us-west-2 \
--suite telemetry \
--report console json \
--parameter-overrides LambdaExecutionRoleArn=<role-arn>
Options added by this package:
| Flag | Default | Meaning |
|---|---|---|
--telemetry-log-group |
/durable-execution-conformance/conformance-tests-<name>/durable-execution-telemetry |
CloudWatch Logs group that receives the records. |
--telemetry-wait-seconds |
10 |
Seconds to wait before the first CloudWatch Logs query. Raise it when ingestion is slow. |
The log group is resolved in this order: an explicit
--parameter-overrides TelemetryLogGroupName=<group>, then
--telemetry-log-group, then the default. This follows the core rule that
explicit overrides take precedence over values supplied by extensions
(core README, lines 113–115).
When both flags are given, the parameter override is used and
--telemetry-log-group is ignored. The validator queries the group that was
deployed.
After CloudWatch retrieval completes, the extension writes <id>-telemetry.json
to the history directory, whether telemetry assertions pass or fail. This includes
empty retrieval results. Configuration and retrieval failures are reported through
the runner’s error reporting and do not produce a telemetry artifact. The directory
is the core --history-dir option (default output/), the same directory that
receives the execution history files.
Template contract
The extension passes one SAM parameter, TelemetryLogGroupName, with the
resolved log group name. The template must:
- Declare
TelemetryLogGroupNameas aStringparameter. - Create the group with an
AWS::Logs::LogGroupresource named from that parameter. Extensions have no pre-deploy hook, so CloudFormation must create the group before the runner invokes a function. - Pass the name to the function, for example through the
TELEMETRY_LOG_GROUP_NAMEenvironment variable, and configure theCloudWatchLogsExporterwith it.
The function's execution role must allow logs:CreateLogStream and
logs:PutLogEvents on that group. The runner identity must allow
logs:FilterLogEvents on it.
What is asserted
TelemetryAssertions.records is an ordered list. Entry i describes the
i-th record after sorting by CloudWatch event timestamp and ingestion time:
TelemetryAssertions:
records:
- record:
schemaVersion: '1.0'
status: SUCCEEDED
input: {value: 41}
output: {value: 42}
forbid_fields: [error]
operations_by_name:
increment: {type: STEP, status: SUCCEEDED, count: 1, failedCount: 0}
The number of fetched records must equal the list length. When the counts differ, that is the only error reported. An empty list passes when no record was emitted.
Fetched records are sorted by event timestamp, then ingestion time, ascending. The artifact’s raw events list preserves the order in which the retriever first observed each event. Only the parsed records list is sorted by timestamp.
For each (record, entry) pair the validator checks, on that record alone:
- every key under
entry.record(schemaVersion,status,emittedAt,input,output, ...) against its expected value; executionArn,executionName,functionName,functionQualifier,region,accountIdderived from the execution ARN;- every key under
entry.forbid_fieldsis absent; operationsByNamehas exactly the names underentry.operations_by_name, every key listed under an operation against its expected value, and noerroron the operation.
Expected values follow the rules of the core execution-history matcher, plus
$integer:
| Expected value | Rule |
|---|---|
'*' |
The field must be present. Any value passes, including null. Use it only for values whose type is not worth asserting. |
'${/regex/}' |
str(actual) must match the regex. Use it for string formats, such as ISO-8601 timestamps. A number also matches when its decimal text does, so do not use it to assert a numeric type. |
{$integer: {min: N}} |
actual must be a JSON integer: not a string, boolean, null, or fraction. min is optional and inclusive. Use it for per-run counts and durations, such as durationMs: {$integer: {min: 0}}. |
| mapping | actual must be a mapping. Every listed key is checked recursively. Extra keys in actual are ignored. |
| list | actual must be a list of the same length. Items are checked pairwise. |
| anything else | Equality. A boolean matches only a boolean, so count: 1 does not match true. |
recordType is not asserted because only DurableExecutionTelemetry records
are parsed. Unknown fields are ignored. Every error is prefixed record[i]:;
i is the index into the records list in the artifact.
The CloudWatch Logs exporter replaces the operations array with an
operationsByName map. That map has no operation IDs, so the suite does not
compare operation IDs against the execution history.
Retrieval
Records are fetched with the core CloudWatchLogRetriever. The retriever first
sleeps --telemetry-wait-seconds (default 10). It then polls FilterLogEvents for the full core poll budget of 120 seconds. Events seen on any poll are kept, since a later response can omit a record that an earlier one returned. So each case takes at least 130 seconds. A record that is still absent when polling stops fails the
case as records: expected 1 record(s), got 0. Events that fail to parse, or carry a different recordType, are listed under malformed in the artifact
and are not counted.
Metadata
Release files for aws-durable-execution-conformance-tests-telemetry 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aws_durable_execution_conformance_tests_telemetry-0.1.0.tar.gz | 14.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aws_durable_execution_conformance_tests_telemetry-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.2 kB
Release files / aws_durable_execution_conformance_tests_telemetry-0.1.0.tar.gz
| Download URL | aws_durable_execution_conformance_tests_telemetry-0.1.0.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
958ea31e01b067af77660e5d6f7fb531df8b62b73e400015b5ce7f7d58b05050
|
|
BLAKE2b-256 checksum How to use checksums |
fffc2120a7376c6e07d28cf0c8387e346894b2714476f1c8e965c734908355eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / aws_durable_execution_conformance_tests_telemetry-0.1.0-py3-none-any.whl
| Download URL | aws_durable_execution_conformance_tests_telemetry-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08bfbc687328bc5eae3719c6ea7f03971f75da6b6d0a03da97d3e390ba67276f
|
|
BLAKE2b-256 checksum How to use checksums |
919be900d60c5d5d166716663b1d46bcf733ec0b60927dd7dafc9203898a66eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for aws-durable-execution-conformance-tests-telemetry 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for aws_durable_execution_conformance_tests_telemetry-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.