Skip to content

feat(telemetry): add the telemetry-4 conformance handler - #888

Open
hln33 wants to merge 4 commits into
mainfrom
feat/conformance-telemetry-4
Open

hln33 wants to merge 4 commits into
mainfrom
feat/conformance-telemetry-4

Conversation

@hln33

@hln33 hln33 commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds the telemetry-4 conformance handler. One map, process-items, runs over the event [1, 2] with max concurrency 1 and item namer item-<item>. Each iteration runs one step greet-<item> that returns "Hello, <item>!". The telemetry plugin runs with full-tree operation detail and input/output on. The exported record must carry exactly five operationsByName keys: process-items, item-1, item-2, greet-1, greet-2.

The requirement is aws/aws-durable-execution-conformance-tests#185 (issue aws/aws-durable-execution-conformance-tests#184).

Why

top-level detail keeps only process-items. full-tree detail must recurse into each MapIteration context and keep the step under it, keyed by the user-supplied name. The deployed run shows the plugin recurses to depth 2, keeps the three CONTEXT summaries without maxAttempt, and keeps the two STEP summaries with maxAttempt 1.

Simpler options considered

Build the config inline in Telemetry4FullTreeMap.createConfiguration(). That repeats the exporter, emit mode and sampling rate that all four handlers share. TelemetryConformanceConfig exists so those shared fields are set in one place; telemetry-3 followed the same pattern with resultSelectTelemetryConfig.

Add operationDetail to the existing two-argument telemetryConfig and update its three callers. The three existing handlers do not vary operation detail. Changing their call sites for a value they never set adds churn without new coverage. The delegating overload keeps them unchanged and fixes TOP_LEVEL in one line.

Switch the shared default to FULL_TREE for every handler. telemetry-1 to telemetry-3 are specified as top-level. Changing their configuration changes the reference the later requirements are described against.

Call the three-argument overload directly from the handler and skip fullTreeMapTelemetryConfig. Possible. The named factory mirrors resultSelectTelemetryConfig, keeps the requirement's full configuration in one place, and gives TelemetryConformanceConfigTest a single method to assert on.

Changes

  • Telemetry4FullTreeMap.java: the handler. MapConfig with max concurrency 1 and item namer item-<item>; each iteration runs step greet-<item>.
  • TelemetryConformanceConfig.java: FULL_TREE_MAP_NAME; a telemetryConfig(logGroupName, OperationDetail, ContentConfig) overload that the existing overloads delegate to with TOP_LEVEL; fullTreeMapTelemetryConfig(logGroupName).
  • TelemetryConformanceConfigTest.java: three tests for the new overload and the telemetry-4 settings.
  • template.yaml: Telemetry4FullTreeMap, TestDescription: [telemetry-4].
  • pom.xml description and README.md: coverage row and layout line.
  • .github/workflows/telemetry-conformance-tests.yml: pinned to the conformance merge commit b380cbf (feat(telemetry): add telemetry-4 full-tree map record aws-durable-execution-conformance-tests#185).

Verification

  • cd conformance-tests-telemetry && JAVA_SDK_VERSION=3.1.1-SNAPSHOT mvn -B test: 14 tests, BUILD SUCCESS.
  • mvn spotless:check: clean.
  • Local probe through LocalDurableTestRunner with a capturing exporter and OperationDetail.FULL_TREE: the record holds exactly process-items, item-1, item-2, greet-1, greet-2; attempt is set on the two steps only.
  • Telemetry conformance e2e: telemetry-1 to telemetry-4 passed. 4 passed, 0 failed. Run 42759206222 at cf7dfab51, pinned to c7abf1b. Re-run at d416efec4 pinned to b380cbf: Run 42916016152 — 4 passed, 0 failed.

hln33 added 2 commits November 9, 2026 21:05
Requirement telemetry-4 checks that full-tree operation detail exports a map,
its two MapIteration contexts, and the step inside each iteration. The new
handler Telemetry4FullTreeMap runs map process-items over the event with max
concurrency 1 and item namer item-<item>. Each iteration runs step
greet-<item>.

TelemetryConformanceConfig gains a telemetryConfig overload that takes the
operation detail, and fullTreeMapTelemetryConfig. The existing overloads
delegate with TOP_LEVEL. The template maps Telemetry4FullTreeMap to telemetry-4.
The telemetry-4 requirement is not on the conformance main branch yet. The
e2e run needs it. So this pins the shared workflow to the head of
feat/telemetry-4-full-tree-map (c7abf1b). Re-pin to the merge commit once
that PR merges.
@hln33
hln33 requested a review from a team November 10, 2026 04:58
@hln33
hln33 deployed to ai-pr-review-runtime November 10, 2026 04:58 — with GitHub Actions Active
@hln33
hln33 deployed to ai-pr-review-runtime November 10, 2026 04:59 — with GitHub Actions Active
@github-actions

This comment has been minimized.

…4 head

Conformance PR #185 was stacked on the telemetry-3 branch. Telemetry-3 was
squash-merged, so the PR branch was rebased onto main and force-pushed. The
old head c7abf1b is no longer reachable from a branch. The new head 5c75e3f
has an identical tree. Re-pin to the merge commit once #185 merges.
@hln33
hln33 deployed to ai-pr-review-runtime November 10, 2026 20:50 — with GitHub Actions Active
@github-actions

This comment has been minimized.

Conformance PR #185 merged to main as b380cbf. Its tree is identical to the
branch head 5c75e3f that CI ran against. Pin to the merge commit so the
revision stays reachable after the feature branch is deleted.
@hln33
hln33 deployed to ai-pr-review-runtime November 10, 2026 22:36 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

Codex AI review

No actionable findings after checking all seven changed files against rules 1–11, module guidance, and SDK invariants. The prior rationale finding is resolved. Residual test risk: tests were not executed, and the updated external workflow revision was not independently inspected.

Reviewed commit d416efec42b7e5bd238f208f4b76f7249828e16a. Workflow run

@ParidelPooya ParidelPooya left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handler matches telemetry-4.yaml at b380cbf. LGTM.

Small note: the Javadoc in TelemetryConformanceConfig.java (class doc and telemetryConfig(String, ContentConfig) near line 71) still says every handler shares the same operation detail. telemetry-4 now uses FULL_TREE.

This branch was successfully deployed

1 active deployment
ai-pr-review-runtime — d416efec Deployed Nov 10, 2026 by hln33 via ai-pr-review / Codex review / Generate Codex review #2896
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants