Add logging to the `WebHooks::AutoDisabling` concern
What does this MR do and why?
- Add a
Gitlab::WebHooks::Loggerclass - Add logging to the
WebHooks::AutoDisablingconcern
This logging will help the EP team investigate auto-disabling of the gitlab-org group webhook (context: gitlab-org/quality/triage-ops#1373 (closed)).
Screenshots or screen recordings
{"severity":"INFO","time":"2023-08-01T16:08:32.206Z","correlation_id":"01H6RXP8NEAZDMZTZRGNGBFBN1","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":1}
{"severity":"INFO","time":"2023-08-01T16:08:32.304Z","correlation_id":"01H6RXPBAB7ZJZ52NB8Q01BJ4B","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":2}
{"severity":"INFO","time":"2023-08-01T16:09:26.468Z","correlation_id":"01H6RXRZB6EMH23NZYHGYAS14P","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":3}
{"severity":"INFO","time":"2023-08-01T16:09:30.248Z","correlation_id":"01H6RXS33VWV16AYFC5PNHB300","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":4,"backoff_count":1,"disabled_until":"2023-08-01T16:10:30.248Z"}
{"severity":"INFO","time":"2023-08-01T16:11:01.354Z","correlation_id":"01H6RXVWX3TZJVJW4R6VYKZ6S3","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":5,"backoff_count":2,"disabled_until":"2023-08-01T16:13:01.354Z"}
{"severity":"INFO","time":"2023-08-01T16:14:48.878Z","correlation_id":"01H6RY2TRMK7D606QZ1B2ENVMD","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":6,"backoff_count":3,"disabled_until":"2023-08-01T16:18:48.878Z"}
{"severity":"INFO","time":"2023-08-01T16:22:50.081Z","correlation_id":"01H6RYCJBJ0TYHXM6WT0N5TW2Z","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":7,"backoff_count":4,"disabled_until":"2023-08-01T16:30:50.080Z"}
{"severity":"INFO","time":"2023-08-01T16:22:50.336Z","correlation_id":"01H6RYDWT7GJ5D4C0MEJJTE768","meta.caller_id":"WebHooks::LogExecutionWorker","meta.remote_ip":"172.16.123.1","meta.feature_category":"webhooks","meta.user":"root","meta.user_id":1,"meta.project":"gitlab-org/gitlab-shell","meta.root_namespace":"gitlab-org","meta.client_id":"user/1","meta.root_caller_id":"Projects::NotesController#create","meta.related_class":"GroupHook","meta.subscription_plan":"default","hook_id":1,"action":"backoff","recent_failures":8,"backoff_count":5,"disabled_until":"2023-08-01T16:38:50.335Z"}
How to set up and validate locally
- Create a group webhook for the local
gitlab-orggroup that points to https://httpstat.us/500 - Tail the
log/web_hooks.loglog file:tail -f log/web_hooks.log - Create issues or issue notes and see log lines being added
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Rémy Coutable