-
Notifications
You must be signed in to change notification settings - Fork 980
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
Breaking change to kubernetes.labels.app.*
#1536
Comments
Thanks for your report! The specification of fluent-plugin-kubernetes_metadata_filter has changed since v3.0.0, and the do_dot feature has been removed. Since the daemonset v1.16, that plugin version has been updated to v3. So, we need to use fluent-plugin-dedot_filter. It may be better that we should add some default configs to keep compatibility. |
We will tackle this in #1442. |
It might be of interest but I looked at this dedot filter in trying to correct this for my installation. I wasn't sure of the scope of the original filter, as it what fields it used to act on and why this had been removed, as in why it wasn't considered a good thing anymore. Elasticsearch will take fields with dots. my problem was that I had All the above caused me to end up re-writing |
Describe the bug
Previously (v1.15) kubernetes.labels.app.* fields would have
.
replaced withapp_
.Hence
kubernetes.labels.app.kubernetes.io/component
"kubernetes"=>{..., "labels"=>{"app_kubernetes_io/component"=>value}}
kubernetes.labels.app.kubernetes.io/instance
"kubernetes"=>{..., "labels"=>{"app_kubernetes_io/instance"=>value}}
kubernetes.labels.app.kubernetes.io/name
"kubernetes"=>{..., "labels"=>{"app_kubernetes_io/name"=>value}}
this was the default behaviour and (that I can tell) wasn't the result of some config, for example using the
dedot
plugin.This changed at some point as of v1.16 resulting in
kubernetes.labels.app.kubernetes.io/component
"kubernetes"=>{..., "labels"=>{"app.kubernetes_io/component"=>value}}
kubernetes.labels.app.kubernetes.io/instance
"kubernetes"=>{..., "labels"=>{"app.kubernetes_io/instance"=>value}}
kubernetes.labels.app.kubernetes.io/name
"kubernetes"=>{..., "labels"=>{"app.kubernetes_io/name"=>value}}
Why this is important is many pods from third parties use
kubernetes.labels.app
as a text field in it's own right, nowkubernetes.labels.app
is a object field comprising many separate values. Elasticsearch now fails to accept these values because of this conflict.To Reproduce
Run v1.16+ logging pods with both
kubernetes.labels.app
andkubernetes.labels.app.kubernetes.io/name
labels.Expected behavior
As described above as per v1.15 and prior.
Your Environment
Your Configuration
Your Error Log
The text was updated successfully, but these errors were encountered: