Adds a new DAG to test "Jobset Ready Healthiness" metric - #156
Adds a new DAG to test "Jobset Ready Healthiness" metric#156QuinnMMcGarry wants to merge 10 commits into
Conversation
|
|
||
| for machine in MachineConfigMap: | ||
| config = machine.value | ||
| cluster_info = node_pool.Info( |
There was a problem hiding this comment.
new configuration way: PR-1097
I'll rebase the working branch later (Friday or next Monday)
| Each workload is a JSON-escaped string, ready to be used as a shell argument. | ||
| """ | ||
|
|
||
| READY_TPU = json.dumps( |
There was a problem hiding this comment.
From the script context, it appears that this workload script keeps the jobset in “Ready” for ~1000s, while JAX_TPU_BENCHMARK is designed to fully utilize the TPU.
If that's the case, can we rename the workload script to something more descriptive?
| # Can be moved to jobset_util.py | ||
| @task.sensor(poke_interval=30, timeout=900, mode="reschedule") | ||
| def validate_replica_number( |
There was a problem hiding this comment.
it seems wait_for_jobset_status_occurrence is not used, perhaps we can modify and use that one
| with models.DAG( # pylint: disable=unexpected-keyword-arg | ||
| dag_id="jobset_healthiness_ready", | ||
| start_date=datetime.datetime(2025, 8, 10), | ||
| schedule="00 03 * * *", |
There was a problem hiding this comment.
- Prevent scheduling on non-PROD Composer environments.
- Schedule near—but not overlapping with—our other DAGs.
There was a problem hiding this comment.
For 2, do we/should we have a task to create a schedule for DAGs we which are running or in development?
0535667 to
fdcca93
Compare
aea57e1 to
7da7f18
Compare
|
code base outdated clue#1: https://github.com/CIeNET-International/ml-auto-solutions-3/pull/156/commits |
acc6fdb to
fba8836
Compare
I used |
fba8836 to
caf272f
Compare
It's hard to diagnose how it happened without reproducible details. A plain, non-interactive rebase (including
Squashing can be OK depending on the goal. For now, I’d suggest avoiding squash in your PRs while you’re still ramping up on Git — keeping the intermediate commits gives you a clear trail to debug metadata/history issues. If you squash every time, you lose that evidence and it becomes hard to learn which operation caused the problem. You can squash later once the workflow is stable.
I understand the intent, but in a collaborative repo the PR needs to be in a reviewable state before it’s submitted. It’s not just about the code diff — branches, commits, and metadata also need to be correct so we don’t disrupt others or make debugging harder. Review bandwidth is limited. It’s totally fair if you’re still getting comfortable with Git. What helps is performing the lightweight checks we discussed more frequently around Git operations. Put differently: when we have no clue in production, we add logs—the same principle applies here. Please instrument your workflow so it’s observable. |
fdcca93 to
846aa8d
Compare
|
Before I left about two weeks ago, I repointed the old working branch to Google’s master branch in case a production hotfix was needed. Now that I’m back and we have a new working branch, please rebase your branch correctly—verify the base branch and merge target, and ensure the commit history and metadata are clean. You may encounter failures depending on which commands you use—there is no one-size-fits-all command. The key is to maintain sufficient traceability so you and others can troubleshoot and fix issues properly. Please also note that we review each PR with its associated metadata as a whole to keep the process efficient and avoid back-and-forth or duplicate effort. Authors are expected to submit complete, self-contained PRs; partial reviews shift the author’s work onto reviewers and fragment discussion. End-to-end reviews also preserve a single source of truth—feedback stays in one place rather than splitting into conflicting threads. |
bb2b8ee to
0973a13
Compare
I rebased onto origin/dev, and have ensured Git CLI, GitGraph, and GitHub UI, all show a total of 4 commits, in the correct order, with the Description/Author/Hash. And all Git checks pass. Does the Git committing look fine as it is? |
e1962d2 to
363b1b9
Compare
| ) as create_node_pool: | ||
| create_first_node_pool = node_pool.create.override( | ||
| task_id="node_pool_1", | ||
| retries=2, |
There was a problem hiding this comment.
please reconsider all the "retries" setups
based on both consistency (compare with the ones we automated) and necessity
(discuss here in this thread)
There was a problem hiding this comment.
Realistically, any given run probably does not need any retries. But, on a larger scale, it would not be surprising to see an occasional failure happen due to some hardware or software issue outside our control which could have been fixed by a retry. That being said, if 1 retry does not work, the chance that 2 retries will work is even lower, and probably unneeded
There was a problem hiding this comment.
so it looks like this "retries" config does not help much on stability,
on the other hand, our work is more like an end to end test, one of the purposes is to find possible regression issues and/or HW/SW outage, so let's not do "retries" by default
There was a problem hiding this comment.
Understood. Retries removed
1c93601 to
1ef36b1
Compare
65e3f42 to
cb3b7b7
Compare
d5e60d3 to
1ba128e
Compare
- Adds an entire new DAG to test this metric automatically - Adds the "validate_replica_number" function - Adds a "READY_TPU" Jobset in jobset_util.py -Fix automatic cluster naming script -Created "validate_jobset_replica_number" funtion in jobset_util.py -Changed workload name to "IDLE_READY_TPU_20M" -Changed schedule time and added statement to only run on PROD environment Changed to new nodepool creation format Remove unused DAG flow Fix format/linting Linting fix Delete dags/dags/tpu_observability directory Delete dags/airflow_monitoring.py
-selector task -new global variable syntax -chain instead of ">>"
…et_util.py file Refactor for new DAG formatting
new jobset storage method. Since "jobset_confifg.replicas" cannot be accessed in DAG itself.
533eb9b to
522f718
Compare
b81c30b to
a12e062
Compare
badfd13 to
721afcd
Compare
|
covered by #256 |






Description
This change adds a new DAG that automatically checks if the correct number of replicas appear for a jobset's "Ready" status.
Tests
Airflow / Composer Environment
Required Variables
Cluster Information (This DAG requires an existing cluster)
PROJECT_ID: cienet-cmcsCLUSTER_NAME: tpu-observability-automation-prodLOCATION: us-central1NODE_LOCATIONS: us-central1-bNode Pool / Machine Configuration
NUM_NODE_POOL: 2NODE_POOL_NAMES: jobset-healthiness-ready-v6e / jobset-healthiness-ready-v6e-2NUM_NODES: 4MACHINE_TYPE: ct6e-standard-4tTPU_TOPOLOGY: 4x4Checklist