Enhance documentation for k8sattributes processor#5341
Open
Enhance documentation for k8sattributes processor#5341
Conversation
Added details about multi-tier deployments and workarounds for k8sattributes processor.
|
|
Contributor
|
💻 Deploy preview available (Enhance documentation for k8sattributes processor): |
| A {{< param "PRODUCT_NAME" >}} running as a Deployment can't detect the IP addresses of pods generating telemetry data without any of the well-known IP attributes. | ||
| If the Deployment {{< param "PRODUCT_NAME" >}} receives telemetry from {{< param "PRODUCT_NAME" >}}s deployed as DaemonSet, then some of those attributes might be missing. | ||
| As a workaround, you can configure the DaemonSet {{< param "PRODUCT_NAME" >}}s with `passthrough` set to `true`. | ||
| **Multi-tier deployments:** When using a two-tier architecture where DaemonSet {{< param "PRODUCT_NAME" >}} instances forward telemetry to a centralized Deployment {{< param "PRODUCT_NAME" >}}, the k8sattributes processor in the Deployment cannot determine which pod originally sent the telemetry. This happens because: |
Contributor
There was a problem hiding this comment.
Suggested change
| **Multi-tier deployments:** When using a two-tier architecture where DaemonSet {{< param "PRODUCT_NAME" >}} instances forward telemetry to a centralized Deployment {{< param "PRODUCT_NAME" >}}, the k8sattributes processor in the Deployment cannot determine which pod originally sent the telemetry. This happens because: | |
| **Multi-tier deployments:** If you use a two-tier architecture where {{< param "PRODUCT_NAME" >}} instances deployed as a DaemonSet forward telemetry to a centralized {{< param "PRODUCT_NAME" >}} Deployment, the k8sattributes processor in the Deployment can't determine which Pod originally sent the telemetry. This happens for the following reasons: |
Comment on lines
+66
to
+68
| 1. The k8sattributes processor identifies pods using the connection source IP, `k8s.pod.ip`, or `k8s.pod.uid` attributes | ||
| 2. When telemetry is forwarded through a DaemonSet, the Deployment sees the DaemonSet pod's IP as the source, not the original application pod's IP | ||
| 3. If the telemetry doesn't already contain `k8s.pod.ip` or `k8s.pod.uid` attributes, the Deployment cannot look up the pod's Kubernetes metadata |
Contributor
There was a problem hiding this comment.
Suggested change
| 1. The k8sattributes processor identifies pods using the connection source IP, `k8s.pod.ip`, or `k8s.pod.uid` attributes | |
| 2. When telemetry is forwarded through a DaemonSet, the Deployment sees the DaemonSet pod's IP as the source, not the original application pod's IP | |
| 3. If the telemetry doesn't already contain `k8s.pod.ip` or `k8s.pod.uid` attributes, the Deployment cannot look up the pod's Kubernetes metadata | |
| 1. The k8sattributes processor relies on the connection source IP, `k8s.pod.ip`, or `k8s.pod.uid` attributes to identify Pods. | |
| 1. When telemetry passes through a DaemonSet, the Deployment sees the DaemonSet Pod's IP instead of the original application Pod's IP. | |
| 1. The Deployment can't retrieve metadata for the original Pod unless the telemetry contains `k8s.pod.ip` or `k8s.pod.uid` attributes. |
| 2. When telemetry is forwarded through a DaemonSet, the Deployment sees the DaemonSet pod's IP as the source, not the original application pod's IP | ||
| 3. If the telemetry doesn't already contain `k8s.pod.ip` or `k8s.pod.uid` attributes, the Deployment cannot look up the pod's Kubernetes metadata | ||
|
|
||
| **Workaround:** Configure the DaemonSet {{< param "PRODUCT_NAME" >}} with `passthrough = true`. This ensures the DaemonSet adds Kubernetes attributes (like `k8s.namespace.name`) before forwarding, so the Deployment receives telemetry with metadata already attached. The Deployment's k8sattributes processor will then pass through the existing attributes without modification. |
Contributor
There was a problem hiding this comment.
Suggested change
| **Workaround:** Configure the DaemonSet {{< param "PRODUCT_NAME" >}} with `passthrough = true`. This ensures the DaemonSet adds Kubernetes attributes (like `k8s.namespace.name`) before forwarding, so the Deployment receives telemetry with metadata already attached. The Deployment's k8sattributes processor will then pass through the existing attributes without modification. | |
| To address this, configure {{< param "PRODUCT_NAME" >}} that runs as a DaemonSet with `passthrough = true`. This ensures the DaemonSet adds Kubernetes attributes, like `k8s.namespace.name`, before forwarding, so the Deployment receives telemetry with metadata already attached. The Deployment's k8sattributes processor then passes through the attributes without modification. |
|
|
||
| **Workaround:** Configure the DaemonSet {{< param "PRODUCT_NAME" >}} with `passthrough = true`. This ensures the DaemonSet adds Kubernetes attributes (like `k8s.namespace.name`) before forwarding, so the Deployment receives telemetry with metadata already attached. The Deployment's k8sattributes processor will then pass through the existing attributes without modification. | ||
|
|
||
| **Note:** If your {{< param "PRODUCT_NAME" >}} receives telemetry directly from application pods (not forwarded from another {{< param "PRODUCT_NAME" >}}), keep `passthrough = false` (the default). |
Contributor
There was a problem hiding this comment.
Suggested change
| **Note:** If your {{< param "PRODUCT_NAME" >}} receives telemetry directly from application pods (not forwarded from another {{< param "PRODUCT_NAME" >}}), keep `passthrough = false` (the default). | |
| {{< admonition type="note" >}} | |
| You only need to set `passthrough = true` in multi-tier deployments where another {{< param "PRODUCT_NAME" >}} instance forwards the telemetry. | |
| {{< /admonition >}} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added details about multi-tier deployments and workarounds for k8sattributes processor.
Brief description of Pull Request
Pull Request Details
Issue(s) fixed by this Pull Request
Notes to the Reviewer
PR Checklist