{ "annotations" : { "list" : [ ] }, "editable" : true, "gnetId" : null, "graphTooltip" : 0, "hideControls" : false, "id" : null, "links" : [ { "icon" : "dashboard", "keepTime" : true, "tags" : [ ], "title" : "[[neighbor_name]]", "type" : "link", "url" : "%%DASHBOARD_PATH%%%%DASHBOARD_PREFIX%%status.json?var-hostname=[[neighbor_name]]&var-node_id=[[neighbor_id]]" }, { "icon" : "dashboard", "keepTime" : true, "tags" : [ ], "title" : "Mesh", "type" : "link", "url" : "%%DASHBOARD_PATH%%%%DASHBOARD_PREFIX%%status-mesh.json?var-mesh_name=[[mesh_name]]" } ], "rows" : [ { "collapse" : true, "height" : 250, "panels" : [ { "content" : "Es folgen Hinweise zur Bedienung dieser Seite. Ganz unten gibt's auch weiterf\u00FChrende links.\n\n### \u00DCbersicht\n%%DASHBOARD_PREFIX%%status liefert Informationen \u00FCber einen %%COMMUNITY_BRIEF%%-Knoten (Freifunk-Router). Diese Seite (ein sog. Dashboard) ist zeilenweise aufgebaut. Ab der 3. Zeile k\u00F6nnen die Zeilen auf- und zugeklappt werden.\n\n- 1. Zeile: Hier kannst du dich zB anmelden, andere Grafana-Seiten (Dashboards) ausw\u00E4hlen oder den dargestellten Zeitraum \u00E4ndern.\n- 2. Zeile: Knoten und ggf. einen Nachbarn des Knotens ausw\u00E4hlen.\n- 3. Zeile: Dieser Text \"Das was keiner liest\".\n- 4. Zeile: Die Anzeige der aktuellen Nutzerzahl (clients) des Knotens, seine uptime, Firmware, etc.\n- 5. Zeile: Die Infos aus der 4. Zeile (und einige mehr) als Text.\n- 6. Zeile: Hier geht es mit den Diagrammen los.\n\n#### Auf- und zuklappen\nJede aufklappbare Zeile hat eine \u00DCberschrift die mit dem Zeichen **>** beginnt.\n- Um eine Zeile aufzuklappen, auf die \u00DCberschrift klicken.\n- Um eine Zeile zuzuklappen, in der H\u00F6he der \u00DCberschrift den Mauszeiger zum linken Seitenrand bewegen. Dort erscheint **Collapse**. Da drauf klicken. Anschlie\u00DFend ist nur noch die \u00DCberschrift zu sehen.\n\n### Knoten ausw\u00E4hlen\nIn der 2. Zeile w\u00E4hlst du den Knoten und ggf. einen Nachbarknoten. Daf\u00FCr gibt es vier Auswahlfelder.\n\n**Knoten ausw\u00E4hlen**\n- In das Feld 'Knoten ausw\u00E4hlen' klicken. Die Knotenliste poppt auf. \n- Knotenname direkt eingeben oder aus der Liste ausw\u00E4hlen.\n\nIst ein Knotenname doppelt vorhanden, kann im Feld daneben \u00FCber die node_id (eindeutige Knotenkennung) der gesuchte Knoten ausgew\u00E4hlt werden.\n\n**Nachbar ausw\u00E4hlen**\n\nNachdem du einen Knoten ausgew\u00E4hlt hast, kannst du \u00FCber das Feld \"Nachbar ausw\u00E4hlen\" einen benachbarten Knoten ausw\u00E4hlen (sofern es Nachbarn gibt). In der Liste \"Nachbar ausw\u00E4hlen\" stehen alle Knoten, die der ausgew\u00E4hlte Knoten direkt erreichen kann. Erst wenn du hier einen Nachbarn ausgew\u00E4hlt hast, kann im TQ-Diagramm die Verbindungsqualit\u00E4t zwischen diesen zwei Knoten dargestellt werden.\n\nF\u00FCr den Fall, dass ein Knotenname doppelt vergeben wurde, gibt es daneben ebenfalls ein Feld, in dem der Nachbar \u00FCber die node_id ausgew\u00E4hlt werden kann.\n\n#### Zur Status-Seite des Nachbarknotens und zur Mesh-\u00DCbersicht wechseln\nAm Ende der 2. Zeile (ganz rechts) gibt es zwei Schaltfl\u00E4chen: eine mit dem Namen des ausgew\u00E4hlten Nachbarknotens und eine namens **Mesh**. Dar\u00FCber kannst du die Status-Seite des Nachbarknotens aufrufen bzw. die \u00DCbersichtsseite f\u00FCr das Mesh, zu dem der Knoten geh\u00F6rt. (Zum Mesh geh\u00F6ren nicht nur die die direkten Nachbarn eines Knotens, sondern auch die Nachbarn der Nachbarn usw.)\n\nDie beiden Schaltfl\u00E4chen sind immer vorhanden, auch wenn der ausgew\u00E4hlte Knoten gar keinen Nachbarknoten hat, dann allerdings ohne einen Knotennamen. Klickst du trotzdem darauf, erh\u00E4ltst du eine Fehlermeldung.\n\n### Die Darstellung der Diagramme \u00E4ndern\n\nAuch ohne dich im Grafana anzumelden, kannst du einige Anzeige-Optionen \u00E4ndern.\n\n#### Zeitraum ausw\u00E4hlen\n- Oben rechts auf der Seite wird der aktuell dargestellte Zeitraum angezeigt. Da drauf klicken.\n- Einen anderen Zeitraum ausw\u00E4hlen.\n- Oder: links bzw. rechts auf die Pfeile neben 'Zoom Out' klicken.\n\n#### Kurven im Diagramm ein- und ausblenden\nNeben oder unter einem Diagramm ist eine Legende.\n- Um nur eine Kurve im Diagramm zu sehen, in der Legende auf den Namen dieser Kurve klicken.\n- Um wieder alle Kurven zu sehen, noch einmal auf den Namen klicken.\n- Um eine Kurve auszublenden, 'Shift' oder 'Strg' gedr\u00FCckt halten und auf den Namen klicken.\n- Um mehrere Kurven auszuw\u00E4hlen, beim Klicken 'Shift' oder 'Strg' gedr\u00FCckt halten.\n\n#### Farben der Kurven \u00E4ndern\n- In der Legende auf die farbige Linie klicken und gew\u00FCnschte Farbe ausw\u00E4hlen.\n\n#### Legende ein- und ausblenden\n- Auf den Diagrammtitel klicken.\n- Die 3 kleinen Balken anklicken.\n- 'Toggle Legend' anklicken.\n\n### Diagramm in andere Webseite einbinden\n- Auf den Diagrammtitel klicken.\n- 'Share' anklicken.\nAus den dort beschriebenen M\u00F6glichkeiten das Passende aussuchen.\n\n### Weiterf\u00FChrende links\n- [%%COMMUNITY_FULL%%](%%COMMUNITY_URL%%),\n- Weitere [Dokumentation](%%N2G_COMMUNITY_URL%%) der %%COMMUNITY_BRIEF%%-Community zu dieser Visualisierung,\n- [Repository](%%N2G_SRC_URL%%) der hier verwendeten Software (zum Selbermachen:).\n\n", "id" : 22, "links" : [ ], "mode" : "markdown", "span" : 12, "title" : "Das was keiner liest", "type" : "text" } ], "repeat" : null, "repeatIteration" : null, "repeatRowId" : null, "showTitle" : false, "title" : "Das was keiner liest", "titleSize" : "h6" }, { "collapse" : false, "height" : -1020, "panels" : [ { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : false, "colors" : [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource" : null, "format" : "none", "gauge" : { "maxValue" : 50, "minValue" : 0, "show" : true, "thresholdLabels" : true, "thresholdMarkers" : true }, "height" : "200px", "id" : 21, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "50%", "prefix" : "", "prefixFontSize" : "50%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 3, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : false, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "", "targets" : [ { "expr" : "vector([[clients]])", "format" : "time_series", "intervalFactor" : 2, "refId" : "A", "step" : 1800 } ], "thresholds" : "10,30", "title" : "clients", "type" : "singlestat", "valueFontSize" : "100%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" }, { "op" : "=", "text" : "offline", "value" : "-1" } ], "valueName" : "current" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(221, 68, 28, 0.9)", "rgba(65, 197, 31, 0.89)", "rgba(35, 184, 29, 0.83)" ], "datasource" : null, "decimals" : null, "format" : "s", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "30px", "id" : 9, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "30%", "prefix" : "", "prefixFontSize" : "30%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "repeat" : null, "span" : 2, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : true, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "Value", "targets" : [ { "expr" : "vector([[uptime_seconds]])", "format" : "table", "intervalFactor" : 2, "legendFormat" : "", "refId" : "A", "step" : 1800 } ], "thresholds" : "0", "title" : "uptime", "transparent" : false, "type" : "singlestat", "valueFontSize" : "50%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" } ], "valueName" : "avg" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(223, 61, 28, 0.83)", "rgba(182, 145, 3, 0.99)", "rgba(27, 190, 27, 0.9)" ], "datasource" : null, "decimals" : null, "format" : "none", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 16, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "50%", "prefix" : "", "prefixFontSize" : "30%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 1, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : true, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "Value", "targets" : [ { "expr" : "([[uplink_known]] + 1) * (2 * [[updown]] - 1)", "format" : "table", "hide" : false, "intervalFactor" : 2, "legendFormat" : "", "refId" : "A", "step" : 1800 } ], "thresholds" : "-0.5,1.5", "title" : "uplink", "transparent" : false, "type" : "singlestat", "valueFontSize" : "50%", "valueMaps" : [ { "op" : "=", "text" : "false", "value" : "-1" }, { "op" : "=", "text" : "error", "value" : "0" }, { "op" : "=", "text" : "false", "value" : "1" }, { "op" : "=", "text" : "true", "value" : "2" }, { "op" : "=", "text" : "true", "value" : "-2" }, { "op" : "=", "text" : "unknown", "value" : "3" }, { "op" : "=", "text" : "unknown", "value" : "-3" } ], "valueName" : "current" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(190, 27, 27, 0.9)", "rgba(205, 186, 89, 0.95)", "rgba(41, 197, 33, 0.83)" ], "datasource" : null, "decimals" : null, "format" : "none", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 10, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "30%", "prefix" : "", "prefixFontSize" : "30%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 1, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : true, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "Value", "targets" : [ { "expr" : "[[firmware]]", "format" : "table", "intervalFactor" : 2, "legendFormat" : "", "refId" : "A", "step" : 1800 } ], "thresholds" : "1000,1002", "title" : "firmware", "transparent" : false, "type" : "singlestat", "valueFontSize" : "50%", "valueMaps" : [ { "op" : "=", "text" : "0.11.3", "value" : "1103" }, { "op" : "=", "text" : "0.11.2", "value" : "1102" }, { "op" : "=", "text" : "0.10.3", "value" : "1003" }, { "op" : "=", "text" : "0.10.2", "value" : "1002" }, { "op" : "=", "text" : "0.10.0", "value" : "1000" }, { "op" : "=", "text" : "0.9.2", "value" : "902" }, { "op" : "=", "text" : "0.9.1", "value" : "901" }, { "op" : "=", "text" : "0.7.2", "value" : "702" } ], "valueName" : "avg" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(190, 27, 27, 0.9)", "rgba(67, 191, 35, 0.89)", "rgba(40, 181, 33, 0.83)" ], "datasource" : null, "decimals" : null, "format" : "none", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 12, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "50%", "prefix" : "", "prefixFontSize" : "30%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 2, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : true, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "Value", "targets" : [ { "expr" : "[[autoupdater_int]]", "format" : "table", "intervalFactor" : 2, "legendFormat" : "", "refId" : "A", "step" : 1800 } ], "thresholds" : "0.5", "title" : "autoupdater", "transparent" : false, "type" : "singlestat", "valueFontSize" : "50%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" }, { "op" : "=", "text" : "false", "value" : "0" }, { "op" : "=", "text" : "true", "value" : "1" } ], "valueName" : "avg" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(44, 182, 38, 0.83)", "rgba(66, 197, 40, 0.89)", "rgba(190, 27, 27, 0.9)" ], "datasource" : null, "decimals" : null, "format" : "none", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 13, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "30%", "prefix" : "", "prefixFontSize" : "30%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 3, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : true, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "model", "targets" : [ { "expr" : "%%PROM_INFO_PREFIX%%{hostname=\"[[hostname]]\"}", "format" : "table", "intervalFactor" : 2, "legendFormat" : "", "refId" : "A", "step" : 1800 } ], "thresholds" : "", "title" : "hardware", "transparent" : false, "type" : "singlestat", "valueFontSize" : "30%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" } ], "valueName" : "avg" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource" : null, "decimals" : 1, "format" : "dtdurations", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 19, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "minSpan" : null, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "20%", "prefix" : "", "prefixFontSize" : "20%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 4, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : false, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "", "targets" : [ { "expr" : "[[lastseen]] - time()", "format" : "time_series", "intervalFactor" : 2, "refId" : "A", "step" : 1800 } ], "thresholds" : "-900,-450", "title" : "lastseen", "type" : "singlestat", "valueFontSize" : "30%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" } ], "valueName" : "current" }, { "cacheTimeout" : null, "colorBackground" : false, "colorValue" : true, "colors" : [ "rgba(38, 126, 191, 0.97)", "rgba(25, 195, 36, 0.89)", "rgba(54, 124, 245, 0.9)" ], "datasource" : null, "decimals" : 3, "format" : "dtdurations", "gauge" : { "maxValue" : 100, "minValue" : 0, "show" : false, "thresholdLabels" : false, "thresholdMarkers" : true }, "height" : "50px", "id" : 17, "interval" : null, "links" : [ ], "mappingType" : 1, "mappingTypes" : [ { "name" : "value to text", "value" : 1 }, { "name" : "range to text", "value" : 2 } ], "maxDataPoints" : 100, "minSpan" : null, "nullPointMode" : "connected", "nullText" : null, "postfix" : "", "postfixFontSize" : "20%", "prefix" : "", "prefixFontSize" : "20%", "rangeMaps" : [ { "from" : "null", "text" : "N\/A", "to" : "null" } ], "span" : 4, "sparkline" : { "fillColor" : "rgba(31, 118, 189, 0.18)", "full" : false, "lineColor" : "rgb(31, 120, 193)", "show" : false }, "tableColumn" : "", "targets" : [ { "expr" : "[[firstseen]] - time()", "format" : "time_series", "intervalFactor" : 2, "refId" : "A", "step" : 1800 } ], "thresholds" : "-31536000,-604800", "title" : "firstseen", "type" : "singlestat", "valueFontSize" : "30%", "valueMaps" : [ { "op" : "=", "text" : "N\/A", "value" : "null" } ], "valueName" : "current" } ], "repeat" : null, "repeatIteration" : null, "repeatRowId" : null, "showTitle" : false, "title" : "Knoteninfos \u00DCberblick [[hostname]]", "titleSize" : "h6" }, { "collapse" : true, "height" : 250, "panels" : [ { "content" : "
[[node_id]]<\/code><\/h5>\nIm Netz seit: [[firstseen_year]]-[[firstseen_month]]-[[firstseen_day]]<\/code><\/p>\nZuletzt gesehen: [[lastseen_year]]-[[lastseen_month]]-[[lastseen_day]] [[lastseen_hour]]:[[lastseen_minute]] UTC<\/code><\/p>\nAktuelle Zeit: [[now_year]]-[[now_month]]-[[now_day]] [[now_hour]]:[[now_minute]] UTC<\/code><\/p>\nup\/down: [[updown]]<\/code> (1 = up, 0 = down), seit: [[uptime_month]] M + [[uptime_day]] d + [[uptime_hour]] h + [[uptime_minute]] m<\/code><\/p>\nclients: [[clients]]<\/code> (max. clients zZ: [[clients_max]]<\/code>)<\/p>\nhardware: [[hardware]]<\/code><\/p>\nfirmware: [[firmware]]<\/code>, base: [[base]]<\/code><\/p>\nautoupdater: [[autoupdater]]<\/code>, branch: [[branch]]<\/code><\/p>\nuplink: [[uplink]]<\/code>, fastd: [[fastd]]<\/code>, gateway: [[gateway]]<\/code><\/p>\nuplink_now: [[uplink_now]]<\/code>, uplink_known: [[uplink_known]]<\/code><\/p>\nmesh-interfaces: LAN [[interfaces_lan]]-1<\/code>, WLAN [[interfaces_wlan]]<\/code>, VPN [[interfaces_vpn]]<\/code><\/p>\n