datafusion-distributed 2.0.0

Framework for enhancing Apache DataFusion with distributed capabilities
Documentation
syntax = "proto3";
package observability;

service ObservabilityService {
  rpc Ping (PingRequest) returns (PingResponse);
  rpc GetTaskProgress (GetTaskProgressRequest) returns (GetTaskProgressResponse);
  rpc GetClusterWorkers (GetClusterWorkersRequest) returns (GetClusterWorkersResponse);
}

message PingRequest {}

message PingResponse {
  uint32 value = 1;
}

message GetTaskProgressRequest {}

message TaskKey {
  bytes query_id = 1;
  uint64 stage_id = 2;
  uint64 task_number = 3;
}

// Progress information for a single task
message TaskProgress {
  TaskKey task_key = 1;
  uint64 total_partitions = 2;
  uint64 completed_partitions = 3;
  TaskStatus status = 4;
  uint64 output_rows = 5;
}

enum TaskStatus {
  TASK_STATUS_UNSPECIFIED = 0;
  TASK_STATUS_RUNNING = 1;
}

// Worker-level system metrics
message WorkerMetrics {
  uint64 rss_bytes = 1;
  double cpu_usage_percent = 2;
}

message GetTaskProgressResponse {
  repeated TaskProgress tasks = 1;
  WorkerMetrics worker_metrics = 2;
}

message GetClusterWorkersRequest {}

message GetClusterWorkersResponse {
  repeated string worker_urls = 1;
}