icgc-argo / workflow-relay

Collecting information from workflows to report
GNU Affero General Public License v3.0
1 stars 0 forks source link

GA4GH conform stdout/stderr logging #104

Open bnwlf opened 3 years ago

bnwlf commented 3 years ago

Hi together! The GA4GH standard for a WES server assumes accessible stdout and stderr logs at the rest API. Currently, the fields are provided but empty. I know that the nextflow weblog is not capabile to provide that information. Nevertheless, standard conformity in this point would be nice! I think it should be possible to access this data via the nextflow log functionallity or by accessing the k8s logs of the pod. Probably it would be a wise decision to implement a switch (maybe opt-in) for this feature since it could waste much disk space. This feature could help to debug workflows by the users themselves. Example: the nextflow hello example quits with an empty output. Thanks ! Ben

lepsalex commented 3 years ago

Hi Ben!

stderr should be populating when there is an error, that is currently how we view all of our errors both using the WES REST API as well as our GQL extension. That said, stdout is just empty as you observed. This is on our roadmap to add but just hasn't been a high enough priority for us internally.

As you said, Nextflow weblog does not provide this functionality so our options are to fork Nextflow and add it (something we want to avoid), or to do something on the K8s side as we've done to solve other issues. The only issue with that is since we are planning on supporting other platforms such as SGE we would need to reimplement that solution for each one which is also not ideal. I've also looked at the Nextflow logs command and I think something like that would be ideal, we just need to get the resources to design and implement the solution.

Obviously stderr needs to be there right away so can you confirm that you are not seeing error logs on jobs with state EXECUTOR_ERROR?

Secondly, how much is not having stdout impacting you for what you are doing now?