76 lines
2.2 KiB
Plaintext
76 lines
2.2 KiB
Plaintext
digraph Deployment {
|
|
rankdir=TB;
|
|
compound=true;
|
|
fontname="Helvetica";
|
|
node [fontname="Helvetica", fontsize=10];
|
|
edge [fontname="Helvetica", fontsize=9];
|
|
|
|
labelloc="t";
|
|
label="Deployment Architecture";
|
|
fontsize=14;
|
|
|
|
node [shape=box, style="rounded,filled"];
|
|
|
|
// Local Stack
|
|
subgraph cluster_local {
|
|
label="Local Stack (Docker Compose)";
|
|
style=filled;
|
|
fillcolor="#E8F5E9";
|
|
|
|
aggregator [label="Aggregator\n(gRPC Server)", fillcolor="#A5D6A7"];
|
|
gateway [label="Gateway\n(FastAPI)", fillcolor="#A5D6A7"];
|
|
alerts [label="Alerts\nService", fillcolor="#A5D6A7"];
|
|
redis [label="Redis", shape=cylinder, fillcolor="#C8E6C9"];
|
|
timescaledb [label="TimescaleDB", shape=cylinder, fillcolor="#C8E6C9"];
|
|
}
|
|
|
|
// AWS Edge
|
|
subgraph cluster_aws {
|
|
label="AWS (sysmonstm.mcrn.ar)";
|
|
style=filled;
|
|
fillcolor="#F3E5F5";
|
|
|
|
edge_relay [label="Edge\n(WebSocket Relay)", fillcolor="#CE93D8"];
|
|
}
|
|
|
|
// CI/CD
|
|
subgraph cluster_cicd {
|
|
label="CI/CD";
|
|
style=filled;
|
|
fillcolor="#E3F2FD";
|
|
|
|
woodpecker [label="Woodpecker CI", fillcolor="#90CAF9"];
|
|
registry [label="Container\nRegistry", shape=cylinder, fillcolor="#64B5F6"];
|
|
}
|
|
|
|
// Collectors (External)
|
|
subgraph cluster_collectors {
|
|
label="Monitored Machines";
|
|
style=dashed;
|
|
color=gray;
|
|
|
|
coll1 [label="Collector\n(Machine 1)", fillcolor="#FFCCBC"];
|
|
coll2 [label="Collector\n(Machine 2)", fillcolor="#FFCCBC"];
|
|
coll3 [label="Collector\n(Machine N)", fillcolor="#FFCCBC"];
|
|
}
|
|
|
|
// Browser
|
|
browser [label="Browser\n(Dashboard)", fillcolor="#FFF3E0"];
|
|
|
|
// Connections
|
|
coll1 -> aggregator [label="gRPC"];
|
|
coll2 -> aggregator [label="gRPC"];
|
|
coll3 -> aggregator [label="gRPC"];
|
|
|
|
aggregator -> redis [label="State"];
|
|
aggregator -> timescaledb [label="Store"];
|
|
gateway -> aggregator [label="gRPC"];
|
|
gateway -> edge_relay [label="WebSocket\nForward"];
|
|
|
|
edge_relay -> browser [label="WebSocket", dir=both];
|
|
|
|
woodpecker -> registry [label="Push"];
|
|
registry -> edge_relay [label="Pull", style=dashed];
|
|
registry -> aggregator [label="Pull", style=dashed, lhead=cluster_local];
|
|
}
|