diff --git a/site-modules/profile/manifests/swh/deploy/graph.pp b/site-modules/profile/manifests/swh/deploy/graph.pp --- a/site-modules/profile/manifests/swh/deploy/graph.pp +++ b/site-modules/profile/manifests/swh/deploy/graph.pp @@ -38,4 +38,49 @@ enable => $service['enable'], } } + + $backend_listen_host = lookup("swh::deploy::graph::backend::listen::host") + $backend_listen_port = lookup("swh::deploy::graph::backend::listen::port") + + $http_check_string = "graph API server" + $icinga_checks_file = lookup('icinga2::exported_checks::filename') + + # swhgraphdev.service exposes the main graph server. + # Ensure the port is working ok through icinga checks + @@::icinga2::object::service {"swh-graph api (local on ${::fqdn})": + service_name => "swh-graph api (localhost)", + import => ['generic-service'], + host_name => $::fqdn, + check_command => 'http', + command_endpoint => $::fqdn, + vars => { + http_address => $local_check_address, + http_vhost => $local_check_address, + http_port => $backend_listen_port, + http_uri => '/', + http_header => ['Accept: application/json'], + http_string => $http_check_string, + }, + target => $icinga_checks_file, + tag => 'icinga2::exported', + } + + if $backend_listen_host != '127.0.0.1' { + @@::icinga2::object::service {"swh-graph api (remote on ${::fqdn})": + service_name => "swh-graph api (remote)", + import => ['generic-service'], + host_name => $::fqdn, + check_command => 'http', + vars => { + http_vhost => $::swh_hostname['internal_fqdn'], + http_port => $backend_listen_port, + http_uri => '/', + http_header => ['Accept: application/json'], + http_string => $http_check_string, + }, + target => $icinga_checks_file, + tag => 'icinga2::exported', + } + } + }