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

  • ps_pruning_file (String) (defaults to: "${ps_pruning_dir}/prune_prometheus_pg.sh")


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
105
# 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',
  String $ps_pruning_file       = "${ps_pruning_dir}/prune_prometheus_pg.sh",

) {
  # 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
}