Delegate beam metrics to runners to avoid forwarding updates, i.e., extract updates from beam metrics and commit updates in runners.
For Flink/Spark runners, we can reference metrics within runner's metrics system in beam pipelines and update them directly without forwarding.
Imported from Jira BEAM-2604. Original Jira may contain additional context.
Reported by: Cody.
Subtask of issue #18470