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

feat: Allow instrumenting edxapp with Datadog APM #7136

Merged
merged 3 commits into from
Mar 20, 2024
Merged

Conversation

timmc-edx
Copy link
Contributor

Introduces COMMON_ENABLE_DATADOG_APP for APM instrumention with Datadog, as distinct from COMMON_ENABLE_DATADOG that just installs the agent (for infrastructure monitoring).

See edx/edx-arch-experiments#574

Configuration Pull Request

Make sure that the following steps are done before merging:

  • Have a Site Reliability Engineer review the PR if you don't own all of the services impacted.
  • If you are adding any new default values that need to be overridden when this change goes live, update internal repos and add an entry to the top of the CHANGELOG.
  • Performed the appropriate testing.
  • Think about how this change will affect Open edX operators and update the wiki page for the next Open edX release if needed

Introduces `COMMON_ENABLE_DATADOG_APP` for APM instrumention with Datadog,
as distinct from `COMMON_ENABLE_DATADOG` that just installs the agent
(for infrastructure monitoring).

See edx/edx-arch-experiments#574
when: COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP
pip:
name:
- ddtrace
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Author's note: This doesn't pin any specific version, which makes me a little uncomfortable, but I don't think we would have any way of keeping it up to date. Maybe I should at least add a way to pin it as needed?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once this lands, let's add this as a future task to the spreadsheet, but this is a lower priority. Thanks.

when: COMMON_ENABLE_DATADOG and COMMON_ENABLE_DATADOG_APP
pip:
name:
- ddtrace
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once this lands, let's add this as a future task to the spreadsheet, but this is a lower priority. Thanks.

{% set executable = edxapp_venv_bin + '/gunicorn' %}

{% if COMMON_ENABLE_DATADOG and COMMON_ENABLE_NEWRELIC_APP %}
{% set executable = edxapp_venv_bin + '/newrelic-admin run-program ' + executable %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I missing something, or does this make New Relic config dependent on the datadog toggle? Maybe the lms.sh.j2 change is what was meant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yikes, good catch. I meant to add that to the other file, not to the newrelic line in the same file!

Copy link
Contributor

@robrap robrap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess one thing is to simply ensure that any data is getting to each of the configured products, not even that they simply aren't stepping on each other.

@timmc-edx timmc-edx merged commit 3a436ff into master Mar 20, 2024
4 checks passed
@timmc-edx timmc-edx deleted the timmc/datadog branch March 20, 2024 20:08
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants