diff --git a/docs/source/conf.py b/docs/source/conf.py index 7b6ef0790424f60789cb419a1b58bf32534f900e..2c668d6a985499d66054b3bb8623e602e53aa631 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,6 +28,7 @@ author = 'Stichting ASTRON' # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + "sphinx.ext.graphviz" ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/source/intro.rst b/docs/source/intro.rst index 421248d1386862cd443b3be88ed4d44a77334a5a..7b4e1020dd3167e3ba18018af67245a96459180a 100644 --- a/docs/source/intro.rst +++ b/docs/source/intro.rst @@ -12,3 +12,67 @@ As well as the following backing services to support the setup: * A *Node Exporter* scraper that collects monitoring informatino of the host running this software stack, exposed on http://localhost:9100. .. hint:: The URLs assume you're running this software on localhost. Replace this with the hostname of the hosting system if you're accessing this software on a server. + +The services are connected as follows. The green components are part of this software package, the gray components are external: + +.. graphviz:: + + digraph monitoring_setup { + layout=dot; + nodesep=1.2; + + fontname="Helvetica,Arial,sans-serif" + node [fontname="Helvetica,Arial,sans-serif" fontsize="20pt" style=filled fixedsize=true] + edge [fontname="Helvetica,Arial,sans-serif" fontsize="20pt"] + rankdir=TB; + + node [shape=ellipse height=1 width=2 color=gray]; + slack; + + node [shape=rectangle width=1 color=gray]; + user; + + subgraph cluster_operational_central_management { + color=black; + label="Operational Central Management"; + + node [shape=ellipse height=1 width=2 color=aquamarine]; + prometheus; grafana; alerta; node_exporter; + + prometheus -> grafana [label="query results"]; + grafana -> alerta [label="alerts"]; + node_exporter -> prometheus [label="metrics"]; + grafana -> prometheus [label="metrics"]; + prometheus -> prometheus [label="metrics"]; + } + + subgraph cluster_station { + label="LOFAR2.0 Station"; + node [shape=ellipse height=1 width=2 color=gray]; + station_prometheus [label="prometheus"]; + station_grafana [label="grafana"] + station_node_exporter [label="node_exporter"] + hardware + tango_devices; + exporter; + jupyter; + + station_node_exporter -> station_prometheus [label="metrics"]; + station_prometheus -> station_grafana [label="query results"]; + station_grafana -> station_prometheus [label="metrics"]; + hardware -> tango_devices [label="M&C"]; + tango_devices -> exporter [label="metrics"]; + exporter -> station_prometheus [label="metrics"]; + station_prometheus -> jupyter [label="metrics"]; + tango_devices -> jupyter [label="M&C"] + } + + station_prometheus -> prometheus [label="metrics" minlen=1]; + station_grafana -> user [label="dashboards"] + jupyter -> user [label="M&C"]; + alerta -> slack [label="notifications"]; + + grafana -> user [label="dashboards"]; + alerta -> user [label="notifications"]; + slack -> user [label="notifications"]; + }