This was a pretty simple change, so to make things concrete I have PRs with a prototype of the enabling change in the invoker [1] and a change to the nodejs runtime to emit the start sentinels [2].
If we go ahead with this design, here's an example from an action that writes one line to stdout and no lines to stderr: stdout stream: XXX_THE_START_OF_A_WHISK_ACTIVATION_XXX with id cafca5b74be94eb8bca5b74be9beb80f for namespace guest Here's a friendly message XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX stderr stream: XXX_THE_START_OF_A_WHISK_ACTIVATION_XXX with id cafca5b74be94eb8bca5b74be9beb80f for namespace guest XXX_THE_END_OF_A_WHISK_ACTIVATION_XXX It should be really straightforward to write a streaming agent that reads the json formatted logstreams and uses the START sentinels to keep track of the activationId that should be injected into each logline and the namespace to associate that logline with to the platform logging service. Arguably the namespace information is redundant since all activations that run in the container belong to the same namespace, but it seemed like including it could make the processing marginally simpler. Pausing for feedback before doing any more of the runtimes... --dave [1] https://github.com/apache/incubator-openwhisk/pull/3974 [2] https://github.com/apache/incubator-openwhisk-runtime-nodejs/pull/81
