Files
cloudkitty/doc/source/graph/arch.dot
Stéphane Albert 176aef1beb Improved architecture section in documentation
Change-Id: I71527cf3831a02f2ce7abbc38c53b5c5d69f99da
2014-09-02 16:42:30 +02:00

60 lines
1.5 KiB
Plaintext

digraph "CloudKitty's Architecture" {
// Graph parameters
label="CloudKitty's Internal Architecture";
node [shape=box];
compound=true;
// API
api [label="API"];
// Orchestrator
subgraph cluster_3 {
label="Orchestrator";
node[shape=none, width=1.3, height=0, label=""];
{rank=same; o1 -> o2 -> o3 [style=invis];}
}
// Collector
ceilometer [label="Ceilometer"];
vendor [label="Vendor specific", style=dotted];
subgraph cluster_0 {
label="Collector";
style=dashed;
ceilometer -> vendor [style=invis];
}
// Rating
hashmap [label="HashMap module"];
r_others [label="Other modules...", style=dotted];
subgraph cluster_1 {
label="Rating engines";
style=dashed;
hashmap -> r_others [style=invis];
}
// Write Orchestrator
w_orchestrator [label="Write Orchestrator"];
tdb [label="Transient DB"];
//Writers
osrf [label="OpenStack\nReference Format\n(json)"];
w_others [label="Other modules...", style=dotted];
subgraph cluster_2 {
label="Writers";
style=dashed;
osrf -> w_others [style=invis];
}
// Relations
api -> hashmap;
api -> r_others;
o1 -> ceilometer [dir=both, ltail=cluster_3, lhead=cluster_0];
o2 -> hashmap [dir=both, ltail=cluster_3, lhead=cluster_1];
o3 -> w_orchestrator [ltail=cluster_3];
w_orchestrator -> osrf [constraint=false];
w_orchestrator -> w_others [style=dotted, constraint=false];
w_orchestrator -> tdb;
}