mlrun 1.10.0rc16__tar.gz → 1.10.0rc17__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.

Files changed (395) hide show
  1. {mlrun-1.10.0rc16/mlrun.egg-info → mlrun-1.10.0rc17}/PKG-INFO +1 -1
  2. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/constants.py +2 -0
  3. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/__init__.py +1 -0
  4. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/model_monitoring/__init__.py +1 -0
  5. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/model_monitoring/constants.py +19 -0
  6. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/serving.py +3 -0
  7. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/workflow.py +1 -0
  8. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/config.py +1 -5
  9. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/base.py +1 -0
  10. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/httpdb.py +4 -0
  11. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/controller.py +175 -121
  12. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/stream_processing.py +29 -2
  13. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/projects/project.py +7 -2
  14. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/server.py +98 -11
  15. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/states.py +7 -18
  16. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/system_steps.py +20 -10
  17. mlrun-1.10.0rc17/mlrun/utils/version/version.json +4 -0
  18. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17/mlrun.egg-info}/PKG-INFO +1 -1
  19. mlrun-1.10.0rc16/mlrun/utils/version/version.json +0 -4
  20. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/LICENSE +0 -0
  21. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/MANIFEST.in +0 -0
  22. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/Makefile +0 -0
  23. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/README.md +0 -0
  24. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/dependencies.py +0 -0
  25. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/dev-requirements.txt +0 -0
  26. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/dockerfiles/mlrun-api/requirements.txt +0 -0
  27. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/archive.zip +0 -0
  28. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/function.py +0 -0
  29. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/handler.py +0 -0
  30. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/infile.txt +0 -0
  31. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/load-project.ipynb +0 -0
  32. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_basics.ipynb +0 -0
  33. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_dask.ipynb +0 -0
  34. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_db.ipynb +0 -0
  35. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_export_import.ipynb +0 -0
  36. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_jobs.ipynb +0 -0
  37. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_sparkk8s.ipynb +0 -0
  38. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/mlrun_vault.ipynb +0 -0
  39. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/model.bst +0 -0
  40. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/new-project.ipynb +0 -0
  41. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/nulltst.py +0 -0
  42. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/params.csv +0 -0
  43. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/remote-spark.ipynb +0 -0
  44. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/secrets.txt +0 -0
  45. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/spark-function.py +0 -0
  46. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/training.py +0 -0
  47. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/v2_model_server.ipynb +0 -0
  48. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/examples/xgb_serving.ipynb +0 -0
  49. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/extras-requirements.txt +0 -0
  50. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/__init__.py +0 -0
  51. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/__main__.py +0 -0
  52. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/alerts/__init__.py +0 -0
  53. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/alerts/alert.py +0 -0
  54. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/api/schemas/__init__.py +0 -0
  55. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/__init__.py +0 -0
  56. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/base.py +0 -0
  57. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/dataset.py +0 -0
  58. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/document.py +0 -0
  59. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/helpers.py +0 -0
  60. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/llm_prompt.py +0 -0
  61. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/manager.py +0 -0
  62. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/model.py +0 -0
  63. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/artifacts/plots.py +0 -0
  64. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/__init__.py +0 -0
  65. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/db/__init__.py +0 -0
  66. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/db/dialects.py +0 -0
  67. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/__init__.py +0 -0
  68. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/artifact.py +0 -0
  69. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/base.py +0 -0
  70. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/feature_set.py +0 -0
  71. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/function.py +0 -0
  72. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/model_endpoint.py +0 -0
  73. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/pipeline.py +0 -0
  74. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/project.py +0 -0
  75. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/formatters/run.py +0 -0
  76. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/helpers.py +0 -0
  77. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/model_monitoring/__init__.py +0 -0
  78. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/model_monitoring/helpers.py +0 -0
  79. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/runtimes/constants.py +0 -0
  80. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/alert.py +0 -0
  81. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/api_gateway.py +0 -0
  82. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/artifact.py +0 -0
  83. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/auth.py +0 -0
  84. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/background_task.py +0 -0
  85. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/client_spec.py +0 -0
  86. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/clusterization_spec.py +0 -0
  87. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/common.py +0 -0
  88. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/constants.py +0 -0
  89. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/datastore_profile.py +0 -0
  90. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/events.py +0 -0
  91. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/feature_store.py +0 -0
  92. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/frontend_spec.py +0 -0
  93. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/function.py +0 -0
  94. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/http.py +0 -0
  95. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/hub.py +0 -0
  96. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/k8s.py +0 -0
  97. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/memory_reports.py +0 -0
  98. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/model_monitoring/functions.py +0 -0
  99. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/model_monitoring/grafana.py +0 -0
  100. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/model_monitoring/model_endpoints.py +0 -0
  101. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/notification.py +0 -0
  102. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/object.py +0 -0
  103. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/pagination.py +0 -0
  104. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/partition.py +0 -0
  105. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/pipeline.py +0 -0
  106. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/project.py +0 -0
  107. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/regex.py +0 -0
  108. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/runs.py +0 -0
  109. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/runtime_resource.py +0 -0
  110. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/schedule.py +0 -0
  111. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/secret.py +0 -0
  112. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/schemas/tag.py +0 -0
  113. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/secrets.py +0 -0
  114. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/common/types.py +0 -0
  115. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/data_types/__init__.py +0 -0
  116. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/data_types/data_types.py +0 -0
  117. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/data_types/infer.py +0 -0
  118. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/data_types/spark.py +0 -0
  119. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/data_types/to_pandas.py +0 -0
  120. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/__init__.py +0 -0
  121. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/alibaba_oss.py +0 -0
  122. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/azure_blob.py +0 -0
  123. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/base.py +0 -0
  124. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/datastore.py +0 -0
  125. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/datastore_profile.py +0 -0
  126. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/dbfs_store.py +0 -0
  127. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/filestore.py +0 -0
  128. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/google_cloud_storage.py +0 -0
  129. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/hdfs.py +0 -0
  130. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/inmem.py +0 -0
  131. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/model_provider/__init__.py +0 -0
  132. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/model_provider/model_provider.py +0 -0
  133. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/model_provider/openai_provider.py +0 -0
  134. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/redis.py +0 -0
  135. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/remote_client.py +0 -0
  136. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/s3.py +0 -0
  137. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/snowflake_utils.py +0 -0
  138. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/sources.py +0 -0
  139. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/spark_udf.py +0 -0
  140. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/spark_utils.py +0 -0
  141. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/store_resources.py +0 -0
  142. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/storeytargets.py +0 -0
  143. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/targets.py +0 -0
  144. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/utils.py +0 -0
  145. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/v3io.py +0 -0
  146. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/vectorstore.py +0 -0
  147. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/wasbfs/__init__.py +0 -0
  148. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/datastore/wasbfs/fs.py +0 -0
  149. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/__init__.py +0 -0
  150. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/auth_utils.py +0 -0
  151. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/factory.py +0 -0
  152. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/db/nopdb.py +0 -0
  153. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/errors.py +0 -0
  154. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/execution.py +0 -0
  155. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/__init__.py +0 -0
  156. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/api.py +0 -0
  157. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/common.py +0 -0
  158. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/feature_set.py +0 -0
  159. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/feature_vector.py +0 -0
  160. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/feature_vector_utils.py +0 -0
  161. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/ingestion.py +0 -0
  162. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/__init__.py +0 -0
  163. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/base.py +0 -0
  164. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/dask_merger.py +0 -0
  165. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/job.py +0 -0
  166. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/local_merger.py +0 -0
  167. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/spark_merger.py +0 -0
  168. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/retrieval/storey_merger.py +0 -0
  169. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/feature_store/steps.py +0 -0
  170. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/features.py +0 -0
  171. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/__init__.py +0 -0
  172. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/__init__.py +0 -0
  173. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/artifacts_library.py +0 -0
  174. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/mlrun_interface.py +0 -0
  175. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/model_handler.py +0 -0
  176. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/plan.py +0 -0
  177. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/producer.py +0 -0
  178. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_common/utils.py +0 -0
  179. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/__init__.py +0 -0
  180. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/loggers/__init__.py +0 -0
  181. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/loggers/logger.py +0 -0
  182. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/loggers/mlrun_logger.py +0 -0
  183. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/loggers/tensorboard_logger.py +0 -0
  184. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/model_handler.py +0 -0
  185. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_dl_common/utils.py +0 -0
  186. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/__init__.py +0 -0
  187. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/artifacts_library.py +0 -0
  188. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/loggers/__init__.py +0 -0
  189. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/loggers/logger.py +0 -0
  190. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/loggers/mlrun_logger.py +0 -0
  191. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/model_handler.py +0 -0
  192. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/pkl_model_server.py +0 -0
  193. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plan.py +0 -0
  194. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/__init__.py +0 -0
  195. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/calibration_curve_plan.py +0 -0
  196. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/confusion_matrix_plan.py +0 -0
  197. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/dataset_plan.py +0 -0
  198. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/feature_importance_plan.py +0 -0
  199. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/plans/roc_curve_plan.py +0 -0
  200. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/producer.py +0 -0
  201. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/_ml_common/utils.py +0 -0
  202. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/auto_mlrun/__init__.py +0 -0
  203. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/auto_mlrun/auto_mlrun.py +0 -0
  204. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/huggingface/__init__.py +0 -0
  205. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/huggingface/model_server.py +0 -0
  206. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/__init__.py +0 -0
  207. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/callbacks/__init__.py +0 -0
  208. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/callbacks/callback.py +0 -0
  209. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/callbacks/logging_callback.py +0 -0
  210. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/callbacks/mlrun_logging_callback.py +0 -0
  211. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/mlrun_interfaces/__init__.py +0 -0
  212. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/mlrun_interfaces/booster_mlrun_interface.py +0 -0
  213. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/mlrun_interfaces/mlrun_interface.py +0 -0
  214. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/mlrun_interfaces/model_mlrun_interface.py +0 -0
  215. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/model_handler.py +0 -0
  216. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/model_server.py +0 -0
  217. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/lgbm/utils.py +0 -0
  218. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/onnx/__init__.py +0 -0
  219. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/onnx/dataset.py +0 -0
  220. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/onnx/mlrun_interface.py +0 -0
  221. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/onnx/model_handler.py +0 -0
  222. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/onnx/model_server.py +0 -0
  223. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/parallel_coordinates.py +0 -0
  224. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/__init__.py +0 -0
  225. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks/__init__.py +0 -0
  226. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks/callback.py +0 -0
  227. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks/logging_callback.py +0 -0
  228. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks/mlrun_logging_callback.py +0 -0
  229. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks/tensorboard_logging_callback.py +0 -0
  230. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/callbacks_handler.py +0 -0
  231. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/mlrun_interface.py +0 -0
  232. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/model_handler.py +0 -0
  233. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/model_server.py +0 -0
  234. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/pytorch/utils.py +0 -0
  235. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/__init__.py +0 -0
  236. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/estimator.py +0 -0
  237. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/metric.py +0 -0
  238. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/metrics_library.py +0 -0
  239. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/mlrun_interface.py +0 -0
  240. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/model_handler.py +0 -0
  241. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/sklearn/utils.py +0 -0
  242. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/__init__.py +0 -0
  243. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/callbacks/__init__.py +0 -0
  244. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/callbacks/logging_callback.py +0 -0
  245. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/callbacks/mlrun_logging_callback.py +0 -0
  246. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/callbacks/tensorboard_logging_callback.py +0 -0
  247. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/mlrun_interface.py +0 -0
  248. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/model_handler.py +0 -0
  249. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/model_server.py +0 -0
  250. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/tf_keras/utils.py +0 -0
  251. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/xgboost/__init__.py +0 -0
  252. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/xgboost/mlrun_interface.py +0 -0
  253. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/xgboost/model_handler.py +0 -0
  254. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/frameworks/xgboost/utils.py +0 -0
  255. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/k8s_utils.py +0 -0
  256. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/__init__.py +0 -0
  257. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/base.py +0 -0
  258. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/client.py +0 -0
  259. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/factory.py +0 -0
  260. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/local.py +0 -0
  261. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/launcher/remote.py +0 -0
  262. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/lists.py +0 -0
  263. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model.py +0 -0
  264. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/__init__.py +0 -0
  265. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/api.py +0 -0
  266. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/__init__.py +0 -0
  267. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/_application_steps.py +0 -0
  268. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/base.py +0 -0
  269. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/context.py +0 -0
  270. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/evidently/__init__.py +0 -0
  271. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/evidently/base.py +0 -0
  272. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/histogram_data_drift.py +0 -0
  273. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/applications/results.py +0 -0
  274. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/__init__.py +0 -0
  275. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/_schedules.py +0 -0
  276. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/_stats.py +0 -0
  277. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/__init__.py +0 -0
  278. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/base.py +0 -0
  279. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/helpers.py +0 -0
  280. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/tdengine/__init__.py +0 -0
  281. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/tdengine/schemas.py +0 -0
  282. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/tdengine/stream_graph_steps.py +0 -0
  283. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connection.py +0 -0
  284. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/tdengine/tdengine_connector.py +0 -0
  285. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/v3io/__init__.py +0 -0
  286. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/v3io/stream_graph_steps.py +0 -0
  287. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/db/tsdb/v3io/v3io_connector.py +0 -0
  288. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/features_drift_table.py +0 -0
  289. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/helpers.py +0 -0
  290. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/metrics/__init__.py +0 -0
  291. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/metrics/histogram_distance.py +0 -0
  292. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/model_monitoring/writer.py +0 -0
  293. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/__init__.py +0 -0
  294. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/context_handler.py +0 -0
  295. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/errors.py +0 -0
  296. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packager.py +0 -0
  297. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers/__init__.py +0 -0
  298. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers/default_packager.py +0 -0
  299. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers/numpy_packagers.py +0 -0
  300. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers/pandas_packagers.py +0 -0
  301. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers/python_standard_library_packagers.py +0 -0
  302. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/packagers_manager.py +0 -0
  303. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/__init__.py +0 -0
  304. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/_archiver.py +0 -0
  305. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/_formatter.py +0 -0
  306. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/_pickler.py +0 -0
  307. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/_supported_format.py +0 -0
  308. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/log_hint_utils.py +0 -0
  309. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/package/utils/type_hint_utils.py +0 -0
  310. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/platforms/__init__.py +0 -0
  311. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/platforms/iguazio.py +0 -0
  312. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/projects/__init__.py +0 -0
  313. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/projects/operations.py +0 -0
  314. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/projects/pipelines.py +0 -0
  315. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/render.py +0 -0
  316. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/run.py +0 -0
  317. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/__init__.py +0 -0
  318. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/base.py +0 -0
  319. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/daskjob.py +0 -0
  320. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/databricks_job/__init__.py +0 -0
  321. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/databricks_job/databricks_cancel_task.py +0 -0
  322. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/databricks_job/databricks_runtime.py +0 -0
  323. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/databricks_job/databricks_wrapper.py +0 -0
  324. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/funcdoc.py +0 -0
  325. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/function_reference.py +0 -0
  326. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/generators.py +0 -0
  327. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/kubejob.py +0 -0
  328. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/local.py +0 -0
  329. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/mounts.py +0 -0
  330. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/mpijob/__init__.py +0 -0
  331. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/mpijob/abstract.py +0 -0
  332. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/mpijob/v1.py +0 -0
  333. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/__init__.py +0 -0
  334. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/api_gateway.py +0 -0
  335. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/application/__init__.py +0 -0
  336. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/application/application.py +0 -0
  337. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/application/reverse_proxy.go +0 -0
  338. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/function.py +0 -0
  339. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/nuclio.py +0 -0
  340. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/nuclio/serving.py +0 -0
  341. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/pod.py +0 -0
  342. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/remotesparkjob.py +0 -0
  343. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/sparkjob/__init__.py +0 -0
  344. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/sparkjob/spark3job.py +0 -0
  345. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/runtimes/utils.py +0 -0
  346. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/secrets.py +0 -0
  347. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/__init__.py +0 -0
  348. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/merger.py +0 -0
  349. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/remote.py +0 -0
  350. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/routers.py +0 -0
  351. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/serving_wrapper.py +0 -0
  352. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/utils.py +0 -0
  353. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/v1_serving.py +0 -0
  354. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/serving/v2_serving.py +0 -0
  355. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/track/__init__.py +0 -0
  356. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/track/tracker.py +0 -0
  357. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/track/tracker_manager.py +0 -0
  358. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/track/trackers/__init__.py +0 -0
  359. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/track/trackers/mlflow_tracker.py +0 -0
  360. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/__init__.py +0 -0
  361. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/async_http.py +0 -0
  362. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/azure_vault.py +0 -0
  363. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/clones.py +0 -0
  364. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/condition_evaluator.py +0 -0
  365. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/helpers.py +0 -0
  366. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/http.py +0 -0
  367. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/logger.py +0 -0
  368. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/__init__.py +0 -0
  369. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/__init__.py +0 -0
  370. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/base.py +0 -0
  371. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/console.py +0 -0
  372. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/git.py +0 -0
  373. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/ipython.py +0 -0
  374. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/mail.py +0 -0
  375. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/slack.py +0 -0
  376. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification/webhook.py +0 -0
  377. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/notifications/notification_pusher.py +0 -0
  378. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/regex.py +0 -0
  379. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/retryer.py +0 -0
  380. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/singleton.py +0 -0
  381. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/v3io_clients.py +0 -0
  382. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/vault.py +0 -0
  383. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/version/__init__.py +0 -0
  384. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun/utils/version/version.py +0 -0
  385. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/SOURCES.txt +0 -0
  386. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/dependency_links.txt +0 -0
  387. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/entry_points.txt +0 -0
  388. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/not-zip-safe +0 -0
  389. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/requires.txt +0 -0
  390. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/mlrun.egg-info/top_level.txt +0 -0
  391. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/packages.py +0 -0
  392. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/pyproject.toml +0 -0
  393. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/requirements.txt +0 -0
  394. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/setup.cfg +0 -0
  395. {mlrun-1.10.0rc16 → mlrun-1.10.0rc17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mlrun
3
- Version: 1.10.0rc16
3
+ Version: 1.10.0rc17
4
4
  Summary: Tracking and config of machine learning runs
5
5
  Home-page: https://github.com/mlrun/mlrun
6
6
  Author: Yaron Haviv
@@ -84,6 +84,8 @@ class MLRunInternalLabels:
84
84
  original_workflow_id = "original-workflow-id"
85
85
  workflow_id = "workflow-id"
86
86
  retrying = "retrying"
87
+ rerun_counter = "rerun-counter"
88
+ rerun_index = "rerun-index"
87
89
 
88
90
  owner = "owner"
89
91
  v3io_user = "v3io_user"
@@ -133,6 +133,7 @@ from .k8s import NodeSelectorOperator, Resources, ResourceSpec
133
133
  from .memory_reports import MostCommonObjectTypesReport, ObjectTypeReport
134
134
  from .model_monitoring import (
135
135
  DriftStatus,
136
+ EndpointMode,
136
137
  EndpointType,
137
138
  EndpointUID,
138
139
  EventFieldType,
@@ -16,6 +16,7 @@ from .constants import (
16
16
  INTERSECT_DICT_KEYS,
17
17
  ApplicationEvent,
18
18
  DriftStatus,
19
+ EndpointMode,
19
20
  EndpointType,
20
21
  EndpointUID,
21
22
  EventFieldType,
@@ -205,6 +205,11 @@ class ControllerEvent(MonitoringStrEnum):
205
205
  FIRST_REQUEST = "first_request"
206
206
  FEATURE_SET_URI = "feature_set_uri"
207
207
  ENDPOINT_TYPE = "endpoint_type"
208
+
209
+ # first_timestamp and last_timestamp are used to batch completed events
210
+ FIRST_TIMESTAMP = "first_timestamp"
211
+ LAST_TIMESTAMP = "last_timestamp"
212
+
208
213
  ENDPOINT_POLICY = "endpoint_policy"
209
214
  # Note: currently under endpoint policy we will have a dictionary including the keys: "application_names"
210
215
  # "base_period", and "updated_endpoint" stand for when the MEP was updated
@@ -219,6 +224,7 @@ class ControllerEventEndpointPolicy(MonitoringStrEnum):
219
224
  class ControllerEventKind(MonitoringStrEnum):
220
225
  NOP_EVENT = "nop_event"
221
226
  REGULAR_EVENT = "regular_event"
227
+ BATCH_COMPLETE = "batch_complete"
222
228
 
223
229
 
224
230
  class MetricData(MonitoringStrEnum):
@@ -320,6 +326,19 @@ class EndpointType(IntEnum):
320
326
  def top_level_list(cls):
321
327
  return [cls.NODE_EP, cls.ROUTER, cls.BATCH_EP]
322
328
 
329
+ @classmethod
330
+ def real_time_list(cls):
331
+ return [cls.NODE_EP, cls.ROUTER, cls.LEAF_EP]
332
+
333
+ @classmethod
334
+ def batch_list(cls):
335
+ return [cls.BATCH_EP]
336
+
337
+
338
+ class EndpointMode(StrEnum):
339
+ REAL_TIME = "real_time"
340
+ BATCH = "batch"
341
+
323
342
 
324
343
  class MonitoringFunctionNames(MonitoringStrEnum):
325
344
  STREAM = "model-monitoring-stream"
@@ -47,3 +47,6 @@ class MonitoringData(StrEnum):
47
47
  class ModelsData(enum.Enum):
48
48
  MODEL_CLASS = 0
49
49
  MODEL_PARAMETERS = 1
50
+
51
+
52
+ MAX_BATCH_JOB_DURATION = "1w"
@@ -53,6 +53,7 @@ class RerunWorkflowRequest(pydantic.v1.BaseModel):
53
53
  workflow_runner_node_selector: typing.Optional[dict[str, str]] = None
54
54
  original_workflow_runner_uid: typing.Optional[str] = None
55
55
  original_workflow_name: typing.Optional[str] = None
56
+ rerun_index: typing.Optional[int] = None
56
57
 
57
58
 
58
59
  class WorkflowResponse(pydantic.v1.BaseModel):
@@ -406,11 +406,7 @@ default_config = {
406
406
  #
407
407
  # if set to "nil" or "none", nothing would be set
408
408
  "modes": (
409
- "STRICT_TRANS_TABLES"
410
- ",NO_ZERO_IN_DATE"
411
- ",NO_ZERO_DATE"
412
- ",ERROR_FOR_DIVISION_BY_ZERO"
413
- ",NO_ENGINE_SUBSTITUTION",
409
+ "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
414
410
  )
415
411
  },
416
412
  },
@@ -741,6 +741,7 @@ class RunDBInterface(ABC):
741
741
  tsdb_metrics: bool = False,
742
742
  metric_list: Optional[list[str]] = None,
743
743
  top_level: bool = False,
744
+ mode: Optional[mlrun.common.schemas.EndpointMode] = None,
744
745
  uids: Optional[list[str]] = None,
745
746
  latest_only: bool = False,
746
747
  ) -> mlrun.common.schemas.ModelEndpointList:
@@ -3813,6 +3813,7 @@ class HTTPRunDB(RunDBInterface):
3813
3813
  tsdb_metrics: bool = False,
3814
3814
  metric_list: Optional[list[str]] = None,
3815
3815
  top_level: bool = False,
3816
+ mode: mm_constants.EndpointMode = None,
3816
3817
  uids: Optional[list[str]] = None,
3817
3818
  latest_only: bool = False,
3818
3819
  ) -> mlrun.common.schemas.ModelEndpointList:
