diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..984c31840 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,216 @@ +name: Build + +on: + workflow_dispatch: + pull_request: + branches: + - master + - develop + - release + push: + branches: + - master + - develop + - release + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + + - name: Create Build Environment + # Some projects don't allow in-source building, so create a separate build directory + # We'll use this as our working directory for all subsequent commands + run: cmake -E make_directory ${{github.workspace}}/build + + - name: Get Conan + # You may pin to the exact commit or the version. + # uses: turtlebrowser/get-conan@4dc7e6dd45c8b1e02e909979d7cfc5ebba6ddbe2 + uses: turtlebrowser/get-conan@v1.0 + + - name: Conan profile and settings + run: | + conan profile new --detect default + conan config set general.revisions_enabled=1 + + - name: Conan profile (linux-workaround) + if: matrix.os == 'ubuntu-latest' + run: + conan profile update settings.compiler.libcxx=libstdc++11 default + + - name: Conan install (osx-workaround) + if: matrix.os == 'macos-latest' + working-directory: ${{github.workspace}}/build + run: | + conan remote add ns1labs-conan https://ns1labs.jfrog.io/artifactory/api/conan/ns1labs-conan + conan install --build=missing .. + + - name: linux package install + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install --yes --no-install-recommends golang ca-certificates jq + + - name: Configure CMake + # Use a bash shell so we can use the same syntax for environment variable + # access regardless of the host operating system + shell: bash + working-directory: ${{github.workspace}}/build + # Note the current convention is to use the -S and -B options here to specify source + # and build directories, but this is only available with CMake 3.13 and higher. + # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 + run: PKG_CONFIG_PATH=${{github.workspace}}/local/lib/pkgconfig cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Build + working-directory: ${{github.workspace}}/build + shell: bash + # Execute the build. You can specify a specific target with "--target " + run: cmake --build . --config $BUILD_TYPE -- -j 2 + + - name: Test + working-directory: ${{github.workspace}}/build + shell: bash + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C $BUILD_TYPE + + package: + needs: build + runs-on: ubuntu-latest + # if this is a push into one of our main branches (rather than just a pull request), we will also package + if: github.event_name != 'pull_request' + + steps: + - uses: actions/checkout@v2 + + - name: Create Build Environment + run: cmake -E make_directory ${{github.workspace}}/build + + - name: Configure CMake to generate VERSION + shell: bash + working-directory: ${{github.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + + - name: Get branch name + shell: bash + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV + + - name: Debug branch name + run: echo ${{ env.BRANCH_NAME }} + + - name: Get VERSION + run: | + echo "VERSION=`cat ${{github.workspace}}/build/VERSION`" >> $GITHUB_ENV + + - name: Debug version + run: echo ${{ env.VERSION }} + + - name: Generate ref tag (master) + if: ${{ env.BRANCH_NAME == 'master' }} + run: | + echo "REF_TAG=latest" >> $GITHUB_ENV + echo "PRERELEASE=false" >> $GITHUB_ENV + echo "DRAFT=true" >> $GITHUB_ENV + + - name: Generate ref tag (develop) + if: ${{ env.BRANCH_NAME == 'develop' }} + run: | + echo "REF_TAG=latest-develop" >> $GITHUB_ENV + echo "PRERELEASE=true" >> $GITHUB_ENV + echo "DRAFT=false" >> $GITHUB_ENV + + - name: Generate ref tag (release candidate) + if: ${{ env.BRANCH_NAME == 'release' }} + run: | + echo "REF_TAG=latest-rc" >> $GITHUB_ENV + echo "PRERELEASE=true" >> $GITHUB_ENV + echo "DRAFT=false" >> $GITHUB_ENV + + - name: Debug ref tag + run: echo ${{ env.REF_TAG }} + + - name: Manage Github ref tags + uses: actions/github-script@v3 + with: + github-token: ${{ github.token }} + # note deleteRef can't start with refs/, but create createRef does. + script: | + try { + await github.git.deleteRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: "tags/${{ env.REF_TAG }}", + }) + } catch (e) { + console.log("The tag doesn't exist yet: " + e) + } + await github.git.createRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: "refs/tags/${{ env.REF_TAG }}", + sha: context.sha + }) + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build + push VERSION - pktvisor + env: + IMAGE_NAME: ns1labs/pktvisor + run: | + docker build . --file docker/Dockerfile --tag ${{ env.IMAGE_NAME }}:${{ env.VERSION }} + docker push ${{ env.IMAGE_NAME }}:${{ env.VERSION }} + + - name: Tag + push docker image with ref tag (cached build) - pktvisor + env: + IMAGE_NAME: ns1labs/pktvisor + run: | + docker build . --file docker/Dockerfile --tag ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} + docker push ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} + + - name: Build + push VERSION - pktvisor-prom-write + env: + IMAGE_NAME: ns1labs/pktvisor-prom-write + working-directory: ${{github.workspace}}/centralized_collection/prometheus/docker-grafana-agent + run: | + docker build . --file docker/Dockerfile --tag ${{ env.IMAGE_NAME }}:${{ env.VERSION }} + docker push ${{ env.IMAGE_NAME }}:${{ env.VERSION }} + + - name: Tag + push docker image with ref tag (cached build) - pktvisor-prom-write + env: + IMAGE_NAME: ns1labs/pktvisor-prom-write + working-directory: ${{github.workspace}}/centralized_collection/prometheus/docker-grafana-agent + run: | + docker build . --file docker/Dockerfile --tag ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} + docker push ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} + + - name: Generate AppImage + env: + IMAGE_NAME: ns1labs/pktvisor + working-directory: ${{github.workspace}}/appimage + run: | + DEV_IMAGE="${{ env.IMAGE_NAME }}:${{ env.VERSION }}" DEV_MODE=t make pktvisor-x86_64.AppImage + mv pktvisor-x86_64.AppImage pktvisor-x86_64-${{ env.VERSION }}.AppImage + + - name: Upload AppImage artifact + uses: actions/upload-artifact@v2 + with: + name: pktvisor-AppImage + path: ${{github.workspace}}/appimage/pktvisor-x86_64-${{ env.VERSION }}.AppImage + diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml deleted file mode 100644 index e10205734..000000000 --- a/.github/workflows/cmake.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Build - -on: - pull_request: - branches: - - develop - - release/** - push: - branches: - - master - - develop - - release/** - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - strategy: - matrix: - os: [ ubuntu-latest, macos-latest ] - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2 - - - name: Create Build Environment - # Some projects don't allow in-source building, so create a separate build directory - # We'll use this as our working directory for all subsequent commands - run: cmake -E make_directory ${{github.workspace}}/build - - - name: Get Conan - # You may pin to the exact commit or the version. - # uses: turtlebrowser/get-conan@4dc7e6dd45c8b1e02e909979d7cfc5ebba6ddbe2 - uses: turtlebrowser/get-conan@v1.0 - - - name: Conan profile and settings - run: | - conan profile new --detect default - conan config set general.revisions_enabled=1 - - - name: Conan profile (linux-workaround) - if: matrix.os == 'ubuntu-latest' - run: - conan profile update settings.compiler.libcxx=libstdc++11 default - - - name: Conan install (osx-workaround) - if: matrix.os == 'macos-latest' - working-directory: ${{github.workspace}}/build - run: | - conan remote add ns1labs-conan https://ns1labs.jfrog.io/artifactory/api/conan/ns1labs-conan - conan install --build=missing .. - - - name: linux package install - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install --yes --no-install-recommends golang ca-certificates jq - - - name: Configure CMake - # Use a bash shell so we can use the same syntax for environment variable - # access regardless of the host operating system - shell: bash - working-directory: ${{github.workspace}}/build - # Note the current convention is to use the -S and -B options here to specify source - # and build directories, but this is only available with CMake 3.13 and higher. - # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: PKG_CONFIG_PATH=${{github.workspace}}/local/lib/pkgconfig cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE - - - name: Build - working-directory: ${{github.workspace}}/build - shell: bash - # Execute the build. You can specify a specific target with "--target " - run: cmake --build . --config $BUILD_TYPE -- -j 2 - - - name: Test - working-directory: ${{github.workspace}}/build - shell: bash - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C $BUILD_TYPE diff --git a/CMakeLists.txt b/CMakeLists.txt index 89daca2c3..23e3d8008 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,11 +2,22 @@ cmake_minimum_required(VERSION 3.13) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") -# this is the source of truth for version, which will be written to config.h include file. +# VERSION +# this is the source of truth for semver version project(visor VERSION 3.2.0) + +# for main line release, this is empty +# for development release, this is "-develop" +# for release candidate, this is "-rc" set(VISOR_PRERELEASE "-develop") + +# these are computed set(VISOR_VERSION_NUM "${PROJECT_VERSION}${VISOR_PRERELEASE}") -set(VISOR_VERSION " pktvisor ${PROJECT_VERSION}${VISOR_PRERELEASE}") +set(VISOR_VERSION "pktvisor ${PROJECT_VERSION}${VISOR_PRERELEASE}") + +# used in CI +file(WRITE ${CMAKE_BINARY_DIR}/VERSION ${VISOR_VERSION_NUM}) +###### set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/appimage/pktvisor/AppRun b/appimage/pktvisor/AppRun index a08924b64..ca0a4b343 100644 --- a/appimage/pktvisor/AppRun +++ b/appimage/pktvisor/AppRun @@ -1,5 +1,4 @@ #!/bin/sh -set -x # borrowed from appimage directly SELF=$(readlink -f "$0") diff --git a/appimage/pktvisor/TerminalEmulatorRequired.txt b/appimage/pktvisor/TerminalEmulatorRequired.txt index f463044a7..7f0d9f302 100644 --- a/appimage/pktvisor/TerminalEmulatorRequired.txt +++ b/appimage/pktvisor/TerminalEmulatorRequired.txt @@ -1 +1 @@ -This app needs to be run from a terminal to function correctly. See the docs at https://github.com/ns1/pktvisor for more details. \ No newline at end of file +This app needs to be run from a terminal to function correctly. See the docs at https://github.com/ns1labs/pktvisor for more details. \ No newline at end of file diff --git a/centralized_collection/prometheus/README.md b/centralized_collection/prometheus/README.md index 4a3fd16b5..50775c78d 100644 --- a/centralized_collection/prometheus/README.md +++ b/centralized_collection/prometheus/README.md @@ -5,7 +5,8 @@ the [Grafana Agent](https://github.com/grafana/agent) for collecting and sending [remote write](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage), including cloud providers. -There is also a sample [Grafana dashboard](grafana-dashboard-prometheus.json). +There is a sample [Grafana dashboard](grafana-dashboard-prometheus.json), which you can also find online in +the [Grafana community dashboards](https://grafana.com/grafana/dashboards/14221) with ID 14221. Example: diff --git a/centralized_collection/prometheus/grafana-dashboard-prometheus.json b/centralized_collection/prometheus/grafana-dashboard-prometheus.json index e03b0ed84..dff0862fb 100644 --- a/centralized_collection/prometheus/grafana-dashboard-prometheus.json +++ b/centralized_collection/prometheus/grafana-dashboard-prometheus.json @@ -1,4 +1,52 @@ { + "__inputs": [ + { + "name": "DS_GRAFANACLOUD-NS1RD81-PROM", + "label": "grafanacloud-ns1rd81-prom", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "panel", + "id": "gauge", + "name": "Gauge", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "7.5.3" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "panel", + "id": "piechart", + "name": "Pie chart v2", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + } + ], "annotations": { "list": [ { @@ -15,17 +63,322 @@ "description": "", "editable": true, "gnetId": null, - "graphTooltip": 0, - "id": 1, - "iteration": 1616611136727, + "graphTooltip": 1, + "id": null, + "iteration": 1618345430814, "links": [], "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 4, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 0, + "y": 1 + }, + "id": 19, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "displayLabels": [ + "percent" + ], + "legend": { + "displayMode": "hidden", + "placement": "right", + "values": [] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "packets_ipv4{instance=~\"$instance\"}", + "interval": "", + "legendFormat": "IPv4", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "packets_ipv6{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "IPv6", + "queryType": "randomWalk", + "refId": "B" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "L3 Protocols", + "type": "piechart" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 3, + "y": 1 + }, + "id": 20, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "displayLabels": [ + "percent" + ], + "legend": { + "displayMode": "hidden", + "placement": "right", + "values": [] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "packets_tcp{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "TCP", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "packets_udp{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "UDP", + "queryType": "randomWalk", + "refId": "D" + }, + { + "exemplar": true, + "expr": "packets_other_l4{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "Other L4", + "queryType": "randomWalk", + "refId": "E" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "L4 Protocols", + "type": "piechart" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 12, + "y": 1 + }, + "id": 21, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "/^sample_rate$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "packets_deep_samples{instance=~\"$instance\"}/packets_total{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "sample_rate", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Deep Inspection", + "type": "gauge" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 15, + "y": 1 + }, + "id": 22, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "/^packets_rates_pps_total\\{instance=\"gw\", job=\"pktvisor\", quantile=\"0\\.95\"\\}$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "packets_rates_pps_total{instance=~\"$instance\",quantile=\"0.95\"}", + "hide": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Avg Rate p95", + "type": "gauge" + }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, - "datasource": null, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", "fieldConfig": { "defaults": {}, "overrides": [] @@ -33,56 +386,60 @@ "fill": 1, "fillGradient": 0, "gridPos": { - "h": 8, + "h": 7, "w": 12, "x": 0, - "y": 0 + "y": 8 }, "hiddenSeries": false, "id": 2, "interval": "1m", "legend": { - "alignAsTable": true, "avg": false, "current": false, - "max": true, + "max": false, "min": false, - "rightSide": true, - "show": true, + "show": false, "total": false, - "values": true + "values": false }, "lines": true, "linewidth": 1, - "maxDataPoints": 100, + "maxDataPoints": 180, "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.0-pre", + "pluginVersion": "7.5.3", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [ { - "$$hashKey": "object:75", - "alias": "in (p0.99)", + "$$hashKey": "object:360", + "alias": "p99 In", "lines": false, "pointradius": 1, "points": true }, { - "$$hashKey": "object:305", - "alias": "out (p0.99)", + "$$hashKey": "object:394", + "alias": "/Out$/", + "color": "#8AB8FF", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:401", + "alias": "p99 Out", "lines": false, "pointradius": 1, "points": true }, { - "$$hashKey": "object:330", - "alias": "/^out.*/", - "transform": "negative-Y" + "$$hashKey": "object:451", + "alias": "/In$/", + "color": "#56A64B" } ], "spaceLength": 10, @@ -91,30 +448,45 @@ "targets": [ { "exemplar": true, - "expr": "packets_rates_pps_in{job=~\"$job\",quantile=~\"0.95|0.99\"}", - "format": "time_series", - "hide": false, - "instant": false, + "expr": "packets_rates_pps_in{instance=~\"$instance\",quantile=\"0.9\"}", "interval": "", - "intervalFactor": 1, - "legendFormat": "in (p{{quantile}})", + "legendFormat": "p90 In", + "queryType": "randomWalk", "refId": "A" }, { "exemplar": true, - "expr": "packets_rates_pps_out{job=~\"$job\",quantile=~\"0.95|0.99\"}", + "expr": "packets_rates_pps_in{instance=~\"$instance\",quantile=\"0.99\"}", "hide": false, - "instant": false, "interval": "", - "legendFormat": "out (p{{quantile}})", + "legendFormat": "p99 In", + "queryType": "randomWalk", "refId": "B" + }, + { + "exemplar": true, + "expr": "packets_rates_pps_out{instance=~\"$instance\",quantile=\"0.9\"}", + "hide": false, + "interval": "", + "legendFormat": "p90 Out", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "packets_rates_pps_out{instance=~\"$instance\",quantile=\"0.99\"}", + "hide": false, + "interval": "", + "legendFormat": "p99 Out", + "queryType": "randomWalk", + "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Network Packets", + "title": "Packet In/Out", "tooltip": { "shared": true, "sort": 2, @@ -130,7 +502,7 @@ }, "yaxes": [ { - "$$hashKey": "object:156", + "$$hashKey": "object:281", "format": "pps", "label": null, "logBase": 1, @@ -139,7 +511,7 @@ "show": true }, { - "$$hashKey": "object:157", + "$$hashKey": "object:282", "format": "short", "label": null, "logBase": 1, @@ -152,65 +524,2568 @@ "align": false, "alignLevel": null } - } - ], - "refresh": false, - "schemaVersion": 27, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": null, - "current": { - "selected": false, - "text": "pktvisor-gw", - "value": "pktvisor-gw" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 7, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "packets_ipv4{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "IPv4", + "queryType": "randomWalk", + "refId": "A" }, - "datasource": null, - "definition": "label_values(job)", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "job", - "options": [ - { - "selected": false, - "text": "All", - "value": "$__all" - }, - { - "selected": false, - "text": "pktvisor", - "value": "pktvisor" - }, - { - "selected": false, - "text": "pktvisor-dns", - "value": "pktvisor-dns" - }, - { - "selected": true, - "text": "pktvisor-gw", - "value": "pktvisor-gw" - } - ], - "query": { - "query": "label_values(job)", - "refId": "StandardVariableQuery" + { + "exemplar": true, + "expr": "packets_ipv6{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "IPv6", + "queryType": "randomWalk", + "refId": "B" }, - "refresh": 0, - "regex": "/^pktvisor/", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + { + "exemplar": true, + "expr": "packets_tcp{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "TCP", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "packets_udp{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "UDP", + "queryType": "randomWalk", + "refId": "D" + }, + { + "exemplar": true, + "expr": "packets_other_l4{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "Other L4", + "queryType": "randomWalk", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "L3/L4 Protocols", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 11, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "packets_top_geoLoc{instance=~\"$instance\"}/60", + "format": "time_series", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "packets_top_ASN{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "ASN {{name}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top Geo IP/ASN", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:334", + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:335", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": false + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 12, + "y": 15 + }, + "id": 15, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Packets (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (packets_top_ipv4{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top IPv4", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Packets", + "name": "IP" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": false + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Packets (sum)" + }, + "properties": [ + { + "id": "custom.width", + "value": 255 + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 7, + "x": 17, + "y": 15 + }, + "id": 16, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Packets (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (packets_top_geoLoc{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top Geo", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Packets", + "name": "Geo" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "Geo": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "unit": "pps" + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 9, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "packets_top_ipv4{instance=~\"$instance\"}/60", + "format": "time_series", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "packets_top_ipv6{instance=~\"$instance\"}/60", + "format": "time_series", + "hide": false, + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top IPs", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": false + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 12, + "y": 22 + }, + "id": 18, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Packets (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (packets_top_ipv6{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top IPv6", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Packets", + "name": "IP" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": false + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 7, + "x": 17, + "y": 22 + }, + "id": 17, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Packets (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (packets_top_ASN{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top ASN", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Packets", + "name": "Geo" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "Geo": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 6, + "panels": [], + "title": "DNS", + "type": "row" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 0, + "y": 30 + }, + "id": 23, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "/^sample_rate$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "dns_wire_packets_deep_samples{instance=~\"$instance\"}/dns_wire_packets_total{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "sample_rate", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Deep Inspection", + "type": "gauge" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 3, + "y": 30 + }, + "id": 24, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "/^dns_rates_total\\{instance=\"gw\", job=\"pktvisor\", quantile=\"0\\.95\"\\}$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "dns_rates_total{instance=~\"$instance\",quantile=\"0.95\"}", + "hide": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Avg Rate p95", + "type": "gauge" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 12, + "y": 30 + }, + "id": 37, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "displayLabels": [], + "legend": { + "displayMode": "hidden", + "placement": "right", + "values": [] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "dns_top_qtype{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "QTypes", + "type": "piechart" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 15, + "y": 30 + }, + "id": 38, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "displayLabels": [], + "legend": { + "displayMode": "hidden", + "placement": "right", + "values": [] + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {} + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "dns_top_rcode{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Result Codes", + "type": "piechart" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 14, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:584", + "alias": "p99", + "color": "#96D98D", + "lines": false, + "pointradius": 1, + "points": true + }, + { + "$$hashKey": "object:605", + "alias": "p90", + "color": "#37872D" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_rates_total{instance=~\"$instance\",quantile=\"0.9\"}", + "interval": "", + "legendFormat": "p90", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_rates_total{instance=~\"$instance\",quantile=\"0.99\"}", + "hide": false, + "interval": "", + "legendFormat": "p99", + "queryType": "randomWalk", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Packets (In+Out)", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 37 + }, + "hiddenSeries": false, + "id": 25, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_wire_packets_ipv4{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "IPv4", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_wire_packets_ipv6{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "IPv6", + "queryType": "randomWalk", + "refId": "B" + }, + { + "exemplar": true, + "expr": "dns_wire_packets_tcp{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "TCP", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "dns_wire_packets_udp{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "UDP", + "queryType": "randomWalk", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Protocols", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 44 + }, + "hiddenSeries": false, + "id": 27, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:371", + "alias": "Xact Out (remote server)", + "transform": "negative-Y" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_xact_in_total{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "Xact In (local server)", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_xact_out_total{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "Xact Out (remote server)", + "queryType": "randomWalk", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Transactions", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 44 + }, + "hiddenSeries": false, + "id": 26, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_wire_packets_nxdomain{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "NXDOMAIN", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_wire_packets_srvfail{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "SRVFAIL", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "dns_wire_packets_refused{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "REFUSED", + "queryType": "randomWalk", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Errors", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 51 + }, + "hiddenSeries": false, + "id": 30, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_top_qname2{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_top_qname3{instance=~\"$instance\"}/60", + "hide": false, + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top DNS Names", + "tooltip": { + "shared": false, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": true + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 12, + "y": 51 + }, + "id": 28, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Requests (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (dns_top_qname2{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top QName2", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Requests", + "name": "Name" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Name": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Requests": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": true + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 17, + "y": 51 + }, + "id": 35, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Requests (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (dns_top_qname2{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top QName2", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Requests", + "name": "Name" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Name": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Requests": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 58 + }, + "hiddenSeries": false, + "id": 31, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_top_rcode{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top DNS RCodes", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": true + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 12, + "y": 58 + }, + "id": 29, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Requests (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (dns_top_rcode{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top RCodes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Requests", + "name": "Name" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Name": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Requests": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-RdYlGr" + }, + "custom": { + "align": null, + "displayMode": "auto", + "filterable": true + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "dark-red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 17, + "y": 58 + }, + "id": 36, + "interval": "1m", + "maxDataPoints": 180, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Requests (sum)" + } + ] + }, + "pluginVersion": "7.5.3", + "targets": [ + { + "exemplar": true, + "expr": "sum by (name) (dns_top_qtype{instance=~\"$instance\"})", + "format": "table", + "instant": false, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Top QTypes", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "Requests", + "name": "Name" + } + } + }, + { + "id": "groupBy", + "options": { + "fields": { + "IP": { + "aggregations": [], + "operation": "groupby" + }, + "Name": { + "aggregations": [], + "operation": "groupby" + }, + "Packets": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + }, + "Requests": { + "aggregations": [ + "sum" + ], + "operation": "aggregate" + } + } + } + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 64 + }, + "hiddenSeries": false, + "id": 34, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "$$hashKey": "object:621", + "alias": "Out p95", + "transform": "negative-Y" + }, + { + "$$hashKey": "object:628", + "alias": "Out p99", + "lines": false, + "pointradius": 1, + "points": true, + "transform": "negative-Y" + }, + { + "$$hashKey": "object:678", + "alias": "In p99", + "lines": false, + "pointradius": 1, + "points": true + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_xact_in_quantiles_us{instance=~\"$instance\",quantile=\"0.95\"}", + "interval": "", + "legendFormat": "In p95", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "dns_xact_out_quantiles_us{instance=~\"$instance\",quantile=\"0.95\"}", + "hide": false, + "interval": "", + "legendFormat": "Out p95", + "queryType": "randomWalk", + "refId": "B" + }, + { + "exemplar": true, + "expr": "dns_xact_out_quantiles_us{instance=~\"$instance\",quantile=\"0.99\"}", + "hide": false, + "interval": "", + "legendFormat": "Out p99", + "queryType": "randomWalk", + "refId": "C" + }, + { + "exemplar": true, + "expr": "dns_xact_in_quantiles_us{instance=~\"$instance\",quantile=\"0.99\"}", + "hide": false, + "interval": "", + "legendFormat": "In p99", + "queryType": "randomWalk", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DNS Transaction", + "tooltip": { + "shared": false, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "µs", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 65 + }, + "hiddenSeries": false, + "id": 32, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_top_qtype{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top DNS QTypes", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "description": "", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 72 + }, + "hiddenSeries": false, + "id": 33, + "interval": "1m", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "maxDataPoints": 180, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "dns_top_udp_ports{instance=~\"$instance\"}/60", + "interval": "", + "legendFormat": "{{name}}", + "queryType": "randomWalk", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top DNS Ports", + "tooltip": { + "shared": false, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:281", + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:282", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "1m", + "schemaVersion": 27, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": {}, + "datasource": "${DS_GRAFANACLOUD-NS1RD81-PROM}", + "definition": "label_values(instance)", + "description": null, + "error": null, + "hide": 0, + "includeAll": true, + "label": null, + "multi": false, + "name": "instance", + "options": [], + "query": { + "query": "label_values(instance)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "datasource": "grafanacloud-ns1rd81-prom", + "description": null, + "error": null, + "filters": [], + "hide": 0, + "label": null, + "name": "Filters", + "skipUrlSync": false, + "type": "adhoc" } ] }, @@ -220,7 +3095,7 @@ }, "timepicker": {}, "timezone": "", - "title": "pktvisor", - "uid": "2dObW-wGk", - "version": 11 + "title": "pktvisor - Prometheus", + "uid": "MFI2PQlGk", + "version": 45 } \ No newline at end of file