Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add configurable event type filter #51

Merged
merged 3 commits into from
Jun 20, 2019
Merged

Conversation

maimaisie
Copy link
Contributor

@maimaisie maimaisie commented Jun 19, 2019

This PR adds a fluentd config param for specifying a list of event types to ingest. An error will be thrown if (1) the list is empty; (2) the list size exceeds three; (3) each element in the list is not one of ADDED, MODIFIED or DELETED (uses case-insensitive string compare, Ruby's casecmp is case insensitive and returns 0 if two strings are the same ignoring case, ie, "ADDED".casecmp("addED") == 0)

User can then have something like this:

    <source>
      @type events
      type_selector ["ADDED", "deleted"]
    </source>

config_param :configmap_update_interval_seconds, :integer, default: 10
config_param :watch_interval_seconds, :integer, default: 300

def configure(conf)
super

@valid_types = ["ADDED", "MODIFIED", "DELETED"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a complete list of the event types? I couldn't find any docs on this, would appreciate if you could point me in the right direction

Copy link
Contributor Author

@maimaisie maimaisie Jun 19, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that reminds me there is also an ERROR type. I think it's errors related to using the watch API. in that case there won't be a resource version returned, and when that happens we skip the event and start a new watch stream. I will try to find docs on this, but I haven't seen any docs TBH

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code snippet shows the types. BOOKMARK is very interesting that I just discovered. It's an event that only contains a resource version for a resource. It acts like a heartbeat for watch that tells you even though you didn't get a watch event for a resource, there hasn't been any changes to that resource up to this resource version. more details here. But it is still in alpha so I don't think we want to add it here yet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into it Maisie, that sounds good to me.

fluent-plugin-events/lib/fluent/plugin/in_events.rb Outdated Show resolved Hide resolved
config_param :configmap_update_interval_seconds, :integer, default: 10
config_param :watch_interval_seconds, :integer, default: 300

def configure(conf)
super

@valid_types = ["ADDED", "MODIFIED", "DELETED"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into it Maisie, that sounds good to me.

Copy link
Contributor

@yuting-liu yuting-liu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@samjsong
Copy link
Contributor

good catch 😅

@maimaisie maimaisie merged commit 2874bdf into master Jun 20, 2019
@maimaisie maimaisie deleted the maisie-event-type-filter branch June 20, 2019 20:30
psaia pushed a commit to psaia/sumologic-kubernetes-collection that referenced this pull request May 25, 2021
* Add AD provider

* Add linux build of the AD provider

* Create AD groups to match Sumo Logic roles

* Remove legacy AD provider

* Fix formatting

* Use different prefixes based on env
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants