Page MenuHomePhabricator

Move wikitech-static monitoring off Icinga
Open, LowPublicGoal

Description

We have a few wikitech-static monitoring checks in Icinga that need to be ported:

  • Basic HTTPS reachability/certificate checks for wikitech-static.wikimedia.org and status.wikimedia.org. These should be relatively easy to port to Blackbox probes.
  • Wikitech and wikitech-static content in sync
  • Wikitech-static MW version up to date

! MIGRATION TABLE !

Migrated? (Y/N)TitleResource TypeCommandFileProfiles
Nwikitech-static-versionMonitoring::Servicecheck_wikitech_static_versionmodules/icinga/manifests/monitor/wikitech_static.pp:21profile::icinga
Nwikitech-static-syncMonitoring::Servicecheck_wikitech_staticmodules/icinga/manifests/monitor/wikitech_static.pp:11profile::icinga
Nhttps_wikitech-staticMonitoring::Servicecheck_ssl_http_letsencryptmodules/icinga/manifests/monitor/wikitech_static.pp:39profile::icinga
Nhttps_status-wikimediaMonitoring::Servicecheck_ssl_http_letsencryptmodules/icinga/manifests/monitor/wikitech_static.pp:48profile::icinga
Nwikitech-static-main-pageMonitoring::Servicecheck_https_url_at_address_for_stringmodules/icinga/manifests/monitor/wikitech_static.pp:30profile::icinga

Event Timeline

Change #1155612 had a related patch set uploaded (by Tiziano Fogli; author: Tiziano Fogli):

[operations/puppet@production] monitoring services: add migration task T362397 to instances

https://gerrit.wikimedia.org/r/1155612

Change #1155612 merged by Tiziano Fogli:

[operations/puppet@production] monitoring services: add migration task T362397 to instances

https://gerrit.wikimedia.org/r/1155612

tappof changed the subtype of this task from "Task" to "Goal".Sep 2 2025, 1:33 PM

I ran a quick audit on the wikitech-static icinga monitoring today:

  • wikitech-static.wikimedia.org no longer answers pings, thus icinga considers the host down. That's been the case for the last five months
  • Since the host is down from icinga's POV, its service alerts notifications are not sent
  • The "content in sync" alert (/usr/lib/nagios/plugins/check_wikitech_static) has been firing for the last two months. The wikitech-static url it checks no longer exists ('https://wikitech-static.wikimedia.org/w/api.php?action=query&titles=Special:RecentChanges&list=recentchanges&format=xml')

2026-06-17-161349_1682x918_scrot.png (1,682×918 px, 212 KB)

In terms of Prometheus monitoring, the pingthing facility in puppet has been monitoring https://wikitech-static.wikimedia.org/wiki/Main_Page for non 2xx or 3xx responses and issues a warning alert to SRE if that's not the case. e.g. https://wikitech.wikimedia.org/wiki/Prometheus#Pingthing_Non-23xx_HTTP_response

Nowadays the "content in sync" signal can also be read as "how long ago did the docker container CI pipeline last succeed?", specifically this pipeline: https://gitlab.wikimedia.org/repos/sre/wikitech-static-docker/-/pipelines

I inquired if we had such signal already as a metric, and unfortunately we don't, though the feature request is tracked at T347038: Add additional exporter for GitLab Runner metrics

Other ideas that were floated to keep an eye on the pipeline:

  1. use the pushgateway at the end of ci to push a metric, works only on trusted runners
  2. write a "static-metrics" file inside the container, with the timestamp of last update. Then it can be scraped by prometheus at wikitech-static.w.o/static-metrics as any other endpoint. Would work, with some custom prometheus job config to make sure the outbound proxies are used to reach wikitech-static.

On balance I like option 2, which ensures truly end-to-end monitoring of container build + deploy. In other words the wikitech_static_update_timestamp_seconds metric going stale (time() - wikitech_static_update_timestamp_seconds) means something went wrong, either the container failed to build or failed to deploy. Either way we can take a look when/if that happens, @Andrew I sent the MR your way, please let me know what you think

And another one for your eyes @Andrew https://gitlab.wikimedia.org/repos/sre/wikitech-static-docker/-/merge_requests/6

I went ahead with MR 5 to test the theory, happy to tweak/adjust as needed

Change #1312958 had a related patch set uploaded (by Filippo Giunchedi; author: Filippo Giunchedi):

[operations/puppet@production] icinga: remove absented wikitech-static checks

https://gerrit.wikimedia.org/r/1312958

Change #1312959 had a related patch set uploaded (by Filippo Giunchedi; author: Filippo Giunchedi):

[operations/puppet@production] prometheus: add wikitech-static metrics

https://gerrit.wikimedia.org/r/1312959

Change #1312960 had a related patch set uploaded (by Filippo Giunchedi; author: Filippo Giunchedi):

[operations/alerts@master] team-wmcs: add wikitech alerts

https://gerrit.wikimedia.org/r/1312960