aws-samples / amazon-omics-tutorials

Apache License 2.0
56 stars 23 forks source link

Monitoring CPU and memory usage #57

Closed hoyu310 closed 1 month ago

hoyu310 commented 1 month ago

For Nextflow workflows, to be able to conveniently find out the actual CPU and memory usage of each run process, is it (optionally) possible to have a copy of the -with-report, -with-trace, and -with-timeline outputs in the S3 output destination?

In your current documentation about monitoring AWS HealthOmics, I tried following the steps to view metrics in the CloudWatch console, but this for me only provided the Metric "CallCount" of Omics CreateWorkflow, StartRun, and DeleteWorkflow, and I couldn't find things related to CPU and memory usage.

wleepang commented 1 month ago

Generating Nextflow specific report, trace, and timeline outputs is not supported in HealthOmics. Enabling them in nextflow.config will be ignored.

However, HealthOmics provides alternatives that are available across all workflow languages supported. All of the information you would typically find in Nextflow trace and timeline outputs are available in a run's "manifest" log. These are generated when a run completes and are a CloudWatch log-group+log-stream of the form:

log-group: /aws/omics/WorkflowLog
log-stream: manifest/run/{{run-id}}/{{run-uuid}}

This log-stream will have a first event that captures:

All remaining events will have details for all the tasks executed. This includes

Information in the "manifest" log is used by tooling, like the run-analyzer, to create cost and performance analysis reports that can help you optimize your workflow.

hoyu310 commented 1 month ago

Thank you! I see all the resource metrics now in the log-stream path you mentioned, apologies that previously I didn't 'Expand row' and missed it.