-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better exposure for client-side throttling #11387
Comments
Expresses when throttling occurs on the client side by setting the log message level to Warn. fixes: argoproj#11387 Signed-off-by: Jack-R-lantern <tjdfkr2421@gmail.com>
Just FYI, here is the place in the gomodule where this error message is being printed: https://github.com/kubernetes/client-go/blob/master/rest/request.go#L625 |
Implemented logging of throttling. when a delay of more than 5 seconds occurs. Fixes: argoproj#11387 argoproj#11402 Signed-off-by: Jack-R-lantern <tjdfkr2421@gmail.com>
Implemented logging of throttling. when a delay of more than 5 seconds occurs. Fixes: argoproj#11387 argoproj#11402 Signed-off-by: Jack-R-lantern <tjdfkr2421@gmail.com>
@juliev0 spec:
tasks:
- name: controller
command: ./dist/workflow-controller --qps=1.0 --burst=1
dependencies: install build-controller port-forward
env:
- ARGO_EXECUTOR_PLUGINS=false
- ARGO_NAMESPACE=argo
- ARGO_NAMESPACED=true
- ARGO_MANAGED_NAMESPACE=argo
- ARGO_LOG_LEVEL=info
- ARGO_REMOVE_PVC_PROTECTION_FINALIZER=true
- ARGO_PROGRESS_PATCH_TICK_DURATION=7s
- DEFAULT_REQUEUE_TIME=1s
- LEADER_ELECTION_IDENTITY=local
- ALWAYS_OFFLOAD_NODE_STATUS=false
- OFFLOAD_NODE_STATUS_TTL=30s
- WORKFLOW_GC_PERIOD=30s
- UPPERIO_DB_DEBUG=1
- ARCHIVED_WORKFLOW_GC_PERIOD=30s
ports: "9090" |
The code looks good. As far as your test, is that some sort of |
@Jack-R-lantern would you by chance be interested in adding a Controller metric for this as well? I can assist with any questions if needed. |
@juliev0 sure |
@Jack-R-lantern have you already started on that? 😬 My colleague is saying that the controller exposes kubernetes client metrics already and this might be one. I need to see. So sorry I didn’t realize. |
@juliev0 I'm fine, don't worry |
Summary
When the
--qps
and--burst
are set too low on the Workflow Controller, this can create client-side throttling by the underlying client-go library. (It appears that this serves to slow down the messages going out as opposed to reject requests based on my testing.)The only way currently to know this is happening is that the library spits out messages like:
Ideally, maybe we'd have a warning-level message of our own or perhaps a metric to create greater exposure for the issue and help it to be more quickly identified.
Note that there is debug-level logging right now for messages in general here: https://github.com/argoproj/argo-workflows/blob/master/util/logs/log-k8s-requests.go#L20
Use Cases
When would you use this?
Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.
The text was updated successfully, but these errors were encountered: