--- /dev/null
+class otel($version) {
+ package {'otel-contrib':
+ source => "https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v${version}/otelcol-contrib_${version}_linux_386.rpm",
+ }
+ ->
+ service {'otelcol-contrib':
+ ensure => running,
+ enable => true,
+ }
+}
node 'clickhouse.h1.int.pdp7.net' {
class {'clickhouse':}
+
+ class {'otel':
+ version => '0.88.0',
+ }
+
+ file {'/etc/otelcol-contrib/config.yaml':
+ content => @(EOT)
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ http:
+ cors:
+ allowed_origins:
+ - "http://*"
+ - "https://*"
+ processors:
+ batch:
+ timeout: 5s
+ send_batch_size: 100000
+ exporters:
+ clickhouse:
+ endpoint: tcp://127.0.0.1:9000?dial_timeout=10s&compress=lz4
+ database: otel
+ ttl_days: 180
+ logs_table_name: otel_logs
+ traces_table_name: otel_traces
+ metrics_table_name: otel_metrics
+ timeout: 5s
+ retry_on_failure:
+ enabled: true
+ initial_interval: 5s
+ max_interval: 30s
+ max_elapsed_time: 300s
+ service:
+ pipelines:
+ logs:
+ receivers: [ otlp ]
+ processors: [ batch ]
+ exporters: [ clickhouse ]
+ metrics:
+ receivers: [ otlp ]
+ processors: [ batch ]
+ exporters: [ clickhouse ]
+ traces:
+ receivers: [ otlp ]
+ processors: [ batch ]
+ exporters: [ clickhouse ]
+ | EOT
+ ,
+ require => Package['otel-contrib'],
+ notify => Service['otelcol-contrib'],
+ }
}