Initial commit: JMon cross-platform monitoring system

- 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
This commit is contained in:
2026-01-05 23:23:55 -06:00
commit 127b3ad5bf
16 changed files with 1241 additions and 0 deletions

39
Protos/metrics.proto Normal file
View File

@@ -0,0 +1,39 @@
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;
}