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
106
107
108
|
# File 'manifests/init.pp', line 56
class otelcol (
String $package_name,
String[1] $localpath_archive,
String[1] $archive_version,
Stdlib::Filemode $config_file_mode,
Enum['present','absent','installed','latest'] $package_ensure = 'installed',
String $service_name = $package_name,
Boolean $service_configcheck = true,
String $environment_file = "/etc/${package_name}/${package_name}.conf",
Optional[String] $run_options = undef,
String $config_file = "/etc/${package_name}/config.yaml",
Optional[String] $config_file_owner = undef,
Optional[String] $config_file_group = undef,
Array[String] $configs = [],
Hash[String, Hash] $receivers = {},
Hash[String, Hash] $processors = {},
Hash[String, Hash] $exporters = {},
Hash[String, Hash] $pipelines = {},
Hash[String, Hash] $extensions = {},
Variant[Hash,String[1]] $log_options = {},
Enum['none','basic','normal','detailed'] $metrics_level = 'basic',
Array[Otelcol::Telemetry_exporter] $telemetry_exporters = [{ 'prometheus' => { 'host' => '0.0.0.0', 'port' => 8888 } }],
Stdlib::Ensure::Service $service_ensure = 'running',
Boolean $service_enable = true,
Boolean $manage_service = true,
Boolean $manage_archive = false,
Optional[String[1]] $archive_location = undef,
Optional[Stdlib::Host] $proxy_host = undef,
Stdlib::Port $proxy_port = 8888,
) {
$_archive_location = if $archive_location {
$archive_location
}
else {
case $facts['os']['family'] {
'windows': { "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${otelcol::archive_version}/${otelcol::package_name}_${otelcol::archive_version}_windows_x64" }
default: { "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${otelcol::archive_version}/${otelcol::package_name}_${otelcol::archive_version}_linux_amd64" }
}
}
class { 'otelcol::install':
archive_location => $_archive_location,
}
contain otelcol::config
if($manage_service) {
contain otelcol::service
Class['otelcol::config'] ~> Class['otelcol::service']
Class['otelcol::install'] ~> Class['otelcol::service']
}
Class['otelcol::install'] -> Class['otelcol::config']
}
|