@@ -3833,6 +3834,8 @@ class HTTPRunDB(RunDBInterface):
3833
3834
  If tsdb_metrics=False, this parameter will be ignored and no tsdb metrics
3834
3835
  will be included.
3835
3836
  :param top_level: Whether to return only top level model endpoints.
3837
+ :param mode: Specifies the mode of the model endpoint. Can be "real-time", "batch", or both if set
3838
+ to None.
3836
3839
  :param uids: A list of unique ids to filter by.
3837
3840
  :param latest_only: Whether to return only the latest model endpoint version.
3838
3841
  :return: A list of model endpoints.
@@ -3856,6 +3859,7 @@ class HTTPRunDB(RunDBInterface):
3856
3859
  "tsdb-metrics": tsdb_metrics,
3857
3860
  "metric": metric_list,
3858
3861
  "top-level": top_level,
3862
+ "mode": mode,
3859
3863
  "uid": uids,
3860
3864
  "latest-only": latest_only,
3861
3865
  },
@@ -12,13 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import collections
16
15
  import concurrent.futures
17
16
  import datetime
18
17
  import json
19
18
  import os
20
19
  import traceback
21
- from collections import OrderedDict
22
20
  from collections.abc import Iterator
23
21
  from contextlib import AbstractContextManager
24
22
  from types import TracebackType
