Puppet Class: prometheus::node_dnsbox_service_state_exporter

Defined in:
modules/prometheus/manifests/node_dnsbox_service_state_exporter.pp

Overview

SPDX-License-Identifier: Apache-2.0

Class: prometheus::node_dnsbox_service_state_exporter

Periodically exports the state of various dnsbox services, as observed and set through confd/confctl.

Parameters:

  • ensure (Wmflib::Ensure)
  • outfile (Pattern[/\.prom$/]) (defaults to: '/var/lib/prometheus/node.d/dnsbox_service_state.prom')


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'modules/prometheus/manifests/node_dnsbox_service_state_exporter.pp', line 6

class prometheus::node_dnsbox_service_state_exporter (
    Wmflib::Ensure     $ensure,
    Pattern[/\.prom$/] $outfile = '/var/lib/prometheus/node.d/dnsbox_service_state.prom',
) {
    ensure_packages(['python3-prometheus-client'])

    $script_file = '/usr/local/bin/prometheus_node_dnsbox_service_state'

    file { $script_file:
        ensure => stdlib::ensure($ensure, 'file'),
        mode   => '0555',
        owner  => 'root',
        group  => 'root',
        source => "puppet:///modules/prometheus/${script_file}.py",
    }

    # Collect every minute.
    systemd::timer::job { 'prometheus_node_dnsbox_service_state_exporter':
        ensure      => $ensure,
        description => 'Regular job to collect state of services (pooled or not) on dnsbox hosts',
        user        => 'root',
        command     => "${script_file} -o ${outfile}",
        interval    => {'start' => 'OnCalendar', 'interval' => 'minutely'},
    }
}