indexify 0.4.21__py3-none-any.whl → 0.4.23__py3-none-any.whl

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 (36) hide show
  1. indexify/cli/executor.py +2 -9
  2. indexify/executor/blob_store/blob_store.py +110 -26
  3. indexify/executor/blob_store/local_fs_blob_store.py +41 -1
  4. indexify/executor/blob_store/metrics/blob_store.py +87 -15
  5. indexify/executor/blob_store/s3_blob_store.py +112 -1
  6. indexify/executor/function_executor/function_executor.py +32 -56
  7. indexify/executor/function_executor/invocation_state_client.py +10 -3
  8. indexify/executor/function_executor/server/function_executor_server_factory.py +0 -1
  9. indexify/executor/function_executor_controller/create_function_executor.py +129 -116
  10. indexify/executor/function_executor_controller/downloads.py +34 -86
  11. indexify/executor/function_executor_controller/events.py +13 -7
  12. indexify/executor/function_executor_controller/finalize_task.py +184 -0
  13. indexify/executor/function_executor_controller/function_executor_controller.py +121 -78
  14. indexify/executor/function_executor_controller/message_validators.py +10 -3
  15. indexify/executor/function_executor_controller/metrics/downloads.py +8 -52
  16. indexify/executor/function_executor_controller/metrics/finalize_task.py +20 -0
  17. indexify/executor/function_executor_controller/metrics/prepare_task.py +18 -0
  18. indexify/executor/function_executor_controller/metrics/run_task.py +5 -4
  19. indexify/executor/function_executor_controller/prepare_task.py +232 -14
  20. indexify/executor/function_executor_controller/run_task.py +189 -81
  21. indexify/executor/function_executor_controller/task_info.py +4 -7
  22. indexify/executor/function_executor_controller/task_input.py +21 -0
  23. indexify/executor/function_executor_controller/task_output.py +41 -33
  24. indexify/executor/function_executor_controller/terminate_function_executor.py +6 -1
  25. indexify/executor/logging.py +69 -0
  26. indexify/executor/monitoring/metrics.py +22 -0
  27. indexify/proto/executor_api.proto +11 -3
  28. indexify/proto/executor_api_pb2.py +54 -54
  29. indexify/proto/executor_api_pb2.pyi +8 -1
  30. {indexify-0.4.21.dist-info → indexify-0.4.23.dist-info}/METADATA +6 -7
  31. {indexify-0.4.21.dist-info → indexify-0.4.23.dist-info}/RECORD +33 -31
  32. indexify/executor/function_executor_controller/function_executor_startup_output.py +0 -21
  33. indexify/executor/function_executor_controller/metrics/upload_task_output.py +0 -39
  34. indexify/executor/function_executor_controller/upload_task_output.py +0 -274
  35. {indexify-0.4.21.dist-info → indexify-0.4.23.dist-info}/WHEEL +0 -0
  36. {indexify-0.4.21.dist-info → indexify-0.4.23.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,69 @@
1
+ # Executor logging configuration.
2
+ import logging
3
+ import sys
4
+ import traceback
5
+ from typing import TextIO
6
+
7
+ import structlog
8
+
9
+
10
+ def configure_logging_early():
11
+ """Configures standard Python logging module.
12
+ By default 3rd party modules that are using standard Python logging module
13
+ (logging.getLogger()) have their log lines dropped unless the module gets configured.
14
+ Not dropping log lines from 3rd party modules is useful for debugging. E.g. this helps
15
+ debugging errors in grpc servers if exceptions happen inside grpc module code.
16
+ """
17
+ logging.basicConfig(
18
+ level=logging.WARNING,
19
+ # This log message format is a bit similar to the default structlog format.
20
+ format="%(asctime)s [%(levelname)s] %(message)s logger=%(name)s",
21
+ datefmt="%Y-%m-%d %H:%M:%S",
22
+ handlers=[logging.StreamHandler(sys.stdout)],
23
+ )
24
+
25
+
26
+ def configure_development_mode_logging(compact_tracebacks=True):
27
+ processors = [
28
+ structlog.contextvars.merge_contextvars,
29
+ structlog.processors.add_log_level,
30
+ structlog.dev.set_exc_info,
31
+ structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
32
+ structlog.dev.ConsoleRenderer(
33
+ exception_formatter=(
34
+ _compact_traceback_formatter
35
+ if compact_tracebacks
36
+ else structlog.dev.rich_traceback
37
+ ),
38
+ ),
39
+ ]
40
+ structlog.configure(
41
+ processors=processors,
42
+ )
43
+
44
+
45
+ def configure_production_mode_logging():
46
+ processors = [
47
+ structlog.contextvars.merge_contextvars,
48
+ structlog.processors.add_log_level,
49
+ structlog.dev.set_exc_info,
50
+ structlog.processors.format_exc_info,
51
+ structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
52
+ structlog.processors.JSONRenderer(),
53
+ ]
54
+ structlog.configure(processors=processors)
55
+
56
+
57
+ def _compact_traceback_formatter(
58
+ sio: TextIO, exc_info: structlog.typing.ExcInfo
59
+ ) -> None:
60
+ print(
61
+ "\n (only the frame where the exception was raised is printed by default)",
62
+ file=sio,
63
+ )
64
+ traceback.print_exception(
65
+ *exc_info,
66
+ file=sio,
67
+ limit=-1, # Print only 1 frame where the exception was raised
68
+ chain=False,
69
+ )
@@ -243,3 +243,25 @@ def _hours_to_sec(hours: int) -> float:
243
243
 
244
244
  def _days_to_sec(days: int) -> float:
245
245
  return _hours_to_sec(days * 24)
246
+
247
+
248
+ class IdempotentCounterChanger:
249
+ """A wrapper that ensures that inc/dec operations on a counter are done only once.
250
+
251
+ This is useful for tracking the number of in-progress operations or objects that exist.
252
+ """
253
+
254
+ def __init__(self, counter: prometheus_client.Counter) -> None:
255
+ self._counter: prometheus_client.Counter = counter
256
+ self.is_incremented: bool = False
257
+ self.is_decremented: bool = False
258
+
259
+ def inc(self) -> None:
260
+ if not self.is_incremented:
261
+ self._counter.inc()
262
+ self.is_incremented = True
263
+
264
+ def dec(self) -> None:
265
+ if self.is_incremented and not self.is_decremented:
266
+ self._counter.dec()
267
+ self.is_decremented = True
@@ -16,12 +16,15 @@ enum DataPayloadEncoding {
16
16
  message DataPayload {
17
17
  optional uint64 size = 2;
18
18
  optional string sha256_hash = 3;
19
- // URI of the data.
19
+ // URI of the BLOB where the data is stored.
20
20
  // S3 URI if the data is stored in S3.
21
21
  // Starts with "file://"" prefix if the data is stored on a local file system.
22
22
  optional string uri = 4;
23
23
  optional DataPayloadEncoding encoding = 5;
24
+ // Not set and ignored by Server right now.
24
25
  optional uint64 encoding_version = 6;
26
+ // Offset inside the BLOB.
27
+ optional uint64 offset = 7;
25
28
  }
26
29
 
27
30
  // ===== report_executor_state RPC =====
@@ -118,6 +121,7 @@ message FunctionExecutorDescription {
118
121
  // URI prefix for the startup output payloads.
119
122
  // S3 URI if the data is stored in S3.
120
123
  // Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
124
+ // Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
121
125
  optional string output_payload_uri_prefix = 12;
122
126
  }
123
127
 
@@ -128,6 +132,7 @@ message FunctionExecutorState {
128
132
  repeated string allocation_ids_caused_termination = 4;
129
133
  }
130
134
 
135
+ // Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
131
136
  message FunctionExecutorUpdate {
132
137
  optional FunctionExecutorDescription description = 1;
133
138
  optional DataPayload startup_stdout = 2;
@@ -207,6 +212,8 @@ message Task {
207
212
  // Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
208
213
  optional string output_payload_uri_prefix = 13;
209
214
  optional TaskRetryPolicy retry_policy = 14;
215
+ // BLOB URI prefix for the invocation error payloads.
216
+ optional string invocation_error_payload_uri_prefix = 15;
210
217
  }
211
218
 
212
219
  message TaskAllocation {
@@ -240,9 +247,10 @@ enum TaskOutcomeCode {
240
247
  enum TaskFailureReason {
241
248
  TASK_FAILURE_REASON_UNKNOWN = 0;
242
249
  // Internal error on Executor aka platform error.
243
- // Includes grey failures when we can't determine the exact cause.
244
250
  TASK_FAILURE_REASON_INTERNAL_ERROR = 1;
245
251
  // Clear function code failure typically by raising an exception from the function code.
252
+ // Also a grey failure where we can't determine the exact cause. We attribute these to
253
+ // functions to prevent service abuse but not billed intenionally failing functions.
246
254
  TASK_FAILURE_REASON_FUNCTION_ERROR = 2;
247
255
  // Function code run time exceeded its configured timeout.
248
256
  TASK_FAILURE_REASON_FUNCTION_TIMEOUT = 3;
@@ -268,11 +276,11 @@ message TaskResult {
268
276
  repeated string next_functions = 11;
269
277
  repeated DataPayload function_outputs = 12;
270
278
  // Standard output and error streams of the function.
279
+ // Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
271
280
  optional DataPayload stdout = 13;
272
281
  optional DataPayload stderr = 14;
273
282
  // User payload for invocation error if task failed with invocation error.
274
283
  optional DataPayload invocation_error_output = 15;
275
-
276
284
  optional uint64 execution_duration_ms = 16;
277
285
  }
278
286
 
@@ -19,7 +19,7 @@ _sym_db = _symbol_database.Default()
19
19
 
20
20
 
21
21
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
- b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\xeb\x01\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_version"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xc6\x04\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policy"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
22
+ b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\x8b\x02\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06offset\x18\x07 \x01(\x04H\x05\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_versionB\t\n\x07_offset"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xa0\x05\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x12\x30\n#invocation_error_payload_uri_prefix\x18\x0f \x01(\tH\x0b\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policyB&\n$_invocation_error_payload_uri_prefix"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
23
23
  )
24
24
 
25
25
  _globals = globals()
@@ -31,58 +31,58 @@ if not _descriptor._USE_C_DESCRIPTORS:
31
31
  DESCRIPTOR._loaded_options = None
32
32
  _globals["_EXECUTORSTATE_LABELSENTRY"]._loaded_options = None
33
33
  _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_options = b"8\001"
34
- _globals["_DATAPAYLOADENCODING"]._serialized_start = 5394
35
- _globals["_DATAPAYLOADENCODING"]._serialized_end = 5603
36
- _globals["_GPUMODEL"]._serialized_start = 5606
37
- _globals["_GPUMODEL"]._serialized_end = 5820
38
- _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5823
39
- _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6002
40
- _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6005
41
- _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6537
42
- _globals["_EXECUTORSTATUS"]._serialized_start = 6540
43
- _globals["_EXECUTORSTATUS"]._serialized_end = 6705
44
- _globals["_TASKOUTCOMECODE"]._serialized_start = 6707
45
- _globals["_TASKOUTCOMECODE"]._serialized_end = 6817
46
- _globals["_TASKFAILUREREASON"]._serialized_start = 6820
47
- _globals["_TASKFAILUREREASON"]._serialized_end = 7130
34
+ _globals["_DATAPAYLOADENCODING"]._serialized_start = 5516
35
+ _globals["_DATAPAYLOADENCODING"]._serialized_end = 5725
36
+ _globals["_GPUMODEL"]._serialized_start = 5728
37
+ _globals["_GPUMODEL"]._serialized_end = 5942
38
+ _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5945
39
+ _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6124
40
+ _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6127
41
+ _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6659
42
+ _globals["_EXECUTORSTATUS"]._serialized_start = 6662
43
+ _globals["_EXECUTORSTATUS"]._serialized_end = 6827
44
+ _globals["_TASKOUTCOMECODE"]._serialized_start = 6829
45
+ _globals["_TASKOUTCOMECODE"]._serialized_end = 6939
46
+ _globals["_TASKFAILUREREASON"]._serialized_start = 6942
47
+ _globals["_TASKFAILUREREASON"]._serialized_end = 7252
48
48
  _globals["_DATAPAYLOAD"]._serialized_start = 55
49
- _globals["_DATAPAYLOAD"]._serialized_end = 290
50
- _globals["_GPURESOURCES"]._serialized_start = 292
51
- _globals["_GPURESOURCES"]._serialized_end = 393
52
- _globals["_HOSTRESOURCES"]._serialized_start = 396
53
- _globals["_HOSTRESOURCES"]._serialized_end = 590
54
- _globals["_ALLOWEDFUNCTION"]._serialized_start = 593
55
- _globals["_ALLOWEDFUNCTION"]._serialized_end = 780
56
- _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start = 783
57
- _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end = 999
58
- _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1002
59
- _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1565
60
- _globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1568
61
- _globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1903
62
- _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1906
63
- _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2174
64
- _globals["_EXECUTORSTATE"]._serialized_start = 2177
65
- _globals["_EXECUTORSTATE"]._serialized_end = 2895
66
- _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2708
67
- _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2753
68
- _globals["_EXECUTORUPDATE"]._serialized_start = 2898
69
- _globals["_EXECUTORUPDATE"]._serialized_end = 3083
70
- _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3086
71
- _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3277
72
- _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3279
73
- _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3308
74
- _globals["_TASKRETRYPOLICY"]._serialized_start = 3311
75
- _globals["_TASKRETRYPOLICY"]._serialized_end = 3518
76
- _globals["_TASK"]._serialized_start = 3521
77
- _globals["_TASK"]._serialized_end = 4103
78
- _globals["_TASKALLOCATION"]._serialized_start = 4106
79
- _globals["_TASKALLOCATION"]._serialized_end = 4279
80
- _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4281
81
- _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4356
82
- _globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4359
83
- _globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4544
84
- _globals["_TASKRESULT"]._serialized_start = 4547
85
- _globals["_TASKRESULT"]._serialized_end = 5391
86
- _globals["_EXECUTORAPI"]._serialized_start = 7133
87
- _globals["_EXECUTORAPI"]._serialized_end = 7388
49
+ _globals["_DATAPAYLOAD"]._serialized_end = 322
50
+ _globals["_GPURESOURCES"]._serialized_start = 324
51
+ _globals["_GPURESOURCES"]._serialized_end = 425
52
+ _globals["_HOSTRESOURCES"]._serialized_start = 428
53
+ _globals["_HOSTRESOURCES"]._serialized_end = 622
54
+ _globals["_ALLOWEDFUNCTION"]._serialized_start = 625
55
+ _globals["_ALLOWEDFUNCTION"]._serialized_end = 812
56
+ _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start = 815
57
+ _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end = 1031
58
+ _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1034
59
+ _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1597
60
+ _globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1600
61
+ _globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1935
62
+ _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1938
63
+ _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2206
64
+ _globals["_EXECUTORSTATE"]._serialized_start = 2209
65
+ _globals["_EXECUTORSTATE"]._serialized_end = 2927
66
+ _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2740
67
+ _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2785
68
+ _globals["_EXECUTORUPDATE"]._serialized_start = 2930
69
+ _globals["_EXECUTORUPDATE"]._serialized_end = 3115
70
+ _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3118
71
+ _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3309
72
+ _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3311
73
+ _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3340
74
+ _globals["_TASKRETRYPOLICY"]._serialized_start = 3343
75
+ _globals["_TASKRETRYPOLICY"]._serialized_end = 3550
76
+ _globals["_TASK"]._serialized_start = 3553
77
+ _globals["_TASK"]._serialized_end = 4225
78
+ _globals["_TASKALLOCATION"]._serialized_start = 4228
79
+ _globals["_TASKALLOCATION"]._serialized_end = 4401
80
+ _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4403
81
+ _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4478
82
+ _globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4481
83
+ _globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4666
84
+ _globals["_TASKRESULT"]._serialized_start = 4669
85
+ _globals["_TASKRESULT"]._serialized_end = 5513
86
+ _globals["_EXECUTORAPI"]._serialized_start = 7255
87
+ _globals["_EXECUTORAPI"]._serialized_end = 7510
88
88
  # @@protoc_insertion_point(module_scope)
@@ -138,17 +138,19 @@ TASK_FAILURE_REASON_TASK_CANCELLED: TaskFailureReason
138
138
  TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED: TaskFailureReason
139
139
 
140
140
  class DataPayload(_message.Message):
141
- __slots__ = ("size", "sha256_hash", "uri", "encoding", "encoding_version")
141
+ __slots__ = ("size", "sha256_hash", "uri", "encoding", "encoding_version", "offset")
142
142
  SIZE_FIELD_NUMBER: _ClassVar[int]
143
143
  SHA256_HASH_FIELD_NUMBER: _ClassVar[int]
144
144
  URI_FIELD_NUMBER: _ClassVar[int]
145
145
  ENCODING_FIELD_NUMBER: _ClassVar[int]
146
146
  ENCODING_VERSION_FIELD_NUMBER: _ClassVar[int]
147
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
147
148
  size: int
148
149
  sha256_hash: str
149
150
  uri: str
150
151
  encoding: DataPayloadEncoding
151
152
  encoding_version: int
153
+ offset: int
152
154
  def __init__(
153
155
  self,
154
156
  size: _Optional[int] = ...,
@@ -156,6 +158,7 @@ class DataPayload(_message.Message):
156
158
  uri: _Optional[str] = ...,
157
159
  encoding: _Optional[_Union[DataPayloadEncoding, str]] = ...,
158
160
  encoding_version: _Optional[int] = ...,
161
+ offset: _Optional[int] = ...,
159
162
  ) -> None: ...
160
163
 
161
164
  class GPUResources(_message.Message):
@@ -449,6 +452,7 @@ class Task(_message.Message):
449
452
  "reducer_input",
450
453
  "output_payload_uri_prefix",
451
454
  "retry_policy",
455
+ "invocation_error_payload_uri_prefix",
452
456
  )
453
457
  ID_FIELD_NUMBER: _ClassVar[int]
454
458
  NAMESPACE_FIELD_NUMBER: _ClassVar[int]
@@ -461,6 +465,7 @@ class Task(_message.Message):
461
465
  REDUCER_INPUT_FIELD_NUMBER: _ClassVar[int]
462
466
  OUTPUT_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
463
467
  RETRY_POLICY_FIELD_NUMBER: _ClassVar[int]
468
+ INVOCATION_ERROR_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
464
469
  id: str
465
470
  namespace: str
466
471
  graph_name: str
@@ -472,6 +477,7 @@ class Task(_message.Message):
472
477
  reducer_input: DataPayload
473
478
  output_payload_uri_prefix: str
474
479
  retry_policy: TaskRetryPolicy
480
+ invocation_error_payload_uri_prefix: str
475
481
  def __init__(
476
482
  self,
477
483
  id: _Optional[str] = ...,
@@ -485,6 +491,7 @@ class Task(_message.Message):
485
491
  reducer_input: _Optional[_Union[DataPayload, _Mapping]] = ...,
486
492
  output_payload_uri_prefix: _Optional[str] = ...,
487
493
  retry_policy: _Optional[_Union[TaskRetryPolicy, _Mapping]] = ...,
494
+ invocation_error_payload_uri_prefix: _Optional[str] = ...,
488
495
  ) -> None: ...
489
496
 
490
497
  class TaskAllocation(_message.Message):
@@ -1,20 +1,18 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: indexify
3
- Version: 0.4.21
3
+ Version: 0.4.23
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
7
7
  Author: Tensorlake Inc.
8
8
  Author-email: support@tensorlake.ai
9
- Requires-Python: >=3.10,<4.0
9
+ Requires-Python: >=3.12,<4.0
10
10
  Classifier: License :: Other/Proprietary License
11
11
  Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
12
  Classifier: Programming Language :: Python :: 3.12
15
13
  Classifier: Programming Language :: Python :: 3.13
16
- Requires-Dist: aiohttp (>=3.12.14,<4.0.0)
17
- Requires-Dist: boto3 (>=1.39.14,<2.0.0)
14
+ Requires-Dist: aiohttp (>=3.12.15,<4.0.0)
15
+ Requires-Dist: boto3 (>=1.40.6,<2.0.0)
18
16
  Requires-Dist: docker (>=7.1.0,<8.0.0)
19
17
  Requires-Dist: httpx[http2] (==0.27.2)
20
18
  Requires-Dist: nanoid (>=2.0.0,<3.0.0)
@@ -22,7 +20,8 @@ Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
22
20
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
23
21
  Requires-Dist: pydantic (>=2.11,<3.0)
24
22
  Requires-Dist: requests (>=2.32.4,<3.0.0)
25
- Requires-Dist: tensorlake (==0.2.33)
23
+ Requires-Dist: structlog (==25.4.0)
24
+ Requires-Dist: tensorlake (==0.2.39)
26
25
  Requires-Dist: urllib3 (>=2.5.0,<3.0.0)
27
26
  Project-URL: Repository, https://github.com/tensorlakeai/indexify
28
27
  Description-Content-Type: text/markdown
@@ -1,50 +1,52 @@
1
1
  indexify/cli/__init__.py,sha256=ELFLx_Z_oWm30jwOpYjbD6Ori3Nzz4ldkvmGVK7QMgw,426
2
2
  indexify/cli/build_image.py,sha256=QLhhYz8WZtOL_xm1LvviTNJucGnYjksnMIVmeEQ8zzA,2505
3
3
  indexify/cli/deploy.py,sha256=0cs68KXH4Cw0KmYAoqYZ60oErQ5J9LI0KbohSG_Mj8g,1847
4
- indexify/cli/executor.py,sha256=UgKPQaObIJVFht0niLEsw8y4k8XBF3siWpTig2_nV8U,6584
4
+ indexify/cli/executor.py,sha256=0go8YUPFCwg77pYbCaoWuPraqW7KBgZ6Fyx6sQzT4aM,6286
5
5
  indexify/executor/README.md,sha256=ozC6_hMkhQQNVCMEpBxwiUALz6lwErPQxNxQfQDqnG4,2029
6
- indexify/executor/blob_store/blob_store.py,sha256=XViw_KRfFSNqwcFYwMZixZF-EYCjXK2AQHdt0xh4UVo,2368
7
- indexify/executor/blob_store/local_fs_blob_store.py,sha256=6LexqMBGXp8f6Ka95R6xMIUyDutrZJABOMNcp-ssa98,1809
8
- indexify/executor/blob_store/metrics/blob_store.py,sha256=5_xiPREeHWFtxFh1NupDsF8zP4pmUPgLNNn-UE9Uzvc,1008
9
- indexify/executor/blob_store/s3_blob_store.py,sha256=G3B_V3gUE7XbUY42lDtBczUKuA7q8S7MD43tx1aHrJo,3445
6
+ indexify/executor/blob_store/blob_store.py,sha256=lrSGTZa_H4Cs1BFwADp-aluvD3LpmE1XO76ZJMX5alU,5798
7
+ indexify/executor/blob_store/local_fs_blob_store.py,sha256=nRFawLMbOCCFlCIx2ccmhalFjpfdhMRL2pE2rgV0VH8,3245
8
+ indexify/executor/blob_store/metrics/blob_store.py,sha256=3lmLU8q4Yx87RIYcy56nmFiNQTPY94pB12ht7X6MyhA,3811
9
+ indexify/executor/blob_store/s3_blob_store.py,sha256=wJlDBTTaq48Vp1I0LvP2958b1Xe8esvarkr5PVRawU0,7609
10
10
  indexify/executor/channel_manager.py,sha256=ihKfWJmUqQvh4UKXewZLzyJWW_f50P4fnwPqPonrozw,6651
11
11
  indexify/executor/executor.py,sha256=rM7BmJDqC_YwdwPfDGFGiFO2WxOW3Nj8Z7rwRw8UcFk,6353
12
12
  indexify/executor/function_allowlist.py,sha256=PCelCW6qIe_2sH11BCKr7LDqarRV5kwNsrfB2EV7Zwo,1772
13
- indexify/executor/function_executor/function_executor.py,sha256=Hz_dT_2i1m9akUGfULWQpDlMsn0CI1AX4Mdt7-oOknI,13598
13
+ indexify/executor/function_executor/function_executor.py,sha256=MrbGEqsxpzLVOrEAH_Kmm3cW3q_5h-GYUIkenuPvyT4,12288
14
14
  indexify/executor/function_executor/health_checker.py,sha256=IxE0jnC99K_lvnizFLjXqS1942H8-FNAN4AlhLIjg2Y,6373
15
- indexify/executor/function_executor/invocation_state_client.py,sha256=YYJElvpkCH-OmBXplLJX59dwMZELMHXSDR4VLLn1u7k,10939
15
+ indexify/executor/function_executor/invocation_state_client.py,sha256=q3YWnoTCYCtBrCOBlLd3b13_vwzibFOJJBHHami28Yc,11269
16
16
  indexify/executor/function_executor/metrics/function_executor.py,sha256=TDksxLRJr-P9ZKhF2Orsaxzzb4lVIBxFEjd_9Zv53Ng,6313
17
17
  indexify/executor/function_executor/metrics/health_checker.py,sha256=EaeIYJPrQ-qqNMGZVGkvjPoeQSCl4FzPKXEv3Cly1NE,456
18
18
  indexify/executor/function_executor/metrics/invocation_state_client.py,sha256=6FCW6rXHVZZSmwLquZdpjgQPSmE_99naDLke5rZiwMI,1867
19
19
  indexify/executor/function_executor/server/client_configuration.py,sha256=gOywMus0cotlX6NKIadEJwvOmBE-LbGE_wvoMi5-HzY,994
20
20
  indexify/executor/function_executor/server/function_executor_server.py,sha256=_DLivLDikupZusRk8gVWDk7fWPT9XjZ4un1yWSlOObs,883
21
- indexify/executor/function_executor/server/function_executor_server_factory.py,sha256=tAyBDNq6UXmHM4PUXqBkXCSGer6MgMaV1_zoruHPJVg,1843
21
+ indexify/executor/function_executor/server/function_executor_server_factory.py,sha256=pZ3tQoaeWP2NDaR-A0PUYmzrBz768U2b9ENBFQG1INg,1814
22
22
  indexify/executor/function_executor/server/subprocess_function_executor_server.py,sha256=JekDOqF7oFD4J6zcN3xB0Dxd1cgpEXMOsb_rKZOeBlI,668
23
23
  indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py,sha256=w5aGQPHWLpixlP9-BbZu6oL_muMA95-hr7WKVxiEL7Q,4303
24
24
  indexify/executor/function_executor_controller/__init__.py,sha256=VPuuBEYOKf7OWyPPjy-jGOv-d5xJqHvkJfFT_oj-AsE,492
25
25
  indexify/executor/function_executor_controller/completed_task_metrics.py,sha256=MhnC-ddgmTK4yTsuZxgTKnqZ-YSVeWn2EhbbiggsSKk,3664
26
- indexify/executor/function_executor_controller/create_function_executor.py,sha256=DA8niVgftxSE_OYARw7nLSJujVu8HDzHh1EW_cXquC0,9766
26
+ indexify/executor/function_executor_controller/create_function_executor.py,sha256=wCMlECcXZ9FMF0NlXqww6lbHRwy71w204q_Rh6nFoOE,10694
27
27
  indexify/executor/function_executor_controller/debug_event_loop.py,sha256=VJOKe_c9HjIDVCjhMY3Yqyeq1tAM1eVa2chZa6CMf-U,1016
28
- indexify/executor/function_executor_controller/downloads.py,sha256=XjCUmLY_jrI3AlnXC7aDwwKWTvsQjV7I9AXzrbIeY6c,7063
29
- indexify/executor/function_executor_controller/events.py,sha256=r2K3k9Nnkzh0j6HHZC0DxOdQ3HtCmzt4eN2DIwTa7NM,5456
30
- indexify/executor/function_executor_controller/function_executor_controller.py,sha256=Vsgfq8FocVjAhJOK2KHQg6jFwizUl9NJUME6r3wb0no,37595
31
- indexify/executor/function_executor_controller/function_executor_startup_output.py,sha256=PXg2r440kqHI3oHGZbb58ehuAuW_fmEdxLTAa-0V3p4,715
28
+ indexify/executor/function_executor_controller/downloads.py,sha256=B2dbaa6osp1_vCQ6WY_9znAca3Z2qqVzQAF2av3v8Pg,5304
29
+ indexify/executor/function_executor_controller/events.py,sha256=G5WX8Qgyv5LuY0IkiFWtvUmNWtuqih34Kt9qTFVfYVU,5639
30
+ indexify/executor/function_executor_controller/finalize_task.py,sha256=letfBqGXPTubvOfbRg7cvdgtvrwkSnSezx4XRknYvKM,6624
31
+ indexify/executor/function_executor_controller/function_executor_controller.py,sha256=uBlQgSGIuVlxAQnT7Qs-T-8c5vABeITFCu_oY9-vNmU,39132
32
32
  indexify/executor/function_executor_controller/loggers.py,sha256=zEY2nt15gboX3SX6Kh1xjeCljZJZSE4lp27qNrg8yPY,3637
33
- indexify/executor/function_executor_controller/message_validators.py,sha256=aNiZhYA87pnxUJtZKvKGDt40rfox-TYH2J6mW7o-Pkw,2981
33
+ indexify/executor/function_executor_controller/message_validators.py,sha256=7Hgu6GItKU5_zz_YHtHT5NlWIHnvof2P-o_21pto9vU,3128
34
34
  indexify/executor/function_executor_controller/metrics/completed_task_metrics.py,sha256=53EGBCLwCEV-RBBeyLPTElrtcveaEM0Fwxs9NmC1Hn8,2724
35
- indexify/executor/function_executor_controller/metrics/downloads.py,sha256=KOVTE2OZPCewnCooPyCK1maKe9ddMPvBFp7D_igqugQ,2708
35
+ indexify/executor/function_executor_controller/metrics/downloads.py,sha256=G8UUDfnzmiK_26OvZYTqH0KgNb3kI-0TgzGLFEuSEFc,892
36
+ indexify/executor/function_executor_controller/metrics/finalize_task.py,sha256=KlJ9o3DQ8VSWNBpMrugr0CT7sSZm2J1LH6lvZhzsQ6E,743
36
37
  indexify/executor/function_executor_controller/metrics/function_executor_controller.py,sha256=gyIZHbdsNSnrA6z4WDaRAunNolFrbbg1pa8JaL_ODNE,2666
37
- indexify/executor/function_executor_controller/metrics/run_task.py,sha256=kdjw-Bi788B8Pq4eL08k8HVtcjIA3y8pLLSNWRBI8YA,1006
38
- indexify/executor/function_executor_controller/metrics/upload_task_output.py,sha256=Ppf8NujCNbQzFelJiuh8Sutcjty7hnkFz1dWQLYIgQI,1464
39
- indexify/executor/function_executor_controller/prepare_task.py,sha256=AKbo_H_5pOKdxFKKkzdOb1WhQ0XT-4Qm9D3iIsukyMU,1247
40
- indexify/executor/function_executor_controller/run_task.py,sha256=IqJU7EDu5iacvlT8A17-_78k7Mt8bUjillxWjsr-_A4,11293
41
- indexify/executor/function_executor_controller/task_info.py,sha256=ZEdypd8QVmYbrLt1186Ed9YEQwrO0Sx_hKH0QLg1DVY,1181
42
- indexify/executor/function_executor_controller/task_output.py,sha256=rSUghdPTfWsYQ7h1ZgmPOp7VTPAD4fPWkpN7MXsmlV0,6702
43
- indexify/executor/function_executor_controller/terminate_function_executor.py,sha256=YLDlKoanfUBcy7A9ydCYdUsDwApjcTTn1o4tjNVN_QA,1281
44
- indexify/executor/function_executor_controller/upload_task_output.py,sha256=fEZm5eodx5rNLQYFhmdkMDD9qjX3_wKo64x4aUKTu34,10403
38
+ indexify/executor/function_executor_controller/metrics/prepare_task.py,sha256=7nHuerFWGqRCRqtgpL3vJVs-DHwxwFhBZaGjrtfOlys,764
39
+ indexify/executor/function_executor_controller/metrics/run_task.py,sha256=ZFv_nw5_pKUJoTaavSyzdglQKW4uvC2XyK8S6xi9xLQ,1064
40
+ indexify/executor/function_executor_controller/prepare_task.py,sha256=9vUPrbaz5AQVSbe0LvTOD7lkn-02P_UvMQyjZmjhGHo,9170
41
+ indexify/executor/function_executor_controller/run_task.py,sha256=kbQGhopCzbARczzZ4zXAvWkgWLlI9kMXSVXSOOrssos,15483
42
+ indexify/executor/function_executor_controller/task_info.py,sha256=ufhb4PvQuXyY4JUlddNyN2bJQdUeGlMTMIRlKz_WzXc,1015
43
+ indexify/executor/function_executor_controller/task_input.py,sha256=PHCzqpjzTzw4TJTn6wncon3P08EiTVRJazEYRbTqDu8,876
44
+ indexify/executor/function_executor_controller/task_output.py,sha256=kDOm9wlzNHMaXp3er0SbWS1D5NI3mx9reVgqbmlCPA8,7130
45
+ indexify/executor/function_executor_controller/terminate_function_executor.py,sha256=2eqcpAo5brfMPFtYCpTlI3FJ6ESRU9xUzbXDFU0lcP4,1561
45
46
  indexify/executor/host_resources/host_resources.py,sha256=eUyP05EX7QdOtQ5vbX_KCpvnBS2B7fl06UWeF9Oigns,3813
46
47
  indexify/executor/host_resources/nvidia_gpu.py,sha256=uTCkLXnozZSpax8VApt0QMMM9YcBUK9eggYpwmLz09I,3308
47
48
  indexify/executor/host_resources/nvidia_gpu_allocator.py,sha256=AOcXKglLyRD-GrZzyCoi_oDRJoaOhFKWBSlUOxHeAP8,2114
49
+ indexify/executor/logging.py,sha256=e-Hs64bOy4mGVgAGHLohleqP-COy8h2JJhRv6RGjcV4,2256
48
50
  indexify/executor/metrics/channel_manager.py,sha256=1dU9bzF3xqBy1nY9Sc66GfQQWnWZSNip4lEH1vjoWdI,648
49
51
  indexify/executor/metrics/executor.py,sha256=8dJXmyGqKlBSrPuyWXW7O2I21uxQ687l-2dYTvz4fmk,398
50
52
  indexify/executor/metrics/state_reconciler.py,sha256=BSlRgvgtwih6QcYrsFU5P2ylaXAsC_X70DbzDuv9NsU,584
@@ -54,17 +56,17 @@ indexify/executor/monitoring/health_check_handler.py,sha256=e1pEtWFKaVs6H57Z4YLe
54
56
  indexify/executor/monitoring/health_checker/generic_health_checker.py,sha256=vJRV879GrdZFqwTnM9pRLA97LRMutGz2sWRy-KS-tfg,1493
55
57
  indexify/executor/monitoring/health_checker/health_checker.py,sha256=B-Q4KM1iEUSMA2fr9PBhBLdA7sYII_NuTRmPuRILGSo,665
56
58
  indexify/executor/monitoring/health_checker/metrics/health_checker.py,sha256=50JS4JaOdAgSk7iYaBV4J3tGXkRTzmIVR_jVOV66YOc,129
57
- indexify/executor/monitoring/metrics.py,sha256=Dx2wPcTKvbd5Y5rGOfeyscFtAQ2DZ16_s5BX6d4nhI8,6660
59
+ indexify/executor/monitoring/metrics.py,sha256=5BpNqDBDQiL2K962WDPQU2eSo5zD6I9vF2flGyBejts,7388
58
60
  indexify/executor/monitoring/prometheus_metrics_handler.py,sha256=KiGqSf7rkXTfbDwThyXFpFe2jnuZD5q-5SBP_0GDo8Y,591
59
61
  indexify/executor/monitoring/server.py,sha256=yzdYhcxnmY6uTQUMt3vatF5jilN52ZtfFseOmHyQpTo,1254
60
62
  indexify/executor/monitoring/startup_probe_handler.py,sha256=zXXsBU15SMlBx1bSFpxWDfed1VHtKKnwvLQ8-frpG98,425
61
63
  indexify/executor/state_reconciler.py,sha256=hPTjCUkXQV0HIwa5JczYpb5gvTGonQpkxqOvQXf-QU4,20057
62
64
  indexify/executor/state_reporter.py,sha256=zf5UBhBZVv9SQ1Ju_bY8w6D_t1hBZ5YVXhjeFMEgRms,15208
63
- indexify/proto/executor_api.proto,sha256=Zvx5eTz_QFHCX2udzOwHZD-ncJfDlXeKVbNBhsagChI,12168
64
- indexify/proto/executor_api_pb2.py,sha256=iSiO2Aw7vQV5Jp7IoSeIC8q32WjE-s-AZ0Hc5MwI0uI,16266
65
- indexify/proto/executor_api_pb2.pyi,sha256=oReajQdT2yNPS4kZd3gDMBdbseHv-gU15fpeT0v3ZBs,22819
65
+ indexify/proto/executor_api.proto,sha256=yYLx3LTx2hGDFJX8myCosS3_eAWUMWdsWt59PH7O-QQ,12864
66
+ indexify/proto/executor_api_pb2.py,sha256=ZrJg5ivsv-Kn8QRRsFWupdKCo6Eru6UNR8iYRqo5AhE,16458
67
+ indexify/proto/executor_api_pb2.pyi,sha256=YfKsaIYaePZkpLTk_toAsWfH50xOOYfjjU3aWsci9w0,23151
66
68
  indexify/proto/executor_api_pb2_grpc.py,sha256=u9GEQV4nm_GvApRxjVo806CkgBMBVReb5IVrcaDaliY,7520
67
- indexify-0.4.21.dist-info/METADATA,sha256=UpSK8Rpb61jT_7IqUUBjL4NXWjk5f7jELuFo-YZLzJE,1354
68
- indexify-0.4.21.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
69
- indexify-0.4.21.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
70
- indexify-0.4.21.dist-info/RECORD,,
69
+ indexify-0.4.23.dist-info/METADATA,sha256=n3Un6Bc8Ei9Agb7QCV7juOL0PjJkW2suOlaUQIax4tw,1287
70
+ indexify-0.4.23.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
71
+ indexify-0.4.23.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
72
+ indexify-0.4.23.dist-info/RECORD,,
@@ -1,21 +0,0 @@
1
- from typing import Optional
2
-
3
- from indexify.proto.executor_api_pb2 import (
4
- DataPayload,
5
- FunctionExecutorDescription,
6
- FunctionExecutorTerminationReason,
7
- )
8
-
9
-
10
- class FunctionExecutorStartupOutput:
11
- def __init__(
12
- self,
13
- function_executor_description: FunctionExecutorDescription,
14
- termination_reason: FunctionExecutorTerminationReason = None, # None if FE created successfully (wasn't terminated)
15
- stdout: Optional[DataPayload] = None,
16
- stderr: Optional[DataPayload] = None,
17
- ):
18
- self.function_executor_description = function_executor_description
19
- self.termination_reason = termination_reason
20
- self.stdout = stdout
21
- self.stderr = stderr
@@ -1,39 +0,0 @@
1
- import prometheus_client
2
-
3
- from indexify.executor.monitoring.metrics import latency_metric_for_fast_operation
4
-
5
- # Task output upload metrics.
6
- metric_task_output_uploads: prometheus_client.Counter = prometheus_client.Counter(
7
- "task_output_uploads",
8
- "Number of task output uploads",
9
- )
10
- metric_tasks_uploading_outputs: prometheus_client.Gauge = prometheus_client.Gauge(
11
- "tasks_uploading_output",
12
- "Number of tasks currently uploading their outputs",
13
- )
14
- metric_task_output_upload_latency: prometheus_client.Histogram = (
15
- latency_metric_for_fast_operation("task_output_upload", "task output upload")
16
- )
17
- metric_task_output_upload_retries: prometheus_client.Counter = (
18
- prometheus_client.Counter(
19
- "tasks_output_upload_retries", "Number of task output upload retries"
20
- )
21
- )
22
-
23
- # Metrics for individual blob store operations.
24
- metric_task_output_blob_store_uploads: prometheus_client.Counter = (
25
- prometheus_client.Counter(
26
- "task_output_blob_store_uploads", "Number of task output uploads to blob store"
27
- )
28
- )
29
- metric_task_output_blob_store_upload_errors: prometheus_client.Counter = (
30
- prometheus_client.Counter(
31
- "task_output_blob_store_upload_errors",
32
- "Number of failed task output uploads to blob store",
33
- )
34
- )
35
- metric_task_output_blob_store_upload_latency: prometheus_client.Histogram = (
36
- latency_metric_for_fast_operation(
37
- "task_output_blob_store_upload", "Upload task output to blob store"
38
- )
39
- )