sensu-plugins / sensu-plugins-http

This plugin provides native HTTP instrumentation for monitoring and metrics collection, including: response code, JSON response, HTTP last modified, SSL expiry, and metrics via `curl`.
http://sensu-plugins.io
MIT License
30 stars 97 forks source link

Checking multiple URIs #184

Open tvdstaaij opened 4 years ago

tvdstaaij commented 4 years ago

I have a use case for this plugin where I need each agent to check multiple unique vhosts depending on their configuration. For example, server A needs an http check for https://foo.org and https://bar.com, and server B for https://orange.fruit, https://banana.fruit and https://mango.fruit. In the output I want to see which vhosts pass and fail.

Currently I have the hosts templated as {{ .annotations.check_http_uris }} and wrapped the check in a parallel invocation, which is fairly straightfoward and generally works, but it tends to break with system updates because of the LD_LIBRARY_PATH Sensu passes for Ruby.

Of course it could be done with a custom script, but this has the disadvantage of either (a) having to cram much more in a single command than what's comfortable or (b) having to install a script file on all client systems, which is horrible if the systems can't be updated at the same time.

Could multiple URI support be a good feature for this plugin? Or is there a better way to approach this situation?