mlrun 1.10.0rc29__tar.gz → 1.10.0rc31__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mlrun might be problematic. Click here for more details.
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/Makefile +2 -13
- {mlrun-1.10.0rc29/mlrun.egg-info → mlrun-1.10.0rc31}/PKG-INFO +8 -7
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/dockerfiles/mlrun-api/requirements.txt +1 -1
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/llm_prompt.py +5 -7
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/model_monitoring/constants.py +5 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/config.py +7 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/execution.py +3 -3
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/_stats.py +4 -3
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/base.py +13 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +60 -0
- mlrun-1.10.0rc31/mlrun/model_monitoring/db/tsdb/tdengine/writer_graph_steps.py +51 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +44 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/writer.py +220 -1
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/projects/project.py +3 -3
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/function.py +12 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/remote.py +79 -6
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/states.py +4 -4
- mlrun-1.10.0rc31/mlrun/utils/version/version.json +4 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31/mlrun.egg-info}/PKG-INFO +8 -7
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/SOURCES.txt +1 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/requires.txt +11 -6
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/requirements.txt +7 -5
- mlrun-1.10.0rc29/mlrun/utils/version/version.json +0 -4
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/LICENSE +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/MANIFEST.in +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/README.md +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/dependencies.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/dev-requirements.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/archive.zip +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/function.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/infile.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/load-project.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_basics.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_dask.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_db.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_export_import.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_jobs.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_sparkk8s.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/mlrun_vault.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/model.bst +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/new-project.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/nulltst.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/params.csv +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/remote-spark.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/secrets.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/spark-function.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/training.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/v2_model_server.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/examples/xgb_serving.ipynb +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/extras-requirements.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/__main__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/alerts/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/alerts/alert.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/dataset.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/document.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/manager.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/model.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/artifacts/plots.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/constants.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/db/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/db/dialects.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/artifact.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/feature_set.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/function.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/model_endpoint.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/pipeline.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/project.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/formatters/run.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/runtimes/constants.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/alert.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/api_gateway.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/artifact.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/auth.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/background_task.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/client_spec.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/clusterization_spec.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/common.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/constants.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/datastore_profile.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/events.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/feature_store.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/frontend_spec.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/function.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/http.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/hub.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/k8s.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/memory_reports.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/notification.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/object.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/pagination.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/partition.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/pipeline.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/project.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/regex.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/runs.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/runtime_resource.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/schedule.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/secret.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/serving.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/tag.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/schemas/workflow.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/secrets.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/common/types.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/data_types/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/data_types/data_types.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/data_types/infer.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/data_types/spark.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/data_types/to_pandas.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/alibaba_oss.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/azure_blob.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/datastore.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/datastore_profile.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/dbfs_store.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/filestore.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/google_cloud_storage.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/hdfs.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/inmem.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/model_provider/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/model_provider/huggingface_provider.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/model_provider/mock_model_provider.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/model_provider/model_provider.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/model_provider/openai_provider.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/redis.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/remote_client.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/s3.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/snowflake_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/sources.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/spark_udf.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/spark_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/store_resources.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/storeytargets.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/targets.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/v3io.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/vectorstore.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/wasbfs/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/datastore/wasbfs/fs.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/auth_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/factory.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/httpdb.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/db/nopdb.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/errors.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/api.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/common.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/feature_set.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/feature_vector.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/feature_vector_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/ingestion.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/job.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/local_merger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/feature_store/steps.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/features.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/producer.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_common/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_dl_common/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/producer.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/_ml_common/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/huggingface/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/huggingface/model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/lgbm/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/onnx/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/onnx/dataset.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/onnx/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/onnx/model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/parallel_coordinates.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/pytorch/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/estimator.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/metric.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/sklearn/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/model_server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/tf_keras/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/xgboost/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/xgboost/model_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/frameworks/xgboost/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/hub/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/hub/module.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/k8s_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/client.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/factory.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/local.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/launcher/remote.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/lists.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/api.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/context.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/applications/results.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/controller.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/_schedules.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/features_drift_table.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/metrics/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/stream_processing.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/context_handler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/errors.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packager.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers/default_packager.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers/numpy_packagers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers/pandas_packagers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/packagers_manager.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/_archiver.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/_formatter.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/_pickler.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/_supported_format.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/log_hint_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/package/utils/type_hint_utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/platforms/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/platforms/iguazio.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/projects/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/projects/operations.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/projects/pipelines.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/render.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/run.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/daskjob.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/databricks_job/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/funcdoc.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/function_reference.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/generators.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/kubejob.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/local.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/mounts.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/mpijob/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/mpijob/abstract.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/mpijob/v1.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/application/application.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/nuclio.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/nuclio/serving.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/pod.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/remotesparkjob.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/sparkjob/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/runtimes/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/secrets.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/merger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/routers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/server.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/serving_wrapper.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/system_steps.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/utils.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/v1_serving.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/serving/v2_serving.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/track/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/track/tracker.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/track/tracker_manager.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/track/trackers/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/track/trackers/mlflow_tracker.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/async_http.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/azure_vault.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/clones.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/condition_evaluator.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/helpers.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/http.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/logger.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/base.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/console.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/git.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/ipython.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/mail.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/slack.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification/webhook.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/notifications/notification_pusher.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/regex.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/retryer.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/singleton.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/v3io_clients.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/vault.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/version/__init__.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/utils/version/version.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/dependency_links.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/entry_points.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/not-zip-safe +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun.egg-info/top_level.txt +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/packages.py +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/pyproject.toml +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/setup.cfg +0 -0
- {mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/setup.py +0 -0
|
@@ -1036,9 +1036,7 @@ upgrade-mlrun-test-deps-lock: ## Upgrade mlrun test locked requirements file
|
|
|
1036
1036
|
dockerfiles/test/requirements.txt \
|
|
1037
1037
|
dev-requirements.txt \
|
|
1038
1038
|
$(MLRUN_UV_UPGRADE_FLAG) \
|
|
1039
|
-
--
|
|
1040
|
-
--constraint dockerfiles/constraints-py$(MLRUN_PYTHON_VERSION).txt \
|
|
1041
|
-
--output-file dockerfiles/test/locked-requirements_${MLRUN_PYTHON_VERSION}.txt
|
|
1039
|
+
--output-file dockerfiles/test/locked-requirements.txt
|
|
1042
1040
|
|
|
1043
1041
|
.PHONY: upgrade-mlrun-system-test-deps-lock
|
|
1044
1042
|
upgrade-mlrun-system-test-deps-lock: ## Upgrade mlrun system test locked requirements file
|
|
@@ -1052,15 +1050,6 @@ upgrade-mlrun-system-test-deps-lock: ## Upgrade mlrun system test locked require
|
|
|
1052
1050
|
--output-file dockerfiles/test-system/locked-requirements.txt
|
|
1053
1051
|
|
|
1054
1052
|
|
|
1055
|
-
upgrade-mlrun-test-deps-lock-all: upgrade-mlrun-test-deps-lock-3.11 upgrade-mlrun-test-deps-lock-3.9
|
|
1056
|
-
|
|
1057
|
-
upgrade-mlrun-test-deps-lock-3.11:
|
|
1058
|
-
$(MAKE) upgrade-mlrun-test-deps-lock MLRUN_PYTHON_VERSION=3.11
|
|
1059
|
-
|
|
1060
|
-
upgrade-mlrun-test-deps-lock-3.9:
|
|
1061
|
-
$(MAKE) upgrade-mlrun-test-deps-lock MLRUN_PYTHON_VERSION=3.9
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
1053
|
upgrade-mlrun-kfp-deps-lock: ## Upgrade mlrun-kfp locked requirements file
|
|
1065
1054
|
uv pip compile \
|
|
1066
1055
|
requirements.txt \
|
|
@@ -1077,7 +1066,7 @@ upgrade-mlrun-deps-lock: ## Upgrade mlrun-* locked requirements file
|
|
|
1077
1066
|
upgrade-mlrun-jupyter-deps-lock \
|
|
1078
1067
|
upgrade-mlrun-gpu-deps-lock \
|
|
1079
1068
|
upgrade-mlrun-kfp-deps-lock \
|
|
1080
|
-
upgrade-mlrun-test-deps-lock
|
|
1069
|
+
upgrade-mlrun-test-deps-lock \
|
|
1081
1070
|
upgrade-mlrun-system-test-deps-lock
|
|
1082
1071
|
|
|
1083
1072
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlrun
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.0rc31
|
|
4
4
|
Summary: Tracking and config of machine learning runs
|
|
5
5
|
Home-page: https://github.com/mlrun/mlrun
|
|
6
6
|
Author: Yaron Haviv
|
|
@@ -22,7 +22,8 @@ Requires-Python: >=3.9, <3.12
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: urllib3>=1.26.20
|
|
25
|
-
Requires-Dist: v3io-frames
|
|
25
|
+
Requires-Dist: v3io-frames~=0.10.16; python_version < "3.11"
|
|
26
|
+
Requires-Dist: v3io-frames~=0.13.11; python_version >= "3.11"
|
|
26
27
|
Requires-Dist: GitPython>=3.1.41,~=3.1
|
|
27
28
|
Requires-Dist: aiohttp~=3.11
|
|
28
29
|
Requires-Dist: aiohttp-retry~=2.9
|
|
@@ -43,15 +44,15 @@ Requires-Dist: semver~=3.0
|
|
|
43
44
|
Requires-Dist: dependency-injector~=4.41
|
|
44
45
|
Requires-Dist: fsspec<=2025.7.0,>=2025.5.1
|
|
45
46
|
Requires-Dist: v3iofs~=0.1.17
|
|
46
|
-
Requires-Dist: storey~=1.10.
|
|
47
|
+
Requires-Dist: storey~=1.10.14
|
|
47
48
|
Requires-Dist: inflection~=0.5.0
|
|
48
49
|
Requires-Dist: python-dotenv~=1.0
|
|
49
50
|
Requires-Dist: setuptools>=75.2
|
|
50
51
|
Requires-Dist: deprecated~=1.2
|
|
51
52
|
Requires-Dist: jinja2>=3.1.6,~=3.1
|
|
52
53
|
Requires-Dist: orjson<4,>=3.9.15
|
|
53
|
-
Requires-Dist: mlrun-pipelines-kfp-common~=0.5.
|
|
54
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.
|
|
54
|
+
Requires-Dist: mlrun-pipelines-kfp-common~=0.5.9
|
|
55
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.8
|
|
55
56
|
Requires-Dist: docstring_parser~=0.16
|
|
56
57
|
Requires-Dist: aiosmtplib~=3.0
|
|
57
58
|
Requires-Dist: deepdiff<9.0.0,>=8.6.1
|
|
@@ -122,7 +123,7 @@ Requires-Dist: timelength~=1.1; extra == "api"
|
|
|
122
123
|
Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "api"
|
|
123
124
|
Requires-Dist: aiosmtplib~=3.0; extra == "api"
|
|
124
125
|
Requires-Dist: pydantic<2,>=1; extra == "api"
|
|
125
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.
|
|
126
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.8; extra == "api"
|
|
126
127
|
Provides-Extra: all
|
|
127
128
|
Requires-Dist: adlfs==2024.12.0; extra == "all"
|
|
128
129
|
Requires-Dist: aiobotocore<2.16,>=2.5.0; extra == "all"
|
|
@@ -214,7 +215,7 @@ Requires-Dist: igz-mgmt~=0.4.1; extra == "complete-api"
|
|
|
214
215
|
Requires-Dist: kafka-python~=2.1.0; extra == "complete-api"
|
|
215
216
|
Requires-Dist: memray~=1.12; sys_platform != "win32" and extra == "complete-api"
|
|
216
217
|
Requires-Dist: mlflow~=2.22; extra == "complete-api"
|
|
217
|
-
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.
|
|
218
|
+
Requires-Dist: mlrun-pipelines-kfp-v1-8~=0.5.8; extra == "complete-api"
|
|
218
219
|
Requires-Dist: msrest~=0.6.21; extra == "complete-api"
|
|
219
220
|
Requires-Dist: objgraph~=3.6; extra == "complete-api"
|
|
220
221
|
Requires-Dist: oss2==2.18.4; extra == "complete-api"
|
|
@@ -41,7 +41,7 @@ class LLMPromptArtifactSpec(ArtifactSpec):
|
|
|
41
41
|
prompt_template: Optional[list[dict]] = None,
|
|
42
42
|
prompt_path: Optional[str] = None,
|
|
43
43
|
prompt_legend: Optional[dict] = None,
|
|
44
|
-
|
|
44
|
+
invocation_config: Optional[dict] = None,
|
|
45
45
|
description: Optional[str] = None,
|
|
46
46
|
target_path: Optional[str] = None,
|
|
47
47
|
**kwargs,
|
|
@@ -68,13 +68,11 @@ class LLMPromptArtifactSpec(ArtifactSpec):
|
|
|
68
68
|
|
|
69
69
|
self.prompt_template = prompt_template
|
|
70
70
|
self.prompt_legend = prompt_legend
|
|
71
|
-
if
|
|
72
|
-
model_configuration, dict
|
|
73
|
-
):
|
|
71
|
+
if invocation_config is not None and not isinstance(invocation_config, dict):
|
|
74
72
|
raise mlrun.errors.MLRunInvalidArgumentError(
|
|
75
73
|
"LLMPromptArtifact model_configuration must be a dictionary or None"
|
|
76
74
|
)
|
|
77
|
-
self.model_configuration =
|
|
75
|
+
self.model_configuration = invocation_config or {}
|
|
78
76
|
self.description = description
|
|
79
77
|
self._model_artifact = (
|
|
80
78
|
model_artifact
|
|
@@ -177,7 +175,7 @@ class LLMPromptArtifact(Artifact):
|
|
|
177
175
|
prompt_template: Optional[list[dict]] = None,
|
|
178
176
|
prompt_path: Optional[str] = None,
|
|
179
177
|
prompt_legend: Optional[dict] = None,
|
|
180
|
-
|
|
178
|
+
invocation_config: Optional[dict] = None,
|
|
181
179
|
description: Optional[str] = None,
|
|
182
180
|
target_path=None,
|
|
183
181
|
**kwargs,
|
|
@@ -187,7 +185,7 @@ class LLMPromptArtifact(Artifact):
|
|
|
187
185
|
prompt_path=prompt_path,
|
|
188
186
|
prompt_legend=prompt_legend,
|
|
189
187
|
model_artifact=model_artifact,
|
|
190
|
-
|
|
188
|
+
invocation_config=invocation_config,
|
|
191
189
|
target_path=target_path,
|
|
192
190
|
description=description,
|
|
193
191
|
)
|
|
@@ -196,6 +196,10 @@ class WriterEventKind(MonitoringStrEnum):
|
|
|
196
196
|
RESULT = "result"
|
|
197
197
|
STATS = "stats"
|
|
198
198
|
|
|
199
|
+
@classmethod
|
|
200
|
+
def user_app_outputs(cls):
|
|
201
|
+
return [cls.METRIC, cls.RESULT]
|
|
202
|
+
|
|
199
203
|
|
|
200
204
|
class ControllerEvent(MonitoringStrEnum):
|
|
201
205
|
KIND = "kind"
|
|
@@ -304,6 +308,7 @@ class FileTargetKind:
|
|
|
304
308
|
MONITORING_APPLICATION = "monitoring_application"
|
|
305
309
|
ERRORS = "errors"
|
|
306
310
|
STATS = "stats"
|
|
311
|
+
PARQUET_STATS = "parquet_stats"
|
|
307
312
|
LAST_REQUEST = "last_request"
|
|
308
313
|
|
|
309
314
|
|
|
@@ -649,6 +649,13 @@ default_config = {
|
|
|
649
649
|
"max_replicas": 1,
|
|
650
650
|
},
|
|
651
651
|
},
|
|
652
|
+
"writer_graph": {
|
|
653
|
+
"max_events": 1000,
|
|
654
|
+
"flush_after_seconds": 30,
|
|
655
|
+
"writer_version": "v1", # v1 is the sync version while v2 is async
|
|
656
|
+
"parquet_batching_max_events": 10,
|
|
657
|
+
"parquet_batching_timeout_secs": 30,
|
|
658
|
+
},
|
|
652
659
|
# Store prefixes are used to handle model monitoring storing policies based on project and kind, such as events,
|
|
653
660
|
# stream, and endpoints.
|
|
654
661
|
"store_prefixes": {
|
|
@@ -917,7 +917,7 @@ class MLClientCtx:
|
|
|
917
917
|
prompt_path: Optional[str] = None,
|
|
918
918
|
prompt_legend: Optional[dict] = None,
|
|
919
919
|
model_artifact: Union[ModelArtifact, str] = None,
|
|
920
|
-
|
|
920
|
+
invocation_config: Optional[dict] = None,
|
|
921
921
|
description: Optional[str] = None,
|
|
922
922
|
target_path: Optional[str] = None,
|
|
923
923
|
artifact_path: Optional[str] = None,
|
|
@@ -997,7 +997,7 @@ class MLClientCtx:
|
|
|
997
997
|
with the place-holder name. "description" will point to explanation of what that placeholder represents.
|
|
998
998
|
Useful for documenting and clarifying dynamic parts of the prompt.
|
|
999
999
|
:param model_artifact: Reference to the parent model (either `ModelArtifact` or model URI string).
|
|
1000
|
-
:param
|
|
1000
|
+
:param invocation_config: Dictionary of generation parameters (e.g., temperature, max_tokens).
|
|
1001
1001
|
:param description: Optional description of the prompt.
|
|
1002
1002
|
:param target_path: Absolute target path (instead of using artifact_path + local_path)
|
|
1003
1003
|
:param artifact_path: Target artifact path (when not using the default)
|
|
@@ -1023,7 +1023,7 @@ class MLClientCtx:
|
|
|
1023
1023
|
prompt_path=prompt_path,
|
|
1024
1024
|
prompt_legend=prompt_legend,
|
|
1025
1025
|
model_artifact=model_artifact,
|
|
1026
|
-
|
|
1026
|
+
invocation_config=invocation_config,
|
|
1027
1027
|
target_path=target_path,
|
|
1028
1028
|
description=description,
|
|
1029
1029
|
**kwargs,
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
import abc
|
|
15
15
|
import json
|
|
16
|
+
import typing
|
|
16
17
|
from abc import abstractmethod
|
|
17
18
|
from datetime import datetime, timezone
|
|
18
19
|
from typing import cast
|
|
@@ -73,7 +74,7 @@ class ModelMonitoringStatsFile(abc.ABC):
|
|
|
73
74
|
path=self._item.url,
|
|
74
75
|
)
|
|
75
76
|
|
|
76
|
-
def read(self) -> tuple[dict, datetime]:
|
|
77
|
+
def read(self) -> tuple[dict, typing.Optional[datetime]]:
|
|
77
78
|
"""
|
|
78
79
|
Read the stats data and timestamp saved in file
|
|
79
80
|
:return: tuple[dict, str] dictionary with stats data and timestamp saved in file
|
|
@@ -99,13 +100,13 @@ class ModelMonitoringStatsFile(abc.ABC):
|
|
|
99
100
|
):
|
|
100
101
|
raise
|
|
101
102
|
|
|
102
|
-
logger.
|
|
103
|
+
logger.warning(
|
|
103
104
|
"The Stats file was not found. It should have been created "
|
|
104
105
|
"as a part of the model endpoint's creation",
|
|
105
106
|
path=self._path,
|
|
106
107
|
error=err,
|
|
107
108
|
)
|
|
108
|
-
|
|
109
|
+
return {}, None
|
|
109
110
|
|
|
110
111
|
def write(self, stats: dict, timestamp: datetime) -> None:
|
|
111
112
|
"""
|
|
@@ -60,6 +60,16 @@ class TSDBConnector(ABC):
|
|
|
60
60
|
"""
|
|
61
61
|
pass
|
|
62
62
|
|
|
63
|
+
def apply_writer_steps(self, graph, after, **kwargs) -> None:
|
|
64
|
+
"""
|
|
65
|
+
Apply TSDB steps on the provided writer graph. Throughout these steps, the graph stores metrics / results.
|
|
66
|
+
This data is being used by mlrun UI and the monitoring dashboards in grafana.
|
|
67
|
+
There are 2 different key metric dictionaries that are being generated throughout these steps:
|
|
68
|
+
- metrics (user-defined metrics) - model monitoring application metrics
|
|
69
|
+
- results (user-defined results) - model monitoring application results
|
|
70
|
+
"""
|
|
71
|
+
pass
|
|
72
|
+
|
|
63
73
|
@abstractmethod
|
|
64
74
|
def handle_model_error(self, graph, **kwargs) -> None:
|
|
65
75
|
"""
|
|
@@ -783,3 +793,6 @@ class TSDBConnector(ABC):
|
|
|
783
793
|
)
|
|
784
794
|
)
|
|
785
795
|
return mm_schemas.ModelEndpointDriftValues(values=values)
|
|
796
|
+
|
|
797
|
+
def add_pre_writer_steps(self, graph, after):
|
|
798
|
+
return None
|
{mlrun-1.10.0rc29 → mlrun-1.10.0rc31}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py
RENAMED
|
@@ -22,6 +22,7 @@ import taosws
|
|
|
22
22
|
import mlrun.common.schemas.model_monitoring as mm_schemas
|
|
23
23
|
import mlrun.common.types
|
|
24
24
|
import mlrun.model_monitoring.db.tsdb.tdengine.schemas as tdengine_schemas
|
|
25
|
+
from mlrun.config import config
|
|
25
26
|
from mlrun.datastore.datastore_profile import DatastoreProfile
|
|
26
27
|
from mlrun.model_monitoring.db import TSDBConnector
|
|
27
28
|
from mlrun.model_monitoring.db.tsdb.tdengine.tdengine_connection import (
|
|
@@ -277,6 +278,65 @@ class TDEngineConnector(TSDBConnector):
|
|
|
277
278
|
after="ProcessBeforeTDEngine",
|
|
278
279
|
)
|
|
279
280
|
|
|
281
|
+
def add_pre_writer_steps(self, graph, after):
|
|
282
|
+
return graph.add_step(
|
|
283
|
+
"mlrun.model_monitoring.db.tsdb.tdengine.writer_graph_steps.ProcessBeforeTDEngine",
|
|
284
|
+
name="ProcessBeforeTDEngine",
|
|
285
|
+
after=after,
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
def apply_writer_steps(self, graph, after, **kwargs) -> None:
|
|
289
|
+
graph.add_step(
|
|
290
|
+
"mlrun.datastore.storeytargets.TDEngineStoreyTarget",
|
|
291
|
+
name="tsdb_metrics",
|
|
292
|
+
after=after,
|
|
293
|
+
url=f"ds://{self._tdengine_connection_profile.name}",
|
|
294
|
+
supertable=self.tables[mm_schemas.TDEngineSuperTables.METRICS].super_table,
|
|
295
|
+
table_col=mm_schemas.EventFieldType.TABLE_COLUMN,
|
|
296
|
+
time_col=mm_schemas.WriterEvent.END_INFER_TIME,
|
|
297
|
+
database=self.database,
|
|
298
|
+
graph_shape="cylinder",
|
|
299
|
+
columns=[
|
|
300
|
+
mm_schemas.WriterEvent.START_INFER_TIME,
|
|
301
|
+
mm_schemas.MetricData.METRIC_VALUE,
|
|
302
|
+
],
|
|
303
|
+
tag_cols=[
|
|
304
|
+
mm_schemas.WriterEvent.ENDPOINT_ID,
|
|
305
|
+
mm_schemas.WriterEvent.APPLICATION_NAME,
|
|
306
|
+
mm_schemas.MetricData.METRIC_NAME,
|
|
307
|
+
],
|
|
308
|
+
max_events=config.model_endpoint_monitoring.writer_graph.max_events,
|
|
309
|
+
flush_after_seconds=config.model_endpoint_monitoring.writer_graph.flush_after_seconds,
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
graph.add_step(
|
|
313
|
+
"mlrun.datastore.storeytargets.TDEngineStoreyTarget",
|
|
314
|
+
name="tsdb_app_results",
|
|
315
|
+
after=after,
|
|
316
|
+
url=f"ds://{self._tdengine_connection_profile.name}",
|
|
317
|
+
supertable=self.tables[
|
|
318
|
+
mm_schemas.TDEngineSuperTables.APP_RESULTS
|
|
319
|
+
].super_table,
|
|
320
|
+
table_col=mm_schemas.EventFieldType.TABLE_COLUMN,
|
|
321
|
+
time_col=mm_schemas.WriterEvent.END_INFER_TIME,
|
|
322
|
+
database=self.database,
|
|
323
|
+
graph_shape="cylinder",
|
|
324
|
+
columns=[
|
|
325
|
+
mm_schemas.WriterEvent.START_INFER_TIME,
|
|
326
|
+
mm_schemas.ResultData.RESULT_VALUE,
|
|
327
|
+
mm_schemas.ResultData.RESULT_STATUS,
|
|
328
|
+
mm_schemas.ResultData.RESULT_EXTRA_DATA,
|
|
329
|
+
],
|
|
330
|
+
tag_cols=[
|
|
331
|
+
mm_schemas.WriterEvent.ENDPOINT_ID,
|
|
332
|
+
mm_schemas.WriterEvent.APPLICATION_NAME,
|
|
333
|
+
mm_schemas.ResultData.RESULT_NAME,
|
|
334
|
+
mm_schemas.ResultData.RESULT_KIND,
|
|
335
|
+
],
|
|
336
|
+
max_events=config.model_endpoint_monitoring.writer_graph.max_events,
|
|
337
|
+
flush_after_seconds=config.model_endpoint_monitoring.writer_graph.flush_after_seconds,
|
|
338
|
+
)
|
|
339
|
+
|
|
280
340
|
def handle_model_error(
|
|
281
341
|
self,
|
|
282
342
|
graph,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Copyright 2025 Iguazio
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from datetime import datetime
|
|
16
|
+
|
|
17
|
+
import mlrun.common.schemas.model_monitoring as mm_schemas
|
|
18
|
+
import mlrun.feature_store.steps
|
|
19
|
+
from mlrun.utils import logger
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ProcessBeforeTDEngine(mlrun.feature_store.steps.MapClass):
|
|
23
|
+
def __init__(self, **kwargs):
|
|
24
|
+
"""
|
|
25
|
+
Process the data before writing to TDEngine. This step create the table name.
|
|
26
|
+
|
|
27
|
+
:returns: Event as a dictionary which will be written into the TDEngine Metrics/Results tables.
|
|
28
|
+
"""
|
|
29
|
+
super().__init__(**kwargs)
|
|
30
|
+
|
|
31
|
+
def do(self, event):
|
|
32
|
+
logger.info("Process event before writing to TDEngine", event=event)
|
|
33
|
+
kind = event.get("kind")
|
|
34
|
+
table_name = (
|
|
35
|
+
f"{event[mm_schemas.WriterEvent.ENDPOINT_ID]}_"
|
|
36
|
+
f"{event[mm_schemas.WriterEvent.APPLICATION_NAME]}"
|
|
37
|
+
)
|
|
38
|
+
if kind == mm_schemas.WriterEventKind.RESULT:
|
|
39
|
+
# Write a new result
|
|
40
|
+
event[mm_schemas.EventFieldType.TABLE_COLUMN] = (
|
|
41
|
+
f"{table_name}_{event[mm_schemas.ResultData.RESULT_NAME]}"
|
|
42
|
+
).replace("-", "_")
|
|
43
|
+
elif kind == mm_schemas.WriterEventKind.METRIC:
|
|
44
|
+
# Write a new metric
|
|
45
|
+
event[mm_schemas.EventFieldType.TABLE_COLUMN] = (
|
|
46
|
+
f"{table_name}_{event[mm_schemas.MetricData.METRIC_NAME]}"
|
|
47
|
+
).replace("-", "_")
|
|
48
|
+
event[mm_schemas.WriterEvent.START_INFER_TIME] = datetime.fromisoformat(
|
|
49
|
+
event[mm_schemas.WriterEvent.START_INFER_TIME]
|
|
50
|
+
)
|
|
51
|
+
return event
|
|
@@ -25,6 +25,7 @@ import mlrun.common.schemas.model_monitoring as mm_schemas
|
|
|
25
25
|
import mlrun.feature_store.steps
|
|
26
26
|
import mlrun.utils.v3io_clients
|
|
27
27
|
from mlrun.common.schemas import EventFieldType
|
|
28
|
+
from mlrun.config import config
|
|
28
29
|
from mlrun.model_monitoring.db import TSDBConnector
|
|
29
30
|
from mlrun.model_monitoring.helpers import get_invocations_fqn, get_start_end
|
|
30
31
|
from mlrun.utils import logger
|
|
@@ -369,6 +370,49 @@ class V3IOTSDBConnector(TSDBConnector):
|
|
|
369
370
|
apply_storey_filter()
|
|
370
371
|
apply_tsdb_target(name="tsdb3", after="FilterNotNone")
|
|
371
372
|
|
|
373
|
+
def apply_writer_steps(self, graph, after, **kwargs) -> None:
|
|
374
|
+
graph.add_step(
|
|
375
|
+
"storey.TSDBTarget",
|
|
376
|
+
name="tsdb_metrics",
|
|
377
|
+
after=after,
|
|
378
|
+
path=f"{self.container}/{self.tables[mm_schemas.V3IOTSDBTables.METRICS]}",
|
|
379
|
+
time_col=mm_schemas.WriterEvent.END_INFER_TIME,
|
|
380
|
+
container=self.container,
|
|
381
|
+
v3io_frames=self.v3io_framesd,
|
|
382
|
+
infer_columns_from_data=True,
|
|
383
|
+
graph_shape="cylinder",
|
|
384
|
+
index_cols=[
|
|
385
|
+
mm_schemas.WriterEvent.APPLICATION_NAME,
|
|
386
|
+
mm_schemas.WriterEvent.ENDPOINT_NAME,
|
|
387
|
+
mm_schemas.WriterEvent.ENDPOINT_ID,
|
|
388
|
+
mm_schemas.MetricData.METRIC_NAME,
|
|
389
|
+
],
|
|
390
|
+
max_events=config.model_endpoint_monitoring.writer_graph.max_events,
|
|
391
|
+
flush_after_seconds=config.model_endpoint_monitoring.writer_graph.flush_after_seconds,
|
|
392
|
+
key=mm_schemas.EventFieldType.ENDPOINT_ID,
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
graph.add_step(
|
|
396
|
+
"storey.TSDBTarget",
|
|
397
|
+
name="tsdb_app_results",
|
|
398
|
+
after=after,
|
|
399
|
+
path=f"{self.container}/{self.tables[mm_schemas.V3IOTSDBTables.APP_RESULTS]}",
|
|
400
|
+
time_col=mm_schemas.WriterEvent.END_INFER_TIME,
|
|
401
|
+
container=self.container,
|
|
402
|
+
v3io_frames=self.v3io_framesd,
|
|
403
|
+
infer_columns_from_data=True,
|
|
404
|
+
graph_shape="cylinder",
|
|
405
|
+
index_cols=[
|
|
406
|
+
mm_schemas.WriterEvent.APPLICATION_NAME,
|
|
407
|
+
mm_schemas.WriterEvent.ENDPOINT_NAME,
|
|
408
|
+
mm_schemas.WriterEvent.ENDPOINT_ID,
|
|
409
|
+
mm_schemas.ResultData.RESULT_NAME,
|
|
410
|
+
],
|
|
411
|
+
max_events=config.model_endpoint_monitoring.writer_graph.max_events,
|
|
412
|
+
flush_after_seconds=config.model_endpoint_monitoring.writer_graph.flush_after_seconds,
|
|
413
|
+
key=mm_schemas.EventFieldType.ENDPOINT_ID,
|
|
414
|
+
)
|
|
415
|
+
|
|
372
416
|
def handle_model_error(
|
|
373
417
|
self,
|
|
374
418
|
graph,
|