From 882a50b17c5eb1ed63a57b32ec1ddd0204e10c23 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 3 Mar 2025 18:14:30 +0100 Subject: [PATCH] feat(opentelemetry-collector): add Signoz as exporter Signed-off-by: Nicolas Lamirault --- .../charts/observability/signoz/Chart.yaml | 8 +-- .../signoz/values-talos-homelab.yaml | 28 ++++----- .../charts/observability/signoz/values.yaml | 26 ++++---- .../values-talos-homelab.yaml | 43 +++++++++---- .../opentelemetry-collector/values.yaml | 63 ++++++++++++++----- 5 files changed, 109 insertions(+), 59 deletions(-) diff --git a/gitops/argocd/charts/observability/signoz/Chart.yaml b/gitops/argocd/charts/observability/signoz/Chart.yaml index 5d5568b36a..05d6102e92 100644 --- a/gitops/argocd/charts/observability/signoz/Chart.yaml +++ b/gitops/argocd/charts/observability/signoz/Chart.yaml @@ -10,7 +10,7 @@ appVersion: 1.0.0 dependencies: - name: signoz repository: https://charts.signoz.io - version: 0.72.0 -- name: k8s-infra - repository: https://charts.signoz.io - version: 0.12.1 + version: 0.73.0 +# - name: k8s-infra +# repository: https://charts.signoz.io +# version: 0.12.1 diff --git a/gitops/argocd/charts/observability/signoz/values-talos-homelab.yaml b/gitops/argocd/charts/observability/signoz/values-talos-homelab.yaml index 3e5377e533..175165cb68 100644 --- a/gitops/argocd/charts/observability/signoz/values-talos-homelab.yaml +++ b/gitops/argocd/charts/observability/signoz/values-talos-homelab.yaml @@ -248,17 +248,17 @@ signoz: cpu: 200m memory: 1Gi -k8s-infra: - clusterName: portefaix-talos-homelab - otelCollectorEndpoint: signoz-otel-collector.observability.svc.cluster.local:4317 - - otelDeployment: - nodeSelector: - kubernetes.io/arch: amd64 - - otelAgent: - # TODO: bump to Talos https://github.com/siderolabs/talos/releases/tag/v1.8.3 - # See: https://github.com/siderolabs/talos/issues/9630 - podSecurityContext: - runAsUser: 0 - runAsGroup: 0 +# k8s-infra: +# clusterName: portefaix-talos-homelab +# otelCollectorEndpoint: signoz-otel-collector.observability.svc.cluster.local:4317 + +# otelDeployment: +# nodeSelector: +# kubernetes.io/arch: amd64 + +# otelAgent: +# # TODO: bump to Talos https://github.com/siderolabs/talos/releases/tag/v1.8.3 +# # See: https://github.com/siderolabs/talos/issues/9630 +# podSecurityContext: +# runAsUser: 0 +# runAsGroup: 0 diff --git a/gitops/argocd/charts/observability/signoz/values.yaml b/gitops/argocd/charts/observability/signoz/values.yaml index a61112c244..978d66c18c 100644 --- a/gitops/argocd/charts/observability/signoz/values.yaml +++ b/gitops/argocd/charts/observability/signoz/values.yaml @@ -61,16 +61,16 @@ signoz: logsjson: enabled: true -k8s-infra: - presets: - loggingExporter: - enabled: false - # Verbosity of the logging export: basic, normal, detailed - verbosity: basic - blacklist: - enabled: true - signozLogs: false - namespaces: - - test - - poc - pods: [] +# k8s-infra: +# presets: +# loggingExporter: +# enabled: false +# # Verbosity of the logging export: basic, normal, detailed +# verbosity: basic +# blacklist: +# enabled: true +# signozLogs: false +# namespaces: +# - test +# - poc +# pods: [] diff --git a/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values-talos-homelab.yaml b/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values-talos-homelab.yaml index ab7db26b6a..93857f53b4 100644 --- a/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values-talos-homelab.yaml +++ b/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values-talos-homelab.yaml @@ -16,10 +16,10 @@ opentelemetry-logs: valueFrom: fieldRef: fieldPath: spec.nodeName - - name: K8S_CLUSTER_NAME - value: "portefaix-talos-homelab" - - name: K8S_ENVIRONMENT_NAME - value: "homelab" + # - name: K8S_CLUSTER_NAME + # value: "portefaix-talos-homelab" + # - name: K8S_ENVIRONMENT_NAME + # value: "homelab" # - name: OTEL_RESOURCE_ATTRIBUTES # value: "k8s.cluster.name=$(K8S_CLUSTER_NAME),\ # k8s.pod.ip=$(KUBE_POD_IP),\ @@ -39,10 +39,10 @@ opentelemetry-metrics: valueFrom: fieldRef: fieldPath: spec.nodeName - - name: K8S_CLUSTER_NAME - value: "portefaix-talos-homelab" - - name: K8S_ENVIRONMENT_NAME - value: "homelab" + # - name: K8S_CLUSTER_NAME + # value: "portefaix-talos-homelab" + # - name: K8S_ENVIRONMENT_NAME + # value: "homelab" opentelemetry-metrics-cluster: extraEnvs: @@ -57,12 +57,30 @@ opentelemetry-metrics-cluster: valueFrom: fieldRef: fieldPath: spec.nodeName - - name: K8S_CLUSTER_NAME - value: "portefaix-talos-homelab" - - name: K8S_ENVIRONMENT_NAME - value: "homelab" + # - name: K8S_CLUSTER_NAME + # value: "portefaix-talos-homelab" + # - name: K8S_ENVIRONMENT_NAME + # value: "homelab" opentelemetry-traces: + extraEnvs: + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.pod.ip=$(MY_POD_IP)" + - name: K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + # - name: K8S_NODE_NAME + # valueFrom: + # fieldRef: + # fieldPath: spec.nodeName + # - name: K8S_CLUSTER_NAME + # value: "portefaix-talos-homelab" + # - name: K8S_ENVIRONMENT_NAME + # value: "homelab" + +opentelemetry-gateway: extraEnvs: - name: OTEL_RESOURCE_ATTRIBUTES value: "k8s.pod.ip=$(MY_POD_IP)" @@ -82,6 +100,7 @@ opentelemetry-traces: + # opentelemetry-collector: # resources: # limits: diff --git a/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values.yaml b/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values.yaml index c7354180dd..3536461d78 100644 --- a/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values.yaml +++ b/gitops/argocd/charts/opentelemetry/opentelemetry-collector/values.yaml @@ -163,9 +163,9 @@ opentelemetry-logs: log_statements: - context: resource statements: - - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") - - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") - - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") + # - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + # - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + # - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") - set(attributes["loki.attribute.labels"], "node, deployment, namespace, container, pod, app") # redaction/card-numbers: @@ -497,13 +497,13 @@ opentelemetry-metrics: name: k8s.namespace.name - sources: - from: connection - transform: - metric_statements: - - context: resource - statements: - - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") - - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") - - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") + # transform: + # metric_statements: + # - context: resource + # statements: + # - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + # - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + # - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") exporters: otlphttp/gateway: @@ -939,12 +939,12 @@ opentelemetry-traces: name: k8s.namespace.name - sources: - from: connection - transform: - trace_statements: - - context: resource - statements: - - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") - - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + # transform: + # trace_statements: + # - context: resource + # statements: + # - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + # - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") exporters: otlphttp/gateway: @@ -1083,6 +1083,31 @@ opentelemetry-gateway: send_batch_max_size: 100 send_batch_size: 10 timeout: 10s + transform: + log_statements: + - context: resource + statements: + - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") + # https://github.com/SigNoz/signoz/issues/6143 + - set(attributes["deployment.environment"], "${K8S_ENVIRONMENT_NAME}") + metric_statements: + - context: resource + statements: + - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") + # https://github.com/SigNoz/signoz/issues/6143 + - set(attributes["deployment.environment"], "${K8S_ENVIRONMENT_NAME}") + trace_statements: + - context: resource + statements: + - set(attributes["k8s.cluster.name"], "${K8S_CLUSTER_NAME}") + - set(attributes["cluster"], "${K8S_CLUSTER_NAME}") + - set(attributes["deployment.environment.name"], "${K8S_ENVIRONMENT_NAME}") + # https://github.com/SigNoz/signoz/issues/6143 + - set(attributes["deployment.environment"], "${K8S_ENVIRONMENT_NAME}") extensions: basicauth/grafana_cloud: @@ -1170,6 +1195,9 @@ opentelemetry-gateway: "Content-Type": "application/json" "x-oneuptime-token": "${ONEUPTIME_TOKEN}" + # Endpoints in the cluster + # --------------------------- + otlphttp/loki: endpoint: http://loki-gateway.logging.svc.cluster.local:80/otlp # otlphttp/mimir: @@ -1179,6 +1207,9 @@ opentelemetry-gateway: tls: insecure: true + otlphttp/signoz: + endpoint: http://signoz.observability.svc.cluster.local:80/otlp + service: telemetry: logs: