From 0511fa70d03d3487e3a94a13766d9c02bfd79507 Mon Sep 17 00:00:00 2001 From: Athanasios Voutsadakis Date: Tue, 31 Jul 2018 16:18:41 +0100 Subject: [PATCH 1/4] Redirect stderr of workers to /dev/null Celery prints its own stuff to stderr in a non-json format. These get picked up by syslog drain and are shipped to logstash together with the normal json-formatted logs resulting in duplicate information and reducing the usability of the logs. --- manifest-delivery-base.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/manifest-delivery-base.yml b/manifest-delivery-base.yml index 7f793726a..5ce75e7fc 100644 --- a/manifest-delivery-base.yml +++ b/manifest-delivery-base.yml @@ -56,12 +56,12 @@ applications: NOTIFY_APP_NAME: delivery-celery-beat - name: notify-delivery-worker-database - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q database-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q database-tasks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-database - name: notify-delivery-worker-research - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=5 -Q research-mode-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=5 -Q research-mode-tasks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-research @@ -72,33 +72,33 @@ applications: NOTIFY_APP_NAME: delivery-worker-sender - name: notify-delivery-worker-periodic - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=2 -Q periodic-tasks,statistics-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=2 -Q periodic-tasks,statistics-tasks 2> /dev/null instances: 1 env: NOTIFY_APP_NAME: delivery-worker-periodic - name: notify-delivery-worker-priority - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=5 -Q priority-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=5 -Q priority-tasks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-priority - name: notify-delivery-worker - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q job-tasks,retry-tasks,create-letters-pdf-tasks,letter-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q job-tasks,retry-tasks,create-letters-pdf-tasks,letter-tasks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker # Only consume the notify-internal-tasks queue on this app so that Notify messages are processed as a priority - name: notify-delivery-worker-internal - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q notify-internal-tasks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q notify-internal-tasks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-internal - name: notify-delivery-worker-receipts - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q ses-callbacks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q ses-callbacks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-receipts - name: notify-delivery-worker-service-callbacks - command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q service-callbacks + command: scripts/run_app_paas.sh celery -A run_celery.notify_celery worker --loglevel=INFO --concurrency=11 -Q service-callbacks 2> /dev/null env: NOTIFY_APP_NAME: delivery-worker-service-callbacks From 63ffb01800758d6594d3d97c1d5be0ef09236bcb Mon Sep 17 00:00:00 2001 From: Athanasios Voutsadakis Date: Tue, 31 Jul 2018 16:26:15 +0100 Subject: [PATCH 2/4] Bump python from 3.5.4 to 3.5.5 --- runtime.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime.txt b/runtime.txt index 13751becb..f0e4f4e5d 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.5.4 +python-3.5.5 From f14107b723bcf62b327b10d8726b2bf8ef2031eb Mon Sep 17 00:00:00 2001 From: Athanasios Voutsadakis Date: Tue, 31 Jul 2018 17:26:33 +0100 Subject: [PATCH 3/4] Fix test that checks queues --- tests/test_manifest_delivery_base.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_manifest_delivery_base.py b/tests/test_manifest_delivery_base.py index 265a1170b..cf026cb9d 100644 --- a/tests/test_manifest_delivery_base.py +++ b/tests/test_manifest_delivery_base.py @@ -14,7 +14,10 @@ def test_queue_names_set_in_manifest_delivery_base_correctly(): if start_of_queue_arg > 0: start_of_queue_names = start_of_queue_arg + len(search) queues = command[start_of_queue_names:].split(',') - watched_queues.update(queues) + for q in queues: + if "2>" in q: + q = q.split("2>")[0].strip() + watched_queues.add(q) # ses-callbacks isn't used in api (only used in SNS lambda) ignored_queues = {'ses-callbacks'} From 56ba5d207bcca7f1f783e3b4fb72380e90e2523f Mon Sep 17 00:00:00 2001 From: Athanasios Voutsadakis Date: Wed, 1 Aug 2018 11:31:53 +0100 Subject: [PATCH 4/4] Refactor test fix --- tests/test_manifest_delivery_base.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/test_manifest_delivery_base.py b/tests/test_manifest_delivery_base.py index cf026cb9d..43c3cfb54 100644 --- a/tests/test_manifest_delivery_base.py +++ b/tests/test_manifest_delivery_base.py @@ -13,11 +13,8 @@ def test_queue_names_set_in_manifest_delivery_base_correctly(): start_of_queue_arg = command.find(search) if start_of_queue_arg > 0: start_of_queue_names = start_of_queue_arg + len(search) - queues = command[start_of_queue_names:].split(',') - for q in queues: - if "2>" in q: - q = q.split("2>")[0].strip() - watched_queues.add(q) + end_of_queue_names = command.find('2>') if '2>' in command else len(command) + watched_queues.update({q.strip() for q in command[start_of_queue_names:end_of_queue_names].split(',')}) # ses-callbacks isn't used in api (only used in SNS lambda) ignored_queues = {'ses-callbacks'}