indexify 0.4.16__tar.gz → 0.4.17__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.
Files changed (69) hide show
  1. {indexify-0.4.16 → indexify-0.4.17}/PKG-INFO +2 -2
  2. {indexify-0.4.16 → indexify-0.4.17}/pyproject.toml +2 -2
  3. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/channel_manager.py +7 -2
  4. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/health_checker/generic_health_checker.py +4 -0
  5. indexify-0.4.17/src/indexify/executor/monitoring/health_checker/metrics/health_checker.py +5 -0
  6. {indexify-0.4.16 → indexify-0.4.17}/README.md +0 -0
  7. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/cli/__init__.py +0 -0
  8. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/cli/build_image.py +0 -0
  9. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/cli/deploy.py +0 -0
  10. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/cli/executor.py +0 -0
  11. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/README.md +0 -0
  12. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/blob_store/blob_store.py +0 -0
  13. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/blob_store/local_fs_blob_store.py +0 -0
  14. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/blob_store/metrics/blob_store.py +0 -0
  15. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/blob_store/s3_blob_store.py +0 -0
  16. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/executor.py +0 -0
  17. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_allowlist.py +0 -0
  18. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/function_executor.py +0 -0
  19. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/health_checker.py +0 -0
  20. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/invocation_state_client.py +0 -0
  21. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/metrics/function_executor.py +0 -0
  22. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/metrics/health_checker.py +0 -0
  23. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/metrics/invocation_state_client.py +0 -0
  24. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/server/client_configuration.py +0 -0
  25. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/server/function_executor_server.py +0 -0
  26. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/server/function_executor_server_factory.py +0 -0
  27. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/server/subprocess_function_executor_server.py +0 -0
  28. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py +0 -0
  29. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/__init__.py +0 -0
  30. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/completed_task_metrics.py +0 -0
  31. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/create_function_executor.py +0 -0
  32. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/debug_event_loop.py +0 -0
  33. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/downloads.py +0 -0
  34. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/events.py +0 -0
  35. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/function_executor_controller.py +0 -0
  36. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/function_executor_startup_output.py +0 -0
  37. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/loggers.py +0 -0
  38. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/message_validators.py +0 -0
  39. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/metrics/completed_task_metrics.py +0 -0
  40. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/metrics/downloads.py +0 -0
  41. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/metrics/function_executor_controller.py +0 -0
  42. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/metrics/run_task.py +0 -0
  43. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/metrics/upload_task_output.py +0 -0
  44. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/prepare_task.py +0 -0
  45. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/run_task.py +0 -0
  46. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/task_info.py +0 -0
  47. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/task_output.py +0 -0
  48. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/terminate_function_executor.py +0 -0
  49. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/function_executor_controller/upload_task_output.py +0 -0
  50. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/host_resources/host_resources.py +0 -0
  51. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/host_resources/nvidia_gpu.py +0 -0
  52. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/host_resources/nvidia_gpu_allocator.py +0 -0
  53. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/metrics/channel_manager.py +0 -0
  54. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/metrics/executor.py +0 -0
  55. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/metrics/state_reconciler.py +0 -0
  56. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/metrics/state_reporter.py +0 -0
  57. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/handler.py +0 -0
  58. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/health_check_handler.py +0 -0
  59. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/health_checker/health_checker.py +0 -0
  60. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/metrics.py +0 -0
  61. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/prometheus_metrics_handler.py +0 -0
  62. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/server.py +0 -0
  63. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/monitoring/startup_probe_handler.py +0 -0
  64. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/state_reconciler.py +0 -0
  65. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/executor/state_reporter.py +0 -0
  66. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/proto/executor_api.proto +0 -0
  67. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/proto/executor_api_pb2.py +0 -0
  68. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/proto/executor_api_pb2.pyi +0 -0
  69. {indexify-0.4.16 → indexify-0.4.17}/src/indexify/proto/executor_api_pb2_grpc.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: indexify
