syntax = "proto3"; package chat; option go_package="gitea.d3m0k1d.ru/d3m0k1d/HellreigN/proto/proto"; service Collector { rpc Stream(stream CollectorRequest) returns (CollectorResponse); rpc ReportServices(ServicesUpdate) returns (ServicesUpdateResp); rpc ReportSystemMetrics(SystemMetrics) returns (SystemMetricsResp); } message ServicesUpdateResp { } message SystemMetricsResp { } message SystemMetrics { double cpu_percent = 1; // CPU usage percentage (0-100) double memory_percent = 2; // RAM usage percentage (0-100) double disk_percent = 3; // Disk usage percentage (0-100) double network_rx_bytes = 4; // Network received bytes per second double network_tx_bytes = 5; // Network transmitted bytes per second } message ServicesUpdate { message ServiceUpdate { string name = 1; string status = 2; } repeated ServiceUpdate services = 1; } message CollectorRequest { string message = 1; } message CollectorResponse { } service Commander { rpc Stream(stream FinishedCommand) returns (stream Command); } message Command { int64 id = 1; repeated string command = 2; optional string stdin = 3; } message FinishedCommand { int64 id = 1; int32 status = 2; string stdout = 3; string stderr = 4; }