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

[DEPR]: Code Owner Monitoring #469

Open
5 tasks
robrap opened this issue Dec 10, 2024 · 1 comment
Open
5 tasks

[DEPR]: Code Owner Monitoring #469

robrap opened this issue Dec 10, 2024 · 1 comment
Labels
depr Proposal for deprecation & removal per OEP-21

Comments

@robrap
Copy link
Contributor

robrap commented Dec 10, 2024

Proposal Date

2024-12-11

Target Ticket Acceptance Date

2024-12-23

Earliest Open edX Named Release Without This Functionality

Teak - 2025-04

Rationale

The code_owner monitoring code in was introduced to help 2U monitor the large monolith (LMS), and attribute different parts of the app to different teams. This DEPR assumes that this is 2U-specific code, and that no other orgs or teams are using this functionality for monitoring purposes.

Slightly related, the New Relic search script was likely only used by 2U. This could be removed if no one is using it.

Removal

What would be removed is https://github.com/openedx/edx-django-utils/tree/master/edx_django_utils/monitoring/internal/code_owner, and all associated code, config, and documentation.

Slightly related, we could also remove the new_relic_search.py script and supporting documentation. There would be no replacement, other than simply making a copy of the script as-needed.

Replacement

  • It is possible that no one in the community needs a replacement.
  • For 2U, the functionality was replaced by a plugin that adds instrumentation in two ways:
    1. For Django requests, instrumentation was added to the plugin using new signals that were added to edx-django-utils MonitoringSupportMiddleware, as documented in feat: add monitoring signals for plugins #467.
    2. For Celery tasks, 2U is using a Datadog span processor to add instrumentation.

For 2U, the span processor replaces the need for the custom decorator that was added to all Open edX celery tasks, and documented in the ADR: 0003-code-owner-for-celery-tasks.

If we choose to remove this decorator, there is no real replacement if your monitoring tool does not have some way to hook into these tasks. New Relic had no such hook in the past.

Deprecation

  • It could simply be removed if no one is using it.
  • The decorator for celery tasks is slightly more complicated, because it has references throughout the codebase. This might get marked as deprecated before removal.

Migration

No response

Additional Info

If no one is using this except 2U, it could be removed shortly after acceptance, since 2U has nearly completed the migration to a plugin.

Task List

  • Remove all uses of the celery task decorator for code owner monitoring.
  • Remove uses of the code owner middleware
  • Remove all non-celery task code owner code and docs.
  • Remove the remaining of the code owner monitoring code.
  • Remove the new_relic_search script and docs if that is agreeable.
@robrap
Copy link
Contributor Author

robrap commented Dec 11, 2024

@robrap robrap moved this from Proposed to Communicated in DEPR: Deprecation & Removal Dec 11, 2024
@robrap robrap moved this to Backlog in Arch-BOM Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
depr Proposal for deprecation & removal per OEP-21
Projects
Status: Communicated
Development

No branches or pull requests

1 participant