226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
|
# File 'manifests/init.pp', line 226
class prometheus (
Stdlib::Absolutepath $env_file_path,
Array $extra_groups = [],
Hash $global_config = { 'scrape_interval' => '15s', 'evaluation_interval' => '15s', 'external_labels' => { 'monitor' => 'master' } },
String $package_ensure = 'latest',
String $package_name = 'prometheus',
Array $rule_files = [],
Array $scrape_configs = [],
Optional[Array] $scrape_config_files = undef,
Array $remote_read_configs = [],
Array $remote_write_configs = [],
Boolean $enable_tracing = false,
Hash $tracing_config = {},
Stdlib::Absolutepath $shared_dir = '/usr/local/share/prometheus',
String $storage_retention = '360h',
String $user = 'prometheus',
Prometheus::Uri $download_url_base = 'https://github.com/prometheus/prometheus/releases',
Array $alertmanagers_config = [],
Array $alert_relabel_config = [],
String $download_extension = 'tar.gz',
String $config_template = 'prometheus/prometheus.yaml.erb',
String $config_mode = '0640',
String $config_dir = '/etc/prometheus',
Boolean $manage_config_dir = true,
Boolean $manage_init_file = true,
Hash $alerts = {},
Boolean $manage_config = true,
String $group = 'prometheus',
Stdlib::Absolutepath $localstorage = '/var/lib/prometheus',
Boolean $manage_localstorage = true,
Stdlib::Absolutepath $bin_dir = '/usr/local/bin',
String $version = '2.52.0',
String $install_method = 'url',
String $service_name = 'prometheus',
Boolean $manage_prometheus_server = false,
Optional[String[1]] $extra_options = undef,
Optional[String] $download_url = undef,
Optional[String[1]] $extract_command = undef,
Stdlib::Absolutepath $usershell = '/usr/bin/nologin',
Optional[String[1]] $web_listen_address = undef,
Optional[String[1]] $web_read_timeout = undef,
Optional[String[1]] $web_max_connections = undef,
Optional[String[1]] $web_route_prefix = undef,
Optional[String[1]] $web_user_assets = undef,
Boolean $web_enable_lifecycle = false,
Boolean $web_enable_admin_api = false,
Optional[String[1]] $web_page_title = undef,
Optional[String[1]] $web_cors_origin = undef,
Optional[String[1]] $storage_retention_size = undef,
Boolean $storage_no_lockfile = false,
Boolean $storage_allow_overlapping_blocks = false,
Boolean $storage_wal_compression = false,
Optional[String[1]] $storage_flush_deadline = undef,
Optional[String[1]] $storage_read_sample_limit = undef,
Optional[String[1]] $storage_read_concurrent_limit = undef,
Optional[String[1]] $storage_read_max_bytes_in_frame = undef,
Optional[String[1]] $alert_for_outage_tolerance = undef,
Optional[String[1]] $alert_for_grace_period = undef,
Optional[String[1]] $alert_resend_delay = undef,
Optional[String[1]] $alertmanager_notification_queue_capacity = undef,
Optional[String[1]] $alertmanager_timeout = undef,
Optional[String[1]] $query_lookback_delta = undef,
Optional[String[1]] $query_timeout = undef,
Optional[String[1]] $query_max_concurrency = undef,
Optional[String[1]] $query_max_samples = undef,
Optional[Enum['debug', 'info', 'warn', 'error']] $log_level = undef,
Optional[Enum['logfmt', 'json']] $log_format = undef,
Hash $extra_alerts = {},
Hash $config_hash = {},
Hash $config_defaults = {},
String[1] $os = downcase($facts['kernel']),
Optional[Variant[Stdlib::HTTPUrl, Stdlib::Unixpath, String[1]]] $external_url = undef,
Array[Hash[String[1], Any]] $collect_scrape_jobs = [],
Optional[String[1]] $collect_tag = undef,
Optional[Integer] $max_open_files = undef,
Systemd::Unit::Service $systemd_service_options = {},
Systemd::Unit::Unit $systemd_unit_options = {},
Systemd::Unit::Install $systemd_install_options = {},
String[1] $configname = 'prometheus.yaml',
Boolean $service_enable = true,
Boolean $manage_service = true,
Stdlib::Ensure::Service $service_ensure = 'running',
Boolean $restart_on_change = true,
Prometheus::Initstyle $init_style = $facts['service_provider'],
String[1] $arch = $facts['os']['architecture'],
Boolean $manage_group = true,
Boolean $purge_config_dir = true,
Boolean $manage_user = true,
Boolean $config_show_diff = true,
Boolean $include_default_scrape_configs = true,
Optional[String[1]] $proxy_server = undef,
Optional[Enum['none', 'http', 'https', 'ftp']] $proxy_type = undef,
) {
$real_arch = $arch ? {
'x86_64' => 'amd64',
'i386' => '386',
'aarch64' => 'arm64',
'armv7l' => 'armv7',
'armv6l' => 'armv6',
'armv5l' => 'armv5',
default => $arch,
}
if $manage_prometheus_server {
include prometheus::server
}
}
|