diff --git a/docs/getting-started/examples.md b/docs/getting-started/examples.md index 5b450f2e..6d8c5a4f 100644 --- a/docs/getting-started/examples.md +++ b/docs/getting-started/examples.md @@ -254,7 +254,7 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False): ingress >> Edge(color="darkgreen") << grpcsvc >> Edge(color="darkorange") >> aggregator ``` -![advanced web service with on-premise diagram](/img/advanced_web_service_with_on-premise_colored.png) +![advanced web service with on-premise diagram colored](/img/advanced_web_service_with_on-premise_colored.png) ## RabbitMQ Consumers with Custom Nodes diff --git a/docs/guides/edge.md b/docs/guides/edge.md index c36457a4..f18e954c 100644 --- a/docs/guides/edge.md +++ b/docs/guides/edge.md @@ -12,22 +12,42 @@ Node is an abstract concept that represents a single system component object. An edge object contains three attributes: **label**, **color** and **style** which mirror corresponding graphviz edge attributes. ```python -from diagrams import Edge -from diagrams.aws.compute import EC2 - -# line -[EC2("node3"), EC2("node4")] - Edge(color='red', label='label1', style='dotted') - EC2("node") - -# list of nodes, one directional -[EC2("node3"), EC2("node4")] >> Edge(color='red', label='label1', style='dotted') >> EC2("node") -[EC2("node3"), EC2("node4")] << Edge(color='green', label='label2', style='dashed') << EC2("node") - -# both directional -EC2("node") << Edge(color='blue', label='label3', style='bold') >> EC2("node") - -# loop -node = EC2("node") -node >> Edge(color='pink', label='label4', style='solid') << node +from diagrams import Cluster, Diagram, Edge +from diagrams.onprem.analytics import Spark +from diagrams.onprem.compute import Server +from diagrams.onprem.database import PostgreSQL +from diagrams.onprem.inmemory import Redis +from diagrams.onprem.logging import Fluentd +from diagrams.onprem.monitoring import Grafana, Prometheus +from diagrams.onprem.network import Nginx +from diagrams.onprem.queue import Kafka + +with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False): + ingress = Nginx("ingress") + + metrics = Prometheus("metric") + metrics << Edge(color="firebrick", style="dashed") << Grafana("monitoring") + + with Cluster("Service Cluster"): + grpcsvc = [ + Server("grpc1"), + Server("grpc2"), + Server("grpc3")] + + with Cluster("Sessions HA"): + master = Redis("session") + master - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics + grpcsvc >> Edge(color="brown") >> master + + with Cluster("Database HA"): + master = PostgreSQL("users") + master - Edge(color="brown", style="dotted") - PostgreSQL("slave") << Edge(label="collect") << metrics + grpcsvc >> Edge(color="black") >> master + + aggregator = Fluentd("logging") + aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics") + + ingress >> Edge(color="darkgreen") << grpcsvc >> Edge(color="darkorange") >> aggregator ``` -![custom edges diagram](/img/custom_edges_diagram.png) +![advanced web service with on-premise diagram colored](/img/advanced_web_service_with_on-premise_colored.png)