]> xn--ix-yja.es Git - alex.git/commitdiff
Add opentelemetry collector
authoralex <alex@pdp7.net>
Thu, 9 Nov 2023 20:08:37 +0000 (21:08 +0100)
committeralex <alex@pdp7.net>
Thu, 9 Nov 2023 20:08:37 +0000 (21:08 +0100)
personal_infra/puppet/modules/otel/manifests/init.pp [new file with mode: 0644]
personal_infra/puppet/site/clickhouse.h1.int.pdp7.net.pp

diff --git a/personal_infra/puppet/modules/otel/manifests/init.pp b/personal_infra/puppet/modules/otel/manifests/init.pp
new file mode 100644 (file)
index 0000000..0665db5
--- /dev/null
@@ -0,0 +1,10 @@
+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,
+  }
+}
index 4d7821faabf9bd9fceaa2ad759c34da16cf68562..6cce895097b53d501c64eee93e0513cce7f4c733 100644 (file)
@@ -1,3 +1,56 @@
 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'],
+  }
 }