[FLINK-39042][webui] Make watermark timestamps timezone-aware and configurable#28096
Open
featzhang wants to merge 3 commits intoapache:release-1.20from
Open
[FLINK-39042][webui] Make watermark timestamps timezone-aware and configurable#28096featzhang wants to merge 3 commits intoapache:release-1.20from
featzhang wants to merge 3 commits intoapache:release-1.20from
Conversation
…figurable (apache#27552) * [FLINK-39042][ui] Make watermark timestamps timezone-aware and configurable * [FLINK-39042][webui] Use Intl API for timezone handling and support DST Address review feedback: - Use native Intl.DateTimeFormat API instead of manual offset calculation - Replace fixed UTC offsets with IANA timezone names (e.g., America/Los_Angeles) - IANA timezones automatically handle daylight saving time transitions - Remove redundant console.log statements and improve code quality - Add documentation comments with reference to IANA timezone database * [FLINK-39042][webui] Make watermark timestamps timezone-aware and configurable * [FLINK-39042][webui] Address code review comments - Add MDN reference for Intl.DateTimeFormat API - Clarify DST handling in timezone abbreviations (e.g., PST vs PDT) - Improve error messages to explicitly mention UTC fallback - Update comments to better explain timezone resolution logic * Address review comments - Remove 'pure: false' from HumanizeWatermarkToDatetimePipe as template already passes timezone argument - Use Intl.supportedValuesOf('timeZone') to get all supported timezones instead of hardcoded list - Keep browser local timezone as default - Revert unnecessary changes in job-status.component.less * fix: improve timezone fallback handling and CSS property ordering - Enhance timezone detection fallback logic in watermark component\n- Fix CSS property ordering in job status component for better maintainability * style: improve code formatting for better readability - Split long lines in timezone options initialization for improved code readability * style: optimize CSS property ordering for better maintainability - Reorder CSS properties in job status component for improved code organization * fix: add type assertion for Intl.supportedValuesOf to fix TS compilation error * [FLINK-39042][webui] Use browser locale instead of hardcoded en-US in watermark datetime pipe Replace hardcoded 'en-US' locale with undefined in Intl.DateTimeFormat to respect the user's browser locale settings. This ensures the date display order follows the user's regional preferences rather than being fixed to the en-US format. Suggested by @davidradl in code review.
Collaborator
…st failure The previous CI build #74753 failed only in the 'Test - connect' stage due to MinioTestContainerTest failing to launch minio:RELEASE.2022-02-07T08-17-33Z Docker container (InvalidFormatException on Docker daemon timestamps with 9-digit nanosecond precision). This is a well-known infrastructure flaky unrelated to this PR, which only touches flink-runtime-web/web-dashboard TypeScript/LESS/HTML files. Pushing an empty commit to re-trigger a fresh Azure build on a different agent.
…er flaky Previous Azure build #74758 failed again in the exact same infrastructure flaky: flink-s3-fs-base MinioTestContainerTest could not launch the MinIO Docker container because testcontainers (bundled on release-1.20) cannot parse the 9-digit nanosecond timestamp returned by the Docker daemon. No code change in this PR touches flink-s3-fs-base. Re-running.
Member
Author
|
Request for no-CI-required merge This backport PR only touches 4 files under Evidence:
Given that:
I kindly request the committer to consider a no-CI-required merge for this backport PR, following the same approach used for EOL branch backports (e.g., PR #28048 on Thank you! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is the purpose of the change
Backport of #27552 to
release-1.20.The original PR makes watermark timestamps on the Flink Web UI timezone-aware and user-configurable, so operators working across different regions can read watermark values in their preferred timezone without mental UTC-offset conversion.
Brief change log
HumanizeWatermarkToDatetimePipeto accept a timezone argument and format timestamps via the nativeIntl.DateTimeFormatAPI (IANA timezone names, automatic DST handling, falls back to UTC on invalid input).job-overview-drawer-watermarks):Intl.supportedValuesOf('timeZone')(full IANA list).No backend / REST API change — UI only.
Cherry-pick notes
64d0316aad22e83888b65e6c3036d0a980ae33a9.flink-runtime-web/web-dashboard/src/app/pages/job/job-detail/status/job-status.component.less:The master diff only reordered CSS properties inside a
.back-linkselector that does not exist onrelease-1.20. The conflict is unrelated to the watermark feature and was resolved by keepingrelease-1.20's version (i.e. dropping the unrelated reorder). No functional difference.NzTooltipModulenaming already matches betweenmasterandrelease-1.20.Verifying this change
npm run lintpasses locally (eslint + stylelint clean).Does this pull request potentially affect one of the following parts
@Public(Evolving): noDocumentation