github.com/esnet/gdg@v0.6.1-0.20240412190737-6b6eba9c14d8/test/data/org_main-org/dashboards/General/bandwidth-patterns.json (about)

     1  {
     2    "annotations": {
     3      "list": [
     4        {
     5          "builtIn": 1,
     6          "datasource": "-- Grafana --",
     7          "enable": true,
     8          "hide": true,
     9          "iconColor": "rgba(0, 211, 255, 1)",
    10          "name": "Annotations \u0026 Alerts",
    11          "type": "dashboard"
    12        }
    13      ]
    14    },
    15    "editable": true,
    16    "gnetId": null,
    17    "graphTooltip": 0,
    18    "id": 63,
    19    "iteration": 1619117095095,
    20    "links": [],
    21    "panels": [
    22      {
    23        "__netsage_template": "navigation",
    24        "choices": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
    25        "cycleview": true,
    26        "dashboardselection": true,
    27        "datasource": null,
    28        "fieldConfig": {
    29          "defaults": {
    30            "custom": {}
    31          },
    32          "overrides": []
    33        },
    34        "grafanafavorites": true,
    35        "gridPos": {
    36          "h": 3,
    37          "w": 2,
    38          "x": 0,
    39          "y": 0
    40        },
    41        "hamburgerPath": "https://portal.netsage.global/hamburger-v4.gif",
    42        "id": 1,
    43        "link_text": [
    44          "What is the current state of the network?",
    45          "What are the top sources/destinations of flows?",
    46          "What are the top flows by organization?",
    47          "What do individual flows look like?",
    48          "What are the top flows by country?",
    49          "What are the flows by science discipline?",
    50          "What are the flows by project?",
    51          "Who are the top talkers over time?",
    52          "What are the patterns in science data transfers in the network?",
    53          "What are the bandwidth patterns in the network?",
    54          "What are the current flow data summary statistics?",
    55          "Advanced Flow Analysis"
    56        ],
    57        "link_url": [
    58          "/grafana/d/000000003/bandwidth-dashboard",
    59          "/grafana/d/xk26IFhmk/flow-data",
    60          "/grafana/d/QfzDJKhik/flow-data-per-organization",
    61          "/grafana/d/-l3_u8nWk/individual-flows",
    62          "/grafana/d/fgrOzz_mk/flow-data-per-country",
    63          "/grafana/d/WNn1qyaiz/flows-by-science-discipline",
    64          "/grafana/d/ie7TeomGz/flow-data-for-projects",
    65          "/grafana/d/b35BWxAZz/top-talkers-over-time",
    66          "/grafana/d/ufIS9W7Zk/science-discipline-patterns",
    67          "/grafana/d/000000004/bandwidth-patterns",
    68          "/grafana/d/CJC1FFhmz/other-flow-stats",
    69          "/grafana/d/VuuXrnPWz/flow-analysis"
    70        ],
    71        "links": [],
    72        "sharescreen": true,
    73        "sideLogoPath": "https://portal.netsage.global/netsage-header-logo.png",
    74        "sidebar": true,
    75        "tablefilters": true,
    76        "title": "",
    77        "topLogoPath": "https://portal.netsage.global/netsage-cropped.png",
    78        "transparent": true,
    79        "type": "netsagenavigation"
    80      },
    81      {
    82        "datasource": null,
    83        "fieldConfig": {
    84          "defaults": {
    85            "custom": {}
    86          },
    87          "overrides": []
    88        },
    89        "gridPos": {
    90          "h": 4,
    91          "w": 20,
    92          "x": 2,
    93          "y": 0
    94        },
    95        "id": 2,
    96        "links": [],
    97        "options": {
    98          "content": "\u003ccenter\u003e\u003ch1\u003e\u003cb\u003eBandwidth Patterns\u003c/b\u003e\u003c/h1\u003e\u003c/center\u003e\n\u003ccenter\u003eThis dashboard shows heatmaps for the bandwidth data across exchange points and links as measured using SNMP. \u003c/center\u003e\n\u003ccenter\u003eThe horizontal axis represents days and the vertical axis represents time of day.\u003c/center\u003e\n\u003ccenter\u003eDarker squares show higher data transmissions at those hours.\u003c/center\u003e\n\u003ccenter\u003eAll times are displayed in browser local time.\u003c/center\u003e\n\n\n\n\u003c!-- Global site tag (gtag.js) - Google Analytics --\u003e\n\u003cscript async src=\"https://www.googletagmanager.com/gtag/js?id=UA-142763676-1\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n\n  gtag('config', 'UA-142763676-1');\n\u003c/script\u003e\n",
    99          "mode": "html"
   100        },
   101        "pluginVersion": "7.3.3",
   102        "title": "",
   103        "transparent": true,
   104        "type": "text"
   105      },
   106      {
   107        "collapsed": false,
   108        "datasource": null,
   109        "gridPos": {
   110          "h": 1,
   111          "w": 24,
   112          "x": 0,
   113          "y": 4
   114        },
   115        "id": 3,
   116        "panels": [],
   117        "title": "Exchange Points",
   118        "type": "row"
   119      },
   120      {
   121        "datasource": "Netsage TSDS",
   122        "fieldConfig": {
   123          "defaults": {
   124            "custom": {
   125              "calculation": "mean",
   126              "colorPalette": "interpolateBlues",
   127              "colorSpace": "rgb",
   128              "groupBy": 60,
   129              "invertPalette": false,
   130              "nullValueColor": "rgb(169, 169, 169)"
   131            },
   132            "decimals": 1,
   133            "thresholds": {
   134              "mode": "absolute",
   135              "steps": [
   136                {
   137                  "color": "green",
   138                  "value": null
   139                },
   140                {
   141                  "color": "red",
   142                  "value": 80
   143                }
   144              ]
   145            },
   146            "unit": "bps"
   147          },
   148          "overrides": []
   149        },
   150        "gridPos": {
   151          "h": 10,
   152          "w": 24,
   153          "x": 0,
   154          "y": 5
   155        },
   156        "id": 5,
   157        "links": [],
   158        "options": {
   159          "from": "0",
   160          "legendGradientQuality": "high",
   161          "showCellBorder": false,
   162          "showLegend": false,
   163          "showTooltip": true,
   164          "showValueIndicator": false,
   165          "to": "0"
   166        },
   167        "repeatDirection": "h",
   168        "targets": [
   169          {
   170            "aggregate_all": false,
   171            "aggregator": ["average"],
   172            "bucket": [],
   173            "bucketAggs": [
   174              {
   175                "field": "start",
   176                "id": "2",
   177                "settings": {
   178                  "interval": "auto",
   179                  "min_doc_count": 0,
   180                  "trimEdges": 0
   181                },
   182                "type": "date_histogram"
   183              }
   184            ],
   185            "combineAllBy": "nothing",
   186            "condition": [],
   187            "dateFormat": "",
   188            "displayFormat": "series",
   189            "drillDown": [],
   190            "drillDownAlias": "",
   191            "drillDownValue": [],
   192            "dsType": "elasticsearch",
   193            "func": [
   194              {
   195                "alias": "",
   196                "bucket": "",
   197                "expanded": false,
   198                "method": "average",
   199                "operation": "",
   200                "percentile": "85",
   201                "root": true,
   202                "target": "input",
   203                "template": "",
   204                "title": "Aggregate",
   205                "type": "Aggregate",
   206                "wrapper": []
   207              }
   208            ],
   209            "groupby_field": " ",
   210            "inlineGroupOperator": [["", "and"]],
   211            "metricValueAliasMappings": {},
   212            "metricValueAliases": [""],
   213            "metricValues_array": ["$data_direction"],
   214            "metric_array": ["link_name"],
   215            "metrics": [
   216              {
   217                "field": "select field",
   218                "id": "1",
   219                "type": "count"
   220              }
   221            ],
   222            "orderby_field": "",
   223            "outerGroupOperator": [""],
   224            "percentileValue": [""],
   225            "rawQuery": true,
   226            "refId": "A",
   227            "series": "interface",
   228            "target": "get node, intf, aggregate(values.$data_direction, 3600, $statistics) between ($START, $END) from interface where (node = \"wrn-albu-sw-3.cenic.net\" and intf = \"ethernet5/1\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet6/15\") or (node = \"wrn-albu-sw-4.cenic.net\" and intf = \"ethernet3/1\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet8/3\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet8/10\") or (node = \"wrn-albu-sw-3.cenic.net\" and intf = \"ethernet7/1\") or (node = \"losa3-pw-sw-1.cenic.net\" and intf = \"ethernet4/1\") or (node = \"wrn-denv-sw-4.cenic.net\" and intf = \"ethernet7/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet15/2\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet1/1\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet4/1\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet15/8\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet7/7\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet3/1\") or (node = \"wrn-elpa-sw-1.cenic.net\" and intf = \"ethernet1/1\") or (node = \"losa3-pw-sw-1.cenic.net\" and intf = \"ethernet7/1\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet7/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet15/5\") or (node = \"wrn-elpa-sw-1.cenic.net\" and intf = \"ethernet5/1\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet1/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet16/5\") or (node = \"wrn-denv-sw-3.cenic.net\" and intf = \"ethernet7/1\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet6/20\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet13/1\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet8/5\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet15/6\") or (node = \"wrn-denv-sw-4.cenic.net\" and intf = \"ethernet7/1\") or (node = \"wrn-albu-sw-4.cenic.net\" and intf = \"ethernet5/1\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet3/2\") or (node = \"wrn-denv-sw-4.cenic.net\" and intf = \"ethernet1/1\") or (node = \"wrn-denv-sw-3.cenic.net\" and intf = \"ethernet1/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet1/1\") or (node = \"losa3-pw-sw-1.cenic.net\" and intf = \"ethernet7/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet15/7\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet8/9\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet16/7\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet6/2\") or (node = \"snvl2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet3/2\") or (node = \"wrn-denv-sw-4.cenic.net\" and intf = \"ethernet5/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet4/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet5/2\") or (node = \"losa2-pw-sw-1-mgmt-2.cenic.net\" and intf = \"ethernet9/1\") or (node = \"wrn-denv-sw-3.cenic.net\" and intf = \"ethernet5/2\")",
   229            "target_alias": "",
   230            "templateVariableValue": [""],
   231            "timeField": "start",
   232            "type": "timeserie",
   233            "whereClauseGroup": [
   234              [
   235                {
   236                  "left": "link_name",
   237                  "op": "=",
   238                  "right": "$links"
   239                }
   240              ]
   241            ]
   242          }
   243        ],
   244        "timeFrom": null,
   245        "timeShift": null,
   246        "title": "Pacific Wave Exchange Point",
   247        "type": "marcusolsson-hourly-heatmap-panel"
   248      },
   249      {
   250        "collapsed": false,
   251        "datasource": null,
   252        "gridPos": {
   253          "h": 1,
   254          "w": 24,
   255          "x": 0,
   256          "y": 15
   257        },
   258        "id": 7,
   259        "panels": [],
   260        "title": "Selected Links",
   261        "type": "row"
   262      },
   263      {
   264        "datasource": "Netsage TSDS",
   265        "fieldConfig": {
   266          "defaults": {
   267            "custom": {
   268              "calculation": "mean",
   269              "colorPalette": "interpolateBlues",
   270              "colorSpace": "rgb",
   271              "groupBy": 60,
   272              "invertPalette": false,
   273              "nullValueColor": "rgb(169, 169, 169)"
   274            },
   275            "decimals": 1,
   276            "thresholds": {
   277              "mode": "absolute",
   278              "steps": [
   279                {
   280                  "color": "green",
   281                  "value": null
   282                },
   283                {
   284                  "color": "red",
   285                  "value": 80
   286                }
   287              ]
   288            },
   289            "unit": "bps"
   290          },
   291          "overrides": []
   292        },
   293        "gridPos": {
   294          "h": 10,
   295          "w": 24,
   296          "x": 0,
   297          "y": 16
   298        },
   299        "id": 8,
   300        "links": [],
   301        "options": {
   302          "from": "0",
   303          "legendGradientQuality": "high",
   304          "showCellBorder": false,
   305          "showLegend": false,
   306          "showTooltip": true,
   307          "showValueIndicator": false,
   308          "to": "0"
   309        },
   310        "repeat": "links",
   311        "repeatDirection": "v",
   312        "scopedVars": {
   313          "links": {
   314            "selected": false,
   315            "text": "NEAAR: New York to Amsterdam 100GE",
   316            "value": "NEAAR: New York to Amsterdam 100GE"
   317          }
   318        },
   319        "targets": [
   320          {
   321            "aggregate_all": false,
   322            "aggregator": ["average"],
   323            "bucket": [],
   324            "bucketAggs": [
   325              {
   326                "field": "start",
   327                "id": "2",
   328                "settings": {
   329                  "interval": "auto",
   330                  "min_doc_count": 0,
   331                  "trimEdges": 0
   332                },
   333                "type": "date_histogram"
   334              }
   335            ],
   336            "combineAllBy": "nothing",
   337            "condition": [],
   338            "dateFormat": "",
   339            "displayFormat": "series",
   340            "drillDown": [],
   341            "drillDownAlias": "",
   342            "drillDownValue": [],
   343            "dsType": "elasticsearch",
   344            "func": [
   345              {
   346                "alias": "",
   347                "bucket": "",
   348                "expanded": false,
   349                "method": "average",
   350                "operation": "",
   351                "percentile": "85",
   352                "root": true,
   353                "target": "input",
   354                "template": "",
   355                "title": "Aggregate",
   356                "type": "Aggregate",
   357                "wrapper": []
   358              }
   359            ],
   360            "groupby_field": " ",
   361            "inlineGroupOperator": [["", "and"]],
   362            "metricValueAliasMappings": {},
   363            "metricValueAliases": [""],
   364            "metricValues_array": ["$data_direction"],
   365            "metric_array": ["link_name"],
   366            "metrics": [
   367              {
   368                "field": "select field",
   369                "id": "1",
   370                "type": "count"
   371              }
   372            ],
   373            "orderby_field": "",
   374            "outerGroupOperator": [""],
   375            "percentileValue": [""],
   376            "rawQuery": true,
   377            "refId": "A",
   378            "series": "interface",
   379            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
   380            "target_alias": "",
   381            "templateVariableValue": [""],
   382            "timeField": "start",
   383            "type": "timeserie",
   384            "whereClauseGroup": [
   385              [
   386                {
   387                  "left": "link_name",
   388                  "op": "=",
   389                  "right": "$links"
   390                }
   391              ]
   392            ]
   393          }
   394        ],
   395        "timeFrom": null,
   396        "title": "$links ($data_direction)",
   397        "type": "marcusolsson-hourly-heatmap-panel"
   398      },
   399      {
   400        "datasource": "Netsage TSDS",
   401        "fieldConfig": {
   402          "defaults": {
   403            "custom": {
   404              "calculation": "mean",
   405              "colorPalette": "interpolateBlues",
   406              "colorSpace": "rgb",
   407              "groupBy": 60,
   408              "invertPalette": false,
   409              "nullValueColor": "rgb(169, 169, 169)"
   410            },
   411            "decimals": 1,
   412            "thresholds": {
   413              "mode": "absolute",
   414              "steps": [
   415                {
   416                  "color": "green",
   417                  "value": null
   418                },
   419                {
   420                  "color": "red",
   421                  "value": 80
   422                }
   423              ]
   424            },
   425            "unit": "bps"
   426          },
   427          "overrides": []
   428        },
   429        "gridPos": {
   430          "h": 10,
   431          "w": 24,
   432          "x": 0,
   433          "y": 26
   434        },
   435        "id": 10,
   436        "links": [],
   437        "options": {
   438          "from": "0",
   439          "legendGradientQuality": "high",
   440          "showCellBorder": false,
   441          "showLegend": false,
   442          "showTooltip": true,
   443          "showValueIndicator": false,
   444          "to": "0"
   445        },
   446        "repeatDirection": "v",
   447        "repeatIteration": 1619117095095,
   448        "repeatPanelId": 8,
   449        "scopedVars": {
   450          "links": {
   451            "selected": false,
   452            "text": "NEAAR: New York to London 100GE",
   453            "value": "NEAAR: New York to London 100GE"
   454          }
   455        },
   456        "targets": [
   457          {
   458            "aggregate_all": false,
   459            "aggregator": ["average"],
   460            "bucket": [],
   461            "bucketAggs": [
   462              {
   463                "field": "start",
   464                "id": "2",
   465                "settings": {
   466                  "interval": "auto",
   467                  "min_doc_count": 0,
   468                  "trimEdges": 0
   469                },
   470                "type": "date_histogram"
   471              }
   472            ],
   473            "combineAllBy": "nothing",
   474            "condition": [],
   475            "dateFormat": "",
   476            "displayFormat": "series",
   477            "drillDown": [],
   478            "drillDownAlias": "",
   479            "drillDownValue": [],
   480            "dsType": "elasticsearch",
   481            "func": [
   482              {
   483                "alias": "",
   484                "bucket": "",
   485                "expanded": false,
   486                "method": "average",
   487                "operation": "",
   488                "percentile": "85",
   489                "root": true,
   490                "target": "input",
   491                "template": "",
   492                "title": "Aggregate",
   493                "type": "Aggregate",
   494                "wrapper": []
   495              }
   496            ],
   497            "groupby_field": " ",
   498            "inlineGroupOperator": [["", "and"]],
   499            "metricValueAliasMappings": {},
   500            "metricValueAliases": [""],
   501            "metricValues_array": ["$data_direction"],
   502            "metric_array": ["link_name"],
   503            "metrics": [
   504              {
   505                "field": "select field",
   506                "id": "1",
   507                "type": "count"
   508              }
   509            ],
   510            "orderby_field": "",
   511            "outerGroupOperator": [""],
   512            "percentileValue": [""],
   513            "rawQuery": true,
   514            "refId": "A",
   515            "series": "interface",
   516            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
   517            "target_alias": "",
   518            "templateVariableValue": [""],
   519            "timeField": "start",
   520            "type": "timeserie",
   521            "whereClauseGroup": [
   522              [
   523                {
   524                  "left": "link_name",
   525                  "op": "=",
   526                  "right": "$links"
   527                }
   528              ]
   529            ]
   530          }
   531        ],
   532        "timeFrom": null,
   533        "title": "$links ($data_direction)",
   534        "type": "marcusolsson-hourly-heatmap-panel"
   535      },
   536      {
   537        "datasource": "Netsage TSDS",
   538        "fieldConfig": {
   539          "defaults": {
   540            "custom": {
   541              "calculation": "mean",
   542              "colorPalette": "interpolateBlues",
   543              "colorSpace": "rgb",
   544              "groupBy": 60,
   545              "invertPalette": false,
   546              "nullValueColor": "rgb(169, 169, 169)"
   547            },
   548            "decimals": 1,
   549            "thresholds": {
   550              "mode": "absolute",
   551              "steps": [
   552                {
   553                  "color": "green",
   554                  "value": null
   555                },
   556                {
   557                  "color": "red",
   558                  "value": 80
   559                }
   560              ]
   561            },
   562            "unit": "bps"
   563          },
   564          "overrides": []
   565        },
   566        "gridPos": {
   567          "h": 10,
   568          "w": 24,
   569          "x": 0,
   570          "y": 36
   571        },
   572        "id": 11,
   573        "links": [],
   574        "options": {
   575          "from": "0",
   576          "legendGradientQuality": "high",
   577          "showCellBorder": false,
   578          "showLegend": false,
   579          "showTooltip": true,
   580          "showValueIndicator": false,
   581          "to": "0"
   582        },
   583        "repeatDirection": "v",
   584        "repeatIteration": 1619117095095,
   585        "repeatPanelId": 8,
   586        "scopedVars": {
   587          "links": {
   588            "selected": false,
   589            "text": "PIREN: Los Angeles to Mauna Lani 100GE",
   590            "value": "PIREN: Los Angeles to Mauna Lani 100GE"
   591          }
   592        },
   593        "targets": [
   594          {
   595            "aggregate_all": false,
   596            "aggregator": ["average"],
   597            "bucket": [],
   598            "bucketAggs": [
   599              {
   600                "field": "start",
   601                "id": "2",
   602                "settings": {
   603                  "interval": "auto",
   604                  "min_doc_count": 0,
   605                  "trimEdges": 0
   606                },
   607                "type": "date_histogram"
   608              }
   609            ],
   610            "combineAllBy": "nothing",
   611            "condition": [],
   612            "dateFormat": "",
   613            "displayFormat": "series",
   614            "drillDown": [],
   615            "drillDownAlias": "",
   616            "drillDownValue": [],
   617            "dsType": "elasticsearch",
   618            "func": [
   619              {
   620                "alias": "",
   621                "bucket": "",
   622                "expanded": false,
   623                "method": "average",
   624                "operation": "",
   625                "percentile": "85",
   626                "root": true,
   627                "target": "input",
   628                "template": "",
   629                "title": "Aggregate",
   630                "type": "Aggregate",
   631                "wrapper": []
   632              }
   633            ],
   634            "groupby_field": " ",
   635            "inlineGroupOperator": [["", "and"]],
   636            "metricValueAliasMappings": {},
   637            "metricValueAliases": [""],
   638            "metricValues_array": ["$data_direction"],
   639            "metric_array": ["link_name"],
   640            "metrics": [
   641              {
   642                "field": "select field",
   643                "id": "1",
   644                "type": "count"
   645              }
   646            ],
   647            "orderby_field": "",
   648            "outerGroupOperator": [""],
   649            "percentileValue": [""],
   650            "rawQuery": true,
   651            "refId": "A",
   652            "series": "interface",
   653            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
   654            "target_alias": "",
   655            "templateVariableValue": [""],
   656            "timeField": "start",
   657            "type": "timeserie",
   658            "whereClauseGroup": [
   659              [
   660                {
   661                  "left": "link_name",
   662                  "op": "=",
   663                  "right": "$links"
   664                }
   665              ]
   666            ]
   667          }
   668        ],
   669        "timeFrom": null,
   670        "title": "$links ($data_direction)",
   671        "type": "marcusolsson-hourly-heatmap-panel"
   672      },
   673      {
   674        "datasource": "Netsage TSDS",
   675        "fieldConfig": {
   676          "defaults": {
   677            "custom": {
   678              "calculation": "mean",
   679              "colorPalette": "interpolateBlues",
   680              "colorSpace": "rgb",
   681              "groupBy": 60,
   682              "invertPalette": false,
   683              "nullValueColor": "rgb(169, 169, 169)"
   684            },
   685            "decimals": 1,
   686            "thresholds": {
   687              "mode": "absolute",
   688              "steps": [
   689                {
   690                  "color": "green",
   691                  "value": null
   692                },
   693                {
   694                  "color": "red",
   695                  "value": 80
   696                }
   697              ]
   698            },
   699            "unit": "bps"
   700          },
   701          "overrides": []
   702        },
   703        "gridPos": {
   704          "h": 10,
   705          "w": 24,
   706          "x": 0,
   707          "y": 46
   708        },
   709        "id": 12,
   710        "links": [],
   711        "options": {
   712          "from": "0",
   713          "legendGradientQuality": "high",
   714          "showCellBorder": false,
   715          "showLegend": false,
   716          "showTooltip": true,
   717          "showValueIndicator": false,
   718          "to": "0"
   719        },
   720        "repeatDirection": "v",
   721        "repeatIteration": 1619117095095,
   722        "repeatPanelId": 8,
   723        "scopedVars": {
   724          "links": {
   725            "selected": false,
   726            "text": "PIREN: Mauna Lani to Sydney 100GE",
   727            "value": "PIREN: Mauna Lani to Sydney 100GE"
   728          }
   729        },
   730        "targets": [
   731          {
   732            "aggregate_all": false,
   733            "aggregator": ["average"],
   734            "bucket": [],
   735            "bucketAggs": [
   736              {
   737                "field": "start",
   738                "id": "2",
   739                "settings": {
   740                  "interval": "auto",
   741                  "min_doc_count": 0,
   742                  "trimEdges": 0
   743                },
   744                "type": "date_histogram"
   745              }
   746            ],
   747            "combineAllBy": "nothing",
   748            "condition": [],
   749            "dateFormat": "",
   750            "displayFormat": "series",
   751            "drillDown": [],
   752            "drillDownAlias": "",
   753            "drillDownValue": [],
   754            "dsType": "elasticsearch",
   755            "func": [
   756              {
   757                "alias": "",
   758                "bucket": "",
   759                "expanded": false,
   760                "method": "average",
   761                "operation": "",
   762                "percentile": "85",
   763                "root": true,
   764                "target": "input",
   765                "template": "",
   766                "title": "Aggregate",
   767                "type": "Aggregate",
   768                "wrapper": []
   769              }
   770            ],
   771            "groupby_field": " ",
   772            "inlineGroupOperator": [["", "and"]],
   773            "metricValueAliasMappings": {},
   774            "metricValueAliases": [""],
   775            "metricValues_array": ["$data_direction"],
   776            "metric_array": ["link_name"],
   777            "metrics": [
   778              {
   779                "field": "select field",
   780                "id": "1",
   781                "type": "count"
   782              }
   783            ],
   784            "orderby_field": "",
   785            "outerGroupOperator": [""],
   786            "percentileValue": [""],
   787            "rawQuery": true,
   788            "refId": "A",
   789            "series": "interface",
   790            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
   791            "target_alias": "",
   792            "templateVariableValue": [""],
   793            "timeField": "start",
   794            "type": "timeserie",
   795            "whereClauseGroup": [
   796              [
   797                {
   798                  "left": "link_name",
   799                  "op": "=",
   800                  "right": "$links"
   801                }
   802              ]
   803            ]
   804          }
   805        ],
   806        "timeFrom": null,
   807        "title": "$links ($data_direction)",
   808        "type": "marcusolsson-hourly-heatmap-panel"
   809      },
   810      {
   811        "datasource": "Netsage TSDS",
   812        "fieldConfig": {
   813          "defaults": {
   814            "custom": {
   815              "calculation": "mean",
   816              "colorPalette": "interpolateBlues",
   817              "colorSpace": "rgb",
   818              "groupBy": 60,
   819              "invertPalette": false,
   820              "nullValueColor": "rgb(169, 169, 169)"
   821            },
   822            "decimals": 1,
   823            "thresholds": {
   824              "mode": "absolute",
   825              "steps": [
   826                {
   827                  "color": "green",
   828                  "value": null
   829                },
   830                {
   831                  "color": "red",
   832                  "value": 80
   833                }
   834              ]
   835            },
   836            "unit": "bps"
   837          },
   838          "overrides": []
   839        },
   840        "gridPos": {
   841          "h": 10,
   842          "w": 24,
   843          "x": 0,
   844          "y": 56
   845        },
   846        "id": 13,
   847        "links": [],
   848        "options": {
   849          "from": "0",
   850          "legendGradientQuality": "high",
   851          "showCellBorder": false,
   852          "showLegend": false,
   853          "showTooltip": true,
   854          "showValueIndicator": false,
   855          "to": "0"
   856        },
   857        "repeatDirection": "v",
   858        "repeatIteration": 1619117095095,
   859        "repeatPanelId": 8,
   860        "scopedVars": {
   861          "links": {
   862            "selected": false,
   863            "text": "PIREN: Oahu to Guam 100GE",
   864            "value": "PIREN: Oahu to Guam 100GE"
   865          }
   866        },
   867        "targets": [
   868          {
   869            "aggregate_all": false,
   870            "aggregator": ["average"],
   871            "bucket": [],
   872            "bucketAggs": [
   873              {
   874                "field": "start",
   875                "id": "2",
   876                "settings": {
   877                  "interval": "auto",
   878                  "min_doc_count": 0,
   879                  "trimEdges": 0
   880                },
   881                "type": "date_histogram"
   882              }
   883            ],
   884            "combineAllBy": "nothing",
   885            "condition": [],
   886            "dateFormat": "",
   887            "displayFormat": "series",
   888            "drillDown": [],
   889            "drillDownAlias": "",
   890            "drillDownValue": [],
   891            "dsType": "elasticsearch",
   892            "func": [
   893              {
   894                "alias": "",
   895                "bucket": "",
   896                "expanded": false,
   897                "method": "average",
   898                "operation": "",
   899                "percentile": "85",
   900                "root": true,
   901                "target": "input",
   902                "template": "",
   903                "title": "Aggregate",
   904                "type": "Aggregate",
   905                "wrapper": []
   906              }
   907            ],
   908            "groupby_field": " ",
   909            "inlineGroupOperator": [["", "and"]],
   910            "metricValueAliasMappings": {},
   911            "metricValueAliases": [""],
   912            "metricValues_array": ["$data_direction"],
   913            "metric_array": ["link_name"],
   914            "metrics": [
   915              {
   916                "field": "select field",
   917                "id": "1",
   918                "type": "count"
   919              }
   920            ],
   921            "orderby_field": "",
   922            "outerGroupOperator": [""],
   923            "percentileValue": [""],
   924            "rawQuery": true,
   925            "refId": "A",
   926            "series": "interface",
   927            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
   928            "target_alias": "",
   929            "templateVariableValue": [""],
   930            "timeField": "start",
   931            "type": "timeserie",
   932            "whereClauseGroup": [
   933              [
   934                {
   935                  "left": "link_name",
   936                  "op": "=",
   937                  "right": "$links"
   938                }
   939              ]
   940            ]
   941          }
   942        ],
   943        "timeFrom": null,
   944        "title": "$links ($data_direction)",
   945        "type": "marcusolsson-hourly-heatmap-panel"
   946      },
   947      {
   948        "datasource": "Netsage TSDS",
   949        "fieldConfig": {
   950          "defaults": {
   951            "custom": {
   952              "calculation": "mean",
   953              "colorPalette": "interpolateBlues",
   954              "colorSpace": "rgb",
   955              "groupBy": 60,
   956              "invertPalette": false,
   957              "nullValueColor": "rgb(169, 169, 169)"
   958            },
   959            "decimals": 1,
   960            "thresholds": {
   961              "mode": "absolute",
   962              "steps": [
   963                {
   964                  "color": "green",
   965                  "value": null
   966                },
   967                {
   968                  "color": "red",
   969                  "value": 80
   970                }
   971              ]
   972            },
   973            "unit": "bps"
   974          },
   975          "overrides": []
   976        },
   977        "gridPos": {
   978          "h": 10,
   979          "w": 24,
   980          "x": 0,
   981          "y": 66
   982        },
   983        "id": 14,
   984        "links": [],
   985        "options": {
   986          "from": "0",
   987          "legendGradientQuality": "high",
   988          "showCellBorder": false,
   989          "showLegend": false,
   990          "showTooltip": true,
   991          "showValueIndicator": false,
   992          "to": "0"
   993        },
   994        "repeatDirection": "v",
   995        "repeatIteration": 1619117095095,
   996        "repeatPanelId": 8,
   997        "scopedVars": {
   998          "links": {
   999            "selected": false,
  1000            "text": "PIREN: Oahu to Los Angeles 100GE",
  1001            "value": "PIREN: Oahu to Los Angeles 100GE"
  1002          }
  1003        },
  1004        "targets": [
  1005          {
  1006            "aggregate_all": false,
  1007            "aggregator": ["average"],
  1008            "bucket": [],
  1009            "bucketAggs": [
  1010              {
  1011                "field": "start",
  1012                "id": "2",
  1013                "settings": {
  1014                  "interval": "auto",
  1015                  "min_doc_count": 0,
  1016                  "trimEdges": 0
  1017                },
  1018                "type": "date_histogram"
  1019              }
  1020            ],
  1021            "combineAllBy": "nothing",
  1022            "condition": [],
  1023            "dateFormat": "",
  1024            "displayFormat": "series",
  1025            "drillDown": [],
  1026            "drillDownAlias": "",
  1027            "drillDownValue": [],
  1028            "dsType": "elasticsearch",
  1029            "func": [
  1030              {
  1031                "alias": "",
  1032                "bucket": "",
  1033                "expanded": false,
  1034                "method": "average",
  1035                "operation": "",
  1036                "percentile": "85",
  1037                "root": true,
  1038                "target": "input",
  1039                "template": "",
  1040                "title": "Aggregate",
  1041                "type": "Aggregate",
  1042                "wrapper": []
  1043              }
  1044            ],
  1045            "groupby_field": " ",
  1046            "inlineGroupOperator": [["", "and"]],
  1047            "metricValueAliasMappings": {},
  1048            "metricValueAliases": [""],
  1049            "metricValues_array": ["$data_direction"],
  1050            "metric_array": ["link_name"],
  1051            "metrics": [
  1052              {
  1053                "field": "select field",
  1054                "id": "1",
  1055                "type": "count"
  1056              }
  1057            ],
  1058            "orderby_field": "",
  1059            "outerGroupOperator": [""],
  1060            "percentileValue": [""],
  1061            "rawQuery": true,
  1062            "refId": "A",
  1063            "series": "interface",
  1064            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
  1065            "target_alias": "",
  1066            "templateVariableValue": [""],
  1067            "timeField": "start",
  1068            "type": "timeserie",
  1069            "whereClauseGroup": [
  1070              [
  1071                {
  1072                  "left": "link_name",
  1073                  "op": "=",
  1074                  "right": "$links"
  1075                }
  1076              ]
  1077            ]
  1078          }
  1079        ],
  1080        "timeFrom": null,
  1081        "title": "$links ($data_direction)",
  1082        "type": "marcusolsson-hourly-heatmap-panel"
  1083      },
  1084      {
  1085        "datasource": "Netsage TSDS",
  1086        "fieldConfig": {
  1087          "defaults": {
  1088            "custom": {
  1089              "calculation": "mean",
  1090              "colorPalette": "interpolateBlues",
  1091              "colorSpace": "rgb",
  1092              "groupBy": 60,
  1093              "invertPalette": false,
  1094              "nullValueColor": "rgb(169, 169, 169)"
  1095            },
  1096            "decimals": 1,
  1097            "thresholds": {
  1098              "mode": "absolute",
  1099              "steps": [
  1100                {
  1101                  "color": "green",
  1102                  "value": null
  1103                },
  1104                {
  1105                  "color": "red",
  1106                  "value": 80
  1107                }
  1108              ]
  1109            },
  1110            "unit": "bps"
  1111          },
  1112          "overrides": []
  1113        },
  1114        "gridPos": {
  1115          "h": 10,
  1116          "w": 24,
  1117          "x": 0,
  1118          "y": 76
  1119        },
  1120        "id": 15,
  1121        "links": [],
  1122        "options": {
  1123          "from": "0",
  1124          "legendGradientQuality": "high",
  1125          "showCellBorder": false,
  1126          "showLegend": false,
  1127          "showTooltip": true,
  1128          "showValueIndicator": false,
  1129          "to": "0"
  1130        },
  1131        "repeatDirection": "v",
  1132        "repeatIteration": 1619117095095,
  1133        "repeatPanelId": 8,
  1134        "scopedVars": {
  1135          "links": {
  1136            "selected": false,
  1137            "text": "PIREN: Oahu to Sydney 100GE",
  1138            "value": "PIREN: Oahu to Sydney 100GE"
  1139          }
  1140        },
  1141        "targets": [
  1142          {
  1143            "aggregate_all": false,
  1144            "aggregator": ["average"],
  1145            "bucket": [],
  1146            "bucketAggs": [
  1147              {
  1148                "field": "start",
  1149                "id": "2",
  1150                "settings": {
  1151                  "interval": "auto",
  1152                  "min_doc_count": 0,
  1153                  "trimEdges": 0
  1154                },
  1155                "type": "date_histogram"
  1156              }
  1157            ],
  1158            "combineAllBy": "nothing",
  1159            "condition": [],
  1160            "dateFormat": "",
  1161            "displayFormat": "series",
  1162            "drillDown": [],
  1163            "drillDownAlias": "",
  1164            "drillDownValue": [],
  1165            "dsType": "elasticsearch",
  1166            "func": [
  1167              {
  1168                "alias": "",
  1169                "bucket": "",
  1170                "expanded": false,
  1171                "method": "average",
  1172                "operation": "",
  1173                "percentile": "85",
  1174                "root": true,
  1175                "target": "input",
  1176                "template": "",
  1177                "title": "Aggregate",
  1178                "type": "Aggregate",
  1179                "wrapper": []
  1180              }
  1181            ],
  1182            "groupby_field": " ",
  1183            "inlineGroupOperator": [["", "and"]],
  1184            "metricValueAliasMappings": {},
  1185            "metricValueAliases": [""],
  1186            "metricValues_array": ["$data_direction"],
  1187            "metric_array": ["link_name"],
  1188            "metrics": [
  1189              {
  1190                "field": "select field",
  1191                "id": "1",
  1192                "type": "count"
  1193              }
  1194            ],
  1195            "orderby_field": "",
  1196            "outerGroupOperator": [""],
  1197            "percentileValue": [""],
  1198            "rawQuery": true,
  1199            "refId": "A",
  1200            "series": "interface",
  1201            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
  1202            "target_alias": "",
  1203            "templateVariableValue": [""],
  1204            "timeField": "start",
  1205            "type": "timeserie",
  1206            "whereClauseGroup": [
  1207              [
  1208                {
  1209                  "left": "link_name",
  1210                  "op": "=",
  1211                  "right": "$links"
  1212                }
  1213              ]
  1214            ]
  1215          }
  1216        ],
  1217        "timeFrom": null,
  1218        "title": "$links ($data_direction)",
  1219        "type": "marcusolsson-hourly-heatmap-panel"
  1220      },
  1221      {
  1222        "datasource": "Netsage TSDS",
  1223        "fieldConfig": {
  1224          "defaults": {
  1225            "custom": {
  1226              "calculation": "mean",
  1227              "colorPalette": "interpolateBlues",
  1228              "colorSpace": "rgb",
  1229              "groupBy": 60,
  1230              "invertPalette": false,
  1231              "nullValueColor": "rgb(169, 169, 169)"
  1232            },
  1233            "decimals": 1,
  1234            "thresholds": {
  1235              "mode": "absolute",
  1236              "steps": [
  1237                {
  1238                  "color": "green",
  1239                  "value": null
  1240                },
  1241                {
  1242                  "color": "red",
  1243                  "value": 80
  1244                }
  1245              ]
  1246            },
  1247            "unit": "bps"
  1248          },
  1249          "overrides": []
  1250        },
  1251        "gridPos": {
  1252          "h": 10,
  1253          "w": 24,
  1254          "x": 0,
  1255          "y": 86
  1256        },
  1257        "id": 16,
  1258        "links": [],
  1259        "options": {
  1260          "from": "0",
  1261          "legendGradientQuality": "high",
  1262          "showCellBorder": false,
  1263          "showLegend": false,
  1264          "showTooltip": true,
  1265          "showValueIndicator": false,
  1266          "to": "0"
  1267        },
  1268        "repeatDirection": "v",
  1269        "repeatIteration": 1619117095095,
  1270        "repeatPanelId": 8,
  1271        "scopedVars": {
  1272          "links": {
  1273            "selected": false,
  1274            "text": "PIREN: Seattle to Oahu 100GE",
  1275            "value": "PIREN: Seattle to Oahu 100GE"
  1276          }
  1277        },
  1278        "targets": [
  1279          {
  1280            "aggregate_all": false,
  1281            "aggregator": ["average"],
  1282            "bucket": [],
  1283            "bucketAggs": [
  1284              {
  1285                "field": "start",
  1286                "id": "2",
  1287                "settings": {
  1288                  "interval": "auto",
  1289                  "min_doc_count": 0,
  1290                  "trimEdges": 0
  1291                },
  1292                "type": "date_histogram"
  1293              }
  1294            ],
  1295            "combineAllBy": "nothing",
  1296            "condition": [],
  1297            "dateFormat": "",
  1298            "displayFormat": "series",
  1299            "drillDown": [],
  1300            "drillDownAlias": "",
  1301            "drillDownValue": [],
  1302            "dsType": "elasticsearch",
  1303            "func": [
  1304              {
  1305                "alias": "",
  1306                "bucket": "",
  1307                "expanded": false,
  1308                "method": "average",
  1309                "operation": "",
  1310                "percentile": "85",
  1311                "root": true,
  1312                "target": "input",
  1313                "template": "",
  1314                "title": "Aggregate",
  1315                "type": "Aggregate",
  1316                "wrapper": []
  1317              }
  1318            ],
  1319            "groupby_field": " ",
  1320            "inlineGroupOperator": [["", "and"]],
  1321            "metricValueAliasMappings": {},
  1322            "metricValueAliases": [""],
  1323            "metricValues_array": ["$data_direction"],
  1324            "metric_array": ["link_name"],
  1325            "metrics": [
  1326              {
  1327                "field": "select field",
  1328                "id": "1",
  1329                "type": "count"
  1330              }
  1331            ],
  1332            "orderby_field": "",
  1333            "outerGroupOperator": [""],
  1334            "percentileValue": [""],
  1335            "rawQuery": true,
  1336            "refId": "A",
  1337            "series": "interface",
  1338            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
  1339            "target_alias": "",
  1340            "templateVariableValue": [""],
  1341            "timeField": "start",
  1342            "type": "timeserie",
  1343            "whereClauseGroup": [
  1344              [
  1345                {
  1346                  "left": "link_name",
  1347                  "op": "=",
  1348                  "right": "$links"
  1349                }
  1350              ]
  1351            ]
  1352          }
  1353        ],
  1354        "timeFrom": null,
  1355        "title": "$links ($data_direction)",
  1356        "type": "marcusolsson-hourly-heatmap-panel"
  1357      },
  1358      {
  1359        "datasource": "Netsage TSDS",
  1360        "fieldConfig": {
  1361          "defaults": {
  1362            "custom": {
  1363              "calculation": "mean",
  1364              "colorPalette": "interpolateBlues",
  1365              "colorSpace": "rgb",
  1366              "groupBy": 60,
  1367              "invertPalette": false,
  1368              "nullValueColor": "rgb(169, 169, 169)"
  1369            },
  1370            "decimals": 1,
  1371            "thresholds": {
  1372              "mode": "absolute",
  1373              "steps": [
  1374                {
  1375                  "color": "green",
  1376                  "value": null
  1377                },
  1378                {
  1379                  "color": "red",
  1380                  "value": 80
  1381                }
  1382              ]
  1383            },
  1384            "unit": "bps"
  1385          },
  1386          "overrides": []
  1387        },
  1388        "gridPos": {
  1389          "h": 10,
  1390          "w": 24,
  1391          "x": 0,
  1392          "y": 96
  1393        },
  1394        "id": 17,
  1395        "links": [],
  1396        "options": {
  1397          "from": "0",
  1398          "legendGradientQuality": "high",
  1399          "showCellBorder": false,
  1400          "showLegend": false,
  1401          "showTooltip": true,
  1402          "showValueIndicator": false,
  1403          "to": "0"
  1404        },
  1405        "repeatDirection": "v",
  1406        "repeatIteration": 1619117095095,
  1407        "repeatPanelId": 8,
  1408        "scopedVars": {
  1409          "links": {
  1410            "selected": false,
  1411            "text": "TransPAC: Hong Kong to Guam 10GE",
  1412            "value": "TransPAC: Hong Kong to Guam 10GE"
  1413          }
  1414        },
  1415        "targets": [
  1416          {
  1417            "aggregate_all": false,
  1418            "aggregator": ["average"],
  1419            "bucket": [],
  1420            "bucketAggs": [
  1421              {
  1422                "field": "start",
  1423                "id": "2",
  1424                "settings": {
  1425                  "interval": "auto",
  1426                  "min_doc_count": 0,
  1427                  "trimEdges": 0
  1428                },
  1429                "type": "date_histogram"
  1430              }
  1431            ],
  1432            "combineAllBy": "nothing",
  1433            "condition": [],
  1434            "dateFormat": "",
  1435            "displayFormat": "series",
  1436            "drillDown": [],
  1437            "drillDownAlias": "",
  1438            "drillDownValue": [],
  1439            "dsType": "elasticsearch",
  1440            "func": [
  1441              {
  1442                "alias": "",
  1443                "bucket": "",
  1444                "expanded": false,
  1445                "method": "average",
  1446                "operation": "",
  1447                "percentile": "85",
  1448                "root": true,
  1449                "target": "input",
  1450                "template": "",
  1451                "title": "Aggregate",
  1452                "type": "Aggregate",
  1453                "wrapper": []
  1454              }
  1455            ],
  1456            "groupby_field": " ",
  1457            "inlineGroupOperator": [["", "and"]],
  1458            "metricValueAliasMappings": {},
  1459            "metricValueAliases": [""],
  1460            "metricValues_array": ["$data_direction"],
  1461            "metric_array": ["link_name"],
  1462            "metrics": [
  1463              {
  1464                "field": "select field",
  1465                "id": "1",
  1466                "type": "count"
  1467              }
  1468            ],
  1469            "orderby_field": "",
  1470            "outerGroupOperator": [""],
  1471            "percentileValue": [""],
  1472            "rawQuery": true,
  1473            "refId": "A",
  1474            "series": "interface",
  1475            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
  1476            "target_alias": "",
  1477            "templateVariableValue": [""],
  1478            "timeField": "start",
  1479            "type": "timeserie",
  1480            "whereClauseGroup": [
  1481              [
  1482                {
  1483                  "left": "link_name",
  1484                  "op": "=",
  1485                  "right": "$links"
  1486                }
  1487              ]
  1488            ]
  1489          }
  1490        ],
  1491        "timeFrom": null,
  1492        "title": "$links ($data_direction)",
  1493        "type": "marcusolsson-hourly-heatmap-panel"
  1494      },
  1495      {
  1496        "datasource": "Netsage TSDS",
  1497        "fieldConfig": {
  1498          "defaults": {
  1499            "custom": {
  1500              "calculation": "mean",
  1501              "colorPalette": "interpolateBlues",
  1502              "colorSpace": "rgb",
  1503              "groupBy": 60,
  1504              "invertPalette": false,
  1505              "nullValueColor": "rgb(169, 169, 169)"
  1506            },
  1507            "decimals": 1,
  1508            "thresholds": {
  1509              "mode": "absolute",
  1510              "steps": [
  1511                {
  1512                  "color": "green",
  1513                  "value": null
  1514                },
  1515                {
  1516                  "color": "red",
  1517                  "value": 80
  1518                }
  1519              ]
  1520            },
  1521            "unit": "bps"
  1522          },
  1523          "overrides": []
  1524        },
  1525        "gridPos": {
  1526          "h": 10,
  1527          "w": 24,
  1528          "x": 0,
  1529          "y": 106
  1530        },
  1531        "id": 18,
  1532        "links": [],
  1533        "options": {
  1534          "from": "0",
  1535          "legendGradientQuality": "high",
  1536          "showCellBorder": false,
  1537          "showLegend": false,
  1538          "showTooltip": true,
  1539          "showValueIndicator": false,
  1540          "to": "0"
  1541        },
  1542        "repeatDirection": "v",
  1543        "repeatIteration": 1619117095095,
  1544        "repeatPanelId": 8,
  1545        "scopedVars": {
  1546          "links": {
  1547            "selected": false,
  1548            "text": "TransPAC: Seattle to Tokyo 100GE",
  1549            "value": "TransPAC: Seattle to Tokyo 100GE"
  1550          }
  1551        },
  1552        "targets": [
  1553          {
  1554            "aggregate_all": false,
  1555            "aggregator": ["average"],
  1556            "bucket": [],
  1557            "bucketAggs": [
  1558              {
  1559                "field": "start",
  1560                "id": "2",
  1561                "settings": {
  1562                  "interval": "auto",
  1563                  "min_doc_count": 0,
  1564                  "trimEdges": 0
  1565                },
  1566                "type": "date_histogram"
  1567              }
  1568            ],
  1569            "combineAllBy": "nothing",
  1570            "condition": [],
  1571            "dateFormat": "",
  1572            "displayFormat": "series",
  1573            "drillDown": [],
  1574            "drillDownAlias": "",
  1575            "drillDownValue": [],
  1576            "dsType": "elasticsearch",
  1577            "func": [
  1578              {
  1579                "alias": "",
  1580                "bucket": "",
  1581                "expanded": false,
  1582                "method": "average",
  1583                "operation": "",
  1584                "percentile": "85",
  1585                "root": true,
  1586                "target": "input",
  1587                "template": "",
  1588                "title": "Aggregate",
  1589                "type": "Aggregate",
  1590                "wrapper": []
  1591              }
  1592            ],
  1593            "groupby_field": " ",
  1594            "inlineGroupOperator": [["", "and"]],
  1595            "metricValueAliasMappings": {},
  1596            "metricValueAliases": [""],
  1597            "metricValues_array": ["$data_direction"],
  1598            "metric_array": ["link_name"],
  1599            "metrics": [
  1600              {
  1601                "field": "select field",
  1602                "id": "1",
  1603                "type": "count"
  1604              }
  1605            ],
  1606            "orderby_field": "",
  1607            "outerGroupOperator": [""],
  1608            "percentileValue": [""],
  1609            "rawQuery": true,
  1610            "refId": "A",
  1611            "series": "interface",
  1612            "target": "get  link_name, aggregate(values.$data_direction, 3600, $statistics) between ($START,$END) from interface where  ( link_name = \"$links\" )",
  1613            "target_alias": "",
  1614            "templateVariableValue": [""],
  1615            "timeField": "start",
  1616            "type": "timeserie",
  1617            "whereClauseGroup": [
  1618              [
  1619                {
  1620                  "left": "link_name",
  1621                  "op": "=",
  1622                  "right": "$links"
  1623                }
  1624              ]
  1625            ]
  1626          }
  1627        ],
  1628        "timeFrom": null,
  1629        "title": "$links ($data_direction)",
  1630        "type": "marcusolsson-hourly-heatmap-panel"
  1631      },
  1632      {
  1633        "datasource": null,
  1634        "fieldConfig": {
  1635          "defaults": {
  1636            "custom": {}
  1637          },
  1638          "overrides": []
  1639        },
  1640        "gridPos": {
  1641          "h": 2,
  1642          "w": 24,
  1643          "x": 0,
  1644          "y": 116
  1645        },
  1646        "id": 9,
  1647        "links": [],
  1648        "options": {
  1649          "content": "\u003cdiv class=\"netsage_footer\"\u003e If you have any questions, concerns, or other issues, feel free to contact us at \u003ca href=\"mailto:netsage@lbl.gov\"\u003enetsage@lbl.gov \u003c/a\u003e Thanks! \u003cimg style=\"margin-left:10px\" src=\"https://www.nsf.gov/images/logos/NSF_4-Color_bitmap_Logo.png\" width=50 height=50\u003e \u003ca href=\"https://www.nsf.gov/awardsearch/showAward?AWD_ID=1540933\"\u003e NSF GRANT 1540933 \u003c/a\u003e \u003c/img\u003e \u003cspan style=\"float:right; position:relative; top:15px\"\u003e To Review the NetSage Data Policy \u003ca href=\"http://www.netsage.global/home/netsage-privacy-policy\"\u003e click here \u003c/a\u003e \u003c/div\u003e\n",
  1650          "mode": "html"
  1651        },
  1652        "pluginVersion": "7.3.3",
  1653        "title": "",
  1654        "transparent": true,
  1655        "type": "text"
  1656      }
  1657    ],
  1658    "schemaVersion": 26,
  1659    "style": "dark",
  1660    "tags": ["netsage"],
  1661    "templating": {
  1662      "list": [
  1663        {
  1664          "allValue": null,
  1665          "current": {
  1666            "selected": true,
  1667            "text": "All",
  1668            "value": ["$__all"]
  1669          },
  1670          "datasource": "Netsage TSDS",
  1671          "definition": "",
  1672          "error": null,
  1673          "hide": 0,
  1674          "includeAll": true,
  1675          "label": "Links",
  1676          "multi": true,
  1677          "name": "links",
  1678          "options": [],
  1679          "query": "get link_name between($START, $END) by link_name from interface where link_name != null limit 100 offset 0",
  1680          "refresh": 2,
  1681          "regex": "",
  1682          "skipUrlSync": false,
  1683          "sort": 5,
  1684          "tagValuesQuery": "",
  1685          "tags": [],
  1686          "tagsQuery": "",
  1687          "type": "query",
  1688          "useTags": false
  1689        },
  1690        {
  1691          "allValue": null,
  1692          "current": {
  1693            "text": "TransPAC: Seattle to Tokyo 100GE",
  1694            "value": ["TransPAC: Seattle to Tokyo 100GE"]
  1695          },
  1696          "error": null,
  1697          "hide": 2,
  1698          "includeAll": true,
  1699          "label": "",
  1700          "multi": true,
  1701          "name": "copy_of_links_old",
  1702          "options": [
  1703            {
  1704              "selected": false,
  1705              "text": "All",
  1706              "value": "$__all"
  1707            },
  1708            {
  1709              "selected": true,
  1710              "text": "TransPAC: Seattle to Tokyo 100GE",
  1711              "value": "TransPAC: Seattle to Tokyo 100GE"
  1712            },
  1713            {
  1714              "selected": false,
  1715              "text": "PIREN: Seattle to Oahu 100GE",
  1716              "value": "PIREN: Seattle to Oahu 100GE"
  1717            },
  1718            {
  1719              "selected": false,
  1720              "text": "PIREN: Oahu to Sydney 100GE",
  1721              "value": "PIREN: Oahu to Sydney 100GE"
  1722            },
  1723            {
  1724              "selected": false,
  1725              "text": "PIREN: Mauna Lani to Sydney 100GE",
  1726              "value": "PIREN: Mauna Lani to Sydney 100GE"
  1727            },
  1728            {
  1729              "selected": false,
  1730              "text": "PIREN: Los Angeles to Mauna Lani 100GE",
  1731              "value": "PIREN: Los Angeles to Mauna Lani 100GE"
  1732            },
  1733            {
  1734              "selected": false,
  1735              "text": "NEAAR: New York to London 100GE",
  1736              "value": "NEAAR: New York to London 100GE"
  1737            },
  1738            {
  1739              "selected": false,
  1740              "text": "AmLight: Miami to Sao Paulo 100GE",
  1741              "value": "AmLight: Miami to Sao Paulo 100GE"
  1742            },
  1743            {
  1744              "selected": false,
  1745              "text": "AmLight: Miami to Chile 100GE",
  1746              "value": "AmLight: Miami to Chile 100GE"
  1747            },
  1748            {
  1749              "selected": false,
  1750              "text": "AmLight: Chile to Sao Paolo 10GE",
  1751              "value": "AmLight: Chile to Sao Paolo 10GE"
  1752            }
  1753          ],
  1754          "query": "TransPAC: Seattle to Tokyo 100GE, PIREN: Seattle to Oahu 100GE, PIREN: Oahu to Sydney 100GE, PIREN: Mauna Lani to Sydney 100GE, PIREN: Los Angeles to Mauna Lani 100GE, NEAAR: New York to London 100GE, AmLight: Miami to Sao Paulo 100GE, AmLight: Miami to Chile 100GE, AmLight: Chile to Sao Paolo 10GE",
  1755          "skipUrlSync": false,
  1756          "type": "custom"
  1757        },
  1758        {
  1759          "allValue": null,
  1760          "current": {
  1761            "selected": true,
  1762            "tags": [],
  1763            "text": "average",
  1764            "value": "average"
  1765          },
  1766          "error": null,
  1767          "hide": 0,
  1768          "includeAll": false,
  1769          "label": "Statistics",
  1770          "multi": false,
  1771          "name": "statistics",
  1772          "options": [
  1773            {
  1774              "selected": true,
  1775              "text": "average",
  1776              "value": "average"
  1777            },
  1778            {
  1779              "selected": false,
  1780              "text": "min",
  1781              "value": "min"
  1782            },
  1783            {
  1784              "selected": false,
  1785              "text": "max",
  1786              "value": "max"
  1787            }
  1788          ],
  1789          "query": "average, min, max",
  1790          "skipUrlSync": false,
  1791          "type": "custom"
  1792        },
  1793        {
  1794          "allValue": null,
  1795          "current": {
  1796            "tags": [],
  1797            "text": "input",
  1798            "value": "input"
  1799          },
  1800          "error": null,
  1801          "hide": 0,
  1802          "includeAll": false,
  1803          "label": "Data Direction",
  1804          "multi": false,
  1805          "name": "data_direction",
  1806          "options": [
  1807            {
  1808              "selected": true,
  1809              "text": "input",
  1810              "value": "input"
  1811            },
  1812            {
  1813              "selected": false,
  1814              "text": "output",
  1815              "value": "output"
  1816            }
  1817          ],
  1818          "query": "input, output",
  1819          "skipUrlSync": false,
  1820          "type": "custom"
  1821        }
  1822      ]
  1823    },
  1824    "time": {
  1825      "from": "now-30d",
  1826      "to": "now"
  1827    },
  1828    "timepicker": {
  1829      "refresh_intervals": [
  1830        "5s",
  1831        "10s",
  1832        "30s",
  1833        "1m",
  1834        "5m",
  1835        "15m",
  1836        "30m",
  1837        "1h",
  1838        "2h",
  1839        "1d"
  1840      ],
  1841      "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
  1842    },
  1843    "timezone": "",
  1844    "title": "Bandwidth Patterns",
  1845    "uid": "000000004",
  1846    "version": 1
  1847  }