Puppet Class: icinga2::feature::perfdata

Defined in:
manifests/feature/perfdata.pp

Summary

Configures the Icinga 2 feature perfdata.

Overview

Parameters:

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

    Set to present enables the feature perfdata, absent disables it.

  • host_perfdata_path (Optional[Stdlib::Absolutepath]) (defaults to: undef)

    Absolute path to the perfdata file for hosts.

  • service_perfdata_path (Optional[Stdlib::Absolutepath]) (defaults to: undef)

    Absolute path to the perfdata file for services.

  • host_temp_path (Optional[Stdlib::Absolutepath]) (defaults to: undef)

    Path to the temporary host file.

  • service_temp_path (Optional[Stdlib::Absolutepath]) (defaults to: undef)

    Path to the temporary service file.

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

    Host Format template for the performance data file.

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

    Service Format template for the performance data file.

  • rotation_interval (Optional[Icinga2::Interval]) (defaults to: undef)

    Rotation interval for the files specified in host,service_perfdata_path. Can be written in minutes or seconds, i.e. 1m or 15s.

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

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



32
33
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/perfdata.pp', line 32

class icinga2::feature::perfdata (
  Enum['absent', 'present']           $ensure                  = present,
  Optional[Stdlib::Absolutepath]      $host_perfdata_path      = undef,
  Optional[Stdlib::Absolutepath]      $service_perfdata_path   = undef,
  Optional[Stdlib::Absolutepath]      $host_temp_path          = undef,
  Optional[Stdlib::Absolutepath]      $service_temp_path       = undef,
  Optional[String[1]]                 $host_format_template    = undef,
  Optional[String[1]]                 $service_format_template = undef,
  Optional[Icinga2::Interval]         $rotation_interval       = 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_perfdata_path'      => $host_perfdata_path,
    'service_perfdata_path'   => $service_perfdata_path,
    'host_temp_path'          => $host_temp_path,
    'service_temp_path'       => $service_temp_path,
    'host_format_template'    => $host_format_template,
    'service_format_template' => $service_format_template,
    'rotation_interval'       => $rotation_interval,
    'enable_ha'               => $enable_ha,
  }

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

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