New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Save built-in reports as Tower reports #4760
Conversation
Signed-off-by: Ben Sherman <bentshermann@gmail.com>
✅ Deploy Preview for nextflow-docs-staging ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Hi! how are the reports saved? I mean the names. |
They will be lumped in with the user-defined reports. For this reason I made the display name "Nextflow execution report", "Nextflow timeline report", etc so that the Nextflow reports are at least grouped together As a second iteration, we could have the platform reports tab display "runtime" reports separately from "user" reports, and Nextflow could denote this type when it sends the report information to the platform |
thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The implementation seems correct.
My only concern is that it might be better to make this configurable somewhere. With this approach, if the report/timeline/trace/dag are enabled, they will always be added as Tower reports, and there is no way to keep generating them without adding them as Tower reports.
This should be optional. Many users will still want to generate the report/timeline/trace/dag files without showing them on the Tower reports tab.
I was thinking we could enable it only if the report path is included in the |
Signed-off-by: Ben Sherman <bentshermann@gmail.com>
void publishRuntimeReports() { | ||
final config = session.config | ||
final files = [] | ||
|
||
if( config.navigate('report.enabled') ) | ||
files << config.navigate('report.file', ReportObserver.DEF_FILE_NAME) | ||
|
||
if( config.navigate('timeline.enabled') ) | ||
files << config.navigate('timeline.file', TimelineObserver.DEF_FILE_NAME) | ||
|
||
if( config.navigate('trace.enabled') ) | ||
files << config.navigate('trace.file', TraceFileObserver.DEF_FILE_NAME) | ||
|
||
if( config.navigate('dag.enabled') ) | ||
files << config.navigate('dag.file', GraphObserver.DEF_FILE_NAME) | ||
|
||
for( def file : files ) | ||
filePublish( (file as Path).complete() ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems overlapping with the logic in the LogsHandler
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is the logs handler saving the timeline report but not the others?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because that was the requirement
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What requirement? 😆
In any case, the logs handler is saving the timeline file whereas this PR is adding the built-in reports to the Tower reports list. So there is no overlap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nearly the timeline is on both
Therefore if the user provides a custom path it breaks the download in the platform frontend.
But I agree is not a problem of this PR. It should be solved in the platform
Should we document this somewhere? |
Probably in the platform docs: https://docs.seqera.io/platform/23.4.0/reports/overview |
Signed-off-by: Ben Sherman <bentshermann@gmail.com> Signed-off-by: Niklas Schandry <niklas@bio.lmu.de>
Signed-off-by: Ben Sherman <bentshermann@gmail.com> Signed-off-by: Niklas Schandry <niklas@bio.lmu.de>
Close #3460
This PR saves the built-in reports as Tower reports by inspecting the Nextflow config. If a report is enabled, it will be eagerly sent to the reports file on workflow completion.
Note that if a report fails to create for some reason, it will be displayed in the platform run page but will not load since the file doesn't exist. In this case, the failure will have been logged as a warning to the console output.