Puppet Class: prometheus_cd::params

Summary

Class holds all parameters for the prometheus_cd module.

Overview

prometheus_cd::params.pp Module name: prometheus_cd Author: Arne Teuke (arne_teuke@confdroid.com)

Parameters:

  • reqpackage_prom (String) (defaults to: 'prometheus2')

    the prometheus package

  • reqpackage_ne (String) (defaults to: 'node_exporter')

    the node_exporter package

  • pkg_ensure (String) (defaults to: 'present')

    which version of the package to install

  • manage_prometheus (Boolean) (defaults to: false)

    whether to manage prometheus

  • manage_node_exporter (Boolean) (defaults to: false)

    whether to manage node exporter

  • ps_manage_fw (Boolean) (defaults to: false)

    whether to manage the firewall

  • ps_prom_host (String) (defaults to: 'prometheus.example.net')

    the fqdn of the prometheus server

  • ps_fw_prefix (String) (defaults to: '50')

    the firewall rule prefix

  • ps_main_port (String) (defaults to: '9090')

    the firewall main port for prometheus

  • ps_auth_user (String) (defaults to: 'changeme')

    the username for authentication

  • ps_auth_pass (String) (defaults to: 'changeme')

    the password for authentication

  • ps_web_pass (String) (defaults to: 'changeme')

    the password for web authentication

  • ps_retention_time (String) (defaults to: '15d')

    tsdb retention time

  • ps_retention_size (String) (defaults to: '20GB')

    tsdb retention size

  • ps_wal_seg_size (String) (defaults to: '50MB')

    WAL segment size

  • ps_min_block_dur (String) (defaults to: '2h')

    tsdb minimum block duration

  • ps_max_block_dur (String) (defaults to: '2h')

    tsdb maximum block duration

  • ps_max_mem (String) (defaults to: '6G')

    hard memory ceiling

  • ps_high_mem (String) (defaults to: '5G')

    soft limit to make kernel reclaim earlier

  • ps_swap_mem (String) (defaults to: '4G')

    allow swap, but limit it

  • ps_oom_score (String) (defaults to: '500')

    OOM killer choosing prometheus

  • ps_max_procs (String) (defaults to: '1')

    reduce parallel WAL replay workers

  • ps_write_external (Boolean) (defaults to: false)

    whether to allow remote postgres

  • ps_auth_ext_user (String) (defaults to: 'changeme')

    user for writing to extern instance

  • ps_auth_ext_pass (String) (defaults to: 'changeme')

    password for writing to extern instance

  • ps_external_url (String) (defaults to: 'http://changeme.local/write')

    the full url for the remote write point

  • ps_enable_pruning (Boolean) (defaults to: false)

    whether to allow pruning local blocks

  • ps_pruning_dir (String) (defaults to: '/opt/prometheus-prune')

    the directory for the pruning script



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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'manifests/params.pp', line 34

class prometheus_cd::params (

  # installation
  String $reqpackage_prom       = 'prometheus2',
  String $reqpackage_ne         = 'node_exporter',
  String $pkg_ensure            = 'present',

  # config logic
  Boolean $manage_prometheus    = false,
  Boolean $manage_node_exporter = false,
  Boolean $ps_manage_fw         = false,
  String $ps_prom_host          = 'prometheus.example.net',

  # firewall
  String $ps_fw_prefix          = '50',
  String $ps_main_port          = '9090',

  # auth prometheus
  String $ps_auth_user          = 'changeme',
  String $ps_auth_pass          = 'changeme',
  String $ps_web_pass           = 'changeme',

  # auth remote
  String $ps_auth_ext_user      = 'changeme',
  String $ps_auth_ext_pass      = 'changeme',

  # storage
  String $ps_retention_time     = '15d',
  String $ps_retention_size     = '20GB',
  String $ps_wal_seg_size       = '50MB',
  String $ps_min_block_dur      = '2h',
  String $ps_max_block_dur      = '2h',

  # service
  String $ps_max_mem            = '6G',
  String $ps_high_mem           = '5G',
  String $ps_swap_mem           = '4G',
  String $ps_oom_score          = '500',
  String $ps_max_procs          = '1',

  # remote write external
  Boolean $ps_write_external    = false,
  String $ps_external_url       = 'http://changeme.local/write',

  # pruning script
  Boolean $ps_enable_pruning    = false,
  String $ps_pruning_dir        = '/opt/prometheus-prune',

) {
  # defaults
  $fqdn                   = $facts['networking']['fqdn']
  $domain                 = $facts['networking']['domain']
  $os_name                = $facts['os']['name']
  $os_release             = $facts['os']['release']['major']

  # dirs
  $ps_main_dir            = '/etc/prometheus'
  $ps_system_file_dir     = '/etc/systemd/system/prometheus.service.d'

  # files
  $ps_main_file           = "${ps_main_dir}/prometheus.yml"
  $ps_web_config_file     = "${ps_main_dir}/web.yml"
  $ps_system_service_file = "${ps_system_file_dir}/override.conf"

  # services
  $ps_prom_service        = 'prometheus'
  $ps_ne_service          = 'node_exporter'

  # includes must be last
  include prometheus_cd::main::config
}