**current status:**
In the class `prometheus::blackbox::check::http`, which is used for monitoring various misc. services, there is there parameter `$server_name` which is by default set to `$title`.
It is described as `# @param server_name - an FQDN, the server name to use (during TLS and Host:).`
separate from that we have `# @param instance_label - short-form host name, used as an instance label.`
**problem statement:**
Let's say you have multiple backends serving a single virtual host, example:
virtual host: doc.wikimedia.org
machines: doc1001.eqiad.wmnet, doc2001.codfw.wmnet
which is a very common type of setup.
Now if you want to monitor if doc.wikimedia.org you have the following options:
- use "doc.wikimedia.org" as the resource title but tell puppet with an 'if-then-else' to only monitor the "active host" or one of the 2 hosts
- use "doc.wikimedia.org" as the resource title and apply it on both instances, puppet run will fail with a "duplicate declaration" error because the same $title is used more than once
- use the instance name as $title, but now requests go to doc1001.eqiad.wmnet / doc2001.codfw.wmnet and you are not actually monitoring doc.wikimedia.org
**suggested fix:**
Have separate parameters for "virtual host" and "instance FQDN" so we can truly check "virtual host X on host Y and host Z".
Just like when you manually use `curl` you also have separate parameters for a virtual host you are requesting and a host you are requesting it from.