Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[APM] Add Datadog support to edx-django-utils #389

Closed
2 tasks done
timmc-edx opened this issue Feb 20, 2024 · 4 comments
Closed
2 tasks done

[APM] Add Datadog support to edx-django-utils #389

timmc-edx opened this issue Feb 20, 2024 · 4 comments
Assignees

Comments

@timmc-edx
Copy link
Contributor

timmc-edx commented Feb 20, 2024

A/C:

  • Telemetry functions that report to New Relic can also report to Datadog
  • Does not introduce any required runtime dependency on Datadog

To support Datadog in Open edX, we'll need to expand the telemetry reporting in edx-django-utils to report to both New Relic and to Datadog. We may choose to implement this via OpenTelemetry support (as there is a way to export that to DD) or by direct reference to DD.

This is part of edx/edx-arch-experiments#571

Implementation notes:

Code to consider for update:

  • Anything that imports newrelic
  • Anything imported and re-exposed in edx_django_utils/monitoring/__init__.py
@robrap
Copy link
Contributor

robrap commented Feb 22, 2024

[proposal] Refactor edx-django-utils monitoring API to allow configurable implementation:

  • Maintain backward compatibility. Make New Relic the default.
  • Split implementation (OTEL vs New Relic vs Logging) from the interface.
  • Consider making the implementation configurable via a list, so we could send to OTEL and New Relic in parallel.

What do you think of this alternative plan?

@timmc-edx timmc-edx self-assigned this Mar 12, 2024
timmc-edx added a commit to openedx/edx-lint that referenced this issue Mar 12, 2024
timmc-edx added a commit to openedx/edx-lint that referenced this issue Mar 12, 2024
timmc-edx added a commit that referenced this issue Mar 12, 2024
timmc-edx added a commit that referenced this issue Mar 14, 2024
Part of #389

- Add dependencies on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.
timmc-edx added a commit that referenced this issue Mar 14, 2024
Part of #389

- Add dependencies on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.
timmc-edx added a commit that referenced this issue Mar 14, 2024
Part of #389

- Add dependencies on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.
timmc-edx added a commit that referenced this issue Mar 22, 2024
Part of #389

- Add dependencies on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry
- Pluggable design

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.
timmc-edx added a commit that referenced this issue Mar 27, 2024
Part of #389

- Add dependencies on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry
- Pluggable design

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.
timmc-edx added a commit that referenced this issue Mar 28, 2024
Part of #389

- Add dependency on OpenTelemetry
- Allow some monitoring functions to report via OpenTelemetry
- Pluggable design

Defaults to just New Relic, but new setting allows adding OpenTelemetry or
removing New Relic.

Initialization and configuration of OpenTelemetry is left as an
exercise to the deployer, but
https://github.com/mitodl/open-edx-plugins/tree/main/src/ol_openedx_otel_monitoring/
would be a likely candidate.
timmc-edx added a commit that referenced this issue Mar 28, 2024
Switch to pluggable design so that some monitoring functions can
report to something other than New Relic. Still defaults to just New
Relic, but new setting allows adding OpenTelemetry or Datadog, or
removing New Relic.

Initialization and configuration of OpenTelemetry is left as an
exercise to the deployer, but
https://github.com/mitodl/open-edx-plugins/tree/main/src/ol_openedx_otel_monitoring/
would be a likely candidate.

Part of #389
timmc-edx added a commit that referenced this issue Mar 28, 2024
Switch to pluggable design so that some monitoring functions can
report to something other than New Relic. Still defaults to just New
Relic, but new setting allows adding OpenTelemetry or Datadog, or
removing New Relic.

Initialization and configuration of OpenTelemetry is left as an
exercise to the deployer, but
https://github.com/mitodl/open-edx-plugins/tree/main/src/ol_openedx_otel_monitoring/
would be a likely candidate.

Part of #389
@robrap robrap changed the title Add OpenTelemetry calls to edx-django-utils [APM][Milestone 2+] Add OpenTelemetry calls to edx-django-utils Apr 9, 2024
@robrap
Copy link
Contributor

robrap commented Apr 26, 2024

@timmc-edx: Reminder to clean-up or close this ticket.

@timmc-edx timmc-edx changed the title [APM][Milestone 2+] Add OpenTelemetry calls to edx-django-utils [APM][Milestone 2+] Add Datadog support to edx-django-utils Apr 26, 2024
@timmc-edx
Copy link
Contributor Author

Updated for current plans (DD support as plugin)

@robrap robrap changed the title [APM][Milestone 2+] Add Datadog support to edx-django-utils [APM] Add Datadog support to edx-django-utils Apr 29, 2024
timmc-edx added a commit that referenced this issue Apr 30, 2024
Switch to pluggable design so that some monitoring functions can
report to something other than New Relic. Still defaults to just New
Relic, but new setting allows adding OpenTelemetry or Datadog, or
removing New Relic.

Initialization and configuration of OpenTelemetry is left as an
exercise to the deployer, but
https://github.com/mitodl/open-edx-plugins/tree/main/src/ol_openedx_otel_monitoring/
would be a likely candidate.

Part of #389
@timmc-edx
Copy link
Contributor Author

This part is done. Rollout will be covered by edx/edx-arch-experiments#571

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants