68 lines
2.5 KiB
Plaintext
68 lines
2.5 KiB
Plaintext
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];
|
|
}
|