Skip to content
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

Payload logging/events #284

Closed
njhill opened this issue Nov 16, 2022 · 3 comments · Fixed by kserve/modelmesh#84 or #339
Closed

Payload logging/events #284

njhill opened this issue Nov 16, 2022 · 3 comments · Fixed by kserve/modelmesh#84 or #339
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@njhill
Copy link
Member

njhill commented Nov 16, 2022

For various reasons including monitoring by external system for things like drift / outlier detection etc.

It should support CloudEvents and be compatible with the logger in KServe "classic", so that it can be used in a similar way, as illustrated in these samples:

Some considerations / possible complications:

  • In KServe the logger can be configured per InferenceService. We need to decide whether we support this with model-mesh, or a simpler global configuration, or both. Another possibility could be allowing a logging destination to be configured globally and enabled/disabled per model.
  • Model-mesh doesn't really touch the payloads currently, but it only routes gRPC/protobuf. So we could emit the raw protobuf messages but this would differ from the existing KServe case and so would not necessarily be compatible with the same integrations. We could transcode to json on the fly, but this would introduce processing overhead that may be undesirable and affect data path performance.
  • The KServe examples are based on the V1 API, we should to check whether the existing logger works with the V2 API; the runtimes supported by model-mesh are primarily V2 based.

cc @rafvasq

@njhill njhill added the enhancement New feature or request label Nov 16, 2022
@lizzzcai
Copy link
Member

In KServe the logger can be configured per InferenceService. We need to decide whether we support this with model-mesh, or a simpler global configuration, or both. Another possibility could be allowing a logging destination to be configured globally and enabled/disabled per model.

Hi @njhill , what is the definition of payload logging here, does it include the logs in the runtime level? If not, is it possible to support it like adding a model_id identifier in the log line so that we can filter it per inferenceSerivce.

Currently we plan to expose the logs (runtime logs) on the servingRuntime level (actual deployment) as the inferenceService (model) is kind of a logical concept in modelmesh. However, in standard KServe flow, we expose the logs per inferenceService. If logging per inferenceService is possible in ModelMesh, it will be good to align the user experience. Thanks.

@njhill
Copy link
Member Author

njhill commented Feb 12, 2023

@lizzzcai noticing your question here after a long time, sorry about that.

This issue isn't about program logs, rather about the ability to send the contents of every request and response somewhere configurable (so that it can be logged/stored/analysed as needed).

@ckadner ckadner added this to the v0.11.0 milestone Feb 22, 2023
kserve-oss-bot pushed a commit to kserve/modelmesh that referenced this issue Mar 13, 2023
…predictions (#84)

#### Motivation
This PR seeks to address the model-mesh side of kserve/modelmesh-serving#284.

#### Modifications
It provides a `PayloadProcessor` interface. `PayloadProcessors` are picked by `ModelMesh` instances at startup and predictions (`Payloads`) are processed asynchronously at fixed timing.
A first logger implementation allows to log `Payloads` (at _info_ level).

#### Result
A SPI for post processing model predictions.

---

resolves kserve/modelmesh-serving#284

Signed-off-by: Tommaso Teofili <tteofili@redhat.com>
ckadner added a commit that referenced this issue Mar 23, 2023
- PVC storage support (#230, #337) 
- Payload logging/events (#284)

Signed-off-by: Christian Kadner <ckadner@us.ibm.com>
@ckadner
Copy link
Member

ckadner commented Jun 21, 2023

I was just revisiting some features in the ModelMesh v0.11.0 release to draft a release blog.

Re: CloudEvents ...

It should support CloudEvents and be compatible with the logger in KServe "classic", so that it can be used in a similar way, as illustrated in these samples: ...

As best as I can tell, this is not part of the implementation on kserve/modelmesh#84 but it could now be implemented as one new PayloadProcessor that emits CloudEvents?

@tteofili @njhill

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment