HyperPod Slurm observability improvement - #857
Conversation
* Adding Dashboard Custom Resource for Slurm Observability template * Fixing parameters for template
* Fixing parameters for template * Updating observability custom resource lambda * Updating json file for exporter metrics
* Updating EFA, Node and FSx metrics for slurm * Updating OTEL Config, Adding cfn params for observability template, updating dashboard metrics * Updating zip for dashboard
* Updating Node Dashboard JSON * Updating Node Dashboard JSON
nghtm
left a comment
There was a problem hiding this comment.
Concerns about several hard coded resources, adjustments made to docker installation in LCS
| class ObservabilityConfig: | ||
|
|
||
| # Prometheus remote write URL | ||
| prometheus_remote_write_url = "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-abcd1234-abcd-1234-ab12-1234abcd1234/api/v1/remote_write" |
There was a problem hiding this comment.
Why is this hardcoded to an AMP URL?!
There was a problem hiding this comment.
This is a placeholder URL (used dummy ID with 1234, abcd, etc). Customer needs to replace with their URL. I can add additional comment to explain that.
|
|
||
| from config import ObservabilityConfig | ||
|
|
||
| ExecuteBashScript("./utils/install_docker.sh").run() |
There was a problem hiding this comment.
Docker should be installed on all SMHP nodes, regardless of if customer enables observability or not.
There was a problem hiding this comment.
"install_docker.sh" is called when "enable_docker_enroot_pyxis" is True or "enable_observability" is True, not always. (This PR is not changing this condition.)
| @@ -0,0 +1,47 @@ | |||
| # Clocks | |||
There was a problem hiding this comment.
Do we need to create and maintain a new file here, or can we just use:
There was a problem hiding this comment.
Wanted to put these two configuration files (basic and advanced) side by side in a single place, and download together with lifecycle script itself, just to avoid additional HTTP download. We can delete this file once the full production version of solution comes. But please let me know if this is a blocker.
| IMAGE="nvcr.io/nvidia/k8s/dcgm-exporter:${DCGM_EXPORTER_VERSION}" | ||
| METRICS_CSV_URL="https://raw.githubusercontent.com/aws-samples/awsome-distributed-training/refs/heads/main/4.validation_and_observability/4.prometheus-grafana/dcgm-metrics.csv" | ||
| METRICS_CSV_PATH="/tmp/dcgm-metrics.csv" | ||
| ECR_ACCOUNT_ID=602401143452 |
There was a problem hiding this comment.
This is EKS add-on's ECR repo - officially documented here:
https://docs.aws.amazon.com/eks/latest/userguide/add-ons-images.html
I can add comment to clarify this point.
| # Define the container name | ||
| CONTAINER_NAME="efa-exporter" | ||
|
|
||
| ECR_ACCOUNT_ID=602401143452 |
There was a problem hiding this comment.
This is EKS add-on's ECR repo - officially documented here:
https://docs.aws.amazon.com/eks/latest/userguide/add-ons-images.html
I can add comment to clarify this point.
| # Define the container name | ||
| CONTAINER_NAME="node-exporter" | ||
|
|
||
| ECR_ACCOUNT_ID=602401143452 |
There was a problem hiding this comment.
This is EKS add-on's ECR repo - officially documented here:
https://docs.aws.amazon.com/eks/latest/userguide/add-ons-images.html
I can add comment to clarify this point.
| IMAGE="public.ecr.aws/hpc-cloud/efa-node-exporter:latest" | ||
| CONTAINER_NAME="otel-collector" | ||
|
|
||
| ECR_ACCOUNT_ID=602401143452 |
There was a problem hiding this comment.
This is EKS add-on's ECR repo - officially documented here:
https://docs.aws.amazon.com/eks/latest/userguide/add-ons-images.html
I can add comment to clarify this point.
nghtm
left a comment
There was a problem hiding this comment.
Approving as long as comments are resolved. Requesting future PRs for LCS be opened against new LCS repo being maintained by Mark Yu's team
Description of changes: - Updating the CloudFormation template for the HyperPod Slurm observability stack. Now it automatically register Prometheus as the data-source for Grafana, and installs pre-configured dashboard to Grafana. - Updating lifecycle script to install metric exporters and OTEL collector in each node - more scalable architecture similar to the HyperPod EKS Observability. - Added "ObservabilityConfig" class in config.py. It has Prometheus Remote Write URL and advanced flag. For more details - https://catalog.workshops.aws/sagemaker-hyperpod/en-US/09-observability --------- Co-authored-by: Madhubalasri-B <madbal@amazon.com>
Description of changes: - Updating the CloudFormation template for the HyperPod Slurm observability stack. Now it automatically register Prometheus as the data-source for Grafana, and installs pre-configured dashboard to Grafana. - Updating lifecycle script to install metric exporters and OTEL collector in each node - more scalable architecture similar to the HyperPod EKS Observability. - Added "ObservabilityConfig" class in config.py. It has Prometheus Remote Write URL and advanced flag. For more details - https://catalog.workshops.aws/sagemaker-hyperpod/en-US/09-observability --------- Co-authored-by: Madhubalasri-B <madbal@amazon.com>
* Removed inclusion of nsight * Boilerplate settings * Added nsys profile for BioNemo * Updated twith comments from PR Signed-off-by: Ankur Srivastava <awsankur@amazon.com> * Fix/readme - fix borked logo (#356) * Change readme to refer to recent test cases & assets * Remove borked ascii logo * Deleting SMP/SMDDP test-cases based on PM's input (#617) * HyperPod Slurm observability improvement (#857) Description of changes: - Updating the CloudFormation template for the HyperPod Slurm observability stack. Now it automatically register Prometheus as the data-source for Grafana, and installs pre-configured dashboard to Grafana. - Updating lifecycle script to install metric exporters and OTEL collector in each node - more scalable architecture similar to the HyperPod EKS Observability. - Added "ObservabilityConfig" class in config.py. It has Prometheus Remote Write URL and advanced flag. For more details - https://catalog.workshops.aws/sagemaker-hyperpod/en-US/09-observability --------- Co-authored-by: Madhubalasri-B <madbal@amazon.com> * Add optional Training Plan support for HyperPod instance groups * Standardize instance_groups to list objects with optional training plan ARN * chore: revert unrelated regressions from bad rebase --------- Signed-off-by: Ankur Srivastava <awsankur@amazon.com> Co-authored-by: Pierre-Yves Aquilanti <pierreya@amazon.com> Co-authored-by: Verdi March <marcverd@amazon.com> Co-authored-by: Ankur Srivastava <awsankur@amazon.com> Co-authored-by: Pierre-Yves <62559210+perifaws@users.noreply.github.com> Co-authored-by: Tomonori Shimomura <59209764+shimomut@users.noreply.github.com> Co-authored-by: Madhubalasri-B <madbal@amazon.com> Co-authored-by: newabdosheham <ubuntu@L007313.mbzu.ae>
Description of changes:
For more details - https://catalog.workshops.aws/sagemaker-hyperpod/en-US/09-observability
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.