@@ -29,20 +27,17 @@ import pandas as pd
29
27
 
30
28
  import mlrun
31
29
  import mlrun.common.schemas.model_monitoring.constants as mm_constants
32
- import mlrun.feature_store as fstore
33
30
  import mlrun.model_monitoring
34
31
  import mlrun.model_monitoring.db._schedules as schedules
35
32
  import mlrun.model_monitoring.helpers
36
33
  import mlrun.platforms.iguazio
37
- from mlrun.common.schemas import EndpointType
38
34
  from mlrun.common.schemas.model_monitoring.constants import (
39
35
  ControllerEvent,
40
36
  ControllerEventEndpointPolicy,
41
- ControllerEventKind,
42
37
  )
43
38
  from mlrun.errors import err_to_str
44
39
  from mlrun.model_monitoring.helpers import batch_dict2timedelta
45
- from mlrun.utils import datetime_now, logger
40
+ from mlrun.utils import logger
46
41
 
47
42
  _SECONDS_IN_DAY = int(datetime.timedelta(days=1).total_seconds())
48
43
  _SECONDS_IN_MINUTE = 60
@@ -62,6 +57,7 @@ class _BatchWindow:
62
57
  timedelta_seconds: int,
63
58
  last_updated: int,
64
59
  first_request: int,
