-
Notifications
You must be signed in to change notification settings - Fork 834
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
Define future approach to metadata and metrics with new Executor #1362
Comments
Ideally, this issue will lead us to a clear new picture on how we want to handle these things or set of well defined issues that precisely describe desired functionality. |
Actually, I think I was not exactly correct. Seems that Not sure then if |
The request metadata is in principle metadata about the request itself. It can be immutable data that comes as a part of the request. In example:
This data should be exposed to The other example of request metadata provided by @adriangonz is recording version of external libraries accessed during the time of processing the request. This type of data is:
We should provide an easy and threadsafe way to include that kind of metadata in the request response. |
Reference: kfserving dataplane proposal |
already in progress in other issues |
What this issue is about
Very soon Executor, in Go replacement for currently used Java engine, will be merged into master.
In this context we need to define our future approach to
metadata
andmetrics
. How it is gonna be ideally handled in the future and how are we gonna avoid breaking backward compatibility during period of time when we support bothExecutor
andEngine
.In order to help discussion I did try to put together a summary of the current state of matter.
As the topic seems to cause some confusion, especially on the semantic level, the description of this issue may be a bit lengthy, apologies for that.
Definitions
Metadata (model):
Metadata (request):
Metrics:
Now: only Java Engine
User-provided models can define two methods:
metrics
andtags
.Both of these are included in
response.meta
when/predict
end point is called.All of that logic is defined in the Python wrapper, not in Java engine.
Metrics method:
user_model.py::client_custom_metrics
methodresponse.meta.metrics
ofSeldonMessage
Tags method:
user_model.py::client_custom_tags
methodresponse.meta.tags
ofSeldonMessage
request metadata
predict
method must modify current state of model in order to provide data returned by this methodFuture: compatibility with both Executor and Engine
For some time we will be supporting both Executor and Engine.
Python wrapper must be therefore compatible with both.
Wrapper will know if it is working with Executor or Engine through environmental variables.
Go Executor:
Metadata:
/metadata
endpoint.model metadata
in the context of the above definitions.Metrics:
Java Engine:
Main compatibility with the current functionality until we deprecate Java Engine.
Problems / objectives
metrics
andtags
method? Shall these get deprecated?”tags
in a non-trivial manner.metadata
be appended to response?Main questions:
P.S. I did my best to get these points right. However, if something is wrong or confusing, please, leave a comment or let me know and we'll try to clarify it.
The text was updated successfully, but these errors were encountered: