Skip to content

OCPBUGS-66152: split grpc requests slow into read/write alerts#1532

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
tjungblu:OCPBUGS-66152
Jan 29, 2026
Merged

OCPBUGS-66152: split grpc requests slow into read/write alerts#1532
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
tjungblu:OCPBUGS-66152

Conversation

@tjungblu
Copy link
Contributor

This avoids alerting on endpoints that have no meaningful impact on the product (e.g. etcd leases) and allows us to tune the thresholds for read and write differently.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 22, 2026
@openshift-ci-robot
Copy link

@tjungblu: This pull request references Jira Issue OCPBUGS-66152, which is invalid:

  • expected the bug to target the "4.22.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

This avoids alerting on endpoints that have no meaningful impact on the product (e.g. etcd leases) and allows us to tune the thresholds for read and write differently.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai
Copy link

coderabbitai bot commented Jan 22, 2026

Walkthrough

The pull request refactors etcd monitoring by splitting a single complex gRPC request latency alert into two separate alerts targeting read and write operations with distinct thresholds and evaluation windows, and updates dependency versions in the lockfile.

Changes

Cohort / File(s) Summary
Alert refactoring for gRPC monitoring
jsonnet/custom.libsonnet, manifests/0000_90_etcd-operator_03_prometheusrule.yaml
Replaced etcdGRPCRequestsSlow alert with two new alerts: etcdGRPCReadRequestsSlow (targets grpc_method="Range" with threshold >3, 10m window) and etcdGRPCWriteRequestsSlow (targets grpc_method="Txn" with threshold >5, 10m window). Both include severity, description, and summary annotations. Removed previous 30m duration and complex multi-condition expression.
Dependency version updates
jsonnet/jsonnetfile.lock.json
Updated three dependency entries with new version hashes and corresponding sum values. No structural changes to file layout.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes


Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 22, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@jsonnet/custom.libsonnet`:
- Around line 56-64: The etcdGRPCWriteRequestsSlow alert currently only filters
grpc_method="Txn" so Put and DeleteRange write operations are missed; update the
alert expression (the expr for alert: etcdGRPCWriteRequestsSlow) to include all
write methods by changing the label filter to match multiple methods (e.g.,
grpc_method=~"Txn|Put|DeleteRange") or an equivalent set-based match, and update
the annotations.description text to reflect that Put and DeleteRange are
included so the summary remains accurate.

In `@manifests/0000_90_etcd-operator_03_prometheusrule.yaml`:
- Around line 121-127: The alert etcdGRPCWriteRequestsSlow only filters
grpc_method="Txn" so slow Put/DeleteRange write paths are missed; update the
expr in the PrometheusRule for alert etcdGRPCWriteRequestsSlow to include all
write methods (Txn, Put, DeleteRange) — e.g. change the grpc_method filter to
match those three methods (or use a regex like =~ "Txn|Put|DeleteRange") in the
grpc_server_handling_seconds_bucket selector so the histogram_quantile evaluates
write latency across all write operations.

Comment on lines +56 to +64
alert: 'etcdGRPCWriteRequestsSlow',
expr: 'histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{job="etcd", grpc_method="Txn", grpc_type="unary"}[10m])) without(grpc_type)) > 5',
'for': '10m',
labels: {
severity: 'critical',
},
annotations: {
description: 'etcd cluster "{{ $labels.job }}": 99th percentile of gRPC requests is {{ $value }}s on etcd instance {{ $labels.instance }} for {{ $labels.grpc_method }} method.',
summary: 'etcd grpc requests are slow',
description: 'etcd cluster "{{ $labels.job }}": 99th percentile of gRPC write requests is {{ $value }}s on etcd instance {{ $labels.instance }}.',
summary: 'etcd grpc write requests are slow',
Copy link

@coderabbitai coderabbitai bot Jan 22, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, locate and read the file to understand context
find . -name "custom.libsonnet" -type f

Repository: openshift/cluster-etcd-operator

Length of output: 101


🏁 Script executed:

# Check file size and read the relevant section with context
fd -e libsonnet | head -20

Repository: openshift/cluster-etcd-operator

Length of output: 1790


🏁 Script executed:

# Find the custom.libsonnet file
git ls-files | grep -i custom.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 99


🏁 Script executed:

# Read the custom.libsonnet file to understand context
wc -l ./jsonnet/custom.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 105


🏁 Script executed:

# Read the file with context around lines 56-64
cat -n ./jsonnet/custom.libsonnet | sed -n '40,75p'

Repository: openshift/cluster-etcd-operator

Length of output: 2098


🏁 Script executed:

# Check if there are other alerts for Put or DeleteRange methods
grep -n "Put\|DeleteRange" ./jsonnet/custom.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 57


🏁 Script executed:

# Check the upstream etcd mixin alerts to compare
cat -n ./jsonnet/vendor/github.com/etcd-io/etcd/contrib/mixin/alerts/alerts.libsonnet | grep -A 5 "etcdGRPCWriteRequestsSlow" | head -20

Repository: openshift/cluster-etcd-operator

Length of output: 57


🏁 Script executed:

# Search for write-related alerts in the upstream etcd mixin
cat ./jsonnet/vendor/github.com/etcd-io/etcd/contrib/mixin/alerts/alerts.libsonnet | grep -i "write" -A 3 -B 1

Repository: openshift/cluster-etcd-operator

Length of output: 865


🏁 Script executed:

# Get a broader view of what's in the upstream etcd mixin alerts
wc -l ./jsonnet/vendor/github.com/etcd-io/etcd/contrib/mixin/alerts/alerts.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 157


🏁 Script executed:

# Read the full upstream etcd alerts file to find write-related alerts
cat -n ./jsonnet/vendor/github.com/etcd-io/etcd/contrib/mixin/alerts/alerts.libsonnet | grep -i "grpc.*write\|txn\|put\|deleterange" -B 2 -A 5

Repository: openshift/cluster-etcd-operator

Length of output: 57


🏁 Script executed:

# Get the entire alerts file to understand the pattern
cat ./jsonnet/vendor/github.com/etcd-io/etcd/contrib/mixin/alerts/alerts.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 11491


🏁 Script executed:

# Read the entire custom.libsonnet to check if Put/DeleteRange are monitored elsewhere
cat -n ./jsonnet/custom.libsonnet

Repository: openshift/cluster-etcd-operator

Length of output: 10807


🌐 Web query:

etcd gRPC methods Put DeleteRange Txn write operations

💡 Result:

Summary — etcd KV gRPC write operations

  • Put (KV.Put): writes or updates a single key. Increments store revision, generates a PUT event; can return previous KV if PutRequest.prev_kv is set. Request/response types: PutRequest → PutResponse. [1][2]

  • DeleteRange (KV.DeleteRange): deletes a single key or a range (key + range_end). Increments revision, generates DELETE events for each deleted key; can return deleted key-values if prev_kv is set. Response includes deleted count. Request/response types: DeleteRangeRequest → DeleteRangeResponse. [1][2]

  • Txn (KV.Txn): atomic If/Then/Else transaction. TxnRequest contains compares (conditions) and two lists of RequestOp (success / failure). RequestOp is a oneof: RangeRequest, PutRequest, DeleteRangeRequest (and nested TxnRequest). TxnResponse returns succeeded bool and a list of ResponseOp (matching RangeResponse / PutResponse / DeleteRangeResponse). A Txn increments the revision once for the applied requests and generates events with the same revision. It is forbidden to modify the same key more than once within a single Txn (Puts/Deletes must use unique keys). [1][2]

References:

  • etcd v3 gRPC KV API (Put / DeleteRange / Txn) — etcd docs. [1]
  • etcd v3 transaction and RequestOp/ResponseOp protobuf details — etcd docs. [2]

Sources:
[1] etcd API reference — service KV (Put, DeleteRange, Txn).
[2] etcd v3 learning / API (Txn, RequestOp, Request/Response message shapes).


Expand the write alert to include Put and DeleteRange methods.

The alert is named etcdGRPCWriteRequestsSlow and its description claims to monitor "gRPC write requests," but currently only filters for Txn. Put and DeleteRange are direct write operations in etcd that are not captured. If your workload uses direct Put or DeleteRange calls (common in many deployments), slow writes via these methods would go undetected.

Suggested fix
-            expr: 'histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{job="etcd", grpc_method="Txn", grpc_type="unary"}[10m])) without(grpc_type)) > 5',
+            expr: 'histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{job="etcd", grpc_method=~"Txn|Put|DeleteRange", grpc_type="unary"}[10m])) without(grpc_type)) > 5',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
alert: 'etcdGRPCWriteRequestsSlow',
expr: 'histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{job="etcd", grpc_method="Txn", grpc_type="unary"}[10m])) without(grpc_type)) > 5',
'for': '10m',
labels: {
severity: 'critical',
},
annotations: {
description: 'etcd cluster "{{ $labels.job }}": 99th percentile of gRPC requests is {{ $value }}s on etcd instance {{ $labels.instance }} for {{ $labels.grpc_method }} method.',
summary: 'etcd grpc requests are slow',
description: 'etcd cluster "{{ $labels.job }}": 99th percentile of gRPC write requests is {{ $value }}s on etcd instance {{ $labels.instance }}.',
summary: 'etcd grpc write requests are slow',
alert: 'etcdGRPCWriteRequestsSlow',
expr: 'histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{job="etcd", grpc_method=~"Txn|Put|DeleteRange", grpc_type="unary"}[10m])) without(grpc_type)) > 5',
'for': '10m',
labels: {
severity: 'critical',
},
annotations: {
description: 'etcd cluster "{{ $labels.job }}": 99th percentile of gRPC write requests is {{ $value }}s on etcd instance {{ $labels.instance }}.',
summary: 'etcd grpc write requests are slow',
🤖 Prompt for AI Agents
In `@jsonnet/custom.libsonnet` around lines 56 - 64, The etcdGRPCWriteRequestsSlow
alert currently only filters grpc_method="Txn" so Put and DeleteRange write
operations are missed; update the alert expression (the expr for alert:
etcdGRPCWriteRequestsSlow) to include all write methods by changing the label
filter to match multiple methods (e.g., grpc_method=~"Txn|Put|DeleteRange") or
an equivalent set-based match, and update the annotations.description text to
reflect that Put and DeleteRange are included so the summary remains accurate.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You'd be surprised, but deletes are also implemented as Txn calls:
https://github.com/etcd-io/etcd/blob/main/client/v3/kubernetes/client.go

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Fetch the client code to verify how DeleteRange is implemented
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kubernetes/client.go" | head -200

Length of output: 3853


🏁 Script executed:

#!/bin/bash
# Search for Delete and Put method implementations in the kubernetes client
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kubernetes/client.go" | grep -A 20 "func.*Delete"

Length of output: 611


🏁 Script executed:

#!/bin/bash
# Search for Put method implementations
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kubernetes/client.go" | grep -A 20 "func.*Put"

Length of output: 711


🏁 Script executed:

#!/bin/bash
# Get more context on how these methods work - look for Txn usage
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kubernetes/client.go" | grep -B 5 -A 15 "Txn()"

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Check if the base etcd client v3 has direct Put/Delete methods
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kv.go" | grep -A 15 "func.*Put\|func.*Delete"

Length of output: 1654


🏁 Script executed:

#!/bin/bash
# Look at the KV interface to see available methods
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kv.go" | head -100

Length of output: 3404


🏁 Script executed:

#!/bin/bash
# Check the gRPC service definition to see what methods are exposed
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/api/etcdserverpb/rpc.proto" | grep -A 5 "service KV"

Length of output: 210


🏁 Script executed:

#!/bin/bash
# Get the full KV service definition from proto
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/api/etcdserverpb/rpc.proto" | grep -A 50 "service KV"

Length of output: 1689


🏁 Script executed:

#!/bin/bash
# Also check how the Do method routes operations
curl -s "https://raw.githubusercontent.com/etcd-io/etcd/main/client/v3/kv.go" | grep -A 30 "func.*Do\("

Length of output: 23


🏁 Script executed:

#!/bin/bash
# Search for etcd client usage in the OpenShift cluster-etcd-operator
rg -n "clientv3\." --type=go -C 2 | head -50

Length of output: 3779


🏁 Script executed:

#!/bin/bash
# Check if the kubernetes client wrapper is imported in this repo
rg -n "kubernetes.*client" --type=go -g "!vendor/**" | head -30

Length of output: 525


🏁 Script executed:

#!/bin/bash
# Look for direct Put/Delete calls vs Txn usage
rg -n "\.Put\(|\.Delete\(" --type=go -g "!vendor/**" -C 1 | head -40

Length of output: 2915


🏁 Script executed:

#!/bin/bash
# Search for documentation or comments about what client Kubernetes uses
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | head -100

Length of output: 3222


🏁 Script executed:

#!/bin/bash
# Check if kubernetes uses the kubernetes client wrapper
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | grep -i "import" -A 30 | head -50

Length of output: 796


🏁 Script executed:

#!/bin/bash
# Look for Put/Delete implementations in kube-apiserver storage
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | grep -A 20 "func.*Create\|func.*Delete\|func.*Update"

Length of output: 3966


🏁 Script executed:

#!/bin/bash
# Check how kube-apiserver uses the kubernetes client for writes
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | grep -A 30 "s.client.Kubernetes"

Length of output: 7601


🏁 Script executed:

#!/bin/bash
# Look for OptimisticPut usage in kube-apiserver
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | grep -i "OptimisticPut\|OptimisticDelete" -B 2 -A 10

Length of output: 1384


🏁 Script executed:

#!/bin/bash
# Search for the actual etcd operation calls
curl -s "https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go" | grep "\.client\." -A 2 | head -60

Length of output: 1537


@tjungblu You're absolutely right, thank you for the clarification! I verified that kube-apiserver uses the kubernetes.Client wrapper exclusively, and all write operations (Create/Update/Delete) go through OptimisticPut and OptimisticDelete, which indeed wrap the operations in Txn calls as you showed.

The current alert filtering for grpc_method="Txn" is correct and sufficient for monitoring write latency in the Kubernetes/OpenShift context. Adding Put and DeleteRange would not capture any additional slow writes since kube-apiserver doesn't use those methods directly.

My suggestion was incorrect. The alert as implemented properly captures all write operations that matter for the product.

@tjungblu
Copy link
Contributor Author

/payload-aggregate periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-azure-ovn-upgrade 10

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 23, 2026

@tjungblu: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-azure-ovn-upgrade

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/ef7faad0-f857-11f0-800f-2fa28c59142c-0

@tjungblu
Copy link
Contributor Author

/retest-required

@tjungblu
Copy link
Contributor Author

/retest

@tjungblu
Copy link
Contributor Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 27, 2026
@openshift-ci-robot
Copy link

@tjungblu: This pull request references Jira Issue OCPBUGS-66152, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tjungblu
Copy link
Contributor Author

/payload-aggregate periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-azure-ovn-upgrade 10

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

@tjungblu: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-azure-ovn-upgrade

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/c31a59e0-fb68-11f0-98de-b13fd625f17e-0

@tjungblu
Copy link
Contributor Author

/retest-required

/cherry-pick release-4.21

@openshift-cherrypick-robot

@tjungblu: once the present PR merges, I will cherry-pick it on top of release-4.21 in a new PR and assign it to you.

Details

In response to this:

/retest-required

/cherry-pick release-4.21

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@tjungblu
Copy link
Contributor Author

tjungblu commented Jan 27, 2026

/override ci/prow/unit

unrelated tnf job failure

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

@tjungblu: Overrode contexts on behalf of tjungblu: ci/prow/unit

Details

In response to this:

/override ci/prow/unit

unrelated tnf job

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Comment on lines -47 to -52
> on () group_left (type)
bottomk(1,
1.5 * group by (type) (cluster_infrastructure_provider{type="Azure"})
or
1 * group by (type) (cluster_infrastructure_provider))
|||,
Copy link
Contributor

Choose a reason for hiding this comment

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

So we're getting rid of the inflated threshold for Azure but bumping it overall right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yep, but specific for the read and write paths we care about

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm more happy about getting rid of the Azure special case. Hopefully we don't have to add it back eventually.

@hasbro17
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 28, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 28, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hasbro17, tjungblu

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tjungblu
Copy link
Contributor Author

/verified by @tjungblu

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jan 29, 2026
@openshift-ci-robot
Copy link

@tjungblu: This PR has been marked as verified by @tjungblu.

Details

In response to this:

/verified by @tjungblu

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD ce1ee43 and 2 for PR HEAD 47c03bb in total

@tjungblu
Copy link
Contributor Author

/retest-required

1 similar comment
@tjungblu
Copy link
Contributor Author

/retest-required

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 29, 2026

@tjungblu: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot bot merged commit 3f63dbe into openshift:main Jan 29, 2026
15 checks passed
@openshift-ci-robot
Copy link

@tjungblu: Jira Issue Verification Checks: Jira Issue OCPBUGS-66152
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-66152 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

This avoids alerting on endpoints that have no meaningful impact on the product (e.g. etcd leases) and allows us to tune the thresholds for read and write differently.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-cherrypick-robot

@tjungblu: new pull request created: #1537

Details

In response to this:

/retest-required

/cherry-pick release-4.21

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-merge-robot
Copy link
Contributor

Fix included in accepted release 4.22.0-0.nightly-2026-01-31-004202

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants