[
  {
    "path": ".gitignore",
    "content": "configs/lokocfg.vars\ndashboards/.*\n"
  },
  {
    "path": "LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, \"control\" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising permissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, \"submitted\" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of this License; and\nYou must cause any modified files to carry prominent notices stating that You changed the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.\nYou may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n"
  },
  {
    "path": "README.md",
    "content": "# Kinvolk service mesh benchmark suite\n\nThis is v2.0 release of our benchmark automation suite.\n\nPlease refer to the [1.0 release](tree/release-1.0) for automation discussed in our [2019 blog post](https://kinvolk.io/blog/2019/05/kubernetes-service-mesh-benchmarking/).\n\n# Content\n\nThe suite includes:\n- orchestrator [tooling](orchestrator) and [Helm charts](configs/orchestrator)\n    for deploying benchmark clusters from an orchestrator cluster\n    - metrics of all benchmark clusters will be scraped and made available in\n      the orchestrator cluster\n- a stand-alone benchmark cluster [configuration](configs/equinix-metal-cluster.lokocfg)\n    for use with [Lokomotive](https://github.com/kinvolk/lokomotive/releases/)\n- helm charts for deploying [Emojivoto](configs/emojivoto)\n    to provide application endpoints to run benchmarks against\n- helm charts for deploying a [wrk2 benchmark job](configs/benchmark) as well\n  as a job to create\n    [summary metrics of multiple benchmark runs](configs/metrics-merger)\n- Grafana [dashboards](dashboards/) to view benchmark metrics\n\n## Run a benchmark\n\nPrerequisites:\n- cluster is set up\n- push gateway is installed\n- grafana dashboards are uploaded to Grafana\n- applications are installed\n\n1. Start the benchmark:\n   ```shell\n   $ helm install --create-namespace benchmark --namespace benchmark configs/benchmark\n   ```\n   This will start a 120s, 3000RPS benchmark against 10 emojivoto app\n   instances, with 96 threads / simultaneous connections.\n   See the helm chart [values](configs/benchmark/values.yaml) for all\n   parameters, and use helm command line parameters for different values (eg.\n   `--set wrk2.RPS=\"500\"` to change target RPS).\n2. Refer to the \"wrk2 cockpit\" grafana dashboard for live metrics\n3. After the run concluded, run the \"metrics-merger\" job to update summary\n   metrics:\n   ```shell\n   $ helm install --create-namespace --namespace metrics-merger \\\n                                   metrics-merger configs/metrics-merger/\n   ```\n   This will update the \"wrk2 summary\" dashboard.\n\n## Run a benchmark suite\n\nThe benchmark suite script will install applications and service meshes, and\nrun several benchmarks in a loop.\n\nUse the supplied `scripts/run_benchmarks.sh` to run a full benchmark suite:\n5 runs of 10 minutes each for 500-5000 RPS, in 500 RPS increases, with 128 threads,\nfor \"bare metal\", linkerd, and istio service meshes, against 60 emojivoto\ninstances.\n\n# Creating prerequisites\n## Set up a cluster\n\nWe use [Equinix Metal](https:/metal.equinix.com/) infrastructure to run the benchmark\non, AWS S3 for sharing cluster state, and AWS Route53 for the clusters' public\nDNS entries. You'll need a Equinix Metal account and respective API token as well as\nan AWS account and accompanying secret key before you can provision a cluster.\n\nYou'll also need a recent version of [Lokomotive](https://github.com/kinvolk/lokomotive/releases/).\n\n1. Make the authentication tokens available to the `lokoctl` command.  You can do this in a couple of ways. For example, exporting your authentication tokens:\n   ```\n   export PACKET_AUTH_TOKEN=\"Your Equinix Metal Auth Token\"\n   export AWS_ACCESS_KEY_ID=\"your access key for AWS\"\n   export AWS_SECRET_ACCESS_KEY=\"your secret for the above access key\"\n   ```\n2. Create the Route53 hosted zone that will be used by the cluster. And an S3 bucket and Dynamo tables for storing Lokomotive's state. Check out Lokomotive's documentation for [Using S3 as backend](https://kinvolk.io/docs/lokomotive/latest/configuration-reference/backend/s3/) for how to do this.\n\n3. Create `configs/lokocfg.vars` by copying the example file `configs/lokocfg.vars.example`, and editing its contents.\n   ```\n   metal_project_id = \"[ID of the equinix metal project to deploy to]\"\n   route53_zone = \"[cluster's route53 zone]\"\n   state_s3_bucket = \"[PRIVATE AWS S3 bucket to share cluster state in]\"\n   state_s3_key = \"[key in S3 bucket, e.g. cluster name]\"\n   state_s3_region = \"[AWS S3 region to use]\"\n   lock_dynamodb_table = \"[DynamoDB table name to use as state lock, e.g. cluster name]\"\n   region_private_cidr =  \"[Your Equinix Metal region's private CIDR]\"\n   ssh_pub_keys = [ \"[Your SSH pub keys]\" ]\n   ```\n4. Review the benchmark cluster config in `configs/equinix-metal-cluster.lokocfg`\n5. Provision the cluster by running\n   ```\n   $ cd configs\n   configs $ lokoctl cluster apply\n   ```\n\nAfter provisioning concluded, make sure to run\n```\n$ export KUBECONFIG=assets/cluster-assets/auth/kubeconfig\n```\nto get `kubectl` access to the cluster.\n\n## Deploy prometheus push gateway\n\nThe benchmark load generator will push intermediate run-time metrics as well\nas final latency metrics to a prometheus push gateway.\nA push gateway is currently not bundled with Lokomotive's prometheus\ncomponent. Deploy by issuing\n```\n$ helm install pushgateway --namespace monitoring configs/pushgateway\n```\n\n## Deploy demo apps\n\nDemo apps will be used to run the benchmarks against. We'll use [Linkerd's\nemojivoto](https://github.com/BuoyantIO/emojivoto).\n\nWe will deploy multiple instances of each app to emulate many applications in a\ncluster. For the default set-up, which includes 4 application nodes, we\nrecommend deploying 30 \"bookinfo\" instances, and 40 \"emojivoto\" instances:\n\n```shell\n$ cd configs\n$ for i in $(seq 10) ; do \\\n      helm install --create-namespace emojivoto-$i \\ --namespace emojivoto-$i \\\n                configs/emojivoto \\\n  done\n```\n\n### Upload Grafana dashboard\n\n1. Get the Grafana Admin password from the cluster\n   ```\n   $ kubectl -n monitoring get secret prometheus-operator-grafana -o jsonpath='{.data.admin-password}' | base64 -d && echo\n   ```\n2. Forward the Grafana service port from the cluster\n   ```\n   $ kubectl -n monitoring port-forward svc/prometheus-operator-grafana 3000:80 &\n   ```\n3. Log in to [Grafana](http://localhost:3000/) and create an API key we'll use\n   to upload the dashboard\n4. Upload the dashboard:\n   ```\n   $ cd dashboard\n   dashboard $ ./upload_dashboard.sh \"[API KEY]\" grafana-wrk2-cockpit.json localhost:3000\n   ```\n\n"
  },
  {
    "path": "configs/benchmark/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/benchmark/Chart.yaml",
    "content": "apiVersion: v2\nname: benchmark\ndescription: A Helm chart for Kubernetes\ntype: application\nversion: 0.1.0\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/benchmark/README.md",
    "content": "# benchmark\n\n## Install\n\n```bash\nhelm install --create-namespace benchmark --namespace benchmark .\n```\n\n## Upgrade\n\n```bash\nhelm upgrade benchmark --namespace benchmark .\n```\n\n## Run a scenario\n\n### Deploy Istio\n\n```bash\nlokoctl component apply istio-operator\n```\n\n### Deploy target application first\n\n```bash\ncd configs/emojivoto/\nfor ((i=0;i<10;i++))\ndo\n  kubectl create namespace emojivoto-$i\n  kubectl label namespace emojivoto-$i istio-injection=enabled\n  helm install emojivoto-$i --namespace emojivoto-$i .\ndone\n```\n\n### Deploy benchmark application\n\n```bash\ncd configs/benchmark/\nkubectl create ns benchmark\nkubectl label namespace benchmark istio-injection=enabled\nhelm install benchmark --namespace benchmark . --set wrk2.serviceMesh=istio --set wrk2.app.count=10\n```\n"
  },
  {
    "path": "configs/benchmark/templates/_helpers.tpl",
    "content": "{{- define \"emojivotoURLs\" }}\n{{- $count := .Values.wrk2.app.count | int }}\n{{- range $i, $e := until $count }}\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:nerd_face:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:see_no_evil:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:nerd_face:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:see_no_evil:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:nerd_face:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:see_no_evil:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:nerd_face:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:see_no_evil:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:nerd_face:\"\n        - \"http://web-svc.emojivoto-{{$i}}/leaderboard\"\n        - \"http://web-svc.emojivoto-{{$i}}/api/vote?choice=:see_no_evil:\"\n{{- end -}}\n{{ end }}\n\n{{- define \"bookinfoURLs\" }}\n{{- $count := .Values.wrk2.app.count | int }}\n{{- range $i, $e := until $count }}\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=test\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=normal\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=test\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=normal\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=test\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/productpage?u=normal\"\n        - \"http://productpage.bookinfo-{{$i}}:9080/\"\n{{- end -}}\n{{ end }}\n"
  },
  {
    "path": "configs/benchmark/templates/psp.yaml",
    "content": "apiVersion: policy/v1beta1\nkind: PodSecurityPolicy\nmetadata:\n  name: benchmark-data-plane-{{.Release.Name}}\nspec:\n  allowPrivilegeEscalation: false\n  fsGroup:\n    ranges:\n    - max: 65535\n      min: 1337\n    rule: MustRunAs\n  readOnlyRootFilesystem: false\n  allowedCapabilities:\n  - NET_ADMIN\n  - NET_RAW\n  - NET_BIND_SERVICE\n  - KILL\n  runAsUser:\n    rule: RunAsAny\n  seLinux:\n    rule: RunAsAny\n  supplementalGroups:\n    ranges:\n    - max: 65535\n      min: 10001\n    rule: MustRunAs\n  volumes:\n  - configMap\n  - emptyDir\n  - projected\n  - secret\n  - downwardAPI\n  - persistentVolumeClaim\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: benchmark-psp\n  namespace: {{.Release.Namespace}}\nrules:\n- apiGroups: ['policy','extensions']\n  resources: ['podsecuritypolicies']\n  verbs: ['use']\n  resourceNames: ['benchmark-data-plane-{{.Release.Name}}']\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: benchmark-psp\n  namespace: {{.Release.Namespace}}\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: benchmark-psp\nsubjects:\n- kind: ServiceAccount\n  name: benchmark\n  namespace: {{.Release.Namespace}}\n\n---\n\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: benchmark\n  namespace: {{.Release.Namespace}}\n"
  },
  {
    "path": "configs/benchmark/templates/servicemonitor.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: wrk2-prometheus\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: wrk2-prometheus\nspec:\n  ports:\n  - name: istio\n    port: 4191\n    targetPort: 4191\n  - name: linkerd\n    port: 15090\n    targetPort: 15090\n  selector:\n    app: wrk2-prometheus\n  type: ClusterIP\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: linkerd\n    app: wrk2-prometheus\n    release: prometheus-operator\n  name: linkerd-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: wrk2-prometheus\n  endpoints:\n  - targetPort: 4191\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: istio\n    app: wrk2-prometheus\n    release: prometheus-operator\n  name: istio-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: wrk2-prometheus\n  endpoints:\n  - targetPort: 15090\n    path: /stats/prometheus\n"
  },
  {
    "path": "configs/benchmark/templates/wrk2.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: wrk2-prometheus\n  namespace: {{.Release.Namespace}}\n  labels:\n    jobgroup: wrk2-prometheus\nspec:\n  template:\n    metadata:\n      name: wrk2-prometheus\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        jobgroup: wrk2-prometheus\n        app: wrk2-prometheus\n        custom-affinity: load-generator-node\n    spec:\n      nodeSelector:\n        role: benchmark\n      restartPolicy: Never\n      volumes:\n      - name: tempfs\n        emptyDir:\n          medium: Memory\n      shareProcessNamespace: true\n      serviceAccountName: benchmark\n      containers:\n      - name: wrk2-prometheus\n        image: {{ .Values.wrk2.appImage }}\n        imagePullPolicy: Always\n        volumeMounts:\n        - name: tempfs\n          mountPath: \"/tmpfs\"\n        args:\n        - -p\n        {{- if empty .Values.wrk2.serviceMesh }}\n        - \"http://pushgateway.monitoring:9091/metrics/job/bare-metal/instance/{{.Values.wrk2.app.name}}/run/{{ now | date \"2006-01-02_15:04:05\" }}\"\n        {{- else if eq .Values.wrk2.serviceMesh \"linkerd\" }}\n        - \"http://pushgateway.monitoring:9091/metrics/job/svcmesh-linkerd/instance/{{.Values.wrk2.app.name}}/run/{{ now | date \"2006-01-02_15:04:05\" }}\"\n        {{- else if eq .Values.wrk2.serviceMesh \"istio\" }}\n        - \"http://pushgateway.monitoring:9091/metrics/job/svcmesh-istio/instance/{{.Values.wrk2.app.name}}/run/{{ now | date \"2006-01-02_15:04:05\" }}\"\n        {{- else }}\n        {{ fail \"Please provide a valid 'wrk2.serviceMesh' name, supported names are: 'linkerd', 'istio'. For no service mesh skip the variable.\" }}\n        {{- end }}\n        - -c\n        - \"{{.Values.wrk2.connections}}\"\n        - -d\n        - \"{{.Values.wrk2.duration}}\"\n        - -r\n        - \"{{.Values.wrk2.RPS}}\"\n        - -i\n        - \"{{.Values.wrk2.initDelay}}\"\n{{- if eq .Values.wrk2.app.name \"emojivoto\" }}\n{{- template \"emojivotoURLs\" . }}\n{{- else if eq .Values.wrk2.app.name \"bookinfo\" }}\n{{- template \"bookinfoURLs\" . }}\n{{- end }}\n"
  },
  {
    "path": "configs/benchmark/values.yaml",
    "content": "wrk2:\n  duration: 120\n  connections: 96\n  RPS: 3000\n  initDelay: 0\n  serviceMesh: \"\"\n  app:\n    name: emojivoto\n    count: \"10\"\n  appImage: quay.io/kinvolk/wrk2-prometheus\n"
  },
  {
    "path": "configs/bookinfo/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/bookinfo/Chart.yaml",
    "content": "apiVersion: v2\nname: bookinfo\ndescription: A Helm chart for Kubernetes\n\n# A chart can be either an 'application' or a 'library' chart.\n#\n# Application charts are a collection of templates that can be packaged into versioned archives\n# to be deployed.\n#\n# Library charts provide useful utilities or functions for the chart developer. They're included as\n# a dependency of application charts to inject those utilities and functions into the rendering\n# pipeline. Library charts do not define any templates and therefore cannot be deployed.\ntype: application\n\n# This is the chart version. This version number should be incremented each time you make changes\n# to the chart and its templates, including the app version.\n# Versions are expected to follow Semantic Versioning (https://semver.org/)\nversion: 0.1.0\n\n# This is the version number of the application being deployed. This version number should be\n# incremented each time you make changes to the application. Versions are not expected to\n# follow Semantic Versioning. They should reflect the version the application is using.\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/bookinfo/README.md",
    "content": "# bookinfo app\n\n## Install\n\n```bash\nhelm install --create-namespace bookinfo-1 --namespace bookinfo-1 .\n```\n\n## Upgrade\n\n```bash\nhelm upgrade bookinfo-1 --namespace bookinfo-1 .\n```\n"
  },
  {
    "path": "configs/bookinfo/templates/deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: details-v1\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: details\n    version: v1\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: details\n      version: v1\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: details\n        version: v1\n    spec:\n      nodeSelector:\n        role: workload\n      securityContext:\n        runAsNonRoot: true\n        runAsUser: 65534\n        runAsGroup: 65534\n      serviceAccountName: bookinfo-details\n      containers:\n      - name: details\n        image: docker.io/istio/examples-bookinfo-details-v1:1.15.1\n        imagePullPolicy: IfNotPresent\n        ports:\n        - containerPort: 9080\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: ratings-v1\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: ratings\n    version: v1\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: ratings\n      version: v1\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: ratings\n        version: v1\n    spec:\n      nodeSelector:\n        role: workload\n      securityContext:\n        runAsNonRoot: true\n        runAsUser: 65534\n        runAsGroup: 65534\n      serviceAccountName: bookinfo-ratings\n      containers:\n      - name: ratings\n        image: docker.io/istio/examples-bookinfo-ratings-v1:1.15.1\n        imagePullPolicy: IfNotPresent\n        ports:\n        - containerPort: 9080\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: reviews-v1\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: reviews\n    version: v1\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: reviews\n      version: v1\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: reviews\n        version: v1\n    spec:\n      nodeSelector:\n        role: workload\n      serviceAccountName: bookinfo-reviews\n      containers:\n      - name: reviews\n        image: docker.io/istio/examples-bookinfo-reviews-v1:1.15.1\n        imagePullPolicy: IfNotPresent\n        env:\n        - name: LOG_DIR\n          value: \"/tmp/logs\"\n        ports:\n        - containerPort: 9080\n        volumeMounts:\n        - name: tmp\n          mountPath: /tmp\n        - name: wlp-output\n          mountPath: /opt/ibm/wlp/output\n      volumes:\n      - name: wlp-output\n        emptyDir: {}\n      - name: tmp\n        emptyDir: {}\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: reviews-v2\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: reviews\n    version: v2\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: reviews\n      version: v2\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: reviews\n        version: v2\n    spec:\n      nodeSelector:\n        role: workload\n      serviceAccountName: bookinfo-reviews\n      containers:\n      - name: reviews\n        image: docker.io/istio/examples-bookinfo-reviews-v2:1.15.1\n        imagePullPolicy: IfNotPresent\n        env:\n        - name: LOG_DIR\n          value: \"/tmp/logs\"\n        ports:\n        - containerPort: 9080\n        volumeMounts:\n        - name: tmp\n          mountPath: /tmp\n        - name: wlp-output\n          mountPath: /opt/ibm/wlp/output\n      volumes:\n      - name: wlp-output\n        emptyDir: {}\n      - name: tmp\n        emptyDir: {}\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: reviews-v3\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: reviews\n    version: v3\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: reviews\n      version: v3\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: reviews\n        version: v3\n    spec:\n      nodeSelector:\n        role: workload\n      serviceAccountName: bookinfo-reviews\n      containers:\n      - name: reviews\n        image: docker.io/istio/examples-bookinfo-reviews-v3:1.15.1\n        imagePullPolicy: IfNotPresent\n        env:\n        - name: LOG_DIR\n          value: \"/tmp/logs\"\n        ports:\n        - containerPort: 9080\n        volumeMounts:\n        - name: tmp\n          mountPath: /tmp\n        - name: wlp-output\n          mountPath: /opt/ibm/wlp/output\n      volumes:\n      - name: wlp-output\n        emptyDir: {}\n      - name: tmp\n        emptyDir: {}\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: productpage-v1\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: productpage\n    version: v1\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: productpage\n      version: v1\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: productpage\n        version: v1\n    spec:\n      nodeSelector:\n        role: workload\n      serviceAccountName: bookinfo-productpage\n      containers:\n      - name: productpage\n        image: docker.io/istio/examples-bookinfo-productpage-v1:1.15.1\n        imagePullPolicy: IfNotPresent\n        ports:\n        - containerPort: 9080\n        volumeMounts:\n        - name: tmp\n          mountPath: /tmp\n      volumes:\n      - name: tmp\n        emptyDir: {}\n"
  },
  {
    "path": "configs/bookinfo/templates/psp.yml",
    "content": "apiVersion: policy/v1beta1\nkind: PodSecurityPolicy\nmetadata:\n  name: bookinfo-data-plane-{{.Release.Name}}\nspec:\n  allowPrivilegeEscalation: false\n  fsGroup:\n    ranges:\n    - max: 65535\n      min: 1337\n    rule: MustRunAs\n  readOnlyRootFilesystem: false\n  allowedCapabilities:\n  - NET_ADMIN\n  - NET_RAW\n  - NET_BIND_SERVICE\n  requiredDropCapabilities:\n  - ALL\n  runAsUser:\n    rule: RunAsAny\n  seLinux:\n    rule: RunAsAny\n  supplementalGroups:\n    ranges:\n    - max: 65535\n      min: 10001\n    rule: MustRunAs\n  volumes:\n  - configMap\n  - emptyDir\n  - projected\n  - secret\n  - downwardAPI\n  - persistentVolumeClaim\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: bookinfo-psp\n  namespace: {{.Release.Namespace}}\nrules:\n- apiGroups: ['policy','extensions']\n  resources: ['podsecuritypolicies']\n  verbs: ['use']\n  resourceNames: ['bookinfo-data-plane-{{.Release.Name}}']\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: bookinfo-psp\n  namespace: {{.Release.Namespace}}\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: bookinfo-psp\nsubjects:\n- kind: ServiceAccount\n  name: default\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: bookinfo-details\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: bookinfo-productpage\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: bookinfo-ratings\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: bookinfo-reviews\n  namespace: {{.Release.Namespace}}\n"
  },
  {
    "path": "configs/bookinfo/templates/service-account.yaml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: bookinfo-details\n  namespace: {{.Release.Namespace}}\n  labels:\n    account: details\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: bookinfo-ratings\n  namespace: {{.Release.Namespace}}\n  labels:\n    account: ratings\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: bookinfo-reviews\n  labels:\n    account: reviews\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: bookinfo-productpage\n  namespace: {{.Release.Namespace}}\n  labels:\n    account: productpage\n"
  },
  {
    "path": "configs/bookinfo/templates/service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: details\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: details\n    service: details\n    app: bookinfo\nspec:\n  ports:\n  - port: 9080\n    name: http\n  selector:\n    app: details\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: ratings\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: ratings\n    service: ratings\n    app: bookinfo\nspec:\n  ports:\n  - port: 9080\n    name: http\n  selector:\n    app: ratings\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: reviews\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: reviews\n    service: reviews\n    app: bookinfo\nspec:\n  ports:\n  - port: 9080\n    name: http\n  selector:\n    app: reviews\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: productpage\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: productpage\n    service: productpage\n    app: bookinfo\nspec:\n  ports:\n  - port: 9080\n    name: http\n  selector:\n    app: productpage\n"
  },
  {
    "path": "configs/bookinfo/templates/servicemonitor.yaml",
    "content": "apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: linkerd\n    app: bookinfo\n    release: prometheus-operator\n  name: linkerd-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: bookinfo\n  endpoints:\n  - targetPort: 4191\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: istio\n    app: bookinfo\n    release: prometheus-operator\n  name: istio-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: bookinfo\n  endpoints:\n  - targetPort: 15090\n    path: /stats/prometheus\n"
  },
  {
    "path": "configs/bookinfo/values.yaml",
    "content": ""
  },
  {
    "path": "configs/dockerfiles/jobrunner/Dockerfile",
    "content": "FROM fedora:32\n\nRUN dnf install -y gettext openssh-clients \\\n    && dnf clean all\n"
  },
  {
    "path": "configs/dockerfiles/jobrunner/Makefile",
    "content": "build-image:\n\tdocker build -t quay.io/kinvolk/smb-jobrunner .\n\npush-image: build-image\n\tdocker push quay.io/kinvolk/smb-jobrunner\n"
  },
  {
    "path": "configs/emojivoto/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/emojivoto/Chart.yaml",
    "content": "apiVersion: v2\nname: emojivoto\ndescription: A Helm chart for Kubernetes\n\n# A chart can be either an 'application' or a 'library' chart.\n#\n# Application charts are a collection of templates that can be packaged into versioned archives\n# to be deployed.\n#\n# Library charts provide useful utilities or functions for the chart developer. They're included as\n# a dependency of application charts to inject those utilities and functions into the rendering\n# pipeline. Library charts do not define any templates and therefore cannot be deployed.\ntype: application\n\n# This is the chart version. This version number should be incremented each time you make changes\n# to the chart and its templates, including the app version.\n# Versions are expected to follow Semantic Versioning (https://semver.org/)\nversion: 0.1.0\n\n# This is the version number of the application being deployed. This version number should be\n# incremented each time you make changes to the application. Versions are not expected to\n# follow Semantic Versioning. They should reflect the version the application is using.\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/emojivoto/README.md",
    "content": "# Emojivoto app\n\n## Install\n\n```\nhelm install --create-namespace emojivoto-1 --namespace emojivoto-1 .\n```\n\n## Upgrade\n\n```\nhelm upgrade emojivoto-1 --namespace emojivoto-1 .\n```\n"
  },
  {
    "path": "configs/emojivoto/templates/deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app.kubernetes.io/name: emoji\n    app.kubernetes.io/part-of: emojivoto\n    app.kubernetes.io/version: v10\n  name: emoji\n  namespace: {{.Release.Namespace}}\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: emoji-svc\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: emoji-svc\n    spec:\n      nodeSelector:\n        role: workload\n      securityContext:\n        runAsNonRoot: true\n        runAsUser: 65534\n        runAsGroup: 65534\n      containers:\n      - env:\n        - name: GRPC_PORT\n          value: \"8080\"\n        - name: PROM_PORT\n          value: \"8801\"\n        image: buoyantio/emojivoto-emoji-svc:v10\n        name: emoji-svc\n        ports:\n        - containerPort: 8080\n          name: grpc\n        - containerPort: 8801\n          name: prom\n        resources:\n          requests:\n            cpu: 100m\n      serviceAccountName: emoji\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app.kubernetes.io/name: voting\n    app.kubernetes.io/part-of: emojivoto\n    app.kubernetes.io/version: v10\n  name: voting\n  namespace: {{.Release.Namespace}}\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: voting-svc\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: voting-svc\n    spec:\n      nodeSelector:\n        role: workload\n      securityContext:\n        runAsNonRoot: true\n        runAsUser: 65534\n        runAsGroup: 65534\n      containers:\n      - env:\n        - name: GRPC_PORT\n          value: \"8080\"\n        - name: PROM_PORT\n          value: \"8801\"\n        image: buoyantio/emojivoto-voting-svc:v10\n        name: voting-svc\n        ports:\n        - containerPort: 8080\n          name: grpc\n        - containerPort: 8801\n          name: prom\n        resources:\n          requests:\n            cpu: 100m\n      serviceAccountName: voting\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app.kubernetes.io/name: web\n    app.kubernetes.io/part-of: emojivoto\n    app.kubernetes.io/version: v10\n  name: web\n  namespace: {{.Release.Namespace}}\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: web-svc\n  template:\n    metadata:\n      annotations:\n        linkerd.io/inject: enabled\n      labels:\n        app: web-svc\n    spec:\n      nodeSelector:\n        role: workload\n      securityContext:\n        runAsNonRoot: true\n        runAsUser: 65534\n        runAsGroup: 65534\n      containers:\n      - env:\n        - name: WEB_PORT\n          value: \"8080\"\n        - name: EMOJISVC_HOST\n          value: emoji-svc.{{.Release.Namespace}}:8080\n        - name: VOTINGSVC_HOST\n          value: voting-svc.{{.Release.Namespace}}:8080\n        - name: INDEX_BUNDLE\n          value: dist/index_bundle.js\n        image: buoyantio/emojivoto-web:v10\n        name: web-svc\n        ports:\n        - containerPort: 8080\n          name: http\n        resources:\n          requests:\n            cpu: 100m\n      serviceAccountName: web\n"
  },
  {
    "path": "configs/emojivoto/templates/psp.yaml",
    "content": "apiVersion: policy/v1beta1\nkind: PodSecurityPolicy\nmetadata:\n  name: emojivoto-data-plane-{{.Release.Name}}\nspec:\n  allowPrivilegeEscalation: false\n  fsGroup:\n    ranges:\n    - max: 65535\n      min: 1337\n    rule: MustRunAs\n  readOnlyRootFilesystem: false\n  allowedCapabilities:\n  - NET_ADMIN\n  - NET_RAW\n  - NET_BIND_SERVICE\n  requiredDropCapabilities:\n  - ALL\n  runAsUser:\n    rule: RunAsAny\n  seLinux:\n    rule: RunAsAny\n  supplementalGroups:\n    ranges:\n    - max: 65535\n      min: 10001\n    rule: MustRunAs\n  volumes:\n  - configMap\n  - emptyDir\n  - projected\n  - secret\n  - downwardAPI\n  - persistentVolumeClaim\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: emojivoto-psp\n  namespace: {{.Release.Namespace}}\nrules:\n- apiGroups: ['policy','extensions']\n  resources: ['podsecuritypolicies']\n  verbs: ['use']\n  resourceNames: ['emojivoto-data-plane-{{.Release.Name}}']\n---\n\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: emojivoto-psp\n  namespace: {{.Release.Namespace}}\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: emojivoto-psp\nsubjects:\n- kind: ServiceAccount\n  name: default\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: emoji\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: voting\n  namespace: {{.Release.Namespace}}\n- kind: ServiceAccount\n  name: web\n  namespace: {{.Release.Namespace}}\n"
  },
  {
    "path": "configs/emojivoto/templates/service.yml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: emoji-svc\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: emojivoto\nspec:\n  ports:\n  - name: grpc\n    port: 8080\n    targetPort: 8080\n  - name: prom\n    port: 8801\n    targetPort: 8801\n  selector:\n    app: emoji-svc\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: voting-svc\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: emojivoto\nspec:\n  ports:\n  - name: grpc\n    port: 8080\n    targetPort: 8080\n  - name: prom\n    port: 8801\n    targetPort: 8801\n  selector:\n    app: voting-svc\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: web-svc\n  namespace: {{.Release.Namespace}}\n  labels:\n    app: emojivoto\nspec:\n  ports:\n  - name: http\n    port: 80\n    targetPort: 8080\n  selector:\n    app: web-svc\n  type: ClusterIP\n"
  },
  {
    "path": "configs/emojivoto/templates/serviceaccount.yml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: emoji\n  namespace: {{.Release.Namespace}}\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: voting\n  namespace: {{.Release.Namespace}}\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: web\n  namespace: {{.Release.Namespace}}\n"
  },
  {
    "path": "configs/emojivoto/templates/servicemonitor.yaml",
    "content": "apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: linkerd\n    app: emojivoto\n    release: prometheus-operator\n  name: linkerd-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: emojivoto\n  endpoints:\n  - targetPort: 4191\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    servicemesh: istio\n    app: emojivoto\n    release: prometheus-operator\n  name: istio-proxies\n  namespace: {{.Release.Namespace}}\nspec:\n  selector:\n    matchLabels:\n      app: emojivoto\n  endpoints:\n  - targetPort: 15090\n    path: /stats/prometheus\n"
  },
  {
    "path": "configs/emojivoto/values.yaml",
    "content": ""
  },
  {
    "path": "configs/equinix-metal-cluster.lokocfg",
    "content": "# Variables\nvariable \"metal_project_id\" {}\nvariable \"route53_zone\" {}\nvariable \"state_s3_bucket\" {}\nvariable \"state_s3_key\" {}\nvariable \"state_s3_region\" {}\nvariable \"lock_dynamodb_table\" {}\nvariable \"ssh_pub_keys\" {}\nvariable \"region_private_cidr\" {}\n\n# Cluster config\nbackend \"s3\" {\n  bucket         = var.state_s3_bucket\n  key            = var.state_s3_key\n  region         = var.state_s3_region\n  dynamodb_table = var.lock_dynamodb_table\n}\n\ncluster \"packet\" {\n  project_id   = var.metal_project_id\n  cluster_name = \"test-wrk2\"\n  facility     = \"dfw2\"\n\n  # no t1.small in DFW2\n  controller_type = \"x1.small.x86\"\n  asset_dir        = \"./assets\"\n  controller_count = 1\n\n  ssh_pubkeys = var.ssh_pub_keys\n\n  management_cidrs  = [\"0.0.0.0/0\"]\n  node_private_cidr = var.region_private_cidr\n\n  dns {\n    zone = var.route53_zone\n    provider = \"route53\"\n  }\n\n  worker_pool \"workload\" {\n    count = 6\n    node_type = \"m2.xlarge.x86\"\n    labels    = {\n        \"role\" = \"workload\"\n    }\n  }\n\n  # Reserved for the load generator\n  worker_pool \"loadgenerator\" {\n    count = 1\n    node_type = \"m2.xlarge.x86\"\n    labels    = {\n        \"role\" = \"benchmark\"\n    }\n  }\n}\n\n\n# Component config\ncomponent \"openebs-operator\" {}\n\ncomponent \"openebs-storage-class\" {\n  storage-class \"openebs-test-sc\" {\n    replica_count = 1\n    default = true\n  }\n}\n\ncomponent \"prometheus-operator\" {\n  prometheus {\n    watch_labeled_service_monitors = \"false\"\n    watch_labeled_prometheus_rules = \"false\"\n  }\n  namespace = \"monitoring\"\n}\n\n# uncomment, then `lokoctl component apply <component>` to install\n#\n#component \"experimental-istio-operator\" {\n#      enable_monitoring = true\n#}\n#\n#component \"experimental-linkerd\" {\n#      enable_monitoring = true\n#}\n\n"
  },
  {
    "path": "configs/lokocfg.vars.example",
    "content": "metal_project_id = \"[ID of the equinix metal project to deploy to]\"\nroute53_zone = \"[cluster's route53 zone. Needs to already exist]\"\nstate_s3_bucket = \"[PRIVATE AWS S3 bucket to share cluster state in. Needs to already exist]\"\nstate_s3_key = \"[key in S3 bucket, e.g. cluster name]\"\nstate_s3_region = \"[AWS S3 region to use]\"\nlock_dynamodb_table = \"[DynamoDB table name to use as state lock, e.g. cluster name. Needs to already exist]\"\nregion_private_cidr =  \"[Your Equinix Metal region's private CIDR]\"\nssh_pub_keys = [ \"[Your SSH pub keys]\" ]\n"
  },
  {
    "path": "configs/metrics-merger/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/metrics-merger/Chart.yaml",
    "content": "apiVersion: v2\nname: metrics-merger\ndescription: A Helm chart for Kubernetes\ntype: application\nversion: 0.1.0\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/metrics-merger/README.md",
    "content": "# metrics merger\n\n## Install\n\n```\nhelm install metrics-merger --create-namespace --namespace metrics-merger .\n```\n\n## Updgrade\n\n```\nhelm upgrade metrics-merger --namespace metrics-merger .\n```\n\n## Uninstall\n\n```\nhelm uninstall metrics-merger --namespace metrics-merger\n```\n"
  },
  {
    "path": "configs/metrics-merger/templates/metrics-merger.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: wrk2-metrics-merger\n  labels:\n    jobgroup: wrk2-metrics-merger\n  namespace: {{.Release.Namespace}}\nspec:\n  template:\n    metadata:\n      name: wrk2-metrics-merger\n      labels:\n        jobgroup: wrk2-metrics-merger\n        app: wrk2-metrics-merger\n        custom-affinity: load-generator-node\n    spec:\n      restartPolicy: Never\n      securityContext:\n        runAsUser: 10001\n      nodeSelector:\n        role: benchmark\n      containers:\n      - name: metrics-merger\n        image: quay.io/kinvolk/svcmesh-bench-results-merger\n        imagePullPolicy: Always\n        env:\n        - name: PROMETHEUS_URL\n          value: {{ .Values.prometheusServiceUrl }}\n        args:\n        - {{ .Values.prometheusServiceUrl }}\n        - {{ .Values.pushgatewayURL }}\n"
  },
  {
    "path": "configs/metrics-merger/values.yaml",
    "content": "prometheusServiceUrl: \"http://prometheus-operator-kube-p-prometheus.monitoring:9090\"\npushgatewayURL: \"pushgateway.monitoring:9091\"\n"
  },
  {
    "path": "configs/orchestrator/.gitignore",
    "content": "values-real.yaml\n"
  },
  {
    "path": "configs/orchestrator/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/orchestrator/Chart.yaml",
    "content": "apiVersion: v2\nname: orchestrator\ndescription: A Helm chart for Kubernetes\n\n# A chart can be either an 'application' or a 'library' chart.\n#\n# Application charts are a collection of templates that can be packaged into versioned archives\n# to be deployed.\n#\n# Library charts provide useful utilities or functions for the chart developer. They're included as\n# a dependency of application charts to inject those utilities and functions into the rendering\n# pipeline. Library charts do not define any templates and therefore cannot be deployed.\ntype: application\n\n# This is the chart version. This version number should be incremented each time you make changes\n# to the chart and its templates, including the app version.\n# Versions are expected to follow Semantic Versioning (https://semver.org/)\nversion: 0.1.0\n\n# This is the version number of the application being deployed. This version number should be\n# incremented each time you make changes to the application. Versions are not expected to\n# follow Semantic Versioning. They should reflect the version the application is using.\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/orchestrator/README.md",
    "content": "# Orchestrator\n\nThis chart is used to deploy the orchestrator application which can be used to deploy benchmarking clusters, run benchmarks on them, etc. This chart can be deployed on any Lokomotive cluster regardless or the region, the underlying architecture or cloud provider.\n\n## General Usage\n\n### Generate Ephemeral SSH Key Pair\n\nGenerate SSH key pair, which will be used to install the benchmarking clusters:\n\n```bash\nexport KEY_PATH=\"${HOME}/.ssh/id_rsa.bc-${RANDOM}\"\nssh-keygen -t rsa -b 8192 -f \"${KEY_PATH}\" -N \"\" -C \"<please provide email id>\"\n```\n### Install\n\nRun the following command to install the helm chart:\n\n```bash\nhelm install \\\n    --values=values-real.yaml \\\n    --set-file runScript=run.sh \\\n    --set-file sshKey.public=\"${KEY_PATH}\".pub \\\n    --set-file sshKey.private=\"${KEY_PATH}\" \\\n    --create-namespace \\\n    --namespace orchestrator \\\n    orchestrator .\n```\n\nCopy the the [values.yaml](values.yaml) file and make changes as necessary and rename it to `values-real.yaml`.\n\nUpdate the path of the SSH keys as required.\n\n### Upgrade\n\n```bash\nhelm upgrade \\\n    --values=values-real.yaml \\\n    --set-file runScript=run.sh \\\n    --set-file sshKey.public=\"${KEY_PATH}\".pub \\\n    --set-file sshKey.private=\"${KEY_PATH}\" \\\n    --namespace orchestrator \\\n    orchestrator .\n```\n\n### Delete\n\n```\nhelm uninstall orchestrator\nkubectl delete ns orchestrator\n```\n\n## Writing a script\n\n- Write a script that deploys the cluster and installs the components on Lokomotive cluster.\n- Followed by cluster and component installation design your script to deploy target benchmarking applications.\n- Start off using the scaffold provided in [run.sh](cluster-install-configs/run.sh).\n- Take inspiration from the existing [run-smi-benchmark.sh](cluster-install-configs/run-smi-benchmark.sh)\n\n## Clean up benchmarking clusters\n\nExec into the debug pod:\n\n```bash\nkubectl -n orchestrator exec -it $(kubectl -n orchestrator get pod -l app=debug-jobs -o name) bash\n```\n\nRun the clean up script:\n\n```bash\nbash /scripts/cleanup.sh\n```\n\n## Debug failed cluster\n\nExec into the debug pod:\n\n```bash\nkubectl -n orchestrator exec -it $(kubectl -n orchestrator get pod -l app=debug-jobs -o name) bash\n```\n\nYou can find all the cluster assets and related config in the `/clusters` directory. You can use these assets to interact with the cluster.\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/aws/aws.lokocfg",
    "content": "variable \"cluster_name\" {}\nvariable \"ssh_pubkey\" {}\nvariable \"route53_zone\" {}\nvariable \"route53_zone_id\" {}\nvariable \"aws_access_key_id\" {}\nvariable \"aws_secret_access_key\" {}\nvariable \"region\" {}\nvariable \"benchmark_worker_count\" {}\nvariable \"benchmark_instance_type\" {}\nvariable \"benchmark_os_arch\" {}\nvariable \"benchmark_os_channel\" {}\n\ncluster \"aws\" {\n  asset_dir        = \"./assets\"\n  cluster_name     = var.cluster_name\n  controller_count = 1\n  controller_type  = \"t3.xlarge\"\n  dns_zone         = var.route53_zone\n  dns_zone_id      = var.route53_zone_id\n  region           = var.region\n  enable_csi       = true\n  ssh_pubkeys      = [var.ssh_pubkey]\n\n  # ignore_x509_cn_check = true\n\n  worker_pool \"general\" {\n    count         = 2\n    instance_type = \"t3.xlarge\"\n    ssh_pubkeys   = [var.ssh_pubkey]\n  }\n\n  worker_pool \"benchmark\" {\n    count         = var.benchmark_worker_count\n    instance_type = var.benchmark_instance_type\n    os_arch       = var.benchmark_os_arch\n    os_channel    = var.benchmark_os_channel\n    ssh_pubkeys   = [var.ssh_pubkey]\n\n    taints = {\n      \"role\" = \"benchmark:NoSchedule\"\n    }\n\n    labels = {\n      \"role\" = \"benchmark\"\n    }\n\n    # TODO: remove this once https://github.com/kinvolk/lokomotive/issues/839 is fixed.\n    lb_http_port  = 8080\n    lb_https_port = 8443\n  }\n}\n\ncomponent \"aws-ebs-csi-driver\" {\n  enable_default_storage_class = true\n  enable_volume_scheduling     = true\n  enable_volume_resizing       = true\n  enable_volume_snapshot       = true\n\n  node_affinity {\n    key      = \"beta.kubernetes.io/arch\"\n    operator = \"In\"\n    values   = [\"amd64\"]\n  }\n}\n\ncomponent \"prometheus-operator\" {\n  prometheus {\n    watch_labeled_service_monitors = \"false\"\n    watch_labeled_prometheus_rules = \"false\"\n    storage_size                   = \"100Gi\"\n\n    ingress {\n      # OC prometheus should be enabled to scrape this URL.\n      host = \"prometheus.${var.cluster_name}.${var.route53_zone}\"\n    }\n\n    external_labels = {\n      \"cluster\" = var.cluster_name\n    }\n\n    node_selector = {\n      \"beta.kubernetes.io/arch\" = \"amd64\"\n    }\n  }\n\n  alertmanager_node_selector = {\n    \"beta.kubernetes.io/arch\" = \"amd64\"\n  }\n}\n\ncomponent \"contour\" {\n  enable_monitoring = true\n\n  node_affinity {\n    key      = \"beta.kubernetes.io/arch\"\n    operator = \"In\"\n    values   = [\"amd64\"]\n  }\n}\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/aws/aws.vars.envsubst",
    "content": "# Cluster specific config.\ncluster_name = \"$CLUSTER_NAME\"\nregion       = \"$REGION\"\n\n# Same across all clusters.\nssh_pubkey            = \"$SSH_PUB_KEY\"\nroute53_zone          = \"$AWS_ROUTE53_ZONE\"\nroute53_zone_id       = \"$AWS_ROUTE53_ZONE_ID\"\naws_access_key_id     = \"$AWS_ACCESS_KEY_ID\"\naws_secret_access_key = \"$AWS_SECRET_ACCESS_KEY\"\n\nbenchmark_worker_count  = $BENCHMARK_WORKER_COUNT\nbenchmark_instance_type = \"$BENCHMARK_INSTANCE_TYPE\"\nbenchmark_os_arch       = \"$BENCHMARK_OS_ARCH\"\nbenchmark_os_channel    = \"$BENCHMARK_OS_CHANNEL\"\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/cleanup-setup.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nfunction log() {\n  local message=\"${1:-\"\"}\"\n  echo -e \"\\\\033[1;37m${message}\\\\033[0m\"\n}\n\nfunction err() {\n  local message=\"${1:-\"\"}\"\n  echo -e >&2 \"\\\\033[1;31m${message}\\\\033[0m\"\n}\n\nbinaries='terraform helm kubectl lokoctl'\nfor b in $binaries\ndo\n  while ! ls \"/binaries/${b}\" >/dev/null 2>&1\n  do\n    log \"Waiting for ${b} to be available...\"\n    sleep 1\n  done\n  log \"Copying /binaries/${b} to /usr/local/bin/\"\n  /bin/cp \"/binaries/${b}\" /usr/local/bin/\ndone\n\necho\nlog \"Now exec into this pod and run\"\nlog \"bash /scripts/cleanup.sh\"\n\nsleep infinity\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/cleanup.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nfunction log() {\n  local message=\"${1:-\"\"}\"\n  echo -e \"\\\\033[1;37m${message}\\\\033[0m\"\n}\n\nfunction err() {\n  local message=\"${1:-\"\"}\"\n  echo -e >&2 \"\\\\033[1;31m${message}\\\\033[0m\"\n}\n\nfor d in $(ls /clusters)\ndo\n  log \"Into dir: /clusters/$d\"\n  cd /clusters/$d\n  lokoctl component delete prometheus-operator --confirm\n  log \"Wait for the BC Prometheus related entries to be cleaned up...\"\n  sleep 90\n  lokoctl component delete external-dns --confirm\n  lokoctl cluster destroy --confirm -v\ndone\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/equinix-metal/equinix-metal.lokocfg",
    "content": "variable \"cluster_name\" {}\nvariable \"facility\" {}\nvariable \"ssh_pubkey\" {}\nvariable \"metal_project_id\" {}\nvariable \"public_eip\" {}\nvariable \"route53_zone\" {}\nvariable \"route53_zone_id\" {}\nvariable \"aws_access_key_id\" {}\nvariable \"aws_secret_access_key\" {}\n\n\ncluster \"packet\" {\n  project_id   = var.metal_project_id\n  cluster_name = var.cluster_name\n  facility     = var.facility\n  ssh_pubkeys = [\n    var.ssh_pubkey\n  ]\n\n  controller_type      = \"t1.small.x86\"\n  asset_dir            = \"./assets\"\n  controller_count     = 1\n  management_cidrs     = [\"0.0.0.0/0\"]\n  node_private_cidr    = \"10.0.0.0/8\"\n  ignore_x509_cn_check = true\n\n\n  dns {\n    zone     = var.route53_zone\n    provider = \"route53\"\n  }\n\n  worker_pool \"workload\" {\n    count     = 6\n    node_type = \"m2.xlarge.x86\"\n    labels    = {\n      \"role\" = \"workload\"\n    }\n  }\n\n  worker_pool \"benchmark\" {\n    count     = 1\n    node_type = \"m2.xlarge.x86\"\n    labels    = {\n      \"role\" = \"benchmark\"\n    }\n  }\n}\n\ncomponent \"openebs-operator\" {}\n\ncomponent \"openebs-storage-class\" {\n  storage-class \"openebs-test-sc\" {\n    replica_count = 1\n    default       = true\n  }\n}\n\ncomponent \"prometheus-operator\" {\n  prometheus {\n    watch_labeled_service_monitors = \"false\"\n    watch_labeled_prometheus_rules = \"false\"\n    storage_size                   = \"100Gi\"\n    ingress {\n      host = \"prometheus.${var.cluster_name}.${var.route53_zone}\"\n    }\n    external_labels = {\n      \"cluster\" = var.cluster_name\n    }\n  }\n}\n\ncomponent \"metrics-server\" {}\n\ncomponent \"experimental-istio-operator\" {\n  enable_monitoring = true\n}\n\ncomponent \"experimental-linkerd\" {\n  enable_monitoring = true\n}\n\n\ncomponent \"contour\" {\n  enable_monitoring = true\n}\n\ncomponent \"metallb\" {\n  address_pools = {\n    default = [var.public_eip]\n  }\n  service_monitor = true\n}\n\ncomponent \"cert-manager\" {\n  namespace       = \"cert-manager\"\n  email           = \"suraj@kinvolk.io\"\n  webhooks        = \"true\"\n  service_monitor = \"true\"\n}\n\n\ncomponent \"external-dns\" {\n  policy   = \"sync\"\n  owner_id = var.cluster_name\n  aws {\n    zone_id               = var.route53_zone_id\n    aws_access_key_id     = var.aws_access_key_id\n    aws_secret_access_key = var.aws_secret_access_key\n  }\n\n  service_monitor = true\n}\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/equinix-metal/equinix-metal.vars.envsubst",
    "content": "# Randomly generated\ncluster_name = \"$CLUSTER_NAME\"\n\n# Change per facility\nfacility   = \"$REGION\"\npublic_eip = \"$PUBLIC_EIP\"\n\n# Fixed across deployments\nssh_pubkey            = \"$SSH_PUB_KEY\"\nmetal_project_id      = \"$EQUINIX_METAL_PROJECT_ID\"\nroute53_zone          = \"$AWS_ROUTE53_ZONE\"\nroute53_zone_id       = \"$AWS_ROUTE53_ZONE_ID\"\naws_access_key_id     = \"$AWS_ACCESS_KEY_ID\"\naws_secret_access_key = \"$AWS_SECRET_ACCESS_KEY\"\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/run-smi-benchmark.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nfunction log() {\n  local message=\"${1:-\"\"}\"\n  echo -e \"\\\\033[1;37m${message}\\\\033[0m\"\n}\n\nfunction err() {\n  local message=\"${1:-\"\"}\"\n  echo -e >&2 \"\\\\033[1;31m${message}\\\\033[0m\"\n}\n\nfunction verify_binaries_download() {\n  binaries='terraform helm kubectl lokoctl'\n  for b in $binaries\n  do\n    while ! ls \"/binaries/${b}\" >/dev/null 2>&1\n    do\n      log \"Waiting for ${b} to be available...\"\n      sleep 1\n    done\n    log \"Copying /binaries/${b} to /usr/local/bin/\"\n    /bin/cp \"/binaries/${b}\" /usr/local/bin/\n  done\n}\n\nverify_binaries_download\n\nlog \"Cluster name: ${CLUSTER_NAME}\"\n\ncd /clusters\nmkdir -p \"${CLUSTER_NAME}\" && cd \"${CLUSTER_NAME}\"\ncp /scripts/\"${CLOUD}\".lokocfg .\ncp /scripts/\"${CLOUD}\".vars.envsubst .\n\npublic_key=$(cat ~/.ssh/id_rsa.pub)\nexport SSH_PUB_KEY=${public_key}\nenvsubst < \"${CLOUD}\".vars.envsubst > lokocfg.vars\neval $(ssh-agent)\nssh-add ~/.ssh/id_rsa\nssh-add -L\n\nlokoctl cluster apply -v --confirm --skip-components\n\nmkdir -p ~/.kube\ncp ./assets/cluster-assets/auth/kubeconfig ~/.kube/config\n\nn=0\nuntil [ \"$n\" -ge 10 ]\ndo\n  lokoctl component apply openebs-operator openebs-storage-class prometheus-operator metrics-server contour metallb cert-manager external-dns && break\n  n=$((n+1))\n  sleep 5\n  log \"retry #${n}\"\n  log \"retrying 'lokoctl component apply' again...\"\ndone\n\n# Make an entry in the OC about this BC\n# This uses service account credentials to talk to apiserver\nkubectl -n monitoring patch prometheus prometheus-operator-kube-p-prometheus --type merge --patch '{\"spec\":{\"additionalScrapeConfigs\":{\"name\":\"scrape-config\",\"key\":\"scrape.yaml\"}}}'\n\nif ! kubectl -n monitoring get secret scrape-config; then\n  err \"could not find secret 'scrape-config' in 'monitoring' namespace on orchestrating cluster\"\n  cat > /tmp/scrape.yaml <<EOF\n- job_name: 'federate'\n  scrape_interval: 15s\n\n  honor_labels: true\n  metrics_path: '/federate'\n\n  params:\n    'match[]':\n    - '{job=~\"node-exporter|kube-state-metrics|istio-operator|istiod|emoji-svc|voting-svc|web-svc|details|productpage|ratings|reviews|linkerd-controller-api|linkerd-dst|linkerd-identity|linkerd-proxy-injector|linkerd-sp-validator|linkerd-tap|linkerd-web|pushgateway|kubelet\"}'\n    - 'node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate'\n    - '{__name__=~\"job:.*\"}'\n\n  static_configs:\n  - targets:\nEOF\n  log \"creating secret 'scrape-config' in 'monitoring' namespace on orchestrating cluster\"\n  kubectl -n monitoring create secret generic scrape-config --from-file=/tmp/scrape.yaml\nfi\n\nkubectl -n monitoring get secret scrape-config -ojsonpath='{.data.scrape\\.yaml}' | base64 -d > /tmp/scrape.yaml\necho \"    - 'prometheus.$CLUSTER_NAME.dev.lokomotive-k8s.net'\" | tee -a /tmp/scrape.yaml\nkubectl -n monitoring create secret generic scrape-config --from-file=/tmp/scrape.yaml --dry-run=client -o yaml | kubectl -n monitoring apply -f -\nlog \"updated scrape config\"\ncat /tmp/scrape.yaml\n\n# Wait for sometime because prometheus can take some time to start scraping\nlog \"waiting for promtheus to apply above setting...\"\nsleep 180\n\ncp -r /binaries/service-mesh-benchmark .\n\n# Number of workload application deployments to do.\nworkload_num=60\n\nfunction install_emojivoto() {\n  local mesh=\"${1}\"\n\n  cd /clusters/\"${CLUSTER_NAME}\"/service-mesh-benchmark/configs/emojivoto/\n\n  local i\n  for ((i = 0; i < workload_num; i++))\n  do\n    {\n      kubectl create namespace \"emojivoto-${i}\"\n\n      [ \"$mesh\" == \"istio\" ] && \\\n          kubectl label namespace \"emojivoto-${i}\" istio-injection=enabled\n\n      helm install --timeout=10m --create-namespace \"emojivoto-${i}\" \\\n        --namespace \"emojivoto-${i}\" --wait \\\n        /clusters/\"${CLUSTER_NAME}\"/service-mesh-benchmark/configs/emojivoto/ || true\n\n      # Retry pod injection only if the mesh is involved.\n      if [ \"$mesh\" != \"bare-metal\" ]\n      then\n        # Run until injection of proxy happens\n        while true\n        do\n          log \"Checking if the proxy is injected in namespace emojivoto-${i}\"\n          # If there is any pod with READY column as either 0/2, 1/2 or 2/2 then this means that the\n          # pods were injected with proxy.\n          output=$(kubectl get pods -n \"emojivoto-${i}\" | awk '{print $2}' | grep 2) || true\n          if [ -z \"${output}\" ]\n          then\n            kubectl delete pods --all -n \"emojivoto-${i}\"\n            sleep 10\n          else\n            break\n          fi\n        done\n      fi\n\n      # Run until all pods are in Running state\n      while true\n      do\n        # To verify that the emojivoto pods are up and running following should grep for three pods\n        # that are in Running state. If three is not the result then try again.\n        output=$(kubectl get pods -n \"emojivoto-${i}\" | grep Running | wc -l) || true\n        if [ \"${output}\" = \"3\" ]\n        then\n          break\n        fi\n        log \"All pods not in 'Running' state in emojivoto-${i} namespace.\"\n        sleep 5\n      done\n\n      output=$(kubectl get pods -n \"emojivoto-${i}\")\n      printf \"\\nPods in the emojivoto-${i} namespace.\\n${output}\\n\\n\"\n    } &\n\n    # If this sleep is not added then threads equal to the number of workload_num are created and\n    # due to this helm gives timeout in installing some releases. This happens either because\n    # apiserver is bombarded with requests or because the mutatingwebhook cannot inject the\n    # container.\n    sleep 3\n  done\n\n  wait\n}\n\nfunction cleanup_emojivoto() {\n  local i\n  for ((i = 0; i < workload_num; i++))\n  do\n    {\n      helm uninstall \"emojivoto-${i}\" --namespace \"emojivoto-${i}\" || true\n      kubectl delete ns \"emojivoto-${i}\"\n    } &\n  done\n\n  wait\n}\n\n# Deploy pushgateway in monitoring namespace\nfunction install_pushgateway() {\n  cd /clusters/\"${CLUSTER_NAME}\"/service-mesh-benchmark/configs/pushgateway\n  helm install --timeout=10m pushgateway --namespace monitoring . || true\n}\n\nfunction install_mesh() {\n  local mesh=\"${1}\"\n  cd /clusters/\"${CLUSTER_NAME}\"\n\n  if [ \"${mesh}\" = \"bare-metal\" ]; then\n    return\n\n  elif [ \"${mesh}\" = \"linkerd\" ]; then\n    log \"installing mesh: ${mesh}\"\n    lokoctl component apply experimental-linkerd\n\n    # Let linkerd get ready\n    log \"Waiting for linkerd to be ready...\"\n    sleep 60\n\n    log \"Pods in the linkerd namespace.\"\n    kubectl get pods -n linkerd\n\n  else\n    log \"installing mesh: ${mesh}\"\n    lokoctl component apply experimental-istio-operator\n\n    # Let isito get ready\n    log \"Waiting for istio to be ready...\"\n    sleep 60\n\n    log \"Pods in the istio-operator namespace.\"\n    kubectl get pods -n istio-operator\n    log \"Pods in the istio-system namespace.\"\n    kubectl get pods -n istio-system\n  fi\n}\n\nfunction cleanup_mesh() {\n  local mesh=\"${1}\"\n\n  if [ \"${mesh}\" = \"bare-metal\" ]; then\n    return\n\n  elif [ \"${mesh}\" = \"linkerd\" ]; then\n    log \"cleaning mesh: ${mesh}\"\n    lokoctl component delete experimental-linkerd --delete-namespace --confirm\n\n  else\n    log \"cleaning mesh: ${mesh}\"\n\n    # Extra cleanup to do after istio because it does not do it automatically.\n    kubectl get -n istio-system istiooperators.install.istio.io istiocontrolplane -o json | sed 's/\"istio-finalizer.install.istio.io\"//' | kubectl apply -f -\n    lokoctl component delete experimental-istio-operator --confirm --delete-namespace\n    kubectl delete $(kubectl get clusterroles -o name | grep istio) \\\n      $(kubectl get clusterrolebindings -o name | grep istio) \\\n      $(kubectl get crd -o name | grep istio) \\\n      $(kubectl get validatingwebhookconfigurations -o name | grep istio) \\\n      $(kubectl get mutatingwebhookconfigurations -o name | grep istio)\n  fi\n}\n\nfunction wait_for_job() {\n  local ns=\"${1}\"\n  local job=\"${2}\"\n\n  # Wait for the job to finish\n  while true\n  do\n    complete=$(kubectl -n \"${ns}\" get job \"${job}\" -o jsonpath='{.status.completionTime}')\n    #\n    if [ -z \"${complete}\" ]; then\n      log \"waiting for job ${job} to finish in ${ns} namespace\"\n    else\n      break\n    fi\n    sleep 10\n  done\n}\n\nfunction run_benchmark() {\n  local mesh=\"${1}\"\n  local rps=\"${2}\"\n  local ind=\"${3}\"\n  local name=\"benchmark-${mesh}-${rps}-${ind}\"\n\n  kubectl create ns \"${name}\"\n\n  svcmesh=\"${mesh}\"\n  if [ \"${svcmesh}\" = \"bare-metal\" ]; then\n    svcmesh=\"\"\n  elif [ \"${svcmesh}\" = \"linkerd\" ]; then\n    kubectl annotate namespace \"${name}\" linkerd.io/inject=enabled\n  else\n    kubectl label namespace \"${name}\" istio-injection=enabled\n  fi\n\n  cd /clusters/\"${CLUSTER_NAME}\"/service-mesh-benchmark/configs/benchmark/\n  helm install --timeout=10m \"${name}\" --namespace \"${name}\" \\\n    . --set wrk2.serviceMesh=\"${svcmesh}\" \\\n      --set wrk2.app.count=\"${workload_num}\" \\\n      --set wrk2.RPS=\"${rps}\" \\\n      --set wrk2.duration=600 \\\n      --set wrk2.connections=128\n\n  log \"Pods in the ${name} namespace.\"\n  kubectl get pods -n \"${name}\"\n\n  wait_for_job \"${name}\" wrk2-prometheus\n}\n\nfunction run_merge_job() {\n  local mesh=\"${1}\"\n  local rps=\"${2}\"\n  local ind=\"${3}\"\n  local name=\"metrics-merger-${mesh}-${rps}-${ind}\"\n\n  cd /clusters/\"${CLUSTER_NAME}\"/service-mesh-benchmark/configs/metrics-merger/\n  helm install --timeout=10m \"${name}\" --create-namespace --namespace \"${name}\" .\n\n  wait_for_job \"${name}\" wrk2-metrics-merger\n}\n\ninstall_pushgateway\n\nfor rps in 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500; do\n\n  for ((i=0;i<5;i++))\n  do\n\n    for mesh in bare-metal linkerd istio\n    do\n      install_mesh \"${mesh}\"\n      install_emojivoto \"${mesh}\"\n      run_benchmark \"${mesh}\" \"${rps}\" \"${i}\"\n      run_merge_job \"${mesh}\" \"${rps}\" \"${i}\"\n      cleanup_emojivoto\n      cleanup_mesh \"${mesh}\"\n    done\n  done\ndone\n"
  },
  {
    "path": "configs/orchestrator/cluster-install-configs/run.sh",
    "content": "#!/bin/bash\n\nset -euo pipefail\n\nfunction log() {\n  local message=\"${1:-\"\"}\"\n  echo -e \"\\\\033[1;37m${message}\\\\033[0m\"\n}\n\nfunction err() {\n  local message=\"${1:-\"\"}\"\n  echo -e >&2 \"\\\\033[1;31m${message}\\\\033[0m\"\n}\n\nfunction verify_binaries_download() {\n  binaries='terraform helm kubectl lokoctl'\n  for b in $binaries\n  do\n    while ! ls \"/binaries/${b}\" >/dev/null 2>&1\n    do\n      log \"Waiting for ${b} to be available...\"\n      sleep 1\n    done\n    log \"Copying /binaries/${b} to /usr/local/bin/\"\n    /bin/cp \"/binaries/${b}\" /usr/local/bin/\n  done\n}\n\nverify_binaries_download\n\nlog \"Cluster name: ${CLUSTER_NAME}\"\n\n# Always store the cluster configuration in the /clusters directory so that even if this pods fails\n# it can be cleaned up later using the debug jobs pod.\ncd /clusters\nmkdir -p \"${CLUSTER_NAME}\" && cd \"${CLUSTER_NAME}\"\n\n# Configs are mounted in /scripts dir so copy from there.\ncp /scripts/\"${CLOUD}\".lokocfg .\ncp /scripts/\"${CLOUD}\".vars.envsubst .\n\npublic_key=$(cat ~/.ssh/id_rsa.pub)\nexport SSH_PUB_KEY=${public_key}\nenvsubst < \"${CLOUD}\".vars.envsubst > lokocfg.vars\neval $(ssh-agent)\nssh-add ~/.ssh/id_rsa\nssh-add -L\n\nlokoctl cluster apply -v --confirm --skip-components\n\nmkdir -p ~/.kube\ncp ./assets/cluster-assets/auth/kubeconfig ~/.kube/config\n\nn=0\nuntil [ \"$n\" -ge 10 ]\ndo\n  # Edit this to install the components you want.\n  lokoctl component apply <component names> && break\n  n=$((n+1))\n  sleep 5\n  log \"retry #${n}\"\n  log \"retrying 'lokoctl component apply' again...\"\ndone\n\n# Current repo `service-mesh-benchmark` is also downloaded in the `/binaries` repository.\n# Add code to run benchmarks after this.\n# ...\n"
  },
  {
    "path": "configs/orchestrator/templates/bc-assets-pvc.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  labels:\n  name: bc-assets\n  namespace: orchestrator\nspec:\n  accessModes:\n  - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\nstatus:\n  accessModes:\n  - ReadWriteOnce\n  capacity:\n    storage: 5Gi\n"
  },
  {
    "path": "configs/orchestrator/templates/binaries-pvc.yaml",
    "content": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  labels:\n  name: binaries\n  namespace: orchestrator\nspec:\n  accessModes:\n  - ReadWriteOnce\n  resources:\n    requests:\n      storage: 500Mi\nstatus:\n  accessModes:\n  - ReadWriteOnce\n  capacity:\n    storage: 500Mi\n"
  },
  {
    "path": "configs/orchestrator/templates/cloud-secrets.yaml",
    "content": "apiVersion: v1\nkind: Secret\nmetadata:\n  name: cloud-secrets\n  namespace: orchestrator\ndata:\n  {{if .Values.clouds.em.token}}\n  EQUINIX_METAL_AUTH_TOKEN: {{ .Values.clouds.em.token | b64enc }}\n  {{end}}\n  {{if .Values.clouds.em.projectID}}\n  EQUINIX_METAL_PROJECT_ID: {{ .Values.clouds.em.projectID | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.accessKeyID}}\n  AWS_ACCESS_KEY_ID: {{ .Values.clouds.aws.accessKeyID | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.secretAccessKey}}\n  AWS_SECRET_ACCESS_KEY: {{ .Values.clouds.aws.secretAccessKey | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.defaultRegion}}\n  AWS_DEFAULT_REGION: {{ .Values.clouds.aws.defaultRegion | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.route53Zone}}\n  AWS_ROUTE53_ZONE: {{ .Values.clouds.aws.route53Zone | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.route53ZoneID}}\n  AWS_ROUTE53_ZONE_ID: {{ .Values.clouds.aws.route53ZoneID | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.benchmarkWorkerCount }}\n  BENCHMARK_WORKER_COUNT: {{ .Values.clouds.aws.benchmarkWorkerCount | quote | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.benchmarkInstanceType }}\n  BENCHMARK_INSTANCE_TYPE: {{ .Values.clouds.aws.benchmarkInstanceType | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.benchmarkOSArch }}\n  BENCHMARK_OS_ARCH: {{ .Values.clouds.aws.benchmarkOSArch | b64enc }}\n  {{end}}\n  {{if .Values.clouds.aws.benchmarkOSChannel }}\n  BENCHMARK_OS_CHANNEL: {{ .Values.clouds.aws.benchmarkOSChannel | b64enc }}\n  {{end}}\n"
  },
  {
    "path": "configs/orchestrator/templates/cluster-install-configs.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: cluster-install-configs\n  namespace: orchestrator\ndata:\n{{ if eq .Values.benchmarkingClusterCloud \"equinix-metal\" }}\n{{ (.Files.Glob \"cluster-install-configs/equinix-metal/equinix-metal.lokocfg\").AsConfig | indent 2 }}\n{{ (.Files.Glob \"cluster-install-configs/equinix-metal/equinix-metal.vars.envsubst\").AsConfig | indent 2 }}\n{{ else if eq .Values.benchmarkingClusterCloud \"aws\" }}\n{{ (.Files.Glob \"cluster-install-configs/aws/aws.lokocfg\").AsConfig | indent 2 }}\n{{ (.Files.Glob \"cluster-install-configs/aws/aws.vars.envsubst\").AsConfig | indent 2 }}\n{{ end }}\n{{ (.Files.Glob \"cluster-install-configs/cleanup.sh\").AsConfig | indent 2 }}\n{{ (.Files.Glob \"cluster-install-configs/cleanup-setup.sh\").AsConfig | indent 2 }}\n  run.sh: |\n{{ .Values.runScript | indent 4 }}\n"
  },
  {
    "path": "configs/orchestrator/templates/debug-jobs.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: debug-jobs\n  name: debug-jobs\n  namespace: orchestrator\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: debug-jobs\n  template:\n    metadata:\n      labels:\n        app: debug-jobs\n        pvc: binaries\n    spec:\n      containers:\n      - image: quay.io/kinvolk/smb-jobrunner\n        name: jobrunner\n        envFrom:\n        - secretRef:\n            name: cloud-secrets\n        command:\n        - bash\n        args:\n        - -c\n        - 'bash /scripts/cleanup-setup.sh'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n        - name: ssh-keys\n          mountPath: /root/.ssh\n          readOnly: true\n        - name: cluster-assets\n          mountPath: /clusters\n        - name: cluster-install-configs\n          mountPath: /scripts\n      serviceAccountName: jobrunner\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n      - name: cluster-assets\n        persistentVolumeClaim:\n          claimName: bc-assets\n      - name: ssh-keys\n        secret:\n          defaultMode: 256\n          secretName: ssh-keys\n      - name: cluster-install-configs\n        configMap:\n          name: cluster-install-configs\n"
  },
  {
    "path": "configs/orchestrator/templates/deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: orchestrator\n  name: orchestrator\n  namespace: orchestrator\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: orchestrator\n  template:\n    metadata:\n      labels:\n        app: orchestrator\n        pvc: binaries\n    spec:\n      containers:\n      - image: quay.io/kinvolk/smb-orchestrator\n        name: orchestrator\n        env:\n        {{ if .Values.clouds.em.regionEIPs -}}\n        - name: REGION_EIPS\n          value: {{.Values.clouds.em.regionEIPs}}\n        {{ end -}}\n        - name: AWS_REGIONS\n          value: {{.Values.clouds.aws.regions}}\n        - name: BENCHMARKING_CLUSTER_CLOUD\n          value: {{.Values.benchmarkingClusterCloud}}\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n        - name: cluster-install-configs\n          mountPath: /scripts\n      serviceAccountName: orchestrator\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n      - name: cluster-install-configs\n        configMap:\n          name: cluster-install-configs\n"
  },
  {
    "path": "configs/orchestrator/templates/download-benchmark-containers.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-benchmark-containers-repository\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-benchmark-containers-repository\n        image: golang\n        env:\n        - name: BRANCH\n          value: {{.Values.benchMarkContainers.branch}}\n        command:\n        - bash\n        args:\n        - -c\n        - 'cd /binaries && git clone https://github.com/kinvolk/benchmark-containers && cd benchmark-containers && git checkout $BRANCH'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/download-charts.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-charts\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-charts\n        image: golang\n        env:\n        - name: BRANCH\n          value: {{.Values.charts.branch}}\n        command:\n        - bash\n        args:\n        - -c\n        - 'cd /binaries && git clone https://github.com/kinvolk/service-mesh-benchmark/ && cd service-mesh-benchmark && git checkout $BRANCH'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/download-helm.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-helm\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-helm\n        image: alpine/helm:{{.Values.helm.version}}\n        command:\n        - sh\n        args:\n        - -c\n        - 'mv /usr/bin/helm /binaries'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/download-kubectl.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-kubectl\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-kubectl\n        image: fedora:32\n        command:\n        - bash\n        args:\n        - -c\n        - 'curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /binaries'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/download-lokoctl.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-lokoctl\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-lokoctl\n        image: golang\n        env:\n        - name: BRANCH\n          value: {{.Values.lokoctl.branch}}\n        command:\n        - bash\n        args:\n        - -c\n        - 'git clone https://github.com/kinvolk/lokomotive && cd lokomotive && git checkout $BRANCH && make build && mv ./lokoctl /binaries'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/download-terraform.yaml",
    "content": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: download-terraform\n  namespace: orchestrator\nspec:\n  template:\n    metadata:\n      labels:\n        pvc: binaries\n    spec:\n      restartPolicy: OnFailure\n      containers:\n      - name: download-terraform\n        image: hashicorp/terraform:{{.Values.terraform.version}}\n        command:\n        - sh\n        args:\n        - -c\n        - 'mv /bin/terraform /binaries'\n        volumeMounts:\n        - name: binaries\n          mountPath: /binaries\n      serviceAccountName: downloader\n      automountServiceAccountToken: false\n      affinity:\n        podAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: pvc\n                operator: In\n                values:\n                - binaries\n            topologyKey: kubernetes.io/hostname\n      volumes:\n      - name: binaries\n        persistentVolumeClaim:\n          claimName: binaries\n"
  },
  {
    "path": "configs/orchestrator/templates/general-config.yaml",
    "content": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: general-config\n  namespace: orchestrator\ndata:\n  # Add more non-secret env vars here.\n  CLOUD: {{ .Values.benchmarkingClusterCloud }}\n"
  },
  {
    "path": "configs/orchestrator/templates/rbac.yaml",
    "content": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: oc-permissions\nrules:\n- apiGroups:\n  - \"\"\n  resources:\n  - secrets\n  verbs:\n  - '*'\n- apiGroups:\n  - monitoring.coreos.com\n  resourceNames:\n  - prometheus-operator-kube-p-prometheus\n  resources:\n  - prometheuses\n  verbs:\n  - patch\n  - get\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: oc-permissions\n  namespace: orchestrator\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: oc-permissions\nsubjects:\n- kind: ServiceAccount\n  name: jobrunner\n  namespace: orchestrator\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: orchestrate-jobs\n  namespace: orchestrator\nrules:\n- apiGroups:\n  - \"batch\"\n  resources:\n  - jobs\n  verbs:\n  - '*'\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: orchestrate-jobs\n  namespace: orchestrator\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: orchestrate-jobs\nsubjects:\n- kind: ServiceAccount\n  name: orchestrator\n  namespace: orchestrator\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: privileged-psp-orchestrator\n  namespace: orchestrator\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: privileged-psp\nsubjects:\n- kind: ServiceAccount\n  name: orchestrator\n  namespace: orchestrator\n- kind: ServiceAccount\n  name: jobrunner\n  namespace: orchestrator\n- kind: ServiceAccount\n  name: downloader\n  namespace: orchestrator\n"
  },
  {
    "path": "configs/orchestrator/templates/serviceaccount.yaml",
    "content": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: orchestrator\n  namespace: orchestrator\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: jobrunner\n  namespace: orchestrator\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: downloader\n  namespace: orchestrator\n"
  },
  {
    "path": "configs/orchestrator/templates/ssh-keys.yaml",
    "content": "apiVersion: v1\nkind: Secret\nmetadata:\n  name: ssh-keys\n  namespace: orchestrator\ndata:\n  id_rsa: {{ .Values.sshKey.private | b64enc }}\n  id_rsa.pub: {{ .Values.sshKey.public | b64enc }}\n"
  },
  {
    "path": "configs/orchestrator/values.yaml",
    "content": "lokoctl:\n  # Use a different branch if you are using experimental version of Lokomotive.\n  branch: master\n\ncharts:\n  # Use a different branch if you are using experimental version of this repository. This is under\n  # charts because the charts under configs repo are downloaded to be deployed on the benchmarking\n  # clusters.\n  branch: master\n\nbenchMarkContainers:\n  # Use a different branch if you are using experimental version of this repository. This is under\n  # charts because the charts under configs repo are downloaded to be deployed on the benchmarking\n  # clusters.\n  branch: master\n\nterraform:\n  version: 0.13.6\n\nhelm:\n  version: 3.5.1\n\nsshKey:\n  # Copy your SSH Key content here.\n  public: ssh-rsa AAAA.YOUR_PUBLIC_KEY\n  private: |\n    -----BEGIN OPENSSH PRIVATE KEY-----\n    YOUR_PRIVATE_KEY\n    -----END OPENSSH PRIVATE KEY-----\n\n# Possible values: [equinix-metal, aws].\nbenchmarkingClusterCloud:\n\n# This is to be set using the helm flag `--set-file`. This script will run on all the benchmarking\n# clusters.\nrunScript:\n\n# Cloud related information.\nclouds:\n  aws:\n    accessKeyID:\n    secretAccessKey:\n    # Don't confuse this with the subsequent regions field. This is only used to export as\n    # `AWS_DEFAULT_REGION`.\n    defaultRegion: eu-central-1\n    route53Zone:\n    route53ZoneID:\n    # List of comma separated regions you want to deploy the benchmarking clusters to. e.g.:\n    # us-east-1,us-west-1\n    regions: us-west-1\n    benchmarkWorkerCount: 1\n    benchmarkInstanceType: t3.medium\n    benchmarkOSArch: amd64\n    benchmarkOSChannel: stable\n\n  em:\n    token:\n    projectID:\n    # List of comma separated region=EIP. This EIP is used to expose the Prometheus on the\n    # benchmarking clusters. Later the orchestrating cluster will scrape the Prometheus on the\n    # benchmarking clusters. e.g.:\n    # sjc1=1.2.3.4,ewr1=5.6.7.8,ams1=9.0.1.2\n    regionEIPs:\n"
  },
  {
    "path": "configs/pushgateway/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*.orig\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/\n"
  },
  {
    "path": "configs/pushgateway/Chart.yaml",
    "content": "apiVersion: v2\nname: pushgateway\ndescription: A Helm chart for Kubernetes\ntype: application\nversion: 0.1.0\nappVersion: 0.1.0\n"
  },
  {
    "path": "configs/pushgateway/README.md",
    "content": "# Prometheus pushgateway\n\n## Install\n\n```\nhelm install pushgateway --namespace monitoring .\n```\n\n## Uninstall\n\n```\nhelm uninstall pushgateway --namespace monitoring\n```\n\n## Install with Ingress\n\nIt is possible to expose the pushgateway publicly via Kubernetes ingress. Since pushgateway does not come with any kind of authentication mechanism of itself we will use the basic authentication mechanism provided by contour. This chart deploys a [contour-authserver](https://github.com/projectcontour/contour-authserver) which authenticates the users.\n\n\nExecute the following steps to expose pushgateway over the internet.\n\n### Prerequisites\n\n- Install contour.\n- Install cert-manager.\n- Install external-dns (optional: If you prefer creating records manually in a DNS provider then you can skip this component).\n\n### Create Password\n\nCreate a file with username and password in htpasswd format:\n\n```bash\ntouch auth\nhtpasswd -b auth user1 password1\nhtpasswd -b auth user2 password2\nhtpasswd -b auth user3 password3\n```\n\nNow create a secret out of that file:\n\n```\nkubectl create secret generic -n monitoring passwords --from-file=auth\nkubectl annotate secret -n monitoring passwords projectcontour.io/auth-type=basic\n```\n\n### Special flags\n\nDeploy the pushgateway with extra information overriding the values file:\n\n```bash\nhelm install pushgateway --namespace monitoring . \\\n    --set ingress.enabled=true \\\n    --set ingress.host=<pushgateway URL host value>\n```\n\nSet the appropriate host value to deploy the pushgateway. This is the URL you will reach out to when accessing pushgateway over the internet.\n\n### Test\n\nWithout password it fails:\n\n```console\n$ curl -I https://pushgateway.foobar.com/metrics\nHTTP/2 401\nwww-authenticate: Basic realm=\"default\", charset=\"UTF-8\"\ndate: Tue, 06 Apr 2021 08:34:41 GMT\nserver: envoy\n```\n\nWith password:\n\n```console\n$ curl --user user1:password1 -s https://pushgateway.foobar.com/metrics | head -5\n# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.\n# TYPE go_gc_duration_seconds summary\ngo_gc_duration_seconds{quantile=\"0\"} 7.0803e-05\ngo_gc_duration_seconds{quantile=\"0.25\"} 0.000107011\ngo_gc_duration_seconds{quantile=\"0.5\"} 0.000119244\n```\n"
  },
  {
    "path": "configs/pushgateway/templates/contour-configs.yaml",
    "content": "{{ if .Values.ingress.enabled }}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: htpasswd\n  namespace: monitoring\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: privileged-psp-monitoring\n  namespace: monitoring\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: privileged-psp\nsubjects:\n- kind: ServiceAccount\n  name: htpasswd\n  namespace: monitoring\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: contour:authserver:htpasswd\nrules:\n- apiGroups:\n  - \"\"\n  resources:\n  - secrets\n  verbs:\n  - get\n  - list\n  - watch\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: contour:authserver:htpasswd\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: contour:authserver:htpasswd\nsubjects:\n- kind: ServiceAccount\n  name: htpasswd\n  namespace: monitoring\n---\napiVersion: v1\nkind: Service\nmetadata:\n  labels:\n    app.kubernetes.io/name: htpasswd\n  name: htpasswd\n  namespace: monitoring\nspec:\n  ports:\n  - name: auth\n    port: 9443\n    protocol: TCP\n    targetPort: 9443\n  selector:\n    app.kubernetes.io/name: htpasswd\n  type: ClusterIP\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app.kubernetes.io/name: htpasswd\n  name: htpasswd\n  namespace: monitoring\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app.kubernetes.io/name: htpasswd\n  template:\n    metadata:\n      labels:\n        app.kubernetes.io/name: htpasswd\n    spec:\n      containers:\n      - args:\n        - htpasswd\n        - --address=:9443\n        - --tls-ca-path=/tls/ca.crt\n        - --tls-cert-path=/tls/tls.crt\n        - --tls-key-path=/tls/tls.key\n        command:\n        - /contour-authserver\n        image: docker.io/projectcontour/contour-authserver:v2\n        imagePullPolicy: IfNotPresent\n        name: htpasswd\n        ports:\n        - containerPort: 9443\n          name: auth\n          protocol: TCP\n        resources:\n          limits:\n            cpu: 100m\n            memory: 90Mi\n        volumeMounts:\n        - mountPath: /tls\n          name: tls\n          readOnly: true\n      serviceAccountName: htpasswd\n      volumes:\n      - name: tls\n        secret:\n          secretName: htpasswd\n---\napiVersion: cert-manager.io/v1alpha3\nkind: Certificate\nmetadata:\n  name: htpasswd\n  namespace: monitoring\nspec:\n  dnsNames:\n  - htpasswd\n  issuerRef:\n    name: selfsigned\n    kind: ClusterIssuer\n  secretName: htpasswd\n---\napiVersion: cert-manager.io/v1alpha3\nkind: ClusterIssuer\nmetadata:\n  name: selfsigned\n  namespace: monitoring\nspec:\n  selfSigned: {}\n---\napiVersion: projectcontour.io/v1alpha1\nkind: ExtensionService\nmetadata:\n  name: htpasswd\n  namespace: monitoring\nspec:\n  protocol: h2\n  services:\n  - name: htpasswd\n    port: 9443\n---\napiVersion: cert-manager.io/v1\nkind: Certificate\nmetadata:\n  name: pushgateway-ingress\n  namespace: monitoring\nspec:\n  dnsNames:\n  - {{ .Values.ingress.host }}\n  secretName: pushgateway-ingress\n  issuerRef:\n    name: {{ .Values.ingress.clusterIssuer }}\n    kind: ClusterIssuer\n---\napiVersion: projectcontour.io/v1\nkind: HTTPProxy\nmetadata:\n  name: pushgateway\n  namespace: monitoring\nspec:\n  virtualhost:\n    fqdn: {{ .Values.ingress.host }}\n    tls:\n      secretName: pushgateway-ingress\n    authorization:\n      extensionRef:\n        name: htpasswd\n        namespace: monitoring\n  routes:\n  - services:\n    - name: pushgateway\n      port: 9091\n{{ end }}\n"
  },
  {
    "path": "configs/pushgateway/templates/deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  annotations:\n    prometheus.io/scrape: 'true'\n  name: pushgateway\n  namespace: monitoring\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: pushgateway\n  template:\n    metadata:\n      name: pushgateway\n      labels:\n        app: pushgateway\n        visualize: \"true\"\n        run: pushgateway\n    spec:\n      containers:\n      - name: pushgateway\n        image: prom/pushgateway\n        args:\n        - --log.level={{ .Values.logLevel }}\n        ports:\n        - name: web\n          containerPort: 9091\n"
  },
  {
    "path": "configs/pushgateway/templates/service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  labels:\n    name: pushgateway\n    visualize: \"true\"\n    app: pushgateway\n  name: pushgateway\n  namespace: monitoring\nspec:\n  selector:\n    app: pushgateway\n  ports:\n  - name: scrape\n    protocol: TCP\n    port: 9091\n"
  },
  {
    "path": "configs/pushgateway/templates/servicemonitor.yaml",
    "content": "apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n    app: pushgateway\n    release: prometheus-operator\n  name: pushgateway\n  namespace: monitoring\nspec:\n  endpoints:\n  - port: scrape\n    interval: \"1s\"\n  namespaceSelector:\n    matchNames:\n    - monitoring\n  selector:\n    matchLabels:\n      app: pushgateway\n"
  },
  {
    "path": "configs/pushgateway/values.yaml",
    "content": "# Possible values are [debug, info, warn, error]\nlogLevel: error\n\ningress:\n  enabled: false\n  host: pushgateway.foobar.com\n  # This cert-manager cluster issuer is already installed in Lokomotive. Find the config here:\n  # https://github.com/kinvolk/lokomotive/blob/715b85028b3814756c79b48ba147ca8c4886ce8f/assets/charts/components/cert-manager/templates/letsencrypt-clusterissuer-prod.yaml\n  clusterIssuer: letsencrypt-production\n"
  },
  {
    "path": "dashboards/download_dashboard.sh",
    "content": "#!/bin/bash\n\n\n[ $# -lt 3 ] && {\n    echo\n    echo \"$0 - download (backup) a Grafana dashboard, write to STDOUT\"\n    echo \"Usage: $0 <grafana-API-key> <dashboard-id> <hostname-and-port> [>dashboard-backup.json]\"\n    echo\n    exit 1\n}\n\napikey=\"$1\"\ndashboard_uid=\"$2\"\nhost=\"$3\"\n\necho \"Downloading dashboard UID $dashboard_uid from $host\" >&2\n\n\ncurl -sH \"Authorization: Bearer $apikey\" \\\n                http://$host/api/dashboards/uid/$dashboard_uid \\\n        | sed -e \"s/\\\"$dashboard_uid\\\"/null/\" -e 's/,\"url\":\"[^\"]\\+\",/,/' | jq\n"
  },
  {
    "path": "dashboards/grafana-wrk2-cockpit-orchestrator.json",
    "content": "{\n  \"meta\": {\n    \"type\": \"db\",\n    \"canSave\": true,\n    \"canEdit\": true,\n    \"canAdmin\": false,\n    \"canStar\": true,\n    \"slug\": \"wrk2-benchmark-cockpit-orchestrator\",\n    \"expires\": \"0001-01-01T00:00:00Z\",\n    \"created\": \"2020-07-28T11:41:35Z\",\n    \"updated\": \"2020-07-31T09:10:37Z\",\n    \"updatedBy\": \"admin\",\n    \"createdBy\": \"admin\",\n    \"version\": 9,\n    \"hasAcl\": false,\n    \"isFolder\": false,\n    \"folderId\": 0,\n    \"folderTitle\": \"General\",\n    \"folderUrl\": \"\",\n    \"provisioned\": false,\n    \"provisionedExternalId\": \"\"\n  },\n  \"dashboard\": {\n    \"annotations\": {\n      \"list\": [\n        {\n          \"builtIn\": 1,\n          \"datasource\": \"-- Grafana --\",\n          \"enable\": true,\n          \"hide\": true,\n          \"iconColor\": \"rgba(0, 211, 255, 1)\",\n          \"name\": \"Annotations & Alerts\",\n          \"type\": \"dashboard\"\n        }\n      ]\n    },\n    \"editable\": true,\n    \"gnetId\": null,\n    \"graphTooltip\": 0,\n    \"id\": 28,\n    \"iteration\": 1596186462226,\n    \"links\": [],\n    \"panels\": [\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 0\n        },\n        \"id\": 8,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=\\\"init\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{exported_job}}: {{exported_instance}} {{run}} \",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"name\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": 1,\n        \"format\": \"s\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 4,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 2\n        },\n        \"id\": 35,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"pluginVersion\": \"6.5.0\",\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_duration{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Benchmark duration\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"avg\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 4,\n          \"w\": 4,\n          \"x\": 2,\n          \"y\": 2\n        },\n        \"id\": 13,\n        \"options\": {\n          \"displayMode\": \"lcd\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"mappings\": [],\n              \"max\": 100,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 80\n                }\n              ]\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=~\\\"(init|run)\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{status}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Progress\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 10,\n          \"w\": 10,\n          \"x\": 6,\n          \"y\": 2\n        },\n        \"hiddenSeries\": false,\n        \"id\": 4,\n        \"legend\": {\n          \"alignAsTable\": false,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": false,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": false,\n            \"legendFormat\": \"Average RPS\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"sum(wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": false,\n            \"legendFormat\": \"Current RPS\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Overall RPS (average and current)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 5,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 2\n        },\n        \"hiddenSeries\": false,\n        \"id\": 15,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{label}}{{thread}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Current RPS, per thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 6\n        },\n        \"id\": 51,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=\\\"init\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{rps}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requested RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"name\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 4,\n          \"x\": 2,\n          \"y\": 6\n        },\n        \"id\": 2,\n        \"links\": [],\n        \"options\": {\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"mappings\": [\n                {\n                  \"id\": 0,\n                  \"op\": \"=\",\n                  \"text\": \"N/A\",\n                  \"type\": 1,\n                  \"value\": \"null\"\n                }\n              ],\n              \"max\": 100,\n              \"min\": 0,\n              \"nullValueMode\": \"connected\",\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 80\n                }\n              ],\n              \"unit\": \"none\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\",\n          \"showThresholdLabels\": false,\n          \"showThresholdMarkers\": true\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": true,\n            \"legendFormat\": \"Average RPS\",\n            \"refId\": \"B\"\n          },\n          {\n            \"expr\": \"sum(wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": true,\n            \"legendFormat\": \"Current RPS\",\n            \"refId\": \"C\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"gauge\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"decimals\": 1,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 5,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 7\n        },\n        \"hiddenSeries\": false,\n        \"id\": 14,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{label}}{{thread}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Average RPS, per thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 9\n        },\n        \"id\": 11,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_thread_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Thread count\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 9\n        },\n        \"id\": 40,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_requests{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requests sent\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 9\n        },\n        \"id\": 10,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_responses{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Responses received\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 0,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 54,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"benchmark-.*\\\", container=~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"}\",\n            \"legendFormat\": \"{{container}} Memory\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar Memory usage - Load generator \",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 8,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 55,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"max(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"$instance.*\\\", container=~\\\"(linkerd|istio)-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"})  by (container)\",\n            \"legendFormat\": \"{{container}} Memory\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar Memory usage - applications (max. across all sidecars)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 56,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"linkerd\\\", container!~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Linkerd total Memory\",\n            \"refId\": \"E\"\n          },\n          {\n            \"expr\": \"sum(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"(istio-.*)\\\", container!~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Istio total Memory\",\n            \"refId\": \"F\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Memory usage - Service mesh control plane\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 0,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 57,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"linkerd-proxy Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"istio-proxy Memory\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"benchmark-.*\\\", container=~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"{{container}} CPU seconds\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar CPU usage - Load generator \",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 8,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 58,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"max(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"$instance.*\\\", container=~\\\"(linkerd|istio)-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"}) by (container)\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"{{container}} CPU seconds\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar CPU usage  - applications (max. across all sidecars)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 59,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"linkerd: destination CPU seconds\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Linkerd total Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Istio total Memory\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"linkerd\\\", container!~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Linkerd total CPU seconds\",\n            \"refId\": \"C\"\n          },\n          {\n            \"expr\": \"sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"istio-.*\\\", container!~\\\".*-proxy\\\",cluster=\\\"$cluster\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Istio total CPU seconds\",\n            \"refId\": \"D\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"CPU utilisation - Service mesh control plane\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"description\": \"\",\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 6,\n          \"x\": 0,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 39,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Mem total\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Mem used\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_node_loadavg{kind!=\\\"raw\\\",exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{kind}} {{interval}}\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_node_meminfo{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=~\\\"(used|total)\\\",cluster=\\\"$cluster\\\"}*1000\",\n            \"legendFormat\": \"Mem {{kind}}\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Load generator node relative CPU load and memory utilisation\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": \"2\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 6,\n          \"x\": 6,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 32,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"$instance.*\\\", container!=\\\"POD\\\",cluster=\\\"$cluster\\\"}\",\n            \"legendFormat\": \"{{container}}-{{namespace}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Application CPU consumption\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 12,\n          \"x\": 12,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 50,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"hideEmpty\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"instance:node_load1_per_cpu:ratio{cluster=\\\"$cluster\\\"}\",\n            \"legendFormat\": \"{{instance}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Cluster node loadavg (1m) per CPU thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"content\": \"<hr>\\n<center><h5> Benchmark results (updated after a benchmark run has concluded.)</h5></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 31\n        },\n        \"id\": 37,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"dateTimeAsIso\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 33\n        },\n        \"id\": 46,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"start\\\",cluster=\\\"$cluster\\\"} * 1000\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"started\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"dateTimeAsIso\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 33\n        },\n        \"id\": 47,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"end\\\",cluster=\\\"$cluster\\\"} * 1000\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"concluded\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"s\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 1,\n          \"x\": 4,\n          \"y\": 33\n        },\n        \"id\": 48,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"duration\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"length\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 33\n        },\n        \"id\": 43,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_run_average_tcp_reconnect_rate{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Avg. TCP reconnects\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 7,\n          \"y\": 33\n        },\n        \"id\": 34,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_thread_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Load generator threads\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 9,\n          \"y\": 33\n        },\n        \"id\": 28,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_requested_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requested RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 11,\n          \"w\": 13,\n          \"x\": 11,\n          \"y\": 33\n        },\n        \"id\": 17,\n        \"options\": {\n          \"displayMode\": \"gradient\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"decimals\": 3,\n              \"mappings\": [],\n              \"max\": 10000,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"#EAB839\",\n                  \"value\": 600\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 1000\n                }\n              ],\n              \"unit\": \"ms\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"vertical\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_latency_ms{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": true,\n            \"intervalFactor\": 1,\n            \"legendFormat\": \"{{p}} percentile\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Latency  percentile histogram (milliseconds)\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 35\n        },\n        \"id\": 27,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_requests{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requests sent\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"decbytes\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 7,\n          \"y\": 35\n        },\n        \"id\": 26,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_bytes_read{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Total bytes read\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 9,\n          \"y\": 35\n        },\n        \"id\": 44,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Effective RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"columns\": [],\n        \"datasource\": null,\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 5,\n          \"x\": 0,\n          \"y\": 36\n        },\n        \"id\": 24,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"Time\",\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"pattern\": \"Time\",\n            \"type\": \"hidden\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"decimals\": 2,\n            \"pattern\": \"/.*/\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_url_call_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{url}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"URL call counts\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"columns\": [],\n        \"datasource\": null,\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 37\n        },\n        \"id\": 22,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": null,\n            \"link\": false,\n            \"mappingType\": 1,\n            \"pattern\": \"Time\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"decimals\": 2,\n            \"pattern\": \"/.*/\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_socket_errors{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"Socket {{t}}\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_http_errors{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"HTTP ret != 200\",\n            \"refId\": \"B\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_requests_timed_out{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"HTTP timeout\",\n            \"refId\": \"C\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Transport Errors\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"columns\": [],\n        \"datasource\": null,\n        \"description\": \"\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 4,\n          \"x\": 7,\n          \"y\": 37\n        },\n        \"id\": 45,\n        \"links\": [],\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"Time\",\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"pattern\": \"Time\",\n            \"type\": \"hidden\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"0.8\",\n              \"1\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_node_loadavg{kind!=\\\"raw\\\",exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{kind}} {{interval}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Load generator node(s) per core / thread CPU load\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 48,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 44\n        },\n        \"id\": 18,\n        \"options\": {\n          \"displayMode\": \"gradient\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"decimals\": 3,\n              \"mappings\": [],\n              \"max\": 10000,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"#EAB839\",\n                  \"value\": 600\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 1000\n                }\n              ],\n              \"unit\": \"ms\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_latency_detailed_ms{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",cluster=\\\"$cluster\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": true,\n            \"intervalFactor\": 1,\n            \"legendFormat\": \" {{p}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Detailed latency  percentile histogram (milliseconds)\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      }\n    ],\n    \"refresh\": false,\n    \"schemaVersion\": 21,\n    \"style\": \"dark\",\n    \"tags\": [],\n    \"templating\": {\n      \"list\": [\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"bc-ams1-2020724212341\",\n            \"value\": \"bc-ams1-2020724212341\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Cluster\",\n          \"multi\": false,\n          \"name\": \"cluster\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress\",\n          \"refresh\": 2,\n          \"regex\": \"/.*cluster=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"bare-metal\",\n            \"value\": \"bare-metal\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Benchmark job\",\n          \"multi\": false,\n          \"name\": \"job\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\"}\",\n          \"refresh\": 2,\n          \"regex\": \"/.*exported_job=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"emojivoto\",\n            \"value\": \"emojivoto\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\",exported_job=\\\"$job\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Target application\",\n          \"multi\": false,\n          \"name\": \"instance\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\",exported_job=\\\"$job\\\"}\",\n          \"refresh\": 2,\n          \"regex\": \"/.*exported_instance=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"2020-07-27_03:45:41\",\n            \"value\": \"2020-07-27_03:45:41\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\",exported_job=\\\"$job\\\",exported_instance=\\\"$instance\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Benchmark run\",\n          \"multi\": false,\n          \"name\": \"run\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress{cluster=\\\"$cluster\\\",exported_job=\\\"$job\\\",exported_instance=\\\"$instance\\\"}\",\n          \"refresh\": 2,\n          \"regex\": \"/.*run=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 2,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        }\n      ]\n    },\n    \"time\": {\n      \"from\": \"2020-07-27T07:54:53.000Z\",\n      \"to\": \"2020-07-27T08:05:58.000Z\"\n    },\n    \"timepicker\": {\n      \"refresh_intervals\": [\n        \"1s\",\n        \"5s\",\n        \"10s\",\n        \"30s\",\n        \"1m\",\n        \"5m\",\n        \"15m\",\n        \"30m\",\n        \"1h\",\n        \"2h\",\n        \"1d\"\n      ]\n    },\n    \"timezone\": \"\",\n    \"title\": \"wrk2 benchmark cockpit (orchestrator)\",\n    \"uid\": null,\n    \"version\": 9\n  }\n}\n"
  },
  {
    "path": "dashboards/grafana-wrk2-cockpit.json",
    "content": "{\n  \"meta\": {\n    \"type\": \"db\",\n    \"canSave\": true,\n    \"canEdit\": true,\n    \"canAdmin\": false,\n    \"canStar\": true,\n    \"slug\": \"wrk2-benchmark-cockpit\",\n    \"expires\": \"0001-01-01T00:00:00Z\",\n    \"created\": \"2020-07-23T17:21:04Z\",\n    \"updated\": \"2020-07-23T17:23:23Z\",\n    \"updatedBy\": \"admin\",\n    \"createdBy\": \"Anonymous\",\n    \"version\": 2,\n    \"hasAcl\": false,\n    \"isFolder\": false,\n    \"folderId\": 0,\n    \"folderTitle\": \"General\",\n    \"folderUrl\": \"\",\n    \"provisioned\": false,\n    \"provisionedExternalId\": \"\"\n  },\n  \"dashboard\": {\n    \"annotations\": {\n      \"list\": [\n        {\n          \"builtIn\": 1,\n          \"datasource\": \"-- Grafana --\",\n          \"enable\": true,\n          \"hide\": true,\n          \"iconColor\": \"rgba(0, 211, 255, 1)\",\n          \"name\": \"Annotations & Alerts\",\n          \"type\": \"dashboard\"\n        }\n      ]\n    },\n    \"editable\": true,\n    \"gnetId\": null,\n    \"graphTooltip\": 0,\n    \"id\": 27,\n    \"iteration\": 1595524872819,\n    \"links\": [],\n    \"panels\": [\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 0\n        },\n        \"id\": 8,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=\\\"init\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{exported_job}}: {{exported_instance}} {{run}} \",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"name\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": 1,\n        \"format\": \"s\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 4,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 2\n        },\n        \"id\": 35,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"pluginVersion\": \"6.5.0\",\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_duration{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Benchmark duration\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"avg\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 4,\n          \"w\": 4,\n          \"x\": 2,\n          \"y\": 2\n        },\n        \"id\": 13,\n        \"options\": {\n          \"displayMode\": \"lcd\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"mappings\": [],\n              \"max\": 100,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 80\n                }\n              ]\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=~\\\"(init|run)\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{status}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Progress\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 10,\n          \"w\": 10,\n          \"x\": 6,\n          \"y\": 2\n        },\n        \"hiddenSeries\": false,\n        \"id\": 4,\n        \"legend\": {\n          \"alignAsTable\": false,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": false,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": false,\n            \"legendFormat\": \"Average RPS\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"sum(wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": false,\n            \"legendFormat\": \"Current RPS\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Overall RPS (average and current)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 5,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 2\n        },\n        \"hiddenSeries\": false,\n        \"id\": 15,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{label}}{{thread}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Current RPS, per thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 6\n        },\n        \"id\": 51,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_progress{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",status=\\\"init\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{rps}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requested RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"name\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 4,\n          \"x\": 2,\n          \"y\": 6\n        },\n        \"id\": 2,\n        \"links\": [],\n        \"options\": {\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"mappings\": [\n                {\n                  \"id\": 0,\n                  \"op\": \"=\",\n                  \"text\": \"N/A\",\n                  \"type\": 1,\n                  \"value\": \"null\"\n                }\n              ],\n              \"max\": 100,\n              \"min\": 0,\n              \"nullValueMode\": \"connected\",\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 80\n                }\n              ],\n              \"unit\": \"none\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\",\n          \"showThresholdLabels\": false,\n          \"showThresholdMarkers\": true\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": true,\n            \"legendFormat\": \"Average RPS\",\n            \"refId\": \"B\"\n          },\n          {\n            \"expr\": \"sum(wrk2_benchmark_current_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": true,\n            \"legendFormat\": \"Current RPS\",\n            \"refId\": \"C\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"gauge\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"decimals\": 1,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 5,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 7\n        },\n        \"hiddenSeries\": false,\n        \"id\": 14,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_average_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{label}}{{thread}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Average RPS, per thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 9\n        },\n        \"id\": 11,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_thread_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Thread count\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 9\n        },\n        \"id\": 40,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_requests{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requests sent\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 9\n        },\n        \"id\": 10,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_responses{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Responses received\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"80%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 0,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 54,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"benchmark-.*\\\", container=~\\\".*-proxy\\\",container!=\\\"\\\"}\",\n            \"legendFormat\": \"{{container}} Memory\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar Memory usage - Load generator \",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": 0,\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 8,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 55,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"max(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"$instance.*\\\", container=~\\\"(linkerd|istio)-proxy\\\",container!=\\\"\\\"})  by (container)\",\n            \"legendFormat\": \"{{container}} Memory\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar Memory usage - applications (max. across all sidecars)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": 0,\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 12\n        },\n        \"hiddenSeries\": false,\n        \"id\": 56,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"linkerd\\\", container!~\\\".*-proxy\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Linkerd total Memory\",\n            \"refId\": \"E\"\n          },\n          {\n            \"expr\": \"sum(container_memory_working_set_bytes{container!~\\\"POD\\\", namespace=~\\\"(istio-.*)\\\", container!~\\\".*-proxy\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Istio total Memory\",\n            \"refId\": \"F\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Memory usage - Service mesh control plane\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 0,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 57,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"linkerd-proxy Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"istio-proxy Memory\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"benchmark-.*\\\", container=~\\\".*-proxy\\\",container!=\\\"\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"{{container}} CPU seconds\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar CPU usage - Load generator \",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 0,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": 0,\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 8,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 58,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"max(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"$instance.*\\\", container=~\\\"(linkerd|istio)-proxy\\\",container!=\\\"\\\"}) by (container)\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"{{container}} CPU seconds\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Sidecar CPU usage  - applications (max. across all sidecars)\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": 0,\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 6,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 18\n        },\n        \"hiddenSeries\": false,\n        \"id\": 59,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": false,\n          \"hideEmpty\": false,\n          \"hideZero\": false,\n          \"max\": true,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"linkerd: destination CPU seconds\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Linkerd total Memory\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Istio total Memory\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"linkerd\\\", container!~\\\".*-proxy\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Linkerd total CPU seconds\",\n            \"refId\": \"C\"\n          },\n          {\n            \"expr\": \"sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"istio-.*\\\", container!~\\\".*-proxy\\\",container!=\\\"\\\"})\",\n            \"legendFormat\": \"Istio total CPU seconds\",\n            \"refId\": \"D\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"CPU utilisation - Service mesh control plane\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"description\": \"\",\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 6,\n          \"x\": 0,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 39,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [\n          {\n            \"alias\": \"Mem total\",\n            \"yaxis\": 2\n          },\n          {\n            \"alias\": \"Mem used\",\n            \"yaxis\": 2\n          }\n        ],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_node_loadavg{kind!=\\\"raw\\\",exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": false,\n            \"legendFormat\": \"{{kind}} {{interval}}\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_node_meminfo{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=~\\\"(used|total)\\\"}*1000\",\n            \"legendFormat\": \"Mem {{kind}}\",\n            \"refId\": \"B\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Load generator node relative CPU load and memory utilisation\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": \"2\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"decbytes\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": \"0\",\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 6,\n          \"x\": 6,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 32,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=~\\\"$instance.*\\\", container!=\\\"POD\\\"}\",\n            \"legendFormat\": \"{{container}}-{{namespace}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Application CPU consumption\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 1,\n        \"fillGradient\": 1,\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 12,\n          \"x\": 12,\n          \"y\": 24\n        },\n        \"hiddenSeries\": false,\n        \"id\": 50,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"hideEmpty\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": true,\n          \"show\": true,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"nullPointMode\": \"null\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"instance:node_load1_per_cpu:ratio\",\n            \"legendFormat\": \"{{instance}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"Cluster node loadavg (1m) per CPU thread\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 2,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": true,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": true\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"content\": \"<hr>\\n<center><h5> Benchmark results (updated after a benchmark run has concluded.)</h5></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 31\n        },\n        \"id\": 37,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"dateTimeAsIso\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 33\n        },\n        \"id\": 46,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"start\\\"} * 1000\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"started\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"dateTimeAsIso\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 33\n        },\n        \"id\": 47,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"end\\\"} * 1000\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"concluded\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"decimals\": null,\n        \"format\": \"s\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 1,\n          \"x\": 4,\n          \"y\": 33\n        },\n        \"id\": 48,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_runtime{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\",kind=\\\"duration\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"length\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 33\n        },\n        \"id\": 43,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(wrk2_benchmark_run_average_tcp_reconnect_rate{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"})\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Avg. TCP reconnects\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 7,\n          \"y\": 33\n        },\n        \"id\": 34,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_thread_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Load generator threads\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 9,\n          \"y\": 33\n        },\n        \"id\": 28,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_requested_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requested RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 11,\n          \"w\": 13,\n          \"x\": 11,\n          \"y\": 33\n        },\n        \"id\": 17,\n        \"options\": {\n          \"displayMode\": \"gradient\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"decimals\": 3,\n              \"mappings\": [],\n              \"max\": 10000,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"#EAB839\",\n                  \"value\": 600\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 1000\n                }\n              ],\n              \"unit\": \"ms\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"vertical\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_latency_ms{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": true,\n            \"intervalFactor\": 1,\n            \"legendFormat\": \"{{p}} percentile\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Latency  percentile histogram (milliseconds)\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 35\n        },\n        \"id\": 27,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_requests{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Requests sent\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"decbytes\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 7,\n          \"y\": 35\n        },\n        \"id\": 26,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_bytes_read{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Total bytes read\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"colorBackground\": false,\n        \"colorValue\": false,\n        \"colors\": [\n          \"#299c46\",\n          \"rgba(237, 129, 40, 0.89)\",\n          \"#d44a3a\"\n        ],\n        \"datasource\": null,\n        \"format\": \"none\",\n        \"gauge\": {\n          \"maxValue\": 100,\n          \"minValue\": 0,\n          \"show\": false,\n          \"thresholdLabels\": false,\n          \"thresholdMarkers\": true\n        },\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 2,\n          \"x\": 9,\n          \"y\": 35\n        },\n        \"id\": 44,\n        \"interval\": null,\n        \"links\": [],\n        \"mappingType\": 1,\n        \"mappingTypes\": [\n          {\n            \"name\": \"value to text\",\n            \"value\": 1\n          },\n          {\n            \"name\": \"range to text\",\n            \"value\": 2\n          }\n        ],\n        \"maxDataPoints\": 100,\n        \"nullPointMode\": \"connected\",\n        \"nullText\": null,\n        \"options\": {},\n        \"postfix\": \"\",\n        \"postfixFontSize\": \"50%\",\n        \"prefix\": \"\",\n        \"prefixFontSize\": \"50%\",\n        \"rangeMaps\": [\n          {\n            \"from\": \"null\",\n            \"text\": \"N/A\",\n            \"to\": \"null\"\n          }\n        ],\n        \"sparkline\": {\n          \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n          \"full\": false,\n          \"lineColor\": \"rgb(31, 120, 193)\",\n          \"show\": false,\n          \"ymax\": null,\n          \"ymin\": null\n        },\n        \"tableColumn\": \"\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_rps{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": \"\",\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Effective RPS\",\n        \"transparent\": true,\n        \"type\": \"singlestat\",\n        \"valueFontSize\": \"50%\",\n        \"valueMaps\": [\n          {\n            \"op\": \"=\",\n            \"text\": \"N/A\",\n            \"value\": \"null\"\n          }\n        ],\n        \"valueName\": \"current\"\n      },\n      {\n        \"columns\": [],\n        \"datasource\": null,\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 5,\n          \"x\": 0,\n          \"y\": 36\n        },\n        \"id\": 24,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"Time\",\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"pattern\": \"Time\",\n            \"type\": \"hidden\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"decimals\": 2,\n            \"pattern\": \"/.*/\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_url_call_count{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{url}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"URL call counts\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"columns\": [],\n        \"datasource\": null,\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 2,\n          \"x\": 5,\n          \"y\": 37\n        },\n        \"id\": 22,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": null,\n            \"link\": false,\n            \"mappingType\": 1,\n            \"pattern\": \"Time\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"decimals\": 2,\n            \"pattern\": \"/.*/\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_socket_errors{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"Socket {{t}}\",\n            \"refId\": \"A\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_http_errors{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"HTTP ret != 200\",\n            \"refId\": \"B\"\n          },\n          {\n            \"expr\": \"wrk2_benchmark_requests_timed_out{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"HTTP timeout\",\n            \"refId\": \"C\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Transport Errors\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"cacheTimeout\": null,\n        \"columns\": [],\n        \"datasource\": null,\n        \"description\": \"\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 7,\n          \"w\": 4,\n          \"x\": 7,\n          \"y\": 37\n        },\n        \"id\": 45,\n        \"links\": [],\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 0,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"Time\",\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"pattern\": \"Time\",\n            \"type\": \"hidden\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"0.8\",\n              \"1\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_run_node_loadavg{kind!=\\\"raw\\\",exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"instant\": true,\n            \"legendFormat\": \"{{kind}} {{interval}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Load generator node(s) per core / thread CPU load\",\n        \"transform\": \"timeseries_to_rows\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 48,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 44\n        },\n        \"id\": 18,\n        \"options\": {\n          \"displayMode\": \"gradient\",\n          \"fieldOptions\": {\n            \"calcs\": [\n              \"lastNotNull\"\n            ],\n            \"defaults\": {\n              \"decimals\": 3,\n              \"mappings\": [],\n              \"max\": 10000,\n              \"min\": 0,\n              \"thresholds\": [\n                {\n                  \"color\": \"green\",\n                  \"value\": null\n                },\n                {\n                  \"color\": \"#EAB839\",\n                  \"value\": 600\n                },\n                {\n                  \"color\": \"red\",\n                  \"value\": 1000\n                }\n              ],\n              \"unit\": \"ms\"\n            },\n            \"override\": {},\n            \"values\": false\n          },\n          \"orientation\": \"horizontal\"\n        },\n        \"pluginVersion\": \"6.5.0\",\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_latency_detailed_ms{exported_instance=\\\"$instance\\\",run=\\\"$run\\\",exported_job=\\\"$job\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": true,\n            \"intervalFactor\": 1,\n            \"legendFormat\": \" {{p}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Detailed latency  percentile histogram (milliseconds)\",\n        \"transparent\": true,\n        \"type\": \"bargauge\"\n      }\n    ],\n    \"refresh\": \"\",\n    \"schemaVersion\": 21,\n    \"style\": \"dark\",\n    \"tags\": [],\n    \"templating\": {\n      \"list\": [\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"isNone\": true,\n            \"selected\": false,\n            \"text\": \"None\",\n            \"value\": \"\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Benchmark job\",\n          \"multi\": false,\n          \"name\": \"job\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress\",\n          \"refresh\": 2,\n          \"regex\": \"/.*exported_job=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"isNone\": true,\n            \"selected\": false,\n            \"text\": \"None\",\n            \"value\": \"\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress{exported_job=\\\"$job\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Target application\",\n          \"multi\": false,\n          \"name\": \"instance\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress{exported_job=\\\"$job\\\"}\",\n          \"refresh\": 2,\n          \"regex\": \"/.*exported_instance=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"isNone\": true,\n            \"selected\": false,\n            \"text\": \"None\",\n            \"value\": \"\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_progress{exported_job=\\\"$job\\\",exported_instance=\\\"$instance\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Benchmark run\",\n          \"multi\": false,\n          \"name\": \"run\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_progress{exported_job=\\\"$job\\\",exported_instance=\\\"$instance\\\"}\",\n          \"refresh\": 2,\n          \"regex\": \"/.*run=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 2,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        }\n      ]\n    },\n    \"time\": {\n      \"from\": \"now-5m\",\n      \"to\": \"now\"\n    },\n    \"timepicker\": {\n      \"refresh_intervals\": [\n        \"1s\",\n        \"5s\",\n        \"10s\",\n        \"30s\",\n        \"1m\",\n        \"5m\",\n        \"15m\",\n        \"30m\",\n        \"1h\",\n        \"2h\",\n        \"1d\"\n      ]\n    },\n    \"timezone\": \"\",\n    \"title\": \"wrk2 benchmark cockpit\",\n    \"uid\": null,\n    \"version\": 2\n  }\n}\n"
  },
  {
    "path": "dashboards/grafana-wrk2-summary-orchestrator.json",
    "content": "{\n  \"meta\": {\n    \"type\": \"db\",\n    \"canSave\": true,\n    \"canEdit\": true,\n    \"canAdmin\": false,\n    \"canStar\": true,\n    \"slug\": \"wrk2-summary-orchestrator\",\n    \"expires\": \"0001-01-01T00:00:00Z\",\n    \"created\": \"2020-07-28T11:50:20Z\",\n    \"updated\": \"2020-07-28T13:18:16Z\",\n    \"updatedBy\": \"admin\",\n    \"createdBy\": \"admin\",\n    \"version\": 21,\n    \"hasAcl\": false,\n    \"isFolder\": false,\n    \"folderId\": 0,\n    \"folderTitle\": \"General\",\n    \"folderUrl\": \"\",\n    \"provisioned\": false,\n    \"provisionedExternalId\": \"\"\n  },\n  \"dashboard\": {\n    \"annotations\": {\n      \"list\": [\n        {\n          \"builtIn\": 1,\n          \"datasource\": \"-- Grafana --\",\n          \"enable\": true,\n          \"hide\": true,\n          \"iconColor\": \"rgba(0, 211, 255, 1)\",\n          \"name\": \"Annotations & Alerts\",\n          \"type\": \"dashboard\"\n        }\n      ]\n    },\n    \"editable\": true,\n    \"gnetId\": null,\n    \"graphTooltip\": 0,\n    \"id\": 29,\n    \"iteration\": 1595941631187,\n    \"links\": [],\n    \"panels\": [\n      {\n        \"content\": \"<h1><center>Benchmark latency summary</center></h1>\\n<hr>\\n<h3><center>Bare Metal, Linkerd, and Istio compared</center></h3>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 0\n        },\n        \"id\": 44,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.5 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 0,\n          \"y\": 3\n        },\n        \"id\": 12,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.75 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 3,\n          \"y\": 3\n        },\n        \"id\": 36,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.9 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 6,\n          \"y\": 3\n        },\n        \"id\": 37,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.99 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 9,\n          \"y\": 3\n        },\n        \"id\": 38,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 12,\n          \"y\": 3\n        },\n        \"id\": 43,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.9999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 15,\n          \"y\": 3\n        },\n        \"id\": 41,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.99999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 18,\n          \"y\": 3\n        },\n        \"id\": 40,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>1.0 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 21,\n          \"y\": 3\n        },\n        \"id\": 39,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 0,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 2,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 1,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 14,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 2,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 23,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 3,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 3,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 4,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 15,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 5,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 24,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 6,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 5,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 7,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 16,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 8,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 25,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 9,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 4,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 10,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 17,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 11,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 26,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 12,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 7,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 13,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 18,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 14,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 27,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 15,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 6,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 16,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 19,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 17,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 28,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 18,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 9,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 19,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 20,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 20,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 29,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 21,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 8,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 0,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 0.5,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 22,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 21,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 23,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 30,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Bare Metal latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 14\n        },\n        \"id\": 63,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 45,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 46,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 48,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 47,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 49,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 50,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 51,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 52,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 16\n        },\n        \"id\": 33,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 6,\n          \"desc\": false\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_4}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit-orchestrator?var-cluster=${__cell_1}&var-job=bare-metal&var-instance=${__cell_3}&var-run=${__cell_4}&from=${__cell_5}&to=${__cell_2}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"bare-metal\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,cluster,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Linkerd latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 25\n        },\n        \"id\": 62,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 54,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 55,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 56,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 57,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 58,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 59,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 60,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 61,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 27\n        },\n        \"id\": 76,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 1,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_4}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit-orchestrator?var-cluster=${__cell_1}&var-job=svcmesh-linkerd&var-instance=${__cell_3}&var-run=${__cell_4}&from=${__cell_5}&to=${__cell_2}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"svcmesh-linkerd\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,cluster,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Istio latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 36\n        },\n        \"id\": 53,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 64,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 65,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 72,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 67,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 71,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 73,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 74,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 75,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 38\n        },\n        \"id\": 77,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 5,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_4}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit-orchestrator?var-cluster=${__cell_1}&var-job=svcmesh-istio&var-instance=${__cell_3}&var-run=${__cell_4}&from=${__cell_5}&to=${__cell_2}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"svcmesh-istio\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,cluster,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      }\n    ],\n    \"refresh\": false,\n    \"schemaVersion\": 21,\n    \"style\": \"dark\",\n    \"tags\": [],\n    \"templating\": {\n      \"list\": [\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"tags\": [],\n            \"text\": \"1500.0\",\n            \"value\": \"1500.0\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_summary_latency_ms\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Requested RPS\",\n          \"multi\": false,\n          \"name\": \"rps\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_summary_latency_ms\",\n          \"refresh\": 2,\n          \"regex\": \"/.*requested_rps=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 4,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"selected\": false,\n            \"tags\": [],\n            \"text\": \"No exclusion\",\n            \"value\": \"No exclusion\"\n          },\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Exclude\",\n          \"multi\": false,\n          \"name\": \"exclude\",\n          \"options\": [\n            {\n              \"selected\": false,\n              \"text\": \"run\",\n              \"value\": \"run\"\n            },\n            {\n              \"selected\": true,\n              \"text\": \"No exclusion\",\n              \"value\": \"No exclusion\"\n            }\n          ],\n          \"query\": \"run,No exclusion\",\n          \"skipUrlSync\": false,\n          \"type\": \"custom\"\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"None\",\n            \"value\": [\n              \"\"\n            ]\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Runs to exclude\",\n          \"multi\": true,\n          \"name\": \"exclude_runs\",\n          \"options\": [\n            {\n              \"isNone\": true,\n              \"selected\": true,\n              \"text\": \"None\",\n              \"value\": \"\"\n            }\n          ],\n          \"query\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\"}\",\n          \"refresh\": 0,\n          \"regex\": \"/.*source_$exclude=\\\"([^\\\"]*)\\\".*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        }\n      ]\n    },\n    \"time\": {\n      \"from\": \"now-5m\",\n      \"to\": \"now\"\n    },\n    \"timepicker\": {\n      \"refresh_intervals\": [\n        \"5s\",\n        \"10s\",\n        \"30s\",\n        \"1m\",\n        \"5m\",\n        \"15m\",\n        \"30m\",\n        \"1h\",\n        \"2h\",\n        \"1d\"\n      ]\n    },\n    \"timezone\": \"\",\n    \"title\": \"wrk2 Summary (orchestrator)\",\n    \"uid\": null,\n    \"version\": 21\n  }\n}\n"
  },
  {
    "path": "dashboards/grafana-wrk2-summary.json",
    "content": "{\n  \"meta\": {\n    \"type\": \"db\",\n    \"canSave\": true,\n    \"canEdit\": true,\n    \"canAdmin\": false,\n    \"canStar\": true,\n    \"slug\": \"wrk2-summary\",\n    \"expires\": \"0001-01-01T00:00:00Z\",\n    \"created\": \"2020-07-25T15:25:31Z\",\n    \"updated\": \"2020-07-28T13:32:27Z\",\n    \"updatedBy\": \"admin\",\n    \"createdBy\": \"Anonymous\",\n    \"version\": 15,\n    \"hasAcl\": false,\n    \"isFolder\": false,\n    \"folderId\": 0,\n    \"folderTitle\": \"General\",\n    \"folderUrl\": \"\",\n    \"provisioned\": false,\n    \"provisionedExternalId\": \"\"\n  },\n  \"dashboard\": {\n    \"annotations\": {\n      \"list\": [\n        {\n          \"builtIn\": 1,\n          \"datasource\": \"-- Grafana --\",\n          \"enable\": true,\n          \"hide\": true,\n          \"iconColor\": \"rgba(0, 211, 255, 1)\",\n          \"name\": \"Annotations & Alerts\",\n          \"type\": \"dashboard\"\n        }\n      ]\n    },\n    \"editable\": true,\n    \"gnetId\": null,\n    \"graphTooltip\": 0,\n    \"id\": 27,\n    \"iteration\": 1595943063198,\n    \"links\": [],\n    \"panels\": [\n      {\n        \"content\": \"<h1><center>Benchmark latency summary</center></h1>\\n<hr>\\n<h3><center>Bare Metal, Linkerd, and Istio compared</center></h3>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 3,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 0\n        },\n        \"id\": 44,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.5 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 0,\n          \"y\": 3\n        },\n        \"id\": 12,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.75 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 3,\n          \"y\": 3\n        },\n        \"id\": 36,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.9 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 6,\n          \"y\": 3\n        },\n        \"id\": 37,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.99 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 9,\n          \"y\": 3\n        },\n        \"id\": 38,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 12,\n          \"y\": 3\n        },\n        \"id\": 43,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.9999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 15,\n          \"y\": 3\n        },\n        \"id\": 41,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>0.99999 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 18,\n          \"y\": 3\n        },\n        \"id\": 40,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"content\": \"<br />\\n<center><b>1.0 percentile</b></center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 3,\n          \"x\": 21,\n          \"y\": 3\n        },\n        \"id\": 39,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 0,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 2,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 1,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 14,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 2,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 23,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 3,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 3,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 4,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 15,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 5,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 24,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 6,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 5,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 7,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 16,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 8,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 25,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 9,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 4,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 10,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 17,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 11,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 26,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 12,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 7,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 13,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 18,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 14,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 27,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 15,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 6,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 16,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 19,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 17,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 28,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 18,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 9,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 19,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 20,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 20,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 29,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 21,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 8,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 0,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 0.5,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"bare\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 22,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 21,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"linkerd\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 1,\n          \"x\": 23,\n          \"y\": 5\n        },\n        \"hiddenSeries\": false,\n        \"id\": 30,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"rightSide\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"istio\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": false\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Bare Metal latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 14\n        },\n        \"id\": 63,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 45,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 46,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 48,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 47,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 49,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 50,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 51,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 16\n        },\n        \"hiddenSeries\": false,\n        \"id\": 52,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"bare-metal\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 16\n        },\n        \"id\": 33,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 4,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_3}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit?var-job=bare-metal&var-instance=${__cell_2}&var-run=${__cell_3}&from=${__cell_4}&to=${__cell_1}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"bare-metal\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Linkerd latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 25\n        },\n        \"id\": 62,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 54,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 55,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 56,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 57,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 58,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 59,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 60,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 27\n        },\n        \"hiddenSeries\": false,\n        \"id\": 61,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-linkerd\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 27\n        },\n        \"id\": 76,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 4,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_3}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit?var-job=svcmesh-linkerd&var-instance=${__cell_2}&var-run=${__cell_3}&from=${__cell_4}&to=${__cell_1}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"svcmesh-linkerd\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      },\n      {\n        \"content\": \"<hr>\\n<h3><center>Istio latency percentiles</center>\",\n        \"datasource\": null,\n        \"gridPos\": {\n          \"h\": 2,\n          \"w\": 24,\n          \"x\": 0,\n          \"y\": 36\n        },\n        \"id\": 53,\n        \"mode\": \"html\",\n        \"options\": {},\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"\",\n        \"transparent\": true,\n        \"type\": \"text\"\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 0,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 64,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.5\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.5 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 2,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 65,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.75\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.75 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 4,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 72,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 6,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 67,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 8,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 71,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 10,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 73,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.9999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.9999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 12,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 74,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"0.99999\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"0.99999 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"aliasColors\": {},\n        \"bars\": false,\n        \"cacheTimeout\": null,\n        \"dashLength\": 10,\n        \"dashes\": false,\n        \"datasource\": null,\n        \"fill\": 3,\n        \"fillGradient\": 0,\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 2,\n          \"x\": 14,\n          \"y\": 38\n        },\n        \"hiddenSeries\": false,\n        \"id\": 75,\n        \"legend\": {\n          \"alignAsTable\": true,\n          \"avg\": false,\n          \"current\": true,\n          \"max\": false,\n          \"min\": false,\n          \"show\": false,\n          \"total\": false,\n          \"values\": true\n        },\n        \"lines\": true,\n        \"linewidth\": 1,\n        \"links\": [],\n        \"nullPointMode\": \"null as zero\",\n        \"options\": {\n          \"dataLinks\": []\n        },\n        \"percentage\": false,\n        \"pluginVersion\": \"6.5.0\",\n        \"pointradius\": 2,\n        \"points\": false,\n        \"renderer\": \"flot\",\n        \"seriesOverrides\": [],\n        \"spaceLength\": 10,\n        \"stack\": false,\n        \"steppedLine\": false,\n        \"targets\": [\n          {\n            \"expr\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\",p=\\\"1.0\\\",exported_job=\\\"svcmesh-istio\\\",source_run!~\\\"$exclude_runs\\\"}\",\n            \"format\": \"time_series\",\n            \"instant\": false,\n            \"legendFormat\": \"Run {{source_run}}\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"thresholds\": [],\n        \"timeFrom\": null,\n        \"timeRegions\": [],\n        \"timeShift\": null,\n        \"title\": \"1.0 percentile\",\n        \"tooltip\": {\n          \"shared\": true,\n          \"sort\": 1,\n          \"value_type\": \"individual\"\n        },\n        \"transparent\": true,\n        \"type\": \"graph\",\n        \"xaxis\": {\n          \"buckets\": null,\n          \"mode\": \"time\",\n          \"name\": null,\n          \"show\": false,\n          \"values\": []\n        },\n        \"yaxes\": [\n          {\n            \"format\": \"ms\",\n            \"label\": null,\n            \"logBase\": 2,\n            \"max\": \"30000\",\n            \"min\": \"0\",\n            \"show\": true\n          },\n          {\n            \"format\": \"short\",\n            \"label\": null,\n            \"logBase\": 1,\n            \"max\": null,\n            \"min\": null,\n            \"show\": false\n          }\n        ],\n        \"yaxis\": {\n          \"align\": false,\n          \"alignLevel\": null\n        }\n      },\n      {\n        \"columns\": [],\n        \"datasource\": \"Prometheus\",\n        \"fontSize\": \"100%\",\n        \"gridPos\": {\n          \"h\": 9,\n          \"w\": 8,\n          \"x\": 16,\n          \"y\": 38\n        },\n        \"id\": 77,\n        \"options\": {},\n        \"pageSize\": null,\n        \"showHeader\": true,\n        \"sort\": {\n          \"col\": 4,\n          \"desc\": true\n        },\n        \"styles\": [\n          {\n            \"alias\": \"benchmark run (click to open in cockpit)\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD_HH:mm:ss\",\n            \"decimals\": 2,\n            \"link\": true,\n            \"linkTargetBlank\": true,\n            \"linkTooltip\": \"Go to run ${__cell_3}.\",\n            \"linkUrl\": \"/dashboard/db/wrk2-benchmark-cockpit?var-job=svcmesh-istio&var-instance=${__cell_2}&var-run=${__cell_3}&from=${__cell_4}&to=${__cell_1}\",\n            \"mappingType\": 1,\n            \"pattern\": \"source_run\",\n            \"thresholds\": [],\n            \"type\": \"number\",\n            \"unit\": \"dateTimeAsIso\",\n            \"valueMaps\": []\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": \"value\",\n            \"colors\": [\n              \"rgba(50, 172, 45, 0.97)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(245, 54, 54, 0.9)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"Value\",\n            \"thresholds\": [\n              \"500\",\n              \"5000\"\n            ],\n            \"type\": \"number\",\n            \"unit\": \"ms\"\n          },\n          {\n            \"alias\": \"\",\n            \"colorMode\": null,\n            \"colors\": [\n              \"rgba(245, 54, 54, 0.9)\",\n              \"rgba(237, 129, 40, 0.89)\",\n              \"rgba(50, 172, 45, 0.97)\"\n            ],\n            \"dateFormat\": \"YYYY-MM-DD HH:mm:ss\",\n            \"decimals\": 2,\n            \"mappingType\": 1,\n            \"pattern\": \"(Time|exported_instance|end|start)\",\n            \"thresholds\": [],\n            \"type\": \"hidden\",\n            \"unit\": \"short\"\n          }\n        ],\n        \"targets\": [\n          {\n            \"expr\": \"max(wrk2_benchmark_summary_latency_ms{exported_job=\\\"svcmesh-istio\\\",requested_rps=\\\"$rps\\\", p=\\\"1.0\\\",source_run!~\\\"$exclude_runs\\\"}) by (exported_instance,start,end,source_run,value)\",\n            \"format\": \"table\",\n            \"hide\": false,\n            \"instant\": true,\n            \"legendFormat\": \"\",\n            \"refId\": \"A\"\n          }\n        ],\n        \"timeFrom\": null,\n        \"timeShift\": null,\n        \"title\": \"Peak latencies (1.0 percentile)\",\n        \"transform\": \"table\",\n        \"transparent\": true,\n        \"type\": \"table\"\n      }\n    ],\n    \"refresh\": false,\n    \"schemaVersion\": 21,\n    \"style\": \"dark\",\n    \"tags\": [],\n    \"templating\": {\n      \"list\": [\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"70000\",\n            \"value\": \"70000\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_summary_latency_ms\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Requested RPS\",\n          \"multi\": false,\n          \"name\": \"rps\",\n          \"options\": [],\n          \"query\": \"wrk2_benchmark_summary_latency_ms\",\n          \"refresh\": 2,\n          \"regex\": \"/.*requested_rps=\\\"([^\\\"]*).*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 4,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"selected\": false,\n            \"text\": \"run\",\n            \"value\": \"run\"\n          },\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Exclude\",\n          \"multi\": false,\n          \"name\": \"exclude\",\n          \"options\": [\n            {\n              \"selected\": true,\n              \"text\": \"No exclusion\",\n              \"value\": \"No exclusion\"\n            },\n            {\n              \"selected\": false,\n              \"text\": \"run\",\n              \"value\": \"run\"\n            }\n          ],\n          \"query\": \"No exclusion,run\",\n          \"skipUrlSync\": false,\n          \"type\": \"custom\"\n        },\n        {\n          \"allValue\": null,\n          \"current\": {\n            \"text\": \"2020-07-27_07:30:31\",\n            \"value\": \"2020-07-27_07:30:31\"\n          },\n          \"datasource\": \"Prometheus\",\n          \"definition\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\"}\",\n          \"hide\": 0,\n          \"includeAll\": false,\n          \"label\": \"Runs to exclude\",\n          \"multi\": true,\n          \"name\": \"exclude_runs\",\n          \"options\": [\n            {\n              \"isNone\": true,\n              \"selected\": true,\n              \"text\": \"None\",\n              \"value\": \"\"\n            }\n          ],\n          \"query\": \"wrk2_benchmark_summary_latency_ms{requested_rps=\\\"$rps\\\"}\",\n          \"refresh\": 0,\n          \"regex\": \"/.*source_$exclude=\\\"([^\\\"]*)\\\".*/\",\n          \"skipUrlSync\": false,\n          \"sort\": 1,\n          \"tagValuesQuery\": \"\",\n          \"tags\": [],\n          \"tagsQuery\": \"\",\n          \"type\": \"query\",\n          \"useTags\": false\n        }\n      ]\n    },\n    \"time\": {\n      \"from\": \"now-5m\",\n      \"to\": \"now\"\n    },\n    \"timepicker\": {\n      \"refresh_intervals\": [\n        \"5s\",\n        \"10s\",\n        \"30s\",\n        \"1m\",\n        \"5m\",\n        \"15m\",\n        \"30m\",\n        \"1h\",\n        \"2h\",\n        \"1d\"\n      ]\n    },\n    \"timezone\": \"\",\n    \"title\": \"wrk2 Summary\",\n    \"uid\": null,\n    \"version\": 15\n  }\n}\n"
  },
  {
    "path": "dashboards/upload_dashboard.sh",
    "content": "#!/bin/bash\n\n[ $# -lt 3 ] && {\n    echo\n    echo \"$0 - Upload a Grafana dashboard back-up (JOSON file) to Grafana\" \n    echo \"Usage: $0 <grafana-API-key> <dashboard-file> <hostname-and-port>\"\n    echo\n    exit 1\n}\n\napikey=\"$1\"\ndashboard=\"$2\"\nhost=\"$3\"\n\necho \"Uploading dashboard file $dashboard\"\n\nout=$(mktemp)\n\ncat  \"$dashboard\" \\\n         | jq '. * {overwrite: true, dashboard: {id: null}}' \\\n         | curl -X POST \\\n                -H \"Content-Type: application/json\" \\\n                -H \"Authorization: Bearer $apikey\" \\\n                http://$host/api/dashboards/import -d @- | tee $out\n\necho -e \"\\nDashboard available at $host/$(cat \"$out\" | jq -r '.importedUrl')\"\n\nrm -f \"$out\"\n"
  },
  {
    "path": "metrics-merger/Dockerfile",
    "content": "FROM alpine\nMAINTAINER Kinvolk\n\nRUN apk add --update --no-cache python3 py-pip\nRUN pip install prometheus-http-client prometheus-client\n\nCOPY ./merger.py /\nRUN chmod 755 ./merger.py\n\nENTRYPOINT [\"/usr/bin/python3\", \"/merger.py\"]\n"
  },
  {
    "path": "metrics-merger/README.md",
    "content": "# Service mesh benchmark automation metrics merger\n\nThe `merger.py` tool and accompanying Docker build recipe implement results\nmerging of individual benchmark runs. `merger.py` will query individual run\nresults from Prometheus, merge the data to create a summary, then publish the\nsummary to a push gateway. The merger job should run after every benchmark, to\nkeep the [summary dashboard](../dashboards/grafana-wrk2-summary.json)\nup to date.\n\n`merger.py` will merge all data of completed runs (`{status=\"done\"}`) of\n(currently hard-coded) `bare-metal`, `svcmesh-linkerd`, and `svcmesh-istio`\njobs, The benchmark starter script `config/run_benchmark.sh` will use these\njob names.\n\n# Usage\n\n## Build\n```shell\n$ docker build -t merger .\n```\n\n## Run\n```shell\n$ docker run -ti --net host merger <prometheus-url> <pushgw-host>\n```\ne.g.\n```shell\n$ docker run -ti --net host merger http://localhost:9090 localhost:9091\n```\n\n## Run in a cluster\nKinvolk maintains a [docker image at quay.io](https://quay.io/repository/kinvolk/svcmesh-bench-results-merger)\nA convenience YAML file is supplied for manual deployment:\n```shell\n$ kubectl apply -f metrics-merger.yaml\n```\n"
  },
  {
    "path": "metrics-merger/merger.py",
    "content": "#!/usr/bin/env python3\n\nimport json\nimport time\nimport pprint\nfrom sys import argv, exit\nfrom os import environ\n\nfrom collections import OrderedDict\n\nfrom prometheus_http_client import Prometheus\nfrom prometheus_client import CollectorRegistry, Gauge, push_to_gateway\n\n\ndef get_series(p, series):\n    m = p.series([series])\n    j = json.loads(m)\n    return j.get(\"data\",[])\n# --\n\ndef get_results(p, query, past_days=7):\n    # Returns results of a range query, so we pick up older runs' latencies\n    now = time.time()\n    start_ts = now - (60 * 60 * 24 * past_days)\n    m = p.query_rang(metric=query,start=start_ts, end=now, step=3600)\n    j = json.loads(m)\n\n    return j.get(\"data\",{}).get(\"result\")\n# --\n\ndef get_completed_runs(p, mesh):\n    s = get_series(p,\n            'wrk2_benchmark_progress{exported_job=\"%s\",status=\"done\"}'%(mesh,))\n    r = sorted([ i.get(\"run\") for i in s ])\n    return r\n# --\n\ndef run_time_info(p, run, past_days=7):\n    info = {}\n    for kind in [\"start\", \"end\", \"duration\"]:\n        res = get_results(p,\n                'wrk2_benchmark_run_runtime{kind=\"%s\",run=\"%s\"}' % (kind,run),\n                past_days)\n        try:\n            info[kind] = int(res[0][\"values\"][0][1])\n        except IndexError:\n            print(\" !!! Run %s lacks '%s' metric.\" % (run,kind))\n            return None\n\n    return info\n# --\n\ndef get_latency_histogram(run,detailed=False,past_days=7):\n    # return RPS, histogram of a single run as dict \n    # <RPS>, {<percentile>: <latency in ms>, ...}\n    # e.g.: 500, {0.5: 399, 0.75: 478, 0.9: 589, ...}\n\n    ret=OrderedDict()\n\n    if detailed:\n        detailed=\"detailed_\"\n    else:\n        detailed=\"\"\n\n    out=[]\n    rps=0\n    for res in get_results(\n                p, 'wrk2_benchmark_latency_%sms{run=\"%s\"}' %(detailed,run,),\n                past_days):\n        perc = float(res[\"metric\"][\"p\"])\n        rps = float(res[\"metric\"].get(\"rps\",0))\n        lat = float(res[\"values\"][0][1])\n        ret[perc] = lat\n        out.append(\"%s: %s\" % (perc,lat))\n\n    if detailed == \"\":\n        print(\"  Run %s @%sRPS (%s): %s\" % \n                        (run, rps, \"coarse\" if detailed == \"\" else \"detailed\",\n                                                             \"\\t\".join(out)))\n    return rps, ret\n# --\n\ndef get_latency_histograms(p, mesh, detailed=False, past_days=7):\n    # get all runs for a given service mesh.\n    # Returns dict of latency percentiles:\n    # { <percentile>: [ <lat>, <lat>, <lat>, ...], <percentile>:...},\n    #   <percentile>: [...]}\n    # and info (doct) for each run (rps, start end, duration)\n\n    if False == detailed:\n        print(\"Mesh %s\" %(mesh,))\n\n    histograms={}\n    info = {}\n\n    for run in get_completed_runs(p, mesh):\n        rps, h = get_latency_histogram(run, detailed, past_days)\n        i = run_time_info(p, run, past_days)\n        if not i:\n            continue\n        info[run] = i\n        info[run][\"rps\"] = rps\n        for perc,lat in h.items():\n            if histograms.get(perc, False):\n                histograms[perc][run]=lat\n            else:\n                histograms[perc] = OrderedDict({run:lat})\n\n    # sort runs' latencies for each percentile\n    for perc in histograms.keys():\n        histograms[perc] = {k: v for k, v in \n            sorted(histograms[perc].items(), key=lambda item: item[1])}\n\n    return histograms, info\n# --\n\ndef create_summary_gauge(p, mesh, r, detailed=False, past_days=7):\n    histograms, info = get_latency_histograms(p, mesh, detailed, past_days)\n\n    if detailed:\n        detailed=\"detailed_\"\n    else:\n        detailed=\"\"\n\n    g = Gauge('wrk2_benchmark_summary_latency_%sms' % (detailed,),\n            '%s latency summary' % (detailed,),\n            labelnames=[\n                \"p\",\"source_run\", \"requested_rps\", \"start\", \"end\", \"duration\"],\n                registry=r)\n\n    percs_count=0\n\n    # create latency entries for all runs, per percentile\n    for perc, latencies in histograms.items():\n        percs_count = percs_count + 1\n        for run, lat in latencies.items():\n            g.labels(p=perc, source_run=run, requested_rps=info[run][\"rps\"],\n                     start=info[run][\"start\"]*1000,\n                     # dashboard link fix: set end to 1min after actual end\n                     end = (info[run][\"end\"] + 60) *1000,\n                     duration=info[run][\"duration\"]).set(lat)\n\n    return g, percs_count, len(info)\n# --\n#\n# -- main --\n#\n\nif 3 > len(argv):\n    print(\n       'Command line error: Prometheus URL and push gateway are required.')\n    print('Usage:')\n    print('  %s <Prometheus URL> <push gateway host:port> [<past-days>]'\n            % (argv[0],))\n    exit(1)\n\nprometheus_url = argv[1]\npgw_url = argv[2]\npast_days=7\n\nif 4 == len(argv):\n    past_days=int(argv[3])\n\nenviron['PROMETHEUS_URL'] = prometheus_url\np = Prometheus()\n\nfor mesh in [\"bare-metal\", \"svcmesh-linkerd\", \"svcmesh-istio\"]:\n\n    r = CollectorRegistry()\n    workaround = mesh\n    g, percs, runs = create_summary_gauge(p, mesh, r, past_days=past_days)\n    dg, dpercs, druns = create_summary_gauge(p, mesh, r, detailed=True,\n            past_days=past_days)\n\n    print(\"%s: %d runs with %d percentiles (coarse)\" % (mesh, runs, percs))\n    print(\"%s: %d runs with %d percentiles (detailed)\" % (mesh, druns, dpercs))\n\n    push_to_gateway(\n          pgw_url, job=mesh, grouping_key={\"instance\":\"emojivoto\"}, registry=r)\n"
  },
  {
    "path": "scripts/run_benchmarks.sh",
    "content": "#!/bin/bash\n\nscript_location=\"$(dirname \"${BASH_SOURCE[0]}\")\"\n\nfunction grace() {\n    grace=10\n    [ -n \"$2\" ] && grace=\"$2\"\n\n    while true; do\n        eval $1\n        if [ $? -eq 0 ]; then\n            sleep 1\n            grace=10\n            continue\n        fi\n\n        if [ $grace -gt 0 ]; then\n            sleep 1\n            echo \"grace period: $grace\"\n            grace=$(($grace-1))\n            continue\n        fi\n        \n        break\n    done\n}\n# --\n\nfunction check_meshed() {\n    local ns_prefix=\"$1\"\n    \n    echo \"Checking for unmeshed pods in '$ns_prefix'\"\n    kubectl get pods --all-namespaces \\\n            | grep \"$ns_prefix\" | grep -vE '[012]/2'\n\n    [ $? -ne 0 ] && return 0\n\n    return 1\n}\n# --\n\nfunction install_emojivoto() {\n    local mesh=\"$1\"\n\n    echo \"Installing emojivoto.\"\n\n    for num in $(seq 0 1 59); do\n        { \n            kubectl create namespace emojivoto-$num\n\n            [ \"$mesh\" == \"istio\" ] && \\\n                kubectl label namespace emojivoto-$num istio-injection=enabled\n\n            helm install emojivoto-$num --namespace emojivoto-$num \\\n                             ${script_location}/../configs/emojivoto/\n         } &\n    done\n\n    wait\n\n    grace \"kubectl get pods --all-namespaces | grep emojivoto | grep -v Running\" 10\n}\n# --\n\nfunction restart_emojivoto_pods() {\n\n    for num in $(seq 0 1 59); do\n        local ns=\"emojivoto-$num\"\n        echo \"Restarting pods in $ns\"\n        {  local pods=\"$(kubectl get -n \"$ns\" pods | grep -vE '^NAME' | awk '{print $1}')\"\n            kubectl delete -n \"$ns\" pods $pods --wait; } &\n    done\n\n    wait\n\n    grace \"kubectl get pods --all-namespaces | grep emojivoto | grep -v Running\" 10\n}\n# --\n\nfunction delete_emojivoto() {\n    echo \"Deleting emojivoto.\"\n\n    for i in $(seq 0 1 59); do\n        { helm uninstall emojivoto-$i --namespace emojivoto-$i;\n          kubectl delete namespace emojivoto-$i --wait; } &\n    done\n\n    wait\n\n    grace \"kubectl get namespaces | grep emojivoto\"\n}\n# --\n\nfunction run() {\n    echo \"   Running '$@'\"\n    $@\n}\n# --\n\nfunction install_benchmark() {\n    local mesh=\"$1\"\n    local rps=\"$2\"\n\n    local duration=600\n    local init_delay=10\n\n    local app_count=$(kubectl get namespaces | grep emojivoto | wc -l)\n\n    echo \"Running $mesh benchmark\"\n    kubectl create ns benchmark\n    [ \"$mesh\" == \"istio\" ] && \\\n        kubectl label namespace benchmark istio-injection=enabled\n    if [ \"$mesh\" != \"bare-metal\" ] ; then\n        helm install benchmark --namespace benchmark \\\n            --set wrk2.serviceMesh=\"$mesh\" \\\n            --set wrk2.app.count=\"$app_count\" \\\n            --set wrk2.RPS=\"$rps\" \\\n            --set wrk2.duration=$duration \\\n            --set wrk2.connections=128 \\\n            --set wrk2.initDelay=$init_delay \\\n            ${script_location}/../configs/benchmark/\n    else\n        helm install benchmark --namespace benchmark \\\n            --set wrk2.app.count=\"$app_count\" \\\n            --set wrk2.RPS=\"$rps\" \\\n            --set wrk2.duration=$duration \\\n            --set wrk2.initDelay=$init_delay \\\n            --set wrk2.connections=128 \\\n            ${script_location}/../configs/benchmark/\n    fi\n}\n# --\n\nfunction run_bench() {\n    local mesh=\"$1\"\n    local rps=\"$2\"\n\n    install_benchmark \"$mesh\" \"$rps\"\n    grace \"kubectl get pods -n benchmark | grep wrk2-prometheus | grep -v Running\" 10\n\n    echo \"Benchmark started.\"\n\n    while kubectl get jobs -n benchmark \\\n            | grep wrk2-prometheus \\\n            | grep -qv 1/1; do\n        kubectl logs \\\n                --tail 1 -n benchmark  jobs/wrk2-prometheus -c wrk2-prometheus\n        sleep 10\n    done\n\n    echo \"Benchmark concluded. Updating summary metrics.\"\n    helm install --create-namespace --namespace metrics-merger \\\n        metrics-merger ${script_location}/../configs/metrics-merger/\n    sleep 5\n    while kubectl get jobs -n metrics-merger \\\n            | grep wrk2-metrics-merger \\\n            | grep  -v \"1/1\"; do\n        sleep 1\n    done\n\n    kubectl logs -n metrics-merger jobs/wrk2-metrics-merger\n\n    echo \"Cleaning up.\"\n    helm uninstall benchmark --namespace benchmark\n    kubectl delete ns benchmark --wait\n    helm uninstall --namespace metrics-merger metrics-merger\n    kubectl delete ns metrics-merger --wait\n}\n# --\n\nfunction istio_extra_cleanup() {\n    # this is ugly but istio-system namespace gets stuck sometimes\n    kubectl get -n istio-system \\\n            istiooperators.install.istio.io \\\n            istiocontrolplane \\\n            -o json \\\n        | sed 's/\"istio-finalizer.install.istio.io\"//' \\\n        | kubectl apply -f -\n\n    lokoctl component delete experimental-istio-operator \\\n                                                --confirm --delete-namespace\n    kubectl delete --now --timeout=10s $(kubectl get clusterroles -o name | grep istio)\n    kubectl delete --now --timeout=10s $(kubectl get clusterrolebindings -o name | grep istio)\n    kubectl delete --now --timeout=10s  $(kubectl get crd -o name | grep istio)\n    kubectl delete --now --timeout=10s \\\n            $(kubectl get validatingwebhookconfigurations -o name | grep istio)\n    kubectl delete --now --timeout=10s \\\n            $(kubectl get mutatingwebhookconfigurations -o name | grep istio)\n}\n# --\n\nfunction delete_istio() {\n    lokoctl component delete experimental-istio-operator --delete-namespace --confirm\n    [ $? -ne 0 ] && {\n        # this sometimes fails with a namespace error, works the 2nd time\n        sleep 5\n        lokoctl component delete experimental-istio-operator --delete-namespace --confirm; }\n\n    grace \"kubectl get namespaces | grep istio-operator\" 1\n    kubectl delete namespace istio-system  --now --timeout=30s\n    for i in $(seq 20); do\n        istio_extra_cleanup\n        kubectl get namespaces | grep istio-system || break\n        sleep 1\n    done\n}\n# --\n\nfunction run_benchmarks() {\n    for rps in 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500; do\n        for repeat in 1 2 3 4 5; do\n\n            echo \"########## Run #$repeat w/ $rps RPS\"\n\n            echo \" +++ bare metal benchmark\"\n            install_emojivoto bare-metal\n            run_bench bare-metal $rps\n            delete_emojivoto\n\n            echo \" +++ linkerd benchmark\"\n            echo \"Installing linkerd\"\n            lokoctl component apply experimental-linkerd\n            [ $? -ne 0 ] && {\n                # this sometimes fails with a namespace error, works the 2nd time\n                sleep 5\n                lokoctl component apply experimental-linkerd; }\n\n            grace \"kubectl get pods --all-namespaces | grep linkerd | grep -v Running\"\n\n            install_emojivoto linkerd\n            run_bench linkerd $rps\n            delete_emojivoto\n\n            echo \"Removing linkerd\"\n            lokoctl component delete experimental-linkerd --delete-namespace --confirm\n            kubectl delete namespace linkerd --now --timeout=30s\n            grace \"kubectl get namespaces | grep linkerd\"\n\n            echo \" +++ istio benchmark\"\n            echo \"Installing istio\"\n            lokoctl component apply experimental-istio-operator\n            grace \"kubectl get pods --all-namespaces | grep istio-operator | grep -v Running\"\n            sleep 30    # extra sleep to let istio initialise. Sidecar injection will\n                        #  fail otherwise.\n\n            install_emojivoto istio\n            while true; do\n                check_meshed \"emojivoto-\" && {\n                    echo \"  ++ Emojivoto is fully meshed.\"\n                    break; }\n                echo \" !!! Emojivoto is not fully meshed.\"\n                echo \"     Deleting and re-deploying Istio.\"\n                delete_istio\n                lokoctl component apply experimental-istio-operator\n                grace \"kubectl get pods --all-namespaces | grep istio-operator | grep -v Running\"\n                sleep 30\n                echo \" !!!  Restarting all Emojivoto pods.\"\n                restart_emojivoto_pods\n            done\n            run_bench istio $rps\n            delete_emojivoto\n\n            echo \"Removing istio\"\n            delete_istio\n        done\n    done\n}\n# --\n\nif [ \"$(basename $0)\" = \"run_benchmarks.sh\" ] ; then\n    run_benchmarks $@\nfi\n"
  }
]