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)

Reply via email to