EventListener logs
From the command-line, the easiest way to get the logs is:
$ tkn eventlistener logs
See here for more uses of the config.
Alternatively, you can get them with kubectl:
$ kubectl logs deploy/el-<insert name of eventlistener> -n <namespace>
You can get a list of EventListeners in a namespace with:
$ kubectl get el -n <namespace>
NAME ADDRESS AVAILABLE REASON
test-event-listener http://el-test-event-listener.default.svc.cluster.local:8080 True MinimumReplicasAvailable
Enable Debug Logging
Triggers creates a Kubernetes ConfigMap in the namespace that the EventListener
is created in called config-logging-triggers
.
You can see this with:
$ kubectl get cm -n <namespace>
NAME DATA AGE
config-logging-triggers 2 28m
apiVersion: v1
kind: ConfigMap
metadata:
name: config-logging-triggers
data:
loglevel.eventlistener: info
zap-logger-config: '{"level": "info","development": false,"sampling": {"initial":
100,"thereafter": 100},"outputPaths": ["stdout"],"errorOutputPaths": ["stderr"],"encoding":
"json","encoderConfig": {"timeKey": "ts","levelKey": "level","nameKey": "logger","callerKey":
"caller","messageKey": "msg","stacktraceKey": "stacktrace","lineEnding": "","levelEncoder":
"","timeEncoder": "iso8601","durationEncoder": "","callerEncoder": ""}}'
Enable debug level logging
The simplest way to enable additional debug logging is:
$ kubectl patch cm config-logging-triggers -n <namespace> -p '{"data": {"loglevel.eventlistener": "debug"}}'
The EventListener should log out that it has changed the log level:
{"level":"info","ts":"2021-02-10T08:42:10.950Z","logger":"eventlistener","caller":"logging/config.go:207","msg":"Updating logging level for eventlistener from debug to info.","knative.dev/controller":"eventlistener","logging.googleapis.com/labels":{},"logging.googleapis.com/sourceLocation":{"file":"knative.dev/pkg@v0.0.0-20210107022335-51c72e24c179/logging/config.go","line":"207","function":"knative.dev/pkg/logging.UpdateLevelFromConfigMap.func1"}}
When debug
level is enabled, each HTTP request that the EventListener receives
will be logged with additional information:
{"level":"debug","ts":"2021-02-10T08:42:30.915Z","logger":"eventlistener","caller":"sink/sink.go:93","msg":"EventListener: demo-event-listener in Namespace: default handling event (EventID: 9x4mb) with path /testing, payload: {\"testing\": \"value\"} and header: map[Accept:[*/*] Content-Length:[20] Content-Type:[application/x-www-form-urlencoded] User-Agent:[curl/7.61.1] X-Auth:[testing]]","knative.dev/controller":"eventlistener","/triggers-eventid":"9x4mb","logging.googleapis.com/labels":{},"logging.googleapis.com/sourceLocation":{"file":"github.com/tektoncd/triggers/pkg/sink/sink.go","line":"93","function":"github.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent"}}
WARNING: The headers are logged out verbatim, if your client is sending any sort of sensitive data in the headers, these will be logged out.
Return to info level debugging
You can restore it to the default logging level info
with:
$ kubectl patch cm config-logging-triggers -n <namespace> -p '{"data": {"loglevel.eventlistener": "info"}}'
Debugging JSONPath issues
A{"level":"error","ts":"2021-02-10T08:43:47.409Z","logger":"eventlistener","caller":"sink/sink.go:230","msg":"failed to ApplyEventValuesToParams: failed to replace JSONPath value for param message: $(body.message): message is not found","knative.dev/controller":"eventlistener","/triggers-eventid":"c8f88","/trigger":"demo-trigger","logging.googleapis.com/labels":{},"logging.googleapis.com/sourceLocation":{"file":"github.com/tektoncd/triggers/pkg/sink/sink.go","line":"230","function":"github.com/tektoncd/triggers/pkg/sink.Sink.processTrigger"},"stacktrace":"github.com/tektoncd/triggers/pkg/sink.Sink.processTrigger\n\tgithub.com/tektoncd/triggers/pkg/sink/sink.go:230\ngithub.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent.func1\n\tgithub.com/tektoncd/triggers/pkg/sink/sink.go:125"}
This means that the JSON body received by the interceptor likely doesn’t have the structure you expect, you will probably need to capture the request somehow and inspect it.
Debugging ’no X-Hub-Signature set’ and ’no X-GitLab-Token header set'
GitHub sends a header X-Hub-Signature
when it’s sending a hook that is
configured with a secret, and GitLab sends the X-GitLab-Token
header.
This error can occur in two different ways, if you set a secret in the GitHub or GitLab interceptor, but don’t configure the corresponding hook with a secret, you will trigger these errors.
Alternatively this can occur when you have unsigned requests being routed through an interceptor that requires them.
This can be a side-effect of your Trigger’s interceptor stack, as all interceptors are processed concurrently, so triggers that have a GitHub interceptor will log this out, even though another trigger might successfully process the request.
Feedback
Was this page helpful?
Thanks! Tell us how we can further improve.
Sorry about that. Tell us how we can further improve.