3
- Version: 0.4.16
3
+ Version: 0.4.17
4
4
  Summary: Open Source Indexify components and helper tools
5
5
  Home-page: https://github.com/tensorlakeai/indexify
6
6
  License: Apache 2.0
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Requires-Dist: aiohttp (>=3.12.14,<4.0.0)
17
- Requires-Dist: boto3 (>=1.39.6,<2.0.0)
17
+ Requires-Dist: boto3 (>=1.39.7,<2.0.0)
18
18
  Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
19
19
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
20
20
  Requires-Dist: tensorlake (==0.2.25)
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "indexify"
3
3
  # Incremented if any of the components provided in this packages are updated.
4
- version = "0.4.16"
4
+ version = "0.4.17"
5
5
  description = "Open Source Indexify components and helper tools"
6
6
  authors = ["Tensorlake Inc. <support@tensorlake.ai>"]
7
7
  license = "Apache 2.0"
@@ -23,7 +23,7 @@ python = "^3.10"
23
23
  aiohttp = "^3.12.14"
24
24
  prometheus-client = "^0.22.1"
25
25
  psutil = "^7.0.0"
26
- boto3 = "^1.39.6"
26
+ boto3 = "^1.39.7"
27
27
  # Adds function-executor binary, utils lib, sdk used in indexify-cli commands.
28
28
  # We need to specify the tensorlake version exactly because pip install doesn't respect poetry.lock files.
29
29
  tensorlake = "0.2.25"
@@ -140,6 +140,9 @@ class ChannelManager:
140
140
  duration_sec=time.monotonic() - create_channel_start,
141
141
  )
142
142
 
143
+ self._logger.info(
144
+ "waiting for grpc server channel to get established (ready)"
145
+ )
143
146
  channel_ready_start = time.monotonic()
144
147
  await asyncio.wait_for(
145
148
  channel.channel_ready(),
@@ -151,10 +154,12 @@ class ChannelManager:
151
154
  )
152
155
 
153
156
  return channel
154
- except BaseException:
157
+ except BaseException as e:
155
158
  self._logger.error(
156
- f"failed establishing grpc server channel in {_CONNECT_TIMEOUT_SEC} sec, retrying in {_RETRY_INTERVAL_SEC} sec"
159
+ f"failed establishing grpc server channel in {_CONNECT_TIMEOUT_SEC} sec, retrying in {_RETRY_INTERVAL_SEC} sec",
160
+ exc_info=e,
157
161
  )
162
+
158
163
  try:
159
164
  await channel.close()
160
165
  except BaseException as e:
@@ -1,6 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from .health_checker import HealthChecker, HealthCheckResult
4
+ from .metrics.health_checker import metric_healthy
4
5
 
5
6
  _HEALTH_CHECKER_NAME = "GenericHealthChecker"
6
7
 
@@ -13,13 +14,16 @@ class GenericHealthChecker(HealthChecker):
13
14
 
14
15
  def __init__(self):
15
16
  self._server_connection_unhealthy_status_message: Optional[str] = None
17
+ metric_healthy.set(1)
16
18
 
17
19
  def server_connection_state_changed(self, is_healthy: bool, status_message: str):
18
20
  """Handle changes in server connection state."""
19
21
  if is_healthy:
20
22
  self._server_connection_unhealthy_status_message = None
23
+ metric_healthy.set(1)
21
24
  else:
22
25
  self._server_connection_unhealthy_status_message = status_message
26
+ metric_healthy.set(0)
23
27
 
24
28
  async def check(self) -> HealthCheckResult:
25
29
  if self._server_connection_unhealthy_status_message is not None:
@@ -0,0 +1,5 @@
1
+ import prometheus_client
2
+
3
+ metric_healthy = prometheus_client.Gauge(
4
+ "healthy", "1 if the executor is healthy, 0 otherwise"
5
+ )
File without changes