-
-
Notifications
You must be signed in to change notification settings - Fork 50
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
first shot for pipelining support #503
Conversation
add multiple conditions in matching
This seems to be working with no problems - I've put a few tens of millions of queries through it so far. Testing has not been exhaustive, but other than the Prometheus bug (unrelated to this pipeline support) I'd say it's going well. |
Well, perhaps I was a bit premature in my comment. I tried adding a dnstap output, and that doesn't seem to quite work:
Adding those lines causes this error:
But, if I simply delete the "godnscollector-next" item from the routes: line, it seems to not blow up but of course I can't route any packets to that pipeline.
|
The panic error should only occur during routing initialization. If a route is missing in the configuration, the application will be stopped. After copying and pasting your configuration on my end, it's working fine without any panics. Can you confirm if you have this log on startup?
I will add more log messages to show the routing initialization process. |
Thanks - this was a typo on my part during testing. Works as expected! |
YAML model improved with latest commit with include/exclude section, external file support in a generic way (working on all keys) - name: apple-txt
dnsmessage:
matching:
include:
dns.opcode: 0
dns.length:
greater-than: 50
dns.qname:
file-list: "./testsdata/filtering_keep_domains_regex.txt"
file-kind: "domain_list"
exclude:
dns.qtype: [ "TXT", "MX" ]
dns.qname:
- ".*\\.github\\.com$"
- "^www\\.google\\.com$"
policy: "drop-unmatched"
transforms:
atags:
tags: [ "TXT:apple", "TXT:google" ]
routes: [ outputfile, console ] For me the concept of pipelines is validated with a very flexible and powerful matching (testing load will be needed to check cpu and memory usage) todo list to finalize the PoC:
|
The new syntax to use: - name: apple-txt
dnsmessage:
matching:
include:
#dns.flags.qr: false
dns.opcode: 0
dns.length:
greater-than: 50
dns.qname:
match-source: "file://./testsdata/filtering_keep_domains_regex.txt"
source-kind: "regexp_list"
dnstap.operation:
match-source: "http://127.0.0.1/operation.txt"
source-kind: "string_list"
exclude:
dns.qtype: [ "TXT", "MX" ]
dns.qname:
- ".*\\.github\\.com$"
- "^www\\.google\\.com$"
drop-policy: "unmatched"
transforms:
atags:
tags: [ "TXT:apple", "TXT:google" ]
routes: [ outputfile, console ] |
New syntax for better routing #521 definition between stanza /!\ The
|
@johnhtodd
This PR is a draft to validate the concept of pipelines in configuration.
This codebase will be the minimum to implement future versions.
New model of config: