Puppet Class: otelcol

Inherited by:
otelcol::config
Defined in:
manifests/init.pp

Overview

Parameters:

  • package_name (String) (defaults to: 'otelcol')

    Name of the package used

  • package_ensure (Enum['present','absent','installed','latest']) (defaults to: 'installed')

    Ensure for the package

  • service_name (String) (defaults to: $package_name)

    Name of the service used

  • service_configcheck (Boolean) (defaults to: true)

    Check config before service reloads

  • environment_file (String) (defaults to: "/etc/${package_name}/${package_name}.conf")

    path of the environment file used for service

  • run_options (Optional[String]) (defaults to: undef)

    additional options for service

  • config_file (String) (defaults to: "/etc/${package_name}/config.yaml")

    path to config file

  • config_file_owner (Optional[String]) (defaults to: undef)

    owner of config_file

  • config_file_group (Optional[String]) (defaults to: undef)

    group of config_file

  • config_file_mode (Stdlib::Filemode) (defaults to: '0600')

    mode of config_file

  • configs (Array[String]) (defaults to: [])

    additional config files or resources to add. Since this can be environment variables, http urls or files you are required to ensure the existence of a file!

  • receivers (Hash[String, Hash]) (defaults to: {})

    Hash for receivers config

  • processors (Hash[String, Hash]) (defaults to: {})

    Hash for processors config

  • exporters (Hash[String, Hash]) (defaults to: {})

    Hash for exporters config

  • pipelines (Hash[String, Hash]) (defaults to: {})

    Hash for pipelines config

  • extensions (Hash[String, Hash]) (defaults to: {})

    Hash for extensions config

  • log_options (Variant[Hash,String[1]]) (defaults to: {})

    Hash for log_options config

  • metrics_level (Enum['none','basic','normal','detailed']) (defaults to: 'basic')

    Level for metrics config

  • telemetry_exporters (Array[Otelcol::Telemetry_exporter]) (defaults to: [{ 'prometheus' => { 'host' => '0.0.0.0', 'port' => 8888 } }])

    Hash for telemetry exporters config. Currently support pull prometheus and periodic with otlp

  • service_ensure (Stdlib::Ensure::Service) (defaults to: 'running')

    Ensure for service

  • service_enable (Boolean) (defaults to: true)

    Enable the service on boot

  • manage_service (Boolean) (defaults to: true)

    If service is managed by module

  • manage_archive (Boolean) (defaults to: false)

    If archive should be managed by module of will be provided by packagemanager

  • localpath_archive (String[1]) (defaults to: '/tmp')

    Path where archive will be stored if managed

  • archive_version (String[1]) (defaults to: '0.135.0')

    Version of otelcol that will be used, param is not used if archive_location is set

  • archive_location (String[1]) (defaults to: "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${archive_version}/${package_name}_${archive_version}_linux_amd64")

    Path to archive without filetype extension

  • proxy_host (Optional[Stdlib::Host]) (defaults to: undef)
  • proxy_port (Stdlib::Port) (defaults to: 8888)


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
# File 'manifests/init.pp', line 56

class otelcol (
  String  $package_name                          = 'otelcol',
  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,
  Stdlib::Filemode $config_file_mode             = '0600',
  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,
  String[1] $localpath_archive                   = '/tmp',
  # Boolean $manage_user                           = false,
  String[1] $archive_version                     = '0.135.0',
  String[1] $archive_location          = "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${archive_version}/${package_name}_${archive_version}_linux_amd64",
  Optional[Stdlib::Host] $proxy_host = undef,
  Stdlib::Port $proxy_port = 8888,
) {
  contain otelcol::install
  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']
}