60
+ endpoint_mode: mm_constants.EndpointMode = mm_constants.EndpointMode.REAL_TIME,
65
61
  ) -> None:
66
62
  """
67
63
  Initialize a batch window object that handles the batch interval time range
@@ -74,6 +70,7 @@ class _BatchWindow:
74
70
  self._stop = last_updated
75
71
  self._step = timedelta_seconds
76
72
  self._db = schedules_file
73
+ self._endpoint_mode = endpoint_mode
77
74
  self._start = self._get_last_analyzed()
78
75
 
79
76
  def _get_saved_last_analyzed(self) -> Optional[int]:
@@ -85,10 +82,20 @@ class _BatchWindow:
85
82
  )
86
83
 
87
84
  def _get_initial_last_analyzed(self) -> int:
85
+ if self._endpoint_mode == mm_constants.EndpointMode.BATCH:
86
+ logger.info(
87
+ "No last analyzed time was found for this endpoint and application, as this is "
88
+ "probably the first time this application is running. Initializing last analyzed "
89
+ "to the start of the batch time",
90
+ application=self._application,
91
+ start_batch_time=self._first_request,
92
+ )
93
+ return self._first_request
88
94
  logger.info(
89
95
  "No last analyzed time was found for this endpoint and application, as this is "
90
96
  "probably the first time this application is running. Initializing last analyzed "
91
- "to the latest between first request time or last update time minus one day",
97
+ "to the latest between first request the latest between first request time or last "
98
+ "update time minus one day",
92
99
  application=self._application,
93
100
  first_request=self._first_request,
94
101
  last_updated=self._stop,
@@ -103,6 +110,9 @@ class _BatchWindow:
103
110
  def _get_last_analyzed(self) -> int:
104
111
  saved_last_analyzed = self._get_saved_last_analyzed()
105
112
  if saved_last_analyzed is not None:
113
+ if self._endpoint_mode == mm_constants.EndpointMode.BATCH:
114
+ # Use the maximum between the saved last analyzed and the start of the batch
115
+ return max(saved_last_analyzed, self._first_request)
106
116
  return saved_last_analyzed
107
117
  else:
108
118
  last_analyzed = self._get_initial_last_analyzed()
@@ -113,6 +123,7 @@ class _BatchWindow:
113
123
  def get_intervals(self) -> Iterator[_Interval]:
114
124
  """Generate the batch interval time ranges."""
115
125
  entered = False
126
+ last_analyzed = None
116
127
  # Iterate timestamp from start until timestamp <= stop - step
117
128
  # so that the last interval will end at (timestamp + step) <= stop.
118
129
  # Add 1 to stop - step to get <= and not <.
@@ -134,6 +145,40 @@ class _BatchWindow:
134
145
  last_analyzed=last_analyzed,
135
146
  )
136
147
 
148
+ if self._endpoint_mode == mm_constants.EndpointMode.BATCH:
149
+ # If the endpoint is a batch endpoint, we need to update the last analyzed time
150
+ # to the end of the batch time.
151
+ if last_analyzed:
152
+ if last_analyzed < self._stop:
153
+ # If the last analyzed time is earlier than the stop time,
154
+ # yield the final partial interval from last_analyzed to stop
155
+ yield _Interval(
156
+ datetime.datetime.fromtimestamp(
157
+ last_analyzed, tz=datetime.timezone.utc
158
+ ),
159
+ datetime.datetime.fromtimestamp(
160
+ self._stop, tz=datetime.timezone.utc
161
+ ),
162
+ )
163
+ else:
164
+ # The time span between the start and end of the batch is shorter than the step,
165
+ # so we need to yield a partial interval covering that range.
166
+ yield _Interval(
167
+ datetime.datetime.fromtimestamp(
168
+ self._start, tz=datetime.timezone.utc
169
+ ),
170
+ datetime.datetime.fromtimestamp(
171
+ self._stop, tz=datetime.timezone.utc
172
+ ),
173
+ )
174
+
175
+ self._update_last_analyzed(last_analyzed=self._stop)
176
+ logger.debug(
177
+ "Updated the last analyzed time for this endpoint and application to the end of the batch time",
178
+ application=self._application,
179
+ last_analyzed=self._stop,
180
+ )
181
+
137
182
  if not entered:
138
183
  logger.debug(
139
184
  "All the data is set, but no complete intervals were found. "
@@ -183,28 +228,25 @@ class _BatchWindowGenerator(AbstractContextManager):
183
228
 
184
229
  @classmethod
185
230
  def _get_last_updated_time(
186
- cls, last_request: datetime.datetime, not_batch_endpoint: bool
231
+ cls,
232
+ last_request: datetime.datetime,
233
+ endpoint_mode: mm_constants.EndpointMode,
187
234
  ) -> int:
188
235
  """
