Page MenuHomePhabricator

wdqs-backend-health-monitor
Closed, ResolvedPublic5 Estimated Story Points

Description

The backend health monitor is another container in the wdqs pod (see T425007) which provides two functions to begin with:

  1. On startup it compares the timestamp in the wikidata_index_meta.json file with the timestamp in the index itself (see data-reload.py for how to query the timestamp)
  2. Expose a startup endpoint (as in Kubernetes startup probe) which verifies the consumer update lag against a configured threshold. This will ultimately be used to verify whether the pod can be pooled and receive requests.

The health service is supposed to be implemented as a Quarkus Java application (similar to wdqs-proxy).

AC:

  • New Quarkus service which can read the update lag from the consumer (configurable endpoint)
  • The service compares timestamps and fails if they differ
  • Gitlab CI/CD pipeline to build a docker image
  • Published 0.0.1 version of the docker image

Details

Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
wdqs-backend-health-monitor: Docker image to monitor the status of the WDQS deployment pod.repos/releng/gitlab-trusted-runner!173truegwikidata-platform/wdqs-backend-health-monitormain
Customize query in GitLab

Event Timeline

trueg changed the task status from Open to In Progress.May 20 2026, 8:18 AM
trueg claimed this task.
trueg triaged this task as High priority.
trueg set the point value for this task to 5.
trueg moved this task from Incoming to Sprint 05 (2026/05/05) on the Wikidata Platform Team board.

trueg opened https://gitlab.wikimedia.org/repos/releng/gitlab-trusted-runner/-/merge_requests/173

wdqs-backend-health-monitor: Docker image to monitor the status of the WDQS deployment pod.

dancy merged https://gitlab.wikimedia.org/repos/releng/gitlab-trusted-runner/-/merge_requests/173

wdqs-backend-health-monitor: Docker image to monitor the status of the WDQS deployment pod.

The first iteration of the health monitor is done. It can pull the update lag from the consumer and compare the dump timestamps from the metadata file with the one in the index (for now a mismatch only results in a log entry - and the pod never being ready).
A Kubnernetes startup probe endpoint reports ready once the update lag drops under the configured threshold.