- gRPC client-server metrics collection - PeriodicTimer-based 5-second sampling - Delta encoding with configurable thresholds - Queue/retry mechanism for resilience - ProcessId tracking for duplicate detection - Server-side state reconstruction - Native AOT compilation support - Docker/Podman containerization - PostgreSQL + TimescaleDB persistence layer
40 lines
880 B
Protocol Buffer
40 lines
880 B
Protocol Buffer
syntax = "proto3";
|
|
|
|
package jmon;
|
|
|
|
option csharp_namespace = "JMon.Protos";
|
|
|
|
service MetricsService {
|
|
rpc ReportMetrics (DeltaMetrics) returns (MetricsResponse);
|
|
}
|
|
|
|
message DeltaMetrics {
|
|
string machine_name = 1;
|
|
string hwid = 2;
|
|
optional string os_description = 3;
|
|
optional double cpu_usage_percentage = 4;
|
|
optional int64 memory_used_bytes = 5;
|
|
optional int64 memory_total_bytes = 6;
|
|
optional int64 swap_used_bytes = 7;
|
|
optional int64 swap_total_bytes = 8;
|
|
optional int64 disk_used_bytes = 9;
|
|
optional int64 disk_total_bytes = 10;
|
|
optional string disk_mount_point = 11;
|
|
int64 timestamp_unix_ms = 12;
|
|
bool retried = 13;
|
|
optional string ip_address = 14;
|
|
int32 process_id = 15;
|
|
}
|
|
|
|
message MetricsResponse {
|
|
enum CommandType {
|
|
ACK = 0;
|
|
SYNC = 1;
|
|
SIGTERM = 2;
|
|
}
|
|
|
|
bool success = 1;
|
|
CommandType command = 2;
|
|
string message = 3;
|
|
}
|