Page MenuHomePhabricator

Move WMCS off of Icinga and introduce alertmanager
Closed, ResolvedPublicGoal

Description

Below is a list of icinga checks with contact group wmcs that will need to be migrated to AM/prometheus (or deprecated) for wmcs to be off icinga (modulo base checks, out of scope for this)

! MIGRATION TABLE !

Migrated? (Y/N)Deleted? (Y/N)TitleResource TypeCommandFileProfiles
NYAuth DNS TCP: X.eqiad1.X on server X.openstack.eqiad1.wikimediacloud.orgMonitoring::Servicecheck_dig_tcpmodules/profile/manifests/openstack/eqiad1/pdns/auth/service.pp:32profile::openstack::eqiad1::pdns::auth::service
NYAuth DNS UDP: X.eqiad1.X on server X.openstack.eqiad1.wikimediacloud.orgMonitoring::Servicecheck_digmodules/profile/manifests/openstack/eqiad1/pdns/auth/service.pp:25profile::openstack::eqiad1::pdns::auth::service
NYcheck-flavor_aggregatesNrpe::Monitor_service/usr/local/lib/nagios/plugins/check_flavor_propertiesmodules/openstack/manifests/nova/fullstack/monitor.pp:8profile::openstack::base::nova::fullstack::service, profile::openstack::eqiad1::nova::fullstack::service, profile::openstack::codfw1dev::nova::fullstack::service
NYensure_running_kvm_instancesNrpe::Monitor_service/usr/lib/nagios/plugins/check_procsmodules/openstack/manifests/nova/compute/monitor.pp:32profile::openstack::eqiad1::nova::compute::service
NYcheck-cinder-snapshot-leaksNrpe::Monitor_service/usr/local/bin/check_cinder_snapshot_leaks.pymodules/openstack/manifests/cinder/monitor.pp:17profile::openstack::base::cinder, profile::openstack::codfw1dev::cinder, profile::openstack::eqiad1::cinder
NYcheck-neutron-conntrackNrpe::Monitor_service/usr/local/lib/nagios/plugins/check_neutron_conntrackmodules/openstack/manifests/monitor/neutron/l3_agent_conntrack.pp:7profile::openstack::base::neutron::l3_agent, profile::openstack::eqiad1::neutron::l3_agent, profile::openstack::codfw1dev::neutron::l3_agent
NYtools-checker-redisMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:61profile::icinga
NYtools-checker-etcd-k8sMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:23profile::icinga
NYtools-checker-nfs-homeMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:52profile::icinga
NYtools-checker-labs-dns-privateMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:14profile::icinga
NYtools-checker-dumpsMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:43profile::icinga
NYtools-checker-ldapMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:34profile::icinga
NYtools-checker-selfMonitoring::Servicecheck_http_url_at_address_for_string_with_timeoutmodules/icinga/manifests/monitor/toollabs.pp:70profile::icinga

Filippo's observations

  1. auth dns checks likely will require the equivalent of prometheus::blackbox::check::tcp for dns checks
  2. check-flavor_aggregates ?
  3. ensure_running_kvm_instances should be removed in favor of higher level service (e.g. nova) signals
  4. check-cinder-snapshot-leaks ?
  5. check-neutron-conntrack needs adapting to export prometheus metrics instead via node-exporter textfile
  6. tools-checker-* is tackled as part of T313030: [toolforge.infra] Replace Toolschecker alerts with Prometheus based ones

Details

Related Changes in Gerrit:
SubjectAuthorRepoBranchLines +/-
Filippo Giunchedioperations/puppetproduction+0 -8
Filippo Giunchedioperations/puppetproduction+0 -29
Filippo Giunchedioperations/puppetproduction+0 -124
Filippo Giunchedioperations/puppetproduction+1 -1
Majavahoperations/puppetproduction+7 -4
Majavahoperations/alertsmaster+46 -0
Filippo Giunchedioperations/alertsmaster+56 -0
Filippo Giunchedioperations/puppetproduction+0 -145
Filippo Giunchedioperations/puppetproduction+0 -73
Filippo Giunchedioperations/puppetproduction+0 -49
Filippo Giunchedioperations/alertsmaster+1 -0
Filippo Giunchedioperations/puppetproduction+2 -2
Tiziano Foglioperations/puppetproduction+10 -9
Tiziano Foglioperations/puppetproduction+8 -7
Tiziano Foglioperations/puppetproduction+8 -7
Filippo Giunchedioperations/alertsmaster+0 -34
Andrea Denisseoperations/alertsmaster+66 -0
Andrea Denisseoperations/puppetproduction+0 -74
Andrea Denisseoperations/alertsmaster+34 -0
Show related patches Customize query in gerrit

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

In case it is useful, as part of the icinga migration I've been collecting checks and their type/status here: https://docs.google.com/spreadsheets/d/19nxCXldb804TJCXGy4Z2BHG_1wRksRnKcPC6sXfjQuM/edit#gid=1831147731

