Skip to content

Supporting Kubernetes event properties in OpenSearch index format #155

Open
@jarnfast

Description

@jarnfast

Hi,

in multi-tenant clusters it is possible to configure the kubernetes-event-exporter with multiple rules and receiver so that events for the tenant namespaces end up in dedicated indices in OpenSearch.

The problem is that whenever a tenant is onboarded the kubernetes-event-exporter's configuration needs to be extended with an additional rule and receiver.

If the indexFormat allowed for expansion of event properties this could be achieved with a single rule and receiver.
E.g.

receivers:
  - name: "by-namespace"
    opensearch:
      hosts:
        - http://localhost:9200
      indexFormat: "kube-events-{{ .Namespace }}-{2006-01-02}"

This could implemented by passing the *kube.EnhancedEvent to osFormatIndexName method and letting it expand any event properties denoted with {{ .. }} using GetString(event *kube.EnhancedEvent, text string) from tmpl.go before doing the Go time formatting directives - this way it'll be backwards compatible.

This would be similar to the channel behavior in the slack receiver and the layout templates.

If this sounds agreeable I'll gladly attempt to implement this functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions