tripleo-common/healthcheck
Cédric Jeanneret a072a7f07e healthcheck_port: drop lsof in favor of awk/find
It seems lsof is a bit too heavy on the system when multiple
healthchecks are running in parallel.
So instead of calling a "big" process, let's split a bit things and get
to the filesystem directly in order to pick only the things we actually
need.

What changes:
- using /proc/net/{tcp,udp}, we get every socket matching the port
- using find with the right options, we can ensure at least one socket
  exists with the wanted inode(s)

The last part exits as soon as we have a match in order to make it
faster and less resource consuming.

Change-Id: I64776992a7e457781aa8ddaba359ef085d4cb77d
Partial-Bug: #1921714
2021-04-07 10:42:29 +02:00
..
releasenotes/notes Revert "Revert "Fix a couple of Swift healthchecks"" 2021-01-08 10:19:38 -07:00
README.md Document healthcheck and container build issues 2021-01-08 10:31:12 -07:00
aodh-api Fix formatting options 2018-09-11 17:15:11 +02:00
aodh-evaluator Fix formatting options 2018-09-11 17:15:11 +02:00
aodh-listener Fix formatting options 2018-09-11 17:15:11 +02:00
aodh-notifier Fix formatting options 2018-09-11 17:15:11 +02:00
barbican-api Fix formatting options 2018-09-11 17:15:11 +02:00
barbican-keystone-listener Fix formatting options 2018-09-11 17:15:11 +02:00
barbican-worker Fix formatting options 2018-09-11 17:15:11 +02:00
ceilometer-agent-central Fix formatting options 2018-09-11 17:15:11 +02:00
ceilometer-agent-compute Fix ceilometer_agent_compute health check 2019-11-04 12:18:26 +01:00
ceilometer-agent-ipmi Fix formatting options 2018-09-11 17:15:11 +02:00
ceilometer-agent-notification Fix formatting options 2018-09-11 17:15:11 +02:00
cinder-api Fix formatting options 2018-09-11 17:15:11 +02:00
cinder-backup Fix formatting options 2018-09-11 17:15:11 +02:00
cinder-scheduler Fix formatting options 2018-09-11 17:15:11 +02:00
cinder-volume Fix formatting options 2018-09-11 17:15:11 +02:00
collectd Activate new healthchecks 2018-03-07 10:44:59 +01:00
common.sh healthcheck_port: drop lsof in favor of awk/find 2021-04-07 10:42:29 +02:00
cron Fix bashate and flake8 errors 2019-06-14 19:23:53 +01:00
etcd Fix etcd healthcheck 2019-10-09 10:21:05 -04:00
fluentd Bracket IPv6 address in ironic_inspector healthcheck 2020-02-12 13:28:54 -05:00
frr Frr image support 2021-02-03 08:42:00 +01:00
glance-api Bracket IPv6 address in ironic_inspector healthcheck 2020-02-12 13:28:54 -05:00
gnocchi-api Fix formatting options 2018-09-11 17:15:11 +02:00
gnocchi-metricd Fix formatting options 2018-09-11 17:15:11 +02:00
gnocchi-statsd Switch gnocchi-statsd HC to healthcheck_port 2020-12-17 12:27:05 +01:00
heat-api Fix formatting options 2018-09-11 17:15:11 +02:00
heat-api-cfn Fix formatting options 2018-09-11 17:15:11 +02:00
heat-engine Fix formatting options 2018-09-11 17:15:11 +02:00
horizon Fix formatting options 2018-09-11 17:15:11 +02:00
http-healthcheck.py Conditionally use python instead of cURL 2021-01-22 08:26:08 +01:00
ironic-api Fix formatting options 2018-09-11 17:15:11 +02:00
ironic-conductor Fix formatting options 2018-09-11 17:15:11 +02:00
ironic-inspector Use healthcheck_port for ironic_inspector_dnsmasq healthcheck 2020-04-15 13:56:01 -04:00
ironic-neutron-agent Add a healthcheck for ironic-neutron-agent 2019-10-18 01:46:08 +00:00
ironic-pxe Bracket IPv6 address in ironic_inspector healthcheck 2020-02-12 13:28:54 -05:00
iscsid Activate new healthchecks 2018-03-07 10:44:59 +01:00
keystone Fix keystone healthcheck 2019-01-16 22:12:23 +01:00
manila-scheduler Fix formatting options 2018-09-11 17:15:11 +02:00
mariadb Fix formatting options 2018-09-11 17:15:11 +02:00
memcached Fix memcached healthcheck regression 2020-03-04 17:22:53 +05:30
mistral-api Fix formatting options 2018-09-11 17:15:11 +02:00
mistral-engine Fix formatting options 2018-09-11 17:15:11 +02:00
mistral-event-engine Fix formatting options 2018-09-11 17:15:11 +02:00
mistral-executor Fix formatting options 2018-09-11 17:15:11 +02:00
multipathd Activate new healthchecks 2018-03-07 10:44:59 +01:00
neutron-api Bracket IPv6 address in ironic_inspector healthcheck 2020-02-12 13:28:54 -05:00
neutron-dhcp Fix formatting options 2018-09-11 17:15:11 +02:00
neutron-l3 Fix formatting options 2018-09-11 17:15:11 +02:00
neutron-metadata Fix formatting options 2018-09-11 17:15:11 +02:00
neutron-ovs-agent Fix formatting options 2018-09-11 17:15:11 +02:00
neutron-sriov-agent Fix formatting options 2018-09-11 17:15:11 +02:00
nova-api Fix nova-api healthcheck 2018-11-12 09:21:45 +01:00
nova-compute Fix formatting options 2018-09-11 17:15:11 +02:00
nova-conductor Fix formatting options 2018-09-11 17:15:11 +02:00
nova-ironic Fix formatting options 2018-09-11 17:15:11 +02:00
nova-libvirt Fix nova-virtlogd container healthcheck 2020-05-28 19:00:10 +05:30
nova-metadata Fix formatting options 2018-09-11 17:15:11 +02:00
nova-scheduler Fix formatting options 2018-09-11 17:15:11 +02:00
nova-vnc-proxy Bracket IPv6 address in ironic_inspector healthcheck 2020-02-12 13:28:54 -05:00
octavia-api Fixup octavia-api healthcheck 2019-04-24 10:14:43 -02:30
octavia-health-manager healthcheck: List udp ports with ss 2019-09-13 23:20:37 +05:30
octavia-housekeeping Fix formatting options 2018-09-11 17:15:11 +02:00
octavia-worker Fix formatting options 2018-09-11 17:15:11 +02:00
ovn-controller Fix formatting options 2018-09-11 17:15:11 +02:00
ovn-dbs Correct ovn-dbs health check 2019-04-16 13:40:29 +02:00
ovn-metadata Fix formatting options 2018-09-11 17:15:11 +02:00
panko-api Fix formatting options 2018-09-11 17:15:11 +02:00
placement-api placement: Add missing healthcheck for extracted service 2019-01-21 10:13:22 +00:00
qdrouterd Add health check script for qdrouterd 2019-08-23 15:35:20 +02:00
rabbitmq Fix formatting options 2018-09-11 17:15:11 +02:00
redis Fix formatting options 2018-09-11 17:15:11 +02:00
swift-account-server Revert "Revert "Fix a couple of Swift healthchecks"" 2021-01-08 10:19:38 -07:00
swift-container-server Revert "Revert "Fix a couple of Swift healthchecks"" 2021-01-08 10:19:38 -07:00
swift-object-server Revert "Revert "Fix a couple of Swift healthchecks"" 2021-01-08 10:19:38 -07:00
swift-proxy Revert "Revert "Fix a couple of Swift healthchecks"" 2021-01-08 10:19:38 -07:00
swift-rsync Fix formatting options 2018-09-11 17:15:11 +02:00
zaqar-api Add new healthchecks for zaqar services 2019-04-24 18:00:30 +02:00
zaqar-socket Fix bashate and flake8 errors 2019-06-14 19:23:53 +01:00

README.md

Health check commands

The scripts in this directory are meant to implement the container-healthcheck blueprint. They are written to be compatible with the Docker HEALTHCHECK api.

The scripts expect to source /usr/share/tripleo-common/healthcheck/common.sh. If you want to run scripts without installing to that file, you can set the HEALTHCHECKS_DIR environment variable, e.g:

    $ export HEALTHCHECKS_DIR=$PWD
    $ ./heat-api
    {"versions": [{"status": "CURRENT", "id": "v1.0", "links": [{"href": "http://192.168.24.1:8004/v1/", "rel": "self"}]}]}
    300 192.168.24.1:8004 0.002 seconds

Notes about changing healthchecks

Because healthchecks are provided via a package when building containers, you cannot rename or remove a health check in combination with a change to a, file in tripleo-common/container-images/. Changes need to be backwards and forwards compatible when updating healthchecks. You may also need to land a new healthcheck first and update the container build process in a subsequent change that lands later.