189
236
  Get the last updated time of a model endpoint.
190
237
  """
191
- last_updated = int(
192
- last_request.timestamp()
193
- - cast(
194
- float,
195
- mlrun.mlconf.model_endpoint_monitoring.parquet_batching_timeout_secs,
196
- )
197
- )
198
- if not not_batch_endpoint:
199
- # If the endpoint does not have a stream, `last_updated` should be
200
- # the minimum between the current time and the last updated time.
201
- # This compensates for the bumping mechanism - see
202
- # `update_model_endpoint_last_request`.
203
- last_updated = min(int(datetime_now().timestamp()), last_updated)
204
- logger.debug(
205
- "The endpoint does not have a stream", last_updated=last_updated
238
+
239
+ if endpoint_mode == mm_constants.EndpointMode.REAL_TIME:
240
+ last_updated = int(
241
+ last_request.timestamp()
242
+ - cast(
243
+ float,
244
+ mlrun.mlconf.model_endpoint_monitoring.parquet_batching_timeout_secs,
245
+ )
206
246
  )
207
- return last_updated
247
+
248
+ return last_updated
249
+ return int(last_request.timestamp())
208
250
 
209
251
  def get_intervals(
210
252
  self,
@@ -212,19 +254,21 @@ class _BatchWindowGenerator(AbstractContextManager):
212
254
  application: str,
213
255
  first_request: datetime.datetime,
214
256
  last_request: datetime.datetime,
215
- not_batch_endpoint: bool,
257
+ endpoint_mode: mm_constants.EndpointMode,
216
258
  ) -> Iterator[_Interval]:
217
259
  """
218
260
  Get the batch window for a specific endpoint and application.
219
261
  `first_request` and `last_request` are the timestamps of the first request and last
220
262
  request to the endpoint, respectively. They are guaranteed to be nonempty at this point.
221
263
  """
264
+
222
265
  self.batch_window = _BatchWindow(
223
266
  schedules_file=self._schedules_file,
224
267
  application=application,
225
268
  timedelta_seconds=self._timedelta,
226
- last_updated=self._get_last_updated_time(last_request, not_batch_endpoint),
269
+ last_updated=self._get_last_updated_time(last_request, endpoint_mode),
227
270
  first_request=int(first_request.timestamp()),
271
+ endpoint_mode=endpoint_mode,
228
272
  )
229
273
  yield from self.batch_window.get_intervals()
230
274
 
@@ -247,8 +291,6 @@ class MonitoringApplicationController:
247
291
  Note that the MonitoringApplicationController object requires access keys along with valid project configurations.
248
292
  """
249
293
 
250
- _MAX_FEATURE_SET_PER_WORKER = 1000
251
-
252
294
  def __init__(self) -> None:
253
295
  """Initialize Monitoring Application Controller"""
254
296
  self.project = cast(str, mlrun.mlconf.active_project)
@@ -282,9 +324,6 @@ class MonitoringApplicationController:
282
324
  mlrun.platforms.iguazio.KafkaOutputStream,
283
325
  ],
284
326
  ] = {}
285
- self.feature_sets: OrderedDict[str, mlrun.feature_store.FeatureSet] = (
286
- collections.OrderedDict()
287
- )
288
327
  self.tsdb_connector = mlrun.model_monitoring.get_tsdb_connector(
289
328
  project=self.project
290
329
  )
@@ -421,7 +460,6 @@ class MonitoringApplicationController:
421
460
  last_request=endpoint.status.last_request,
422
461
  first_request=endpoint.status.first_request,
423
462
  endpoint_type=endpoint.metadata.endpoint_type,
424
- feature_set_uri=endpoint.spec.monitoring_feature_set_uri,
425
463
  )
426
464
  return False
427
465
 
@@ -477,24 +515,67 @@ class MonitoringApplicationController:
477
515
  try:
478
516
  project_name = event[ControllerEvent.PROJECT]
479
517
  endpoint_id = event[ControllerEvent.ENDPOINT_ID]
480
- endpoint_name = event[ControllerEvent.ENDPOINT_NAME]
481
- applications_names = event[ControllerEvent.ENDPOINT_POLICY][
482
- ControllerEventEndpointPolicy.MONITORING_APPLICATIONS
483
- ]
484
518
 
485
- not_batch_endpoint = (
486
- event[ControllerEvent.ENDPOINT_TYPE] != EndpointType.BATCH_EP
487
- )
519
+ if (
520
+ event[ControllerEvent.KIND]
521
+ == mm_constants.ControllerEventKind.BATCH_COMPLETE
522
+ ):
523
+ monitoring_functions = (
524
+ self.project_obj.list_model_monitoring_functions()
525
+ )
526
+ if monitoring_functions:
527
+ applications_names = list(
528
+ {app.metadata.name for app in monitoring_functions}
529
+ )
530
+ last_stream_timestamp = datetime.datetime.fromisoformat(
531
+ event[ControllerEvent.LAST_TIMESTAMP]
532
+ )
533
+ first_request = datetime.datetime.fromisoformat(
534
+ event[ControllerEvent.FIRST_TIMESTAMP]
535
+ )
536
+ endpoint_mode = mm_constants.EndpointMode.BATCH
537
+ model_endpoint = self.project_obj.list_model_endpoints(
538
+ uids=[endpoint_id],
539
+ latest_only=True,
540
+ ).endpoints
541
+
542
+ if not model_endpoint:
543
+ logger.error(
544
+ "Batch model endpoint not found",
545
+ endpoint_id=endpoint_id,
546
+ project=project_name,
547
+ )
548
+ return
549
+
550
+ endpoint_name = model_endpoint[0].metadata.name
551
+ endpoint_updated = model_endpoint[0].metadata.updated.isoformat()
552
+
553
+ else:
554
+ logger.info("No monitoring functions found", project=self.project)
555
+ return
556
+
557
+ else:
558
+ endpoint_name = event[ControllerEvent.ENDPOINT_NAME]
559
+ applications_names = event[ControllerEvent.ENDPOINT_POLICY][
560
+ ControllerEventEndpointPolicy.MONITORING_APPLICATIONS
561
+ ]
562
+ last_stream_timestamp = datetime.datetime.fromisoformat(
563
+ event[ControllerEvent.TIMESTAMP]
564
+ )
565
+ first_request = datetime.datetime.fromisoformat(
566
+ event[ControllerEvent.FIRST_REQUEST]
567
+ )
568
+
569
+ endpoint_updated = event[ControllerEvent.ENDPOINT_POLICY][
570
+ ControllerEventEndpointPolicy.ENDPOINT_UPDATED
571
+ ]
572
+
573
+ endpoint_mode = mm_constants.EndpointMode.REAL_TIME
488
574
 
489
575
  logger.info(
490
- "Starting analyzing for", timestamp=event[ControllerEvent.TIMESTAMP]
491
- )
492
- last_stream_timestamp = datetime.datetime.fromisoformat(
493
- event[ControllerEvent.TIMESTAMP]
494
- )
495
- first_request = datetime.datetime.fromisoformat(
496
- event[ControllerEvent.FIRST_REQUEST]
576
+ "Starting to analyze", timestamp=last_stream_timestamp.isoformat()
497
577
  )
578
+
498
579
  with _BatchWindowGenerator(
499
580
  project=project_name,
500
581
  endpoint_id=endpoint_id,
@@ -506,42 +587,20 @@ class MonitoringApplicationController:
506
587
  end_infer_time,
507
588
  ) in batch_window_generator.get_intervals(
508
589
  application=application,
509
- not_batch_endpoint=not_batch_endpoint,
510
590
  first_request=first_request,
511
591
  last_request=last_stream_timestamp,
592
+ endpoint_mode=endpoint_mode,
512
593
  ):
513
594
  data_in_window = False
514
- if not_batch_endpoint:
515
- # Serving endpoint - get the relevant window data from the TSDB
516
- prediction_metric = self.tsdb_connector.read_predictions(
517
- start=start_infer_time,
518
- end=end_infer_time,
519
- endpoint_id=endpoint_id,
520
- )
521
- if prediction_metric.data:
522
- data_in_window = True
523
- else:
524
- if endpoint_id not in self.feature_sets:
525
- self.feature_sets[endpoint_id] = fstore.get_feature_set(
526
- event[ControllerEvent.FEATURE_SET_URI]
527
- )
528
- self.feature_sets.move_to_end(endpoint_id, last=False)
529
- if (
530
- len(self.feature_sets)
531
- > self._MAX_FEATURE_SET_PER_WORKER
532
- ):
533
- self.feature_sets.popitem(last=True)
534
- m_fs = self.feature_sets.get(endpoint_id)
535
-
536
- # Batch endpoint - get the relevant window data from the parquet target
537
- df = m_fs.to_dataframe(
538
- start_time=start_infer_time,
539
- end_time=end_infer_time,
540
- time_column=mm_constants.EventFieldType.TIMESTAMP,
541
- storage_options=self.storage_options,
542
- )
543
- if len(df) > 0:
544
- data_in_window = True
595
+ # Serving endpoint - get the relevant window data from the TSDB
596
+ prediction_metric = self.tsdb_connector.read_predictions(
597
+ start=start_infer_time,
598
+ end=end_infer_time,
599
+ endpoint_id=endpoint_id,
600
+ )
601
+ if prediction_metric.data:
602
+ data_in_window = True
603
+
545
604
  if not data_in_window:
546
605
  logger.info(
547
606
  "No data found for the given interval",
@@ -564,49 +623,47 @@ class MonitoringApplicationController:
564
623
  project=project_name,
565
624
  applications_names=[application],
566
625
  model_monitoring_access_key=self.model_monitoring_access_key,
567
- endpoint_updated=event[ControllerEvent.ENDPOINT_POLICY][
568
- ControllerEventEndpointPolicy.ENDPOINT_UPDATED
569
- ],
626
+ endpoint_updated=endpoint_updated,
570
627
  )
