Puppet Class: icinga2::feature::graphite

Defined in:
manifests/feature/graphite.pp

Summary

Configures the Icinga 2 feature graphite.

Overview

Examples:

class { 'icinga2::feature::graphite':
  host                   => '10.10.0.15',
  port                   => 2003,
  enable_send_thresholds => true,
  enable_send_metadata   => true,
}

Parameters:

  • ensure (Enum['absent', 'present']) (defaults to: present)

    Set to present enables the feature graphite, absent disabled it.

  • host (Optional[Stdlib::Host]) (defaults to: undef)

    Graphite Carbon host address.

  • port (Optional[Stdlib::Port]) (defaults to: undef)

    Graphite Carbon port.

  • host_name_template (Optional[String[1]]) (defaults to: undef)

    Template for metric path of hosts.

  • service_name_template (Optional[String[1]]) (defaults to: undef)

    Template for metric path of services.

  • enable_send_thresholds (Optional[Boolean]) (defaults to: undef)
  • enable_send_metadata (Optional[Boolean]) (defaults to: undef)
  • enable_ha (Optional[Boolean]) (defaults to: undef)

    Enable the high availability functionality. Only valid in a cluster setup.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'manifests/feature/graphite.pp', line 34

class icinga2::feature::graphite (
  Enum['absent', 'present'] $ensure                 = present,
  Optional[Stdlib::Host]    $host                   = undef,
  Optional[Stdlib::Port]    $port                   = undef,
  Optional[String[1]]       $host_name_template     = undef,
  Optional[String[1]]       $service_name_template  = undef,
  Optional[Boolean]         $enable_send_thresholds = undef,
  Optional[Boolean]         $enable_send_metadata   = undef,
  Optional[Boolean]         $enable_ha              = undef,
) {
  if ! defined(Class['icinga2']) {
    fail('You must include the icinga2 base class before using any icinga2 feature class!')
  }

  $conf_dir = $icinga2::globals::conf_dir
  $_notify  = $ensure ? {
    'present' => Class['icinga2::service'],
    default   => undef,
  }

  # compose attributes
  $attrs = {
    'host'                   => $host,
    'port'                   => $port,
    'host_name_template'     => $host_name_template,
    'service_name_template'  => $service_name_template,
    'enable_send_thresholds' => $enable_send_thresholds,
    'enable_send_metadata'   => $enable_send_metadata,
    'enable_ha'              => $enable_ha,
  }

  # create object
  icinga2::object { 'icinga2::object::GraphiteWriter::graphite':
    object_name => 'graphite',
    object_type => 'GraphiteWriter',
    attrs       => delete_undef_values($attrs),
    attrs_list  => keys($attrs),
    target      => "${conf_dir}/features-available/graphite.conf",
    order       => 10,
    notify      => $_notify,
  }

  # manage feature
  icinga2::feature { 'graphite':
    ensure => $ensure,
  }
}