first claude draft
This commit is contained in:
67
docs/architecture/04-grpc-services.dot
Normal file
67
docs/architecture/04-grpc-services.dot
Normal file
@@ -0,0 +1,67 @@
|
||||
digraph GrpcServices {
|
||||
rankdir=LR;
|
||||
compound=true;
|
||||
fontname="Helvetica";
|
||||
node [fontname="Helvetica", fontsize=10];
|
||||
edge [fontname="Helvetica", fontsize=9];
|
||||
|
||||
labelloc="t";
|
||||
label="gRPC Service Definitions";
|
||||
fontsize=14;
|
||||
|
||||
node [shape=record, style=filled];
|
||||
|
||||
// MetricsService
|
||||
subgraph cluster_metrics {
|
||||
label="MetricsService";
|
||||
style=filled;
|
||||
fillcolor="#E8F5E9";
|
||||
|
||||
metrics_svc [label="{MetricsService|+ StreamMetrics(stream Metric) → StreamAck\l+ GetCurrentState(StateRequest) → MachineState\l+ GetAllStates(Empty) → AllMachinesState\l}", fillcolor="#C8E6C9"];
|
||||
|
||||
metric_msg [label="{Metric|machine_id: string\lhostname: string\ltimestamp_ms: int64\ltype: MetricType\lvalue: double\llabels: map\l}", fillcolor="#A5D6A7"];
|
||||
|
||||
machine_state [label="{MachineState|machine_id: string\lhostname: string\llast_seen_ms: int64\lcurrent_metrics: Metric[]\lhealth: HealthStatus\lmetadata: map\l}", fillcolor="#A5D6A7"];
|
||||
}
|
||||
|
||||
// ControlService
|
||||
subgraph cluster_control {
|
||||
label="ControlService";
|
||||
style=filled;
|
||||
fillcolor="#E3F2FD";
|
||||
|
||||
control_svc [label="{ControlService|+ Control(stream Command) → stream Response\l}", fillcolor="#90CAF9"];
|
||||
|
||||
commands [label="{ControlCommand|command_id: string\l|UpdateIntervalCommand\lRestartCollectionCommand\lShutdownCommand\l}", fillcolor="#64B5F6"];
|
||||
}
|
||||
|
||||
// ConfigService
|
||||
subgraph cluster_config {
|
||||
label="ConfigService";
|
||||
style=filled;
|
||||
fillcolor="#FFF3E0";
|
||||
|
||||
config_svc [label="{ConfigService|+ GetConfig(ConfigRequest) → CollectorConfig\l+ WatchConfig(ConfigRequest) → stream CollectorConfig\l}", fillcolor="#FFE0B2"];
|
||||
|
||||
collector_config [label="{CollectorConfig|collection_interval_seconds: int32\lenabled_metrics: MetricType[]\llabels: map\lthresholds: ThresholdConfig[]\l}", fillcolor="#FFCC80"];
|
||||
}
|
||||
|
||||
// Enums
|
||||
subgraph cluster_enums {
|
||||
label="Enums";
|
||||
style=filled;
|
||||
fillcolor="#F3E5F5";
|
||||
|
||||
metric_type [label="{MetricType|CPU_PERCENT\lMEMORY_PERCENT\lDISK_PERCENT\lNETWORK_*\lLOAD_AVG_*\l...}", fillcolor="#E1BEE7"];
|
||||
|
||||
health_status [label="{HealthStatus|HEALTHY\lWARNING\lCRITICAL\lUNKNOWN\lOFFLINE\l}", fillcolor="#CE93D8"];
|
||||
}
|
||||
|
||||
// Relationships
|
||||
metrics_svc -> metric_msg [style=dashed];
|
||||
metrics_svc -> machine_state [style=dashed];
|
||||
control_svc -> commands [style=dashed];
|
||||
config_svc -> collector_config [style=dashed];
|
||||
metric_msg -> metric_type [style=dotted];
|
||||
machine_state -> health_status [style=dotted];
|
||||
}
|
||||
Reference in New Issue
Block a user