weiqingy opened a new pull request, #29496: URL: https://github.com/apache/flink/pull/29496
This is the fourth and final PR of the FLIP-485 implementation, split into a stack of small, independently reviewable PRs under the umbrella issue [FLINK-38071](https://issues.apache.org/jira/browse/FLINK-38071). Landing order: | Step | Sub-task | Scope | |---|---|---| | PR-1 ✅ merged | [FLINK-40292](https://issues.apache.org/jira/browse/FLINK-40292) | `UdfMetrics` helper: registration, sampling, timing, exception counting ([#28878](https://github.com/apache/flink/pull/28878)) | | PR-2 ✅ merged | [FLINK-40293](https://issues.apache.org/jira/browse/FLINK-40293) | Config options + sync scalar/table instrumentation ([#28879](https://github.com/apache/flink/pull/28879)) | | PR-3 ✅ merged | [FLINK-40294](https://issues.apache.org/jira/browse/FLINK-40294) | Async scalar/table instrumentation ([#29007](https://github.com/apache/flink/pull/29007)) | | **PR-4 (this PR)** | [FLINK-40295](https://issues.apache.org/jira/browse/FLINK-40295) | User-facing documentation | ## What is the purpose of the change Documents the UDF metrics added by PR-1 to PR-3 on the metrics page, so users can find the two metrics, turn them on, understand what sampling does to the numbers, and see which functions are not covered. ## Brief change log - Add a `UDF` subsection to the system metrics reference in `docs/ops/metrics.md`, listing `udfProcessingTime` (Histogram, nanoseconds) and `udfExceptionCount` (Counter) under the full identifier `<operator_name>.udf.<udf_name>.<metric>`. - Add a `UDF metrics` section after the state access latency and state size tracking sections, following their structure: how to enable it with `table.exec.udf-metric-enabled`, what `table.exec.udf-metric.sample-interval` controls, and the same performance warning. - State the coverage explicitly: scalar and table functions called directly by a query, sync and async. Not covered are process table functions, aggregate functions, functions registered through the deprecated `registerFunction` API, and the functions invoked internally by lookup joins, model prediction, and vector search. The last group matches the instrumentation in PR-2, where only the bridging call sites carry a metric name, and is asserted by `UdfMetricsITCase#testLookupJoinNotMetered`. - The Chinese page carries the same English text. The config option reference (`execution_config_configuration.html`) was already regenerated in PR-2. ## Verifying this change This change is documentation only and has no test coverage. Each statement was checked against the merged code: the option keys and the default of 100 (`ExecutionConfigOptions`), the metric names, the `udf` group and the nanosecond unit (`UdfMetrics`), and the covered call sites (`BridgingSqlFunctionCallGen` and the async correlate entry in `BridgingFunctionGenUtil`). ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): no - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: no - The serializers: no - The runtime per-record code paths (performance sensitive): no - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no - The S3 file system connector: no ## Documentation - Does this pull request introduce a new feature? no, it documents the feature added by PR-1 to PR-3 - If yes, how is the feature documented? not applicable --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes (please specify the tool below) Generated-by: GitHub Copilot CLI (Claude Opus 5.5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
