Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.

feat: Run all Django services with ddtrace (Datadog APM) when enabled #7147

Merged
merged 2 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions playbooks/roles/edx_django_service/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,19 @@
- install
- install:app-requirements

- name: "Install Datadog APM requirements"
when: COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP
pip:
name:
- ddtrace
extra_args: "--exists-action w {{ item.extra_args|default('') }}"
virtualenv: "{{ edx_django_service_venv_dir }}"
state: present
become_user: "{{ edx_django_service_user }}"
tags:
- install
- install:app-requirements

- name: Check for existing make_migrate container
command: "docker ps -aq --filter name='{{ edx_django_service_name }}.make_migrate'"
register: edx_django_service_make_migrate_container
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@

{% set edx_django_service_venv_bin = edx_django_service_venv_dir + "/bin" %}

{% if COMMON_ENABLE_NEWRELIC_APP %}
{% set executable = edx_django_service_venv_bin + '/newrelic-admin run-program ' + edx_django_service_venv_bin + '/gunicorn' %}
{% else %}
{% set executable = edx_django_service_venv_bin + '/gunicorn' %}
{% endif %}

{% if COMMON_ENABLE_NEWRELIC_APP %}
{% set executable = edx_django_service_venv_bin + '/newrelic-admin run-program ' + executable %}

export NEW_RELIC_DISTRIBUTED_TRACING_ENABLED="{{ edx_django_service_enable_newrelic_distributed_tracing }}"
export NEW_RELIC_APP_NAME="{{ edx_django_service_newrelic_appname }}"
HOSTNAME=$(hostname)
Expand All @@ -22,6 +20,11 @@ fi
export NEW_RELIC_LICENSE_KEY="{{ NEWRELIC_LICENSE_KEY }}"
{% endif -%}

{% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP %}
{% set executable = edx_django_service_venv_bin + '/ddtrace-run ' + executable %}
export DD_TAGS="service:{{ edx_django_service_name }}"
{% endif -%}

export EDX_REST_API_CLIENT_NAME="{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-{{ edx_django_service_name }}"

source {{ edx_django_service_home }}/{{ edx_django_service_name }}_env
Expand Down
1 change: 1 addition & 0 deletions util/jenkins/ansible-provision.sh
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,7 @@ COMMON_USER_INFO:
USER_CMD_PROMPT: '[$name_tag] '
COMMON_ENABLE_NEWRELIC_APP: $enable_newrelic
COMMON_ENABLE_DATADOG: $enable_datadog
COMMON_ENABLE_DATADOG_APP: $enable_datadog
COMMON_OAUTH_BASE_URL: "https://${deploy_host}"
FORUM_NEW_RELIC_ENABLE: $enable_newrelic
ENABLE_PERFORMANCE_COURSE: $performance_course
Expand Down
Loading