openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ruediger Maass" <ruediger.ma...@de.ibm.com>
Subject Re: Allow decision about action result inclusion in logs on a per call basis
Date Thu, 05 Sep 2019 23:31:52 GMT
Hi there,

may I ask for comments? Annotations for the decision whether results 
should be added in the action log or not would not fix the problem we try 
to solve and is a different, independent question. 

We want to add error information in the log but not print results in the 
good (i.e., success) case. This can only be done if one inspects the 
activation 'success' field (or the 'error' field in the result) and in 
this case log the result that contains the error information. We could 
hard-code a strategy in `ActivationFileStorage`. But this has the 
disadvantage that it would change the default behavior of OpenWhisk and 
not everyone might like this and may have different opinions about the 
"right" strategy. Therefore we propose the more flexible way of 
introducing a flag, let anyone decide on the right strategy, and not 
hard-coding a strategy. In the default case, there would be no behavioral 
change of OpenWhisk with the flag, i.e. no one needs to care about the 
flag if not wanted. But it would help us and maybe others to solve the 
described problem.

Thanks, Ruediger



From:   Ruediger Maass/Germany/IBM
To:     dev@openwhisk.apache.org
Date:   04/09/2019 11:07
Subject:        Re: Allow decision about action result inclusion in logs 
on a per call basis


Let me please add the information that the behavior of OpenWhisk is not 
changed by this fix. The provided feature must be actively chosen.

Thanks, Ruediger




From:   "Ruediger Maass" <ruediger.maass@de.ibm.com>
To:     dev@openwhisk.apache.org
Date:   04/09/2019 10:42
Subject:        [EXTERNAL] Re: Allow decision about action result 
inclusion in logs on a per call basis



Thanks for the discussion! 

This PR is only about suppressing results in action logs. If a user still 
wants to have the result in the action log then he or she can simply add a 

log statement in the action for that. Why should we introduce a new 
mechanism for this like an annotation for automatically adding the result 
to the log (or not)? Seems complicated. 

In our specific case we need the flag per invocation because we want to 
the add the result in error cases. For example: main is not defined, 
compile error in action, etc. see below:

1) no main() in js 
        "result": {
            "error": "Initialization has failed due to: ReferenceError: 
main is not defined\n
                at eval (eval at <anonymous> 
(/nodejsAction/runner.js:79:109), <anonymous>:8:8)\n
                at eval (eval at <anonymous> 
(/nodejsAction/runner.js:79:109), <anonymous>:8:14)\n
                at NodeActionRunner.init (/nodejsAction/runner.js:79:45)\n
                at doInit (/nodejsAction/src/service.js:142:31)\n
                at initCode (/nodejsAction/src/service.js:81:24)\n
                at /nodejsAction/app.js:69:13\n
                at Layer.handle [as handle_request] 
(/node_modules/express/lib/router/layer.js:95:5)\n
                at next 
(/node_modules/express/lib/router/route.js:131:13)\n
                at Route.dispatch 
(/node_modules/express/lib/router/route.js:112:3)\n
                at Layer.handle [as handle_request] 
(/node_modules/express/lib/router/layer.js:95:5)"
 
2) compile Error
        "result": {
            "error": "Initialization has failed due to: SyntaxError: 
Unexpected identifier\n
                at NodeActionRunner.init 
(/nodejsAction/runner.js:79:109)\n
                at doInit (/nodejsAction/src/service.js:142:31)\n
                at initCode (/nodejsAction/src/service.js:81:24)\n
                at /nodejsAction/app.js:69:13\n
                at Layer.handle [as handle_request] 
(/node_modules/express/lib/router/layer.js:95:5)\n
                at next 
(/node_modules/express/lib/router/route.js:131:13)\n
                at Route.dispatch 
(/node_modules/express/lib/router/route.js:112:3)\n
                at Layer.handle [as handle_request] 
(/node_modules/express/lib/router/layer.js:95:5)\n
                at /node_modules/express/lib/router/index.js:277:22\n
                at Function.process_params 
(/node_modules/express/lib/router/index.js:330:12)"


This kind of information cannot be logged anywhere else and does not 
contain sensible information. It is very helpful information for the 
customer to correct the action. So we do not want to suppress this 
information.



From:   James Thomas <jthomas.uk@gmail.com>
To:     dev@openwhisk.apache.org
Date:   03/09/2019 15:24
Subject:        [EXTERNAL] Re: Allow decision about action result 
inclusion in logs on a per call basis



This is a sensible change and I agree with what Rodric has suggested:
can we make this a per-action annotation?

On Tue, 3 Sep 2019 at 13:28, Rodric Rabbah <rodric@gmail.com> wrote:
>
> > Action results may contain sensible data that should not be logged.
>
> I interpret this to mean: not stored in the activation record.
>
> If this is what you mean, why not make this a feature controlled per 
action
> using an annotation and let the user decide: ok to save the result, not 
ok
> to save the result, only save the result on error.
>
> -r
>
> On Tue, Sep 3, 2019 at 8:17 AM Ruediger Maass 
<ruediger.maass@de.ibm.com>
> wrote:
>
> > Action results may contain sensible data that should not be logged. 
There
> > is a system configuration flag (writeResultToFile) that can be used to
> > switch on or off the result inclusion in logs. But this is a global 
switch
> > that holds for all activations. In our case we want to able to decide 
per
> > activation whether or not the result should be included in the log or 
not.
> > In our special case we want results to be included in case of errors 
(in
> > other words, our predicate function for the decision is: 'Does the 
result
> > contain an error field?'). But also other decision logic may be
> > applicable.
> >
> > This PR 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_openwhisk_pull_4604&d=DwIBaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=X0kuppcoBkurjGK5dhY1vViAOVizrmBkK-unFKRbRys&m=Omwt2ZmfdyerpXiU-HbIwPEvr7znKYAA4DFFhJiyk28&s=3z4nZkA573qZvgihbr448hMHPhnIC4zy7Y8MeuAENU0&e=


 is a small change
> > that extends ActivationFileStorage.
> >
> > Please help and comment on the PR.
> >
> > Thank you, Ruediger
> >
> >



-- 
Regards,
James Thomas











Mime
View raw message