Page MenuHomePhabricator

Edit Analytics Service
Closed, ResolvedPublic

Description

The Edit Analytics service implements a subset of the AQS 2.0 endpoints, as detailed 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 Analyticsmetrics/editors/, metrics/registered_users/
Edit Analyticsmetrics/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

Related Objects

Event Timeline

See T288301: AQS 2.0:Wikistats 2 service for discussion on why we decided to break up the AQS 2.0 Druid-based endpoints in this particular way.

See T311190: Establish testing procedure for Druid-based endpoints and T317803: AQS 2.0: Extract production testing data for Druid-based endpoints for discussion on the related testing environment.