Closed HknLof closed 1 year ago
Which API endpoint are you referencing here? This route looks like it is coming from the frontend.
I agree, no communication with Kafka should be necessary to update a pipeline definition. Let's make it faster :)
This occurs after opening the edit view for a given pipeline. I assume it is the call to to pipeline/preview
.
https://github.com/DataCater/datacater/blob/main/ui/src/actions/pipelines.js#L183
Asuming, that the toggle of the showGrid
triggers the initial / re-fetch.
For loading the pipeline designer, i.e., when accessing /pipelines/$uuid/edit
in the frontend, the /api/streams/$uuid/inspect
is called, thus Kafka is being access.
Since we call an external service, we might have a hard time staying under 1000ms. cc @ChrisRousey What do you think?
Ever since we improved the payload retrieval from streams it's almost always under 1000ms, i'm not too sure if this is only coming from accessing kafka.
The Inspect Enpoint is grabbing items from kafka, then sending them to the python-runner and waiting on transforms/filters in one thread. It is a heavy load for one api call but i think most of the time is coming from the python-runner.
@HknLof you said only some calls were slow? Maybe we have some slow running transforms/filters that caused this? And was the kafka broker local or remote?
It seems, that a combination of database calls and additionally working with a remote kafka broker leads to quite long initial retrieval stack. Below is an example call stack for such an issue.
Desirable performance / behaviour
Desirable performance for any given call should be to be able to return after ~1000ms for 90% of requests.
Actions / Solutions
Refs: