feat: Micrometer configuration in the KafkaProxy CRD#99
feat: Micrometer configuration in the KafkaProxy CRD#99SamBarker wants to merge 2 commits intokroxylicious:mainfrom
Conversation
| Micrometer configuration is a proxy-wide, infrastructure concern — it affects what metrics the | ||
| proxy process emits and has implications for Prometheus scrape targets and dashboard | ||
| provisioning. It belongs on `KafkaProxy` (infrastructure admin) rather than | ||
| `VirtualKafkaCluster` (developer). |
There was a problem hiding this comment.
I could imagine a future enhancement that allows commonTags to be also defined at the virtualCluster level. This is out of scope for this proposal and would obviously need a operand change.
There was a problem hiding this comment.
Yeah I can see that we would want to control tags at that level as well, but its not a thread I want to go near today.
Proposes a structured micrometer field on the KafkaProxy spec to close the configuration gap between operator-managed and standalone proxies. Covers standardBinders and commonTags with CRD-level validation. Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Sam Barker <sam@quadrocket.co.uk>
0adcfae to
b203464
Compare
Rework commonTags into a structured object with two sub-fields: - static: deployment-wide key-value pairs - fromLabels: map of tag name to label key, resolved per-pod via the Kubernetes downward API and CommonTagsHook env var interpolation Also clarifies that validation failures surface as Accepted: False with reason Invalid on the KafkaProxy status. Assisted-by: Claude claude-sonnet-4-6 <noreply@anthropic.com> Signed-off-by: Sam Barker <sam@quadrocket.co.uk>
| #### `commonTags.fromLabels`: per-pod values via label promotion | ||
|
|
||
| Some tag values — such as availability zone — differ per pod and cannot be resolved at reconcile time because the proxy config file is shared across all replicas. | ||
| `commonTags.fromLabels` maps tag names (valid Prometheus label names) to Kubernetes label keys on the `KafkaProxy` CR, which the operator promotes into per-pod metric tags. |
There was a problem hiding this comment.
Some labels on the pods may come from other sources (e.g.SSA).
There was a problem hiding this comment.
Without giving the proxy the ability to query K8s apis we can't really capture any other source other than KafkaProxy as that's the only one the reconciler can configure the downwards api to populate env vars for.
Add PRs kroxylicious#96, kroxylicious#98, kroxylicious#99, kroxylicious#100, kroxylicious#101, and kroxylicious#103 which were opened after the initial script was created. Note: PR kroxylicious#100 is already correctly named (100-sidecar-injection-webhook.md). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This change simplifies the proposal numbering system by using PR numbers as proposal identifiers, eliminating number collisions and removing the need for a separate allocation process. Changes: - Simplified proposals/README.md to focus on author workflow - Removed index tables (directory listing serves as the index) - Streamlined instructions for creating and renaming proposals - Updated proposal template with workflow instructions - Require PR number in title format: # <PR#> - <Title> - Moved workflow instructions into comment block - Added GitHub workflow to automatically check proposal numbering - Validates both filename and title format - Updates PR description when proposal files don't match PR number - Provides exact commands to fix naming issues - Removes warning once corrected - Handles both added and renamed files - Runs on all PRs (ready for mandatory status check) - Added notification script for existing open PRs - After merge, run notify-open-prs.sh to ask authors to rebase - Workflow will automatically guide them through renaming - Updated with all current open proposal PRs (kroxylicious#70, kroxylicious#82, kroxylicious#83, kroxylicious#85, kroxylicious#88, kroxylicious#93, kroxylicious#94, kroxylicious#96, kroxylicious#98, kroxylicious#99, kroxylicious#100, kroxylicious#101, kroxylicious#103) Proposals 001-019 retain their original numbers. Assisted-By: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: Keith Wall <kwall@apache.org>
This change simplifies the proposal numbering system by using PR numbers as proposal identifiers, eliminating number collisions and removing the need for a separate allocation process. Changes: - Simplified proposals/README.md to focus on author workflow - Removed index tables (directory listing serves as the index) - Streamlined instructions for creating and renaming proposals - Updated proposal template with workflow instructions - Require PR number in title format: # <PR#> - <Title> - Moved workflow instructions into comment block - Added GitHub workflow to automatically check proposal numbering - Validates both filename and title format - Updates PR description when proposal files don't match PR number - Provides exact commands to fix naming issues - Removes warning once corrected - Handles both added and renamed files - Runs on all PRs (ready for mandatory status check) - Added notification script for existing open PRs - After merge, run notify-open-prs.sh to ask authors to rebase - Workflow will automatically guide them through renaming - Updated with all current open proposal PRs (#70, #82, #83, #85, #88, #93, #94, #96, #98, #99, #100, #101, #103) Proposals 001-019 retain their original numbers. Assisted-By: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: Keith Wall <kwall@apache.org>
|
Hi! We've updated the proposal numbering system to use PR numbers as proposal identifiers. Action required: Please rebase your PR on Once you rebase, you'll need to rename your proposal file and update the title: git mv proposals/020-micrometer-configuration-in-kafkaproxy-crd.md proposals/099-configuration-in-kafkaproxy-crd.md
# Update title: remove any old number prefix and add PR number
sed -i.bak '0,/^# /{s/^# \([0-9]\{3\}\|xxx\|nnn\|000\) - /# 99 - /; t; s/^# /# 99 - /}' proposals/099-configuration-in-kafkaproxy-crd.md && rm proposals/099-configuration-in-kafkaproxy-crd.md.bak
git add proposals/099-configuration-in-kafkaproxy-crd.md
git commit -m "Rename proposal to use PR number"
git pushThe GitHub workflow will automatically check your proposal file naming after you push and update this PR description if any corrections are still needed. See proposals/README.md for the updated workflow. |
|
Correction: The previous notification had an incorrect filename. Here are the correct commands: git mv proposals/020-micrometer-configuration-in-kafkaproxy-crd.md proposals/099-micrometer-configuration-in-kafkaproxy-crd.md
# Update title: remove any old number prefix and add PR number
sed -i.bak '0,/^# /{s/^# \([0-9]\{3\}\|xxx\|nnn\|000\) - /# 99 - /; t; s/^# /# 99 - /}' proposals/099-micrometer-configuration-in-kafkaproxy-crd.md && rm proposals/099-micrometer-configuration-in-kafkaproxy-crd.md.bak
git add proposals/099-micrometer-configuration-in-kafkaproxy-crd.md
git commit -m "Rename proposal to use PR number"
git pushSorry for the confusion! |
Summary
micrometerfield to theKafkaProxyspec to close the configuration gap between operator-managed and standalone proxy deploymentsstandardBinders(JVM/process metrics) andcommonTags(static deployment-wide metric tags) with CRD-level schema validationcommonTags(per-pod values like AZ require future runtime enhancement)Test plan
MicrometerDefinitionmodelStandardBindersHookbinder names🤖 Generated with Claude Code