A very low hanging fruit to make progress on this task is the following prometheus-based checks:

monitoring::check_prometheus { 'network_out_saturated':
monitoring::check_prometheus { 'network_in_saturated':
monitoring::check_prometheus { 'high_iowait_stalling':

Those are straightforward to port to alerts.git since they are already Prometheus-based, or even better deleted if they are no longer relevant

Change #1111328 had a related patch set uploaded (by Andrea Denisse; author: Andrea Denisse):

[operations/alerts@master] wmcs: Migrate network saturation alerts to the alerts.git repository

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

Change #1111338 had a related patch set uploaded (by Andrea Denisse; author: Andrea Denisse):

[operations/alerts@master] wmcs: Migrate iowait stalling alerts to the alerts.git repository

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

Change #1111340 had a related patch set uploaded (by Andrea Denisse; author: Andrea Denisse):

[operations/puppet@production] wmcs: Remove Puppet files for migrated Prometheus alerts

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

Change #1111338 merged by Andrea Denisse:

[operations/alerts@master] wmcs: Migrate iowait stalling alerts to the alerts.git repository

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

Change #1111328 merged by Andrea Denisse:

[operations/alerts@master] wmcs: Migrate network saturation alerts to the alerts.git repository

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

Change #1111340 merged by Andrea Denisse:

[operations/puppet@production] wmcs: Remove Puppet files for migrated Prometheus alerts

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

Aklapper changed the task status from In Progress to Open.Apr 11 2025, 10:20 PM

Resetting task status from "In Progress" to "Open" as this task has been "in progress" for more than one year (see T380300). Feel free to set that status again, or rather break down into smaller subtasks.

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

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

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

Change #1155138 merged by Tiziano Fogli:

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

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

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

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

[operations/alerts@master] wmcs: remove HighIOWaitStalling

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

Change #1184715 merged by Filippo Giunchedi:

[operations/alerts@master] wmcs: remove HighIOWaitStalling

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

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

[operations/puppet@production] haproxy: enable nrpe2nodexp wrapper on check-cinder-snapshot-leaks

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

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

[operations/puppet@production] neutron: enable nrpe2nodexp wrapper on check-neutron-conntrack

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

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

[operations/puppet@production] nova: enable nrpe2nodexp wrapper on check-flavor_aggregates

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

Change #1200012 merged by Tiziano Fogli:

[operations/puppet@production] cinder: enable nrpe2nodexp wrapper on check-cinder-snapshot-leaks

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

Change #1200016 merged by Tiziano Fogli:

[operations/puppet@production] neutron: enable nrpe2nodexp wrapper on check-neutron-conntrack

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

Change #1200018 merged by Tiziano Fogli:

[operations/puppet@production] nova: enable nrpe2nodexp wrapper on check-flavor_aggregates

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

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

[operations/puppet@production] openstack: deprecate ensure_running_kvm_instances check

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

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

[operations/alerts@master] wmcs: do not pint-warn on NeutronAgentAdminDown

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

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

[operations/alerts@master] team-wmcs: introduce per-namespace neutron conntrack alert

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

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

[operations/puppet@production] prometheus: remove 'key' label from neutron_netns metrics

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

  1. check-flavor_aggregates ?

It's useful to prevent creation of broken flavors (e.g. ones that don't specify between a ceph or localhost backend, or flavors without any IO throttling). That said, as long as flavors are only managed by cloud-vps admins it doesn't need to be checked this way. The future is probably having all flavors controlled by tofu-infra, in which case we can address the 'rogue flavor' issue by linting the tofu code.

  1. ensure_running_kvm_instances should be removed in favor of higher level service (e.g. nova) signals

It's possible for nova services to be up and running on a host but all the actual VMs crashing (or simply not started after a reboot). I nevertheless think it's probably ok to try ripping out this particular check though, because I've seen lots of false positives and can't remember a time in the last several years where this was actually useful.

  1. check-cinder-snapshot-leaks ?

This is watching for messes left by the backup system. It hasn't fired in ages and, in any case, if/when we revamp the ceph backup system this won't be meaningful.

Change #1302164 merged by Filippo Giunchedi:

[operations/puppet@production] prometheus: remove 'key' label from neutron_netns metrics

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

Change #1302114 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: deprecate ensure_running_kvm_instances check

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

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

[operations/puppet@production] openstack: deprecate icinga check-flavor_aggregates

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

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

[operations/puppet@production] openstack: deprecate check-cinder-snapshot-leaks

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

Thank you for the comments / feedback !

  1. check-flavor_aggregates ?

It's useful to prevent creation of broken flavors (e.g. ones that don't specify between a ceph or localhost backend, or flavors without any IO throttling). That said, as long as flavors are only managed by cloud-vps admins it doesn't need to be checked this way. The future is probably having all flavors controlled by tofu-infra, in which case we can address the 'rogue flavor' issue by linting the tofu code.

Agreed, please take a look at https://gerrit.wikimedia.org/r/c/operations/puppet/+/1302748

  1. ensure_running_kvm_instances should be removed in favor of higher level service (e.g. nova) signals

It's possible for nova services to be up and running on a host but all the actual VMs crashing (or simply not started after a reboot). I nevertheless think it's probably ok to try ripping out this particular check though, because I've seen lots of false positives and can't remember a time in the last several years where this was actually useful.

Thank you, {{done}} in https://gerrit.wikimedia.org/r/c/operations/puppet/+/1302114

  1. check-cinder-snapshot-leaks ?

This is watching for messes left by the backup system. It hasn't fired in ages and, in any case, if/when we revamp the ceph backup system this won't be meaningful.

Makes sense, I have this review out https://gerrit.wikimedia.org/r/c/operations/puppet/+/1302749

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

[operations/puppet@production] openstack: deprecate icinga check-neutron-conntrack

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

Change #1302150 merged by Filippo Giunchedi:

[operations/alerts@master] team-wmcs: do not pint-warn on NeutronAgentAdminDown

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

Change #1302749 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: deprecate check-cinder-snapshot-leaks

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

Change #1302748 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: deprecate icinga check-flavor_aggregates

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

Change #1302151 merged by Filippo Giunchedi:

[operations/alerts@master] team-wmcs: introduce per-namespace neutron conntrack alert

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

Change #1307762 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/alerts@master] team-wmcs: Port Memcached availability alert

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

Change #1307764 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] Disable Memcached Icinga checks for cloudcontrols/cloudwebs

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

Change #1307762 merged by jenkins-bot:

[operations/alerts@master] team-wmcs: Port Memcached availability alert

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

Change #1307764 merged by Majavah:

[operations/puppet@production] Disable Memcached Icinga checks for cloudcontrols/cloudwebs

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

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

[operations/puppet@production] openstack: remove openstack::monitor::neutron::l3_agent_conntrack

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

Change #1302764 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: deprecate icinga check-neutron-conntrack

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

Change #1308626 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: remove openstack::monitor::neutron::l3_agent_conntrack

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

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

Ok we're very close to the finish line! What's left are the DNS checks from production, which hinge on a blackbox-exporter instance being able to reach cloud and being query-able from prod (i.e. T429451)

To be honest since we're already checking dns from metricsinfra, I'm tempted to just go ahead and remove those checks from icinga too. If DNS is badly broken other stuff will break anyways and monitoring will complain, let me know what you think.

T429451: Establish a blackbox network probe vantage point into cloud realm is still worthwhile doing/having on its own, and I'll leave that task open

To be honest since we're already checking dns from metricsinfra, I'm tempted to just go ahead and remove those checks from icinga too. If DNS is badly broken other stuff will break anyways and monitoring will complain, let me know what you think.

Does that mean we would fail to alert in a scenario where DNS works perfectly inside the cloud but no one in the outside world can resolve e.g. paws.wmcloud.org? That seems bad... certainly other things would probably alert but I can imagine convincing myself that it's not DNS (even though it's always DNS).

