xBis7 commented on code in PR #53722:
URL: https://github.com/apache/airflow/pull/53722#discussion_r2253873622


##########
airflow-core/src/airflow/jobs/scheduler_job_runner.py:
##########
@@ -2108,18 +2136,43 @@ def _emit_pool_metrics(self, session: Session = 
NEW_SESSION) -> None:
         with DebugTrace.start_span(span_name="emit_pool_metrics", 
component="SchedulerJobRunner") as span:
             pools = Pool.slots_stats(session=session)
             for pool_name, slot_stats in pools.items():
-                Stats.gauge(f"pool.open_slots.{pool_name}", slot_stats["open"])
-                Stats.gauge(f"pool.queued_slots.{pool_name}", 
slot_stats["queued"])
-                Stats.gauge(f"pool.running_slots.{pool_name}", 
slot_stats["running"])
-                Stats.gauge(f"pool.deferred_slots.{pool_name}", 
slot_stats["deferred"])
-                Stats.gauge(f"pool.scheduled_slots.{pool_name}", 
slot_stats["scheduled"])
-
-                # Same metrics with tagging
-                Stats.gauge("pool.open_slots", slot_stats["open"], 
tags={"pool_name": pool_name})
-                Stats.gauge("pool.queued_slots", slot_stats["queued"], 
tags={"pool_name": pool_name})
-                Stats.gauge("pool.running_slots", slot_stats["running"], 
tags={"pool_name": pool_name})
-                Stats.gauge("pool.deferred_slots", slot_stats["deferred"], 
tags={"pool_name": pool_name})
-                Stats.gauge("pool.scheduled_slots", slot_stats["scheduled"], 
tags={"pool_name": pool_name})
+                # If enabled on the config, publish metrics twice,
+                # once with backward compatible name, and then with tags.
+                DualStatsManager.gauge(
+                    f"pool.open_slots.{pool_name}",
+                    "pool.open_slots",
+                    slot_stats["open"],
+                    tags={},
+                    extra_tags={"pool_name": pool_name},
+                )

Review Comment:
   We could iterate over the tags and for each tag, add a dot and the value in 
the name. That would standardize it, but the legacy names don't always follow 
the same format.
   
   For example, in the `dagrun` the legacy name contains just the `dag_id` but 
the tags have extra info.
   
   Here are some examples,
   
   
https://github.com/apache/airflow/blob/e4c01c3b330c68feff7cd7dee0983858e6d6c2d0/airflow-core/src/airflow/models/dagrun.py#L1723-L1728
   
   
https://github.com/apache/airflow/blob/e4c01c3b330c68feff7cd7dee0983858e6d6c2d0/airflow-core/src/airflow/models/dagrun.py#L1153-L1158
   
   and these are the tags
   
   
https://github.com/apache/airflow/blob/e4c01c3b330c68feff7cd7dee0983858e6d6c2d0/airflow-core/src/airflow/models/dagrun.py#L426-L427



-- 
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]

Reply via email to