- Removed temporary rollout span tag
code_owner_plugin
used for the code owner monitoring move from edx-django-utils. Now that edx-django-utils monitoring has been disabled, this span tag serves no purpose.
Completes code owner monitoring updates, which drops owner theme and finalizes the code owner span tags. See doc and ADR updates for more details.
- The code_owner_theme_2 tag was dropped altogether.
- The temporary suffix (_2) was removed from other span tags.
- The code_owner (formerly code_owner_2) tag no longer includes the theme name.
- The new name for the django setting is CODE_OWNER_TO_PATH_MAPPINGS (formerly CODE_OWNER_MAPPINGS).
- The django setting CODE_OWNER_THEMES was dropped.
- Updates the generate_code_owner_mappings.py script accordingly.
- Removes CodeOwnerMonitoringMiddleware, in favor of using new signals sent from edx-django-utils's MonitoringSupportMiddleware.
- Adds search script datadog_search.py, for searching Datadog monitors and dashboards.
- Added Datadog monitoring app which adds code owner monitoring. This is the first step in moving code owner code from edx-django-utils to this plugin.
- Adds near duplicate of code owner middleware from edx-django-utils.
- Adds code owner span tags for celery using Datadog span processing of celery.run spans.
- Uses temporary span tags names using
_2
, likecode_owner_2
, for rollout and comparison with the original span tags. - Span tag code_owner_2_module includes the task name, where the original code_owner_module does not. In both cases, the code owner is computed the same, because it is based on a prefix match.
- Deleted Datadog diagnostics plugin app and middleware, which are no longer in use in edxapp.
- Datadog diagnostics middleware can now attempt to close anomalous spans. Can be enabled via Waffle flag
datadog.diagnostics.close_anomalous_spans
(controlled separately from logging feature).
- Datadog diagnostics now logs ancestor spans when an anomaly is encountered, up to a limit of 10 (controlled by new Django setting
DATADOG_DIAGNOSTICS_LOG_SPAN_DEPTH
). Spans are logged in full and on separate lines, so this logging is now much more verbose; consider only enabling this logging for short periods. Log format of first line has also changed slightly.
- Added celery lifecycle logging for Datadog diagnostics, to be enabled using
DATADOG_DIAGNOSTICS_CELERY_LOG_SIGNALS
.
- Fixed loading of
DATADOG_DIAGNOSTICS_ENABLE
, which was previously not loaded properly and therefore was always True. Also fixed loading ofDATADOG_DIAGNOSTICS_MAX_SPANS
, which was presumably broken as well.
- Removed early span-start logging. It never worked properly, possibly because workers are continually being destroyed and created, leading to high log volume.
- Datadog diagnostics will now log all span-starts for the first minute after server startup
- WARNING: Do not use this version; see 4.2.0 release notes.
- Dropped support for Python 3.8; only testing with 3.11 and above now.
DatadogDiagnosticMiddleware
can now detect and log anomalous traces, enabled by Waffle flagdatadog.diagnostics.detect_anomalous_trace
- New middleware
edx_arch_experiments.datadog_diagnostics.middleware.DatadogDiagnosticMiddleware
for logging diagnostics on traces in Datadog.
- Added
federated-content-connector
to the generate_code_owners script.
- Toggle
DATADOG_DIAGNOSTICS_ENABLE
for disabling that plugin quickly if needed. (Feature remains enabled by default.)
- Limit the number of spans collected via new setting
DATADOG_DIAGNOSTICS_MAX_SPANS
, defaulting to 100. This may help avoid memory leaks. - Make accidental class variables into member variables in
datadog_diagnostics
- Added
datadog_diagnostics
plugin app
- Added
translatable-xblocks
to the generate_code_owners script.
- Added support for
Python 3.12
- Updated
ConfigWatcher
to include the IDA's name in change messages ifCONFIG_WATCHER_SERVICE_NAME
is set - Enabled
ConfigWatcher
as a plugin for CMS
- Add
codejail_service
app for transition to containerized codejail
- ConfigWatcher should now respond to model events properly now that it registers receivers with strong references. (Tested in sandbox.)
- Add log message for each model the ConfigWatcher is listening to
- Ensure that ConfigWatcher only attaches receivers once
- Renamed
ConfigWatcherApp
toConfigWatcher
to be less redundant. This is technically a breaking change but the app was not in use yet. - Enabled
ConfigWatcher
as a plugin for LMS
- Add
edx_arch_experiments.config_watcher
Django app for monitoring Waffle changes - Add script to get github action errors
- Add script to republish failed events
- Add ORA2 to our code owner mapping script.
- Removes summary hook aside, now in the ai-aside repo
- Update summary hook to trigger on videos
- Remove text selection data key from summary hook html
- Add course and block ID to summary hook html
- Removed
default_app_config
(deprecated in Django 3)
- Add "staff only" summary hook flag
- Revise summary hook HTML
- Add summary hook xblock aside
- Breaking change: Remove
kafka_consumer
package and plugin (migrated toedx-event-bus-kafka
)
- Add new target to Makefile
- Update openedx-events
- Update consumer to use bridge and signals
- Fix GitHub actions
- First release on PyPI.