Dennis-Mircea Ciupitu created FLINK-41289:
---------------------------------------------
Summary: Run canary health checks only with the health probe
enabled, on one named thread
Key: FLINK-41289
URL: https://issues.apache.org/jira/browse/FLINK-41289
Project: Flink
Issue Type: Improvement
Components: Kubernetes Operator
Reporter: Dennis-Mircea Ciupitu
h1. Motivation
Canary resources only exist to feed the operator health probe. Their result is
only read by the probe endpoint, but they are handled the same way whether the
probe is enabled or not:
* With {{{}kubernetes.operator.health.probe.enabled: false{}}}, canary
resources are still tracked, their spec is still updated every
{{kubernetes.operator.health.canary.resource.timeout}} and their health is
still evaluated and logged, although nothing reads the result. This creates API
calls, reconciles and error logs (e.g. "latest spec not reconciled") that have
no effect.
* Every canary manager (one for {{{}FlinkDeployment{}}}, one for
{{{}FlinkSessionJob{}}}) starts its own pool of 3 threads when the operator
starts, even when no canary exists. The threads use generic names
({{{}pool-N-thread-M{}}}), so they cannot be told apart in thread dumps and
logs.
h1. Proposal
* When the health probe is disabled, canary resources are still recognized and
not deployed, but they are not tracked or updated.
* The canary health checks run on a single, named thread per canary manager,
created only when the first canary is tracked.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)