571
- base_period = event[ControllerEvent.ENDPOINT_POLICY][
572
- ControllerEventEndpointPolicy.BASE_PERIOD
573
- ]
574
- current_time = mlrun.utils.datetime_now()
628
+
575
629
  if (
576
- self._should_send_nop_event(
630
+ event[ControllerEvent.KIND]
631
+ == mm_constants.ControllerEventKind.REGULAR_EVENT
632
+ ):
633
+ base_period = event[ControllerEvent.ENDPOINT_POLICY][
634
+ ControllerEventEndpointPolicy.BASE_PERIOD
635
+ ]
636
+ current_time = mlrun.utils.datetime_now()
637
+ if self._should_send_nop_event(
577
638
  base_period,
578
639
  batch_window_generator.get_min_last_analyzed(),
579
640
  current_time,
580
- )
581
- and event[ControllerEvent.KIND] != ControllerEventKind.NOP_EVENT
582
- ):
583
- event = {
584
- ControllerEvent.KIND: mm_constants.ControllerEventKind.NOP_EVENT,
585
- ControllerEvent.PROJECT: project_name,
586
- ControllerEvent.ENDPOINT_ID: endpoint_id,
587
- ControllerEvent.ENDPOINT_NAME: endpoint_name,
588
- ControllerEvent.TIMESTAMP: current_time.isoformat(
589
- timespec="microseconds"
590
- ),
591
- ControllerEvent.ENDPOINT_POLICY: event[
592
- ControllerEvent.ENDPOINT_POLICY
593
- ],
594
- ControllerEvent.ENDPOINT_TYPE: event[
595
- ControllerEvent.ENDPOINT_TYPE
596
- ],
597
- ControllerEvent.FEATURE_SET_URI: event[
598
- ControllerEvent.FEATURE_SET_URI
599
- ],
600
- ControllerEvent.FIRST_REQUEST: event[
601
- ControllerEvent.FIRST_REQUEST
602
- ],
603
- }
604
- self._push_to_main_stream(
605
- event=event,
606
- endpoint_id=endpoint_id,
607
- )
641
+ ):
642
+ event = {
643
+ ControllerEvent.KIND: mm_constants.ControllerEventKind.NOP_EVENT,
644
+ ControllerEvent.PROJECT: project_name,
645
+ ControllerEvent.ENDPOINT_ID: endpoint_id,
646
+ ControllerEvent.ENDPOINT_NAME: endpoint_name,
647
+ ControllerEvent.TIMESTAMP: current_time.isoformat(
648
+ timespec="microseconds"
649
+ ),
650
+ ControllerEvent.ENDPOINT_POLICY: event[
651
+ ControllerEvent.ENDPOINT_POLICY
652
+ ],
653
+ ControllerEvent.ENDPOINT_TYPE: event[
654
+ ControllerEvent.ENDPOINT_TYPE
655
+ ],
656
+ ControllerEvent.FIRST_REQUEST: event[
657
+ ControllerEvent.FIRST_REQUEST
658
+ ],
659
+ }
660
+ self._push_to_main_stream(
661
+ event=event,
662
+ endpoint_id=endpoint_id,
663
+ )
608
664
  logger.info(
609
- "Finish analyze for", timestamp=event[ControllerEvent.TIMESTAMP]
665
+ "Finish analyze for",
666
+ timestamp=last_stream_timestamp,
610
667
  )
611
668
 
612
669
  except Exception:
@@ -674,7 +731,9 @@ class MonitoringApplicationController:
674
731
  """
675
732
  logger.info("Starting monitoring controller chief")
676
733
  applications_names = []
677
- endpoints = self.project_obj.list_model_endpoints(tsdb_metrics=False).endpoints
734
+ endpoints = self.project_obj.list_model_endpoints(
735
+ tsdb_metrics=False, mode=mm_constants.EndpointMode.REAL_TIME
736
+ ).endpoints
678
737
  last_request_dict = self.tsdb_connector.get_last_request(
679
738
  endpoint_ids=[mep.metadata.uid for mep in endpoints]
680
739
  )
@@ -783,7 +842,6 @@ class MonitoringApplicationController:
783
842
  sep=" ", timespec="microseconds"
784
843
  ),
785
844
  endpoint_type=endpoint.metadata.endpoint_type,
786
- feature_set_uri=endpoint.spec.monitoring_feature_set_uri,
787
845
  endpoint_policy=json.dumps(policy),
788
846
  )
789
847
  policy[ControllerEventEndpointPolicy.ENDPOINT_UPDATED] = (
@@ -801,7 +859,6 @@ class MonitoringApplicationController:
801
859
  sep=" ", timespec="microseconds"
802
860
  ),
803
861
  endpoint_type=endpoint.metadata.endpoint_type.value,
804
- feature_set_uri=endpoint.spec.monitoring_feature_set_uri,
805
862
  endpoint_policy=policy,
806
863
  )
807
864
 
@@ -814,7 +871,6 @@ class MonitoringApplicationController:
814
871
  timestamp: str,
815
872
  first_request: str,
816
873
  endpoint_type: int,
817
- feature_set_uri: str,
818
874
  endpoint_policy: dict[str, Any],
819
875
  ) -> None:
820
876
  """
@@ -827,7 +883,6 @@ class MonitoringApplicationController:
827
883
  :param endpoint_id: endpoint id string
828
884
  :param endpoint_name: the endpoint name string
829
885
  :param endpoint_type: Enum of the endpoint type
830
- :param feature_set_uri: the feature set uri string
831
886
  """
832
887
  event = {
833
888
  ControllerEvent.KIND.value: kind,
@@ -837,7 +892,6 @@ class MonitoringApplicationController:
837
892
  ControllerEvent.TIMESTAMP.value: timestamp,
838
893
  ControllerEvent.FIRST_REQUEST.value: first_request,
839
894
  ControllerEvent.ENDPOINT_TYPE.value: endpoint_type,
840
- ControllerEvent.FEATURE_SET_URI.value: feature_set_uri,
841
895
  ControllerEvent.ENDPOINT_POLICY.value: endpoint_policy,
842
896
  }
843
897
  logger.info(