newrelic-experimental / monitoring-kubernetes-with-opentelemetry

Apache License 2.0
9 stars 6 forks source link

Bug/Typo in statefulset-otelcollector.yaml prevents deployment #142

Closed tvalchev2 closed 5 months ago

tvalchev2 commented 6 months ago

Description

Steps to Reproduce

Try to upgrade from older versions (i.E.) 0.8.1 or any to 0.8.2. Chart version post 0.8.2 (including) won't deploy (container is in crash loop backoff due to configuration error)

Expected Behavior

It deploys and works :)

Relevant Logs / Console output

Error: invalid configuration: processors::filter/opsteam: unable to parse OTTL condition "(resource.attributes[\"service.name\"] != \"kubernetes-nodes-cadvisor\" or (not (IsMatch(attributes[\"namespace\"], \"kube-system\")) and not (IsMatch(attributes[\"namespace\"], \"cert-manager\")) and not (IsMatch(attributes[\"namespace\"], \"fluxv1\")) and not (IsMatch(attributes[\"namespace\"], \"flux-system\")) and not (IsMatch(attributes[\"namespace\"], \"monitoring\")) and not (IsMatch(attributes[\"namespace\"], \"opentelemetry\")) and not (IsMatch(attributes[\"namespace\"], \"ingress*\")) and not (IsMatch(attributes[\"namespace\"], \"default\")) and not (IsMatch(attributes[\"namespace\"], \"solrcloud-operator\")) and not (IsMatch(attributes[\"namespace\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-kube-state-metrics\" or (not (IsMatch(attributes[\"namespace\"], \"kube-system\")) and not (IsMatch(attributes[\"namespace\"], \"cert-manager\")) and not (IsMatch(attributes[\"namespace\"], \"fluxv1\")) and not (IsMatch(attributes[\"namespace\"], \"flux-system\")) and not (IsMatch(attributes[\"namespace\"], \"monitoring\")) and not (IsMatch(attributes[\"namespace\"], \"opentelemetry\")) and not (IsMatch(attributes[\"namespace\"], \"ingress*\")) and not (IsMatch(attributes[\"namespace\"], \"default\")) and not (IsMatch(attributes[\"namespace\"], \"solrcloud-operator\")) and not (IsMatch(attributes[\"namespace\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-apiservers\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-coredns\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-node-exporter\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-service-endpoints\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-pods\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-pods-tlnzz-perftest\" or (not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"kube-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"cert-manager\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"fluxv1\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"flux-system\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"monitoring\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"opentelemetry\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"ingress*\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"default\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"solrcloud-operator\")) and not (IsMatch(resource.attributes[\"k8s.namespace.name\"], \"zookeeper\")))) and (resource.attributes[\"service.name\"] != \"kubernetes-nodes\"))": condition has invalid syntax: 1:6322: unexpected token ")"

Your Environment

Additional context

The Problem lies within a typo (one ")" too many at line 104). At the moment I suspended reconciliation of the HelmChart on my cluster and manually edited the sts-collector CRD to get it working for the time being. https://github.com/newrelic-experimental/monitoring-kubernetes-with-opentelemetry/blob/d234f3494a857934437217bdc1c6b5985d3e0abc/helm/charts/collectors/templates/statefulset-otelcollector.yaml#L104C112-L104C113

utr1903 commented 5 months ago

Fixed with #145.