Webhook Execution Logs make Email This Issue for Jira administrators possible to monitor, which webhooks have been called upon what incidents and whether the associated HTTPs requests have been dispatched successfully.
In a typical setting, if webhooks are called successfully, the admins - or all other addressed parties - are informed about the source incidents via the preferred channel, for which the webhook was configured. On the other hand, if the webhook itself does not work (properly), the incidents neither will reach nor will be reported in the receiving system, so the only way to learn about such an issue is to check the logs of webhook executions. Apparently, issues with dispatching the webhook calls cannot be reported in style of push notifications, they must be actively checked (polled) every now and then.
The listing page of webhook execution logs has a simple, pretty fixed structure: the logs are ordered by their time of execution, in a descending order (i.e. with the latest on top), 100 items per page.
Assuming that only the most recent logs may refer to the most relevant (and still exisiting) issues, the execution logs can neither be filtered, nor deleted. They are automatically purged after 90 days.
Each log entry contains the most essential details about the incident that triggered the webhook call and some additional information about the execution - especially in the event of some failure, in order to make the troubleshooting possible.
As some fields may contain lengthy text (for example, error messages extended with stacktrace), these parts are displayed as collapsed by default, but they can be expanded one-by-one upon need.
At the time, when webhooks are actually called, all placeholders (i.e. Velocity variables) are replaced by their current value. In the execution log, the substituted parameters actually applied in the request are shown, and as such, the correctness of templates can be easily validated upon a failed attempt to send a test notification.
The following attributes are revealed in a log entry:
Attribute | Description | Column |
---|---|---|
Name | Refers to the webhook, whose execution this entity represents. | Yes |
Event | The incident type (triggering event), for which the webhook was configured. | Yes |
Entity name | The name of the entity (Incoming Connection, Outgoing Connection or Mail Handler), for which the incident occured. | Yes |
Error Message | The “message” value that was rendered in the request body. In most cases, this is the same message that can be found in the Error Queue of the failing component. | Yes |
Time of Execution | Timestamp indicating when this execution entity was created (with QUEUED status). Webhooks are executed in an asynchronous manner, typically within a few moments after their creation. If it tooks more, the webhook execution reamains in QUEUED status until the actual dispatch. | Yes |
Status | One of the following values
| Yes |
Service URL called | The final URL that was actually called. | No |
Webhook Response | The HTTPs status code and message received from the remote endpoint (i.e. the response of the receiving service). The response is parsed in a minimalistic way only, it is presented in a plain format (as received). | No |
Request Headers Executed | The final generated Request Header that was sent with the request. Due to the pecularities of the library being used for dispatching the HTTPs request, the Content-Type header is not listed here, but it is always included included in the real request headers with the value of “application/json“. | No |
Request Body Executed | The final generated Request Body that was sent with the request. | No |
Failure Reason | In the event of a failure (FAILED status), this attribute shows the root cause, potentially an error message and stacktrace. If the webhook execution resulted in SUCCESS state (or still QUEUED), this field is hidden. | No |