To be honest since we're already checking dns from metricsinfra, I'm tempted to just go ahead and remove those checks from icinga too. If DNS is badly broken other stuff will break anyways and monitoring will complain, let me know what you think.

Does that mean we would fail to alert in a scenario where DNS works perfectly inside the cloud but no one in the outside world can resolve e.g. paws.wmcloud.org? That seems bad... certainly other things would probably alert but I can imagine convincing myself that it's not DNS (even though it's always DNS).

Yes in said scenario other things would alert, including end to end tests, hence my reasoning of leaving dns tests within metricsinfra and complete the icinga deprecation for wmcs

To be honest since we're already checking dns from metricsinfra, I'm tempted to just go ahead and remove those checks from icinga too. If DNS is badly broken other stuff will break anyways and monitoring will complain, let me know what you think.

Does that mean we would fail to alert in a scenario where DNS works perfectly inside the cloud but no one in the outside world can resolve e.g. paws.wmcloud.org? That seems bad... certainly other things would probably alert but I can imagine convincing myself that it's not DNS (even though it's always DNS).

Yes in said scenario other things would alert, including end to end tests, hence my reasoning of leaving dns tests within metricsinfra and complete the icinga deprecation for wmcs

Ok! Worth it to get rid of icinga!

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

[operations/puppet@production] openstack: stop using icinga for pdns auth checks

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

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

[operations/puppet@production] openldap: stop using icinga in clouddev

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

Change #1332750 merged by Filippo Giunchedi:

[operations/puppet@production] openstack: stop using icinga for pdns auth checks

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

Change #1332751 merged by Filippo Giunchedi:

[operations/puppet@production] openldap: stop using icinga in clouddev

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

fgiunchedi claimed this task.
fgiunchedi updated the task description. (Show Details)

I can confirm that wmcs-owned already are now gone from icinga \o/