resmoio / kubernetes-event-exporter

Export Kubernetes events to multiple destinations with routing and filtering
Apache License 2.0
753 stars 149 forks source link

Issue / Bug - Loki error: There is no channel #170

Closed victor-apostol closed 2 months ago

victor-apostol commented 5 months ago

So i am installing the bitnami helm chart as such:

    helm install kubernetes-event-exporter oci://registry-1.docker.io/bitnamicharts/kubernetes-event-exporter -n loki-stack \
    -f ./environments/staging/config/values/event-explorer/values.yaml

with this values.yaml config:

replicaCount: 1

image:
  registry:  ghcr.io
  repository: resmoio/kubernetes-event-exporter
  pullPolicy: IfNotPresent
  tag: v1.7

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

service:
  type: ClusterIP
  port: 2112

namespaceOverride: "loki-stack"

resources:
  limits:
    cpu: 100m
    memory: 128Mi
  requests:
    cpu: 100m
    memory: 128Mi

affinity: 
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: doks.digitalocean.com/node-pool
          operator: In
          values:
          - pool-cluster-monitor

tolerations:
- key: "key"
  operator: "Equal"
  value: "cluster-monitor"
  effect: "NoSchedule"

config: 
  logLevel: debug
  logFormat: json
  metricsNamePrefix: 'event_exporter_'
  route:
    routes:
      - match:
        - receiver: "dump"
        - receiver: "loki"
      - drop:
        - namespace: "loki-stack"
    receivers:
      - name: "dump"
        stdout: {}
      - name: "loki"
        loki:
          url: "http://loki:3100/loki/api/v1/push"
          headers:
            Content-Type: application/json
            User-Agent: "kube-event-exporter"
          layout:
            streams:
              - stream:
                  app: kube-api
                  source: event-exporter
                  severity: "{{ .Type }}"
                  reason: "{{ .Reason }}"
                  name: "{{ .InvolvedObject.Name }}"
                  namespace: "{{ .InvolvedObject.Namespace }}"
                  kind: "{{ .InvolvedObject.Kind }}"
                  host: "{{ .Source.Host }}"
                  component: "{{ .Source.Component }}"
                values:
                  - - "{{ mul .GetTimestampMs 1000000 }}"
                    - "severity={{ .Type }} namespace={{ .InvolvedObject.Namespace }} object={{ .InvolvedObject.Kind }}/{{ .InvolvedObject.Name }} reason={{ .Reason }} message={{ .Message }}"

The controller is bootstrapped and running, but i get these errors about loki and the events are not sent to loki:

{"level":"error","name":"loki","time":"2024-03-13T09:50:31Z","message":"There is no channel"} Screenshot from 2024-03-13 11-57-56

The dump receiver seems to work and dumps correctly to stdout but loki receiver doesn't seem to work for me

burk commented 2 months ago

Looks like your receivers: block is indented one level too much.

victor-apostol commented 2 months ago

Looks like your receivers: block is indented one level too much.

Yeah you're right that's what fixed the issue