From 154c1bc8359c719df0eced89c03b38eedef6c93a Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Thu, 9 May 2024 15:36:59 -0400 Subject: [PATCH 1/8] feat: add dd-trace to edxapp workers --- .../edxapp/templates/edx/app/edxapp/worker.sh.j2 | 12 ++++++++++++ .../app/supervisor/conf.d.available/workers.conf.j2 | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index ccd903b8b5b..eea102a557e 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -7,6 +7,18 @@ source {{ edxapp_app_dir }}/edxapp_env {% if COMMON_ENABLE_NEWRELIC_APP %} {% set executable = edxapp_venv_bin + '/newrelic-admin run-program ' + edxapp_venv_bin + '/celery' %} +{% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} +{% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} +export DD_TAGS=$(dd_trace_service_name) +export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true +# Copied from edx_django_service playbook for consistency; Datadog +# trace debug logging issue doesn't actually affect edxapp for some +# reason. +export DD_TRACE_LOG_STREAM_HANDLER=false +# Datadog's instrumentation breaks pymongo: https://github.com/edx/edx-arch-experiments/issues/580 +export DD_TRACE_PYMONGO_ENABLED=false +{% endif -%} + export NEW_RELIC_CONFIG_FILE="{{ edxapp_app_dir }}/newrelic.ini" if command -v ec2metadata >/dev/null 2>&1; then INSTANCEID=$(ec2metadata --instance-id); diff --git a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 index 3dd9641c9a7..015bc53c22c 100644 --- a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 @@ -7,7 +7,7 @@ directory={{ edxapp_code_dir }} stdout_logfile={{ supervisor_log_dir }}/%(program_name)s-stdout.log stderr_logfile={{ supervisor_log_dir }}/%(program_name)s-stderr.log -command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} +command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} --dd_trace_service_name=service:edx-edxapp-{{ w.service_variant }}-workers-core-{{ w.queue }} killasgroup=true stopwaitsecs={{ w.stopwaitsecs | default(EDXAPP_WORKER_DEFAULT_STOPWAITSECS) }} From f9773fbcd753cdb89141be074773f289e09fb030 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Thu, 9 May 2024 16:32:11 -0400 Subject: [PATCH 2/8] fix: seperate queue tags --- playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 2 +- .../edx/app/supervisor/conf.d.available/workers.conf.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index eea102a557e..5354074ec23 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -9,7 +9,7 @@ source {{ edxapp_app_dir }}/edxapp_env {% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} -export DD_TAGS=$(dd_trace_service_name) +export DD_TAGS=$(dd_tags) export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some diff --git a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 index 015bc53c22c..1d97d911af0 100644 --- a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 @@ -7,7 +7,7 @@ directory={{ edxapp_code_dir }} stdout_logfile={{ supervisor_log_dir }}/%(program_name)s-stdout.log stderr_logfile={{ supervisor_log_dir }}/%(program_name)s-stderr.log -command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} --dd_trace_service_name=service:edx-edxapp-{{ w.service_variant }}-workers-core-{{ w.queue }} +command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} --dd_tags=("service:edx-edxapp-{{ w.service_variant }}-workers", "queue:core-{{ w.queue }}") killasgroup=true stopwaitsecs={{ w.stopwaitsecs | default(EDXAPP_WORKER_DEFAULT_STOPWAITSECS) }} From 2c739c304148d6672e56e71d6ed27e31dd9c38e5 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 10 May 2024 09:21:48 -0400 Subject: [PATCH 3/8] fix: logic cleanup --- .../templates/edx/app/edxapp/worker.sh.j2 | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index 5354074ec23..748f5a17318 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -4,8 +4,18 @@ {% set edxapp_venv_bin = edxapp_venv_dir + "/bin" %} source {{ edxapp_app_dir }}/edxapp_env +{% set executable = edxapp_venv_bin + '/celery' %} + {% if COMMON_ENABLE_NEWRELIC_APP %} -{% set executable = edxapp_venv_bin + '/newrelic-admin run-program ' + edxapp_venv_bin + '/celery' %} +{% set executable = edxapp_venv_bin + '/newrelic-admin run-program ' + executable %} + +export NEW_RELIC_CONFIG_FILE="{{ edxapp_app_dir }}/newrelic.ini" +if command -v ec2metadata >/dev/null 2>&1; then + INSTANCEID=$(ec2metadata --instance-id); + HOSTNAME=$(hostname) + export NEW_RELIC_PROCESS_HOST_DISPLAY_NAME="$HOSTNAME-$INSTANCEID" +fi +{% endif %} {% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} @@ -19,16 +29,6 @@ export DD_TRACE_LOG_STREAM_HANDLER=false export DD_TRACE_PYMONGO_ENABLED=false {% endif -%} -export NEW_RELIC_CONFIG_FILE="{{ edxapp_app_dir }}/newrelic.ini" -if command -v ec2metadata >/dev/null 2>&1; then - INSTANCEID=$(ec2metadata --instance-id); - HOSTNAME=$(hostname) - export NEW_RELIC_PROCESS_HOST_DISPLAY_NAME="$HOSTNAME-$INSTANCEID" -fi -{% else %} -{% set executable = edxapp_venv_bin + '/celery' %} -{% endif %} - # We exec so that celery is the child of supervisor and can be managed properly exec {{ executable }} $@ From 8e2c6977461bff9cf691c9dc2e782ccd5a4a7f25 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 10 May 2024 15:06:39 -0400 Subject: [PATCH 4/8] fix: args shenanagins --- playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index 748f5a17318..a105d03dae1 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -19,7 +19,7 @@ fi {% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} -export DD_TAGS=$(dd_tags) +export DD_TAGS="$1" export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some @@ -27,6 +27,7 @@ export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true export DD_TRACE_LOG_STREAM_HANDLER=false # Datadog's instrumentation breaks pymongo: https://github.com/edx/edx-arch-experiments/issues/580 export DD_TRACE_PYMONGO_ENABLED=false +shift {% endif -%} # We exec so that celery is the child of supervisor and can be managed properly From d06f1eeb7714bce50cf62e32b918643ffa1df9a0 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Mon, 13 May 2024 11:03:35 -0400 Subject: [PATCH 5/8] fix: docs --- playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index a105d03dae1..97cdc00affa 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -20,6 +20,8 @@ fi {% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} export DD_TAGS="$1" +# remove the param dd_tags as it is not needed in later execution. +shift export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some @@ -27,7 +29,6 @@ export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true export DD_TRACE_LOG_STREAM_HANDLER=false # Datadog's instrumentation breaks pymongo: https://github.com/edx/edx-arch-experiments/issues/580 export DD_TRACE_PYMONGO_ENABLED=false -shift {% endif -%} # We exec so that celery is the child of supervisor and can be managed properly From eb25f5032bf3bcade01e25de838f086cf062dcf3 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Tue, 14 May 2024 15:34:17 -0400 Subject: [PATCH 6/8] fix: don't use args shenangins --- .../roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 6 ++---- .../edx/app/supervisor/conf.d.available/workers.conf.j2 | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index 97cdc00affa..d0c3eafe608 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -17,11 +17,9 @@ if command -v ec2metadata >/dev/null 2>&1; then fi {% endif %} -{% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %} +{% if EDXAPP_DATADOG_ENABLE %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} -export DD_TAGS="$1" -# remove the param dd_tags as it is not needed in later execution. -shift +export DD_TAGS=("service:edx-edxapp-{{ SERVICE_VARIANT }}-workers", "queue:{{EDX_REST_API_CLIENT_NAME}}") export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some diff --git a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 index 1d97d911af0..3dd9641c9a7 100644 --- a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 @@ -7,7 +7,7 @@ directory={{ edxapp_code_dir }} stdout_logfile={{ supervisor_log_dir }}/%(program_name)s-stdout.log stderr_logfile={{ supervisor_log_dir }}/%(program_name)s-stderr.log -command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} --dd_tags=("service:edx-edxapp-{{ w.service_variant }}-workers", "queue:core-{{ w.queue }}") +command={{ edxapp_app_dir }}/worker.sh --app={{ w.service_variant }}.celery:APP worker --loglevel=info --queues=edx.{{ w.service_variant }}.core.{{ w.queue }} --hostname=edx.{{ w.service_variant }}.core.{{ w.queue }}.%%h --concurrency={{ w.concurrency }} {{ '--max-tasks-per-child ' + w.max_tasks_per_child|string if w.max_tasks_per_child is defined else '' }} {{ '--without-heartbeat' if not EDXAPP_CELERY_HEARTBEAT_ENABLED|bool else '' }} {{ '-O ' + w.prefetch_optimization if w.prefetch_optimization is defined else '' }} killasgroup=true stopwaitsecs={{ w.stopwaitsecs | default(EDXAPP_WORKER_DEFAULT_STOPWAITSECS) }} From 417bd2193ad29e534551ea2c5f6dd260ac34da3c Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 17 May 2024 09:45:36 -0400 Subject: [PATCH 7/8] fix: seperate out different variable for queue --- playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 2 +- .../edx/app/supervisor/conf.d.available/workers.conf.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index d0c3eafe608..d0960e11066 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -19,7 +19,7 @@ fi {% if EDXAPP_DATADOG_ENABLE %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} -export DD_TAGS=("service:edx-edxapp-{{ SERVICE_VARIANT }}-workers", "queue:{{EDX_REST_API_CLIENT_NAME}}") +export DD_TAGS=("service:edx-edxapp-workers-{{ SERVICE_VARIANT }}", "queue:{{QUEUE_NAME}}") export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some diff --git a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 index 3dd9641c9a7..44b8aa539d8 100644 --- a/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/supervisor/conf.d.available/workers.conf.j2 @@ -1,7 +1,7 @@ {% for w in edxapp_workers %} [program:{{ w.service_variant }}_{{ w.queue }}_{{ w.concurrency }}] -environment={% if COMMON_ENABLE_NEWRELIC_APP %}NEW_RELIC_APP_NAME={{ EDXAPP_NEWRELIC_WORKERS_APPNAME }}-{{ w.service_variant }},NEW_RELIC_DISTRIBUTED_TRACING_ENABLED={{ EDXAPP_WORKERS_ENABLE_NEWRELIC_DISTRIBUTED_TRACING }},NEW_RELIC_LICENSE_KEY={{ NEWRELIC_LICENSE_KEY }},{% endif -%}CONCURRENCY={{ w.concurrency }},LOGLEVEL=info,DJANGO_SETTINGS_MODULE={{ w.service_variant }}.envs.{{ worker_django_settings_module }},LANG={{ EDXAPP_LANG }},PYTHONPATH={{ edxapp_code_dir }},SERVICE_VARIANT={{ w.service_variant }},BOTO_CONFIG="{{ edxapp_app_dir }}/.boto",EDX_REST_API_CLIENT_NAME=edx.{{ w.service_variant }}.core.{{ w.queue }} +environment={% if COMMON_ENABLE_NEWRELIC_APP %}NEW_RELIC_APP_NAME={{ EDXAPP_NEWRELIC_WORKERS_APPNAME }}-{{ w.service_variant }},NEW_RELIC_DISTRIBUTED_TRACING_ENABLED={{ EDXAPP_WORKERS_ENABLE_NEWRELIC_DISTRIBUTED_TRACING }},NEW_RELIC_LICENSE_KEY={{ NEWRELIC_LICENSE_KEY }},{% endif -%}CONCURRENCY={{ w.concurrency }},LOGLEVEL=info,DJANGO_SETTINGS_MODULE={{ w.service_variant }}.envs.{{ worker_django_settings_module }},LANG={{ EDXAPP_LANG }},PYTHONPATH={{ edxapp_code_dir }},SERVICE_VARIANT={{ w.service_variant }},BOTO_CONFIG="{{ edxapp_app_dir }}/.boto",EDX_REST_API_CLIENT_NAME=edx.{{ w.service_variant }}.core.{{ w.queue }},QUEUE_NAME={{ w.service_variant }}.core.{{ w.queue }} user={{ common_web_user }} directory={{ edxapp_code_dir }} stdout_logfile={{ supervisor_log_dir }}/%(program_name)s-stdout.log From 0b0a3d62ae7f6ccbbe48c3e967e6270c70cd2af1 Mon Sep 17 00:00:00 2001 From: connorhaugh <49422820+connorhaugh@users.noreply.github.com> Date: Fri, 17 May 2024 12:10:58 -0400 Subject: [PATCH 8/8] feat: array type Co-authored-by: Tim McCormack --- playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 index d0960e11066..7f640f03fbe 100644 --- a/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 +++ b/playbooks/roles/edxapp/templates/edx/app/edxapp/worker.sh.j2 @@ -19,7 +19,7 @@ fi {% if EDXAPP_DATADOG_ENABLE %} {% set executable = edxapp_venv_bin + '/ddtrace-run ' + executable %} -export DD_TAGS=("service:edx-edxapp-workers-{{ SERVICE_VARIANT }}", "queue:{{QUEUE_NAME}}") +export DD_TAGS="service:edx-edxapp-workers-{{ SERVICE_VARIANT }},queue:{{QUEUE_NAME}}" export DD_DJANGO_USE_LEGACY_RESOURCE_FORMAT=true # Copied from edx_django_service playbook for consistency; Datadog # trace debug logging issue doesn't actually affect edxapp for some