The Edit Analytics service implements a subset of the AQS 2.0 endpoints, as detailed [[ https://docs.google.com/spreadsheets/d/1nl-4zjd5OfbgINsVGwEc5jh5_xEexz8H7-c5ZIFpopk/edit#gid=0 | here ]].
NOTE: This API uses a Druid back-end.
See: https://wikitech.wikimedia.org/wiki/Analytics/AQS/Wikistats_2
The Druid-based AQS 2.0 endpoints are broken into into two services:
- Editor Analytics
- Edit Analytics
Certain code related to Druid queries is very similar between the two services, and should be implemented in a reusable package.
The "reusable package" will contain (at least):
- two common query functions, to reduce code duplication. These will fill a similar need as the AQS revisions/digests functionality.
- any other common druid-specific helper function we find useful, covering similar functionality as the existing druidUtil.js
- any common schema definitions that we find convenient, filling similar functionality as the existing mediawiki-history-schemas.yaml. We already have a pattern (used in our service config) for importing yaml info into the Go service, so we may choose to continue using yaml for schema info.
This means the Druid-based endpoints will be divided as follows:
| Editor Analytics | metrics/editors/, metrics/registered_users/ |
| Edit Analytics | metrics/edits/, metrics/bytes_difference/, metrics/edited_pages/ |
===Key Tasks
[] Create Go Service - T336378
[] Create Druid test data environment - in progress (same dataset in druid used in Edit and Editor) T336382
[] Deployment pipeline integration T336384
[] Deploy to staging and production T336385
[] Integration tests T336394
[] Unit tests
[] Manual integration testing T336401
[] Metrics dashboards T336403
[] Configure routing in staging and production T336404