diff --git a/vitess-mixin/.env b/vitess-mixin/.env
deleted file mode 100644
index 2dd23ee5572..00000000000
--- a/vitess-mixin/.env
+++ /dev/null
@@ -1,15 +0,0 @@
-TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500 --topo_global_root vitess/global
-GRPC_PORT=15999
-WEB_PORT=8080
-MYSQL_PORT=15306
-
-CELL=local
-KEYSPACE=commerce
-DB=commerce
-
-EXTERNAL_DB=0
-DB_HOST=external_db_host
-DB_PORT=3306
-DB_USER=external_db_user
-DB_PASS=external_db_password
-DB_CHARSET=CHARACTER SET utf8 COLLATE utf8_general_ci
\ No newline at end of file
diff --git a/vitess-mixin/.gitignore b/vitess-mixin/.gitignore
deleted file mode 100644
index eb410a1f9e8..00000000000
--- a/vitess-mixin/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-.DS_Store
-*.yaml
-dashboards_out
-prometheus_alerts.yaml
-prometheus_rules.yaml
-jsonnetfile.lock.json
-vendor
-.vscode/
diff --git a/vitess-mixin/Makefile b/vitess-mixin/Makefile
deleted file mode 100644
index 267bc569312..00000000000
--- a/vitess-mixin/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-.PHONY: dashboards_out prometheus_alerts.yaml prometheus_rules.yaml test tools all e2e e2e-dev e2e-compose-up e2e-compose-down lint fmt
-
-help: #: Show this message.
- @echo "\nAvailable Targets:\n"
- @sed -ne '/@sed/!s/#: //p' $(MAKEFILE_LIST)
-
-all: #: format all .jsonnet/.libsonnet files, generate all dashboards json, alerts and rules yaml
- @make tools
- @make clean > /dev/null
- @make fmt > /dev/null
- @make test
- @make dashboards_out > /dev/null
- @make prometheus_rules.yaml > /dev/null
-
-fmt: #: Usage make fmt
- @echo "# Formatting all .libsonnet and .jsonnet files...\n"
- @scripts/fmt.sh
- @echo "\nDone!\n"
-
-a.yaml: #: Build prometheus alerts
- @echo "# Building 'prometheus_alerts.yaml'...\n"
- @jsonnet -S lib/alerts.jsonnet > $@
- @echo "\nDone!\n"
-
-prometheus_rules.yaml: #: Build prometheus rules
- @echo "# Building 'prometheus_rules.yaml'...\n"
- @jsonnet -S lib/rules.jsonnet > $@
- @echo "\nDone!\n"
-
-dashboards_out: #: Generate Grafana Dashboards Usage: `ENV='prod' make dashboards_out`
- @echo "# Building Grafana dashboards...\n"
- @make clean > /dev/null
- @mkdir -p dashboards_out
- @[ "${ENV}" = 'dev' ] || [ "${ENV}" = 'prod' ] || ( echo -e "##ERROR\nPlease specify ENV (prod or dev)"; exit 1)
- @jsonnet -J vendor --ext-str env="${ENV}" -m dashboards_out lib/dashboards.jsonnet
- @echo "\nDone!\n"
-
-lint: #: Usage: make lint
- @echo "# Linting all .libsonnet and .jsonnet files...\n"
- @scripts/fmt.sh --check
- @echo "\nDone!\n"
- @echo "# Linting 'prometheus_rules.yaml'...\n"
- @make prometheus_rules.yaml > /dev/null
- @promtool check rules prometheus_rules.yaml
- @echo "Done!\n"
-
-clean: #: Delete generated dashboards (/dashboards_out) Usage: make clean
- @echo "# Cleaning up all generated files...\n"
- @rm -rf dashboards_out prometheus_alerts.yaml prometheus_rules.yaml > /dev/null
- @echo "\nDone!\n"
-
-test: #: Compare your .json generated dashboards local version with the origin/main version.
- @make clean > /dev/null
- @ENV=${ENV} scripts/vitess-mixin-plan.sh
- @make clean > /dev/null
-
-tools: tools.go
- @# -mod='' tells go to ignore the vendor/ directory
- @cat $^ | grep _ | awk -F'"' '{print $$2}' | xargs -I% go install -mod='' %
- @jb install
- @jb update https://github.com/grafana/grafonnet-lib/grafonnet > /dev/null 2>&1
-
-
-E2E_GRAFANA_VERSION ?= 7.3.6
-
-e2e: #: Run all Grafana end-to-end tests.
- GRAFANA_VERSION=${E2E_GRAFANA_VERSION} \
- docker-compose -f e2e/docker-compose.yml up \
- --abort-on-container-exit \
- --exit-code-from e2e \
- --remove-orphans
-
-e2e-dev: #: Run Grafana e2e tests in Cypress test runner.
- GRAFANA_VERSION=${E2E_GRAFANA_VERSION} \
- DISPLAY=$$(ipconfig getifaddr en0):0 \
- docker-compose -f e2e/docker-compose.dev.yml up \
- --abort-on-container-exit \
- --exit-code-from e2e \
- --remove-orphans
-
-e2e-compose-up: #: Run Grafana e2e environment spining Prometheus and Vitess in the backend.
- GRAFANA_VERSION=${E2E_GRAFANA_VERSION} \
- COMPOSE_HTTP_TIMEOUT=200 \
- DISPLAY=$$(ipconfig getifaddr en0):0 \
- docker-compose -f e2e/docker-compose.vt.yml up \
- --remove-orphans
-
-e2e-compose-down: #: Clean docker compose resources
- @docker-compose -f e2e/docker-compose.vt.yml down -v --remove-orphans
- @rm e2e/grafana/provisioning/dashboards/*.json
- @rm e2e/prometheus/prometheus_rules.yaml
diff --git a/vitess-mixin/README.md b/vitess-mixin/README.md
deleted file mode 100644
index 695a943295c..00000000000
--- a/vitess-mixin/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# (Beta) Monitoring Mixin for Vitess
-
-A set of Grafana dashboards, Prometheus rules and alerts for Vitess, packaged together in a reusable and extensible bundle.
-
-## 🔁 Prerequisites
-
-1. Go (programming language)
- - Install binaries using the official [installer](https://golang.org/dl/)
- - Ensure `GOPATH` variable is set in your system. See instructions [here](https://golang.org/doc/install#install). Here below there's a sample config:
-
- ```shell
- export GOPATH=$HOME/go
- export PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"
- ```
-
-1. Install the go tools: `make tools`, `jb`, `jsonnet`, `jsonnetfmt`, and `promtool` should now be in `$GOPATH/bin`.
-
-1. Install the dependencies by running: `jb install`
-
-## ℹ️ How-to
-
-Customize `config.libsonnet` based on your setup. Example: specify the `dataSource` name (default to `Prometheus_Vitess`). You can then generate:
-
-- Prometheus alerts: `$ make prometheus_alerts.yaml`
-(Note: This files is empty because the current version of the mixin uses Grafana Alerts)
-
-- Prometheus rules: `$ make prometheus_rules.yaml`
-
-- Grafana dashboard: `$ ENV='prod' make dashboards_out` (Supported environments are `dev` and `prod`).
-
-The `prometheus_alerts.yaml` and `prometheus_rules.yaml` file then need to passed to your Prometheus server, and the files in `dashboards_out` need to be imported into you Grafana server.
-
-## 👩💻 Development
-
-If you want to contribute please read [Vitess mixin quickstart guide](vitess-mixin-quickstart.md)
-
-## 📚 Useful links & further learning
-
-- For more information about monitoring mixins, see this [design doc](https://docs.google.com/document/d/1A9xvzwqnFVSOZ5fD3blKODXfsat5fg6ZhnKu9LK3lB4/edit#).
-- For more motivation, see
-"[The RED Method: How to instrument your services](https://kccncna17.sched.com/event/CU8K/the-red-method-how-to-instrument-your-services-b-tom-wilkie-kausal?iframe=no&w=100%&sidebar=yes&bg=no)" talk from CloudNativeCon Austin.
diff --git a/vitess-mixin/alerts/alerts.libsonnet b/vitess-mixin/alerts/alerts.libsonnet
deleted file mode 100644
index 732a682f8b6..00000000000
--- a/vitess-mixin/alerts/alerts.libsonnet
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- prometheusAlerts+:: {
-
- },
-}
diff --git a/vitess-mixin/config.libsonnet b/vitess-mixin/config.libsonnet
deleted file mode 100644
index 8c8f69ca0ee..00000000000
--- a/vitess-mixin/config.libsonnet
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- _config+:: {
-
- // Selectors are inserted between {} in Prometheus queries.
- vtctldSelector: 'job="vitess-vtctld"',
- vtgateSelector: 'job="vitess-vtgate"',
- vttabletSelector: 'job="vitess-vttablet"',
- vtgateNodeSelector: 'job="node-exporter-vitess-vtgate"',
- mysqlSelector: 'job="mysql"',
- defaultTimeFrom: 'now-30m',
- vttabletMountpoint: '/mnt',
-
- // Datasource to use
- dataSource: 'Prometheus',
- nodeDataSource: 'Prometheus',
-
- // Default config for the Grafana dashboards in the Vitess Mixin
- grafanaDashboardMetadataDefault: {
- dashboardNameSuffix: '(auto-generated)',
- dashboardAlertPrefix: 'alerts',
- dashboardTags: ['vitess-mixin'],
- },
-
- dashborardLinks: {
- title: 'vitess-mixin',
- tags: ['vitess-mixin'],
- keepTime: true,
- includeVars: false,
- },
-
- // Grafana dashboard IDs are necessary for stable links for dashboards
- grafanaDashboardMetadata: {
-
- local defaultDashboard = {
- environments: ['dev', 'prod'],
- time_from: $._config.defaultTimeFrom,
- },
-
- // Overview
- clusterOverview+: defaultDashboard {
- uid: 'vitess-cluster-overview',
- title: 'cluster - overview %(dashboardNameSuffix)s' % $._config.grafanaDashboardMetadataDefault,
- description: 'General cluster overview',
- dashboardTags: $._config.grafanaDashboardMetadataDefault.dashboardTags + ['overview', 'cluster'],
- },
- vtgateOverview+: defaultDashboard {
- uid: 'vitess-vtgate-overview',
- title: 'vtgate - overview %(dashboardNameSuffix)s' % $._config.grafanaDashboardMetadataDefault,
- description: 'General vtgate overview',
- dashboardTags: $._config.grafanaDashboardMetadataDefault.dashboardTags + ['overview', 'vtgate'],
- },
-
- // Host View
- vttabletHostView+: defaultDashboard {
- uid: 'vitess-vttablet-host-view',
- title: 'vttablet - host view %(dashboardNameSuffix)s' % $._config.grafanaDashboardMetadataDefault,
- description: 'Detailed vttablet host view',
- dashboardTags: $._config.grafanaDashboardMetadataDefault.dashboardTags + ['vttablet', 'host'],
- },
- vtgateHostView+: defaultDashboard {
- uid: 'vitess-vtgate-host-view',
- title: 'vtgate - host view %(dashboardNameSuffix)s' % $._config.grafanaDashboardMetadataDefault,
- description: 'Detailed vtgate view by host',
- dashboardTags: $._config.grafanaDashboardMetadataDefault.dashboardTags + ['vtgate', 'host'],
- },
- },
- },
-
- os: import 'dashboards/resources/config/os_config.libsonnet',
- vttablet: import 'dashboards/resources/config/vttablet_config.libsonnet',
- vtgate: import 'dashboards/resources/config/vtgate_config.libsonnet',
- mysql: import 'dashboards/resources/config/mysql_config.libsonnet',
- row: import 'dashboards/resources/config/row_config.libsonnet',
-}
diff --git a/vitess-mixin/dashboards/dashboards.libsonnet b/vitess-mixin/dashboards/dashboards.libsonnet
deleted file mode 100644
index 5840e4b5228..00000000000
--- a/vitess-mixin/dashboards/dashboards.libsonnet
+++ /dev/null
@@ -1,5 +0,0 @@
-(import 'layouts/cluster_overview.libsonnet') +
-(import 'layouts/vtgate_host_view.libsonnet') +
-(import 'layouts/vtgate_overview.libsonnet') +
-(import 'layouts/vttablet_host_view.libsonnet') +
-(import 'defaults.libsonnet')
diff --git a/vitess-mixin/dashboards/defaults.libsonnet b/vitess-mixin/dashboards/defaults.libsonnet
deleted file mode 100644
index d94de1fab09..00000000000
--- a/vitess-mixin/dashboards/defaults.libsonnet
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- local grafanaDashboards = super.grafanaDashboards,
-
- grafanaDashboards:: {
- [filename]: grafanaDashboards[filename] {
- // Modify tooltip to only show a single value
- rows: [
- row {
- panels: [
- panel {
- tooltip+: {
- shared: false,
- },
- }
- for panel in super.panels
- ],
- }
- for row in super.rows
- ],
-
- }
- for filename in std.objectFields(grafanaDashboards)
- },
-}
diff --git a/vitess-mixin/dashboards/layouts/cluster_overview.libsonnet b/vitess-mixin/dashboards/layouts/cluster_overview.libsonnet
deleted file mode 100644
index 6db716c982c..00000000000
--- a/vitess-mixin/dashboards/layouts/cluster_overview.libsonnet
+++ /dev/null
@@ -1,56 +0,0 @@
-local helpers = import '../resources/grafonnet/helpers/helpers.libsonnet';
-local panels = import '../resources/grafonnet/panels.libsonnet';
-local rows = import '../resources/grafonnet/rows.libsonnet';
-local singlestats = import '../resources/grafonnet/singlestats.libsonnet';
-local templates = import '../resources/grafonnet/templates.libsonnet';
-local texts = import '../resources/grafonnet/texts.libsonnet';
-
-local config = import '../../config.libsonnet';
-
-{
- grafanaDashboards+:: {
- 'cluster_overview.json':
-
- helpers.dashboard.getDashboard(config._config.grafanaDashboardMetadata.clusterOverview)
- .addTemplates([
- templates.interval,
- ])
- .addLink(helpers.default.getDashboardLink(config._config.dashborardLinks))
- .addPanels([
- texts.clusterOverview { gridPos: { h: 3, w: 24, x: 0, y: 0 } },
- singlestats.vtgateSuccessRate { gridPos: { h: 4, w: 4, x: 0, y: 3 } },
- singlestats.vttabletQuerySuccess { gridPos: { h: 4, w: 4, x: 4, y: 3 } },
- helpers.vtgate.getSingleStat(config.vtgate.singlestats.vtgateQueryLatencyP99) { gridPos: { h: 4, w: 4, x: 8, y: 3 } },
- helpers.vtgate.getSingleStat(config.vtgate.singlestats.vtgateQPS) { gridPos: { h: 2, w: 4, x: 12, y: 3 } },
- helpers.vttablet.getSingleStat(config.vttablet.singlestats.vttabletQPS) { gridPos: { h: 2, w: 4, x: 12, y: 5 } },
- singlestats.mysqlQPS { gridPos: { h: 2, w: 4, x: 16, y: 3 } },
- singlestats.keyspaceCount { gridPos: { h: 2, w: 2, x: 16, y: 3 } },
- singlestats.shardCount { gridPos: { h: 2, w: 2, x: 18, y: 3 } },
- singlestats.vtgateUp { gridPos: { h: 2, w: 2, x: 20, y: 3 } },
- singlestats.vtctldUp { gridPos: { h: 2, w: 2, x: 20, y: 5 } },
- singlestats.vttabletUp { gridPos: { h: 2, w: 2, x: 22, y: 3 } },
-
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequests) { gridPos: { h: 6, w: 8, x: 0, y: 7 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRate) { gridPos: { h: 6, w: 8, x: 8, y: 7 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99) { gridPos: { h: 6, w: 8, x: 16, y: 7 } },
-
- rows.RED { gridPos: { h: 1, w: 24, x: 0, y: 13 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequestsByKeyspace) { gridPos: { h: 8, w: 8, x: 0, y: 14 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRateByKeyspace) { gridPos: { h: 8, w: 8, x: 8, y: 14 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99ByKeyspace) { gridPos: { h: 8, w: 8, x: 16, y: 14 } },
-
- rows.tabletsQueries { gridPos: { h: 1, w: 24, x: 0, y: 22 } },
- helpers.vttablet.getPanel(config.vttablet.panels.countServingTablets) { gridPos: { h: 8, w: 8, x: 0, y: 23 } },
- helpers.mysql.getPanel(config.mysql.panels.mysqlSlowQueries) { gridPos: { h: 8, w: 8, x: 8, y: 23 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryTransactionKilled) { gridPos: { h: 8, w: 8, x: 16, y: 23 } },
-
- rows.serviceRestart { gridPos: { h: 1, w: 24, x: 0, y: 31 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRestart) { gridPos: { h: 8, w: 8, x: 0, y: 32 } },
- panels.vtctldRestart { gridPos: { h: 8, w: 8, x: 8, y: 32 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRestart) { gridPos: { h: 8, w: 8, x: 16, y: 32 } },
-
- helpers.mysql.getPanel(config.mysql.panels.mysqlRestart) { gridPos: { h: 8, w: 8, x: 16, y: 40 } },
- ]),
-
- },
-}
diff --git a/vitess-mixin/dashboards/layouts/vtgate_host_view.libsonnet b/vitess-mixin/dashboards/layouts/vtgate_host_view.libsonnet
deleted file mode 100644
index 139999e09fc..00000000000
--- a/vitess-mixin/dashboards/layouts/vtgate_host_view.libsonnet
+++ /dev/null
@@ -1,49 +0,0 @@
-local heatmaps = import '../resources/grafonnet/heatmaps.libsonnet';
-local helpers = import '../resources/grafonnet/helpers/helpers.libsonnet';
-local rows = import '../resources/grafonnet/rows.libsonnet';
-local singlestats = import '../resources/grafonnet/singlestats.libsonnet';
-local templates = import '../resources/grafonnet/templates.libsonnet';
-local texts = import '../resources/grafonnet/texts.libsonnet';
-
-local config = import '../../config.libsonnet';
-
-// TODO: add connections info
-
-{
- grafanaDashboards+:: {
- 'vtgate_host_view.json':
-
- helpers.dashboard.getDashboard(config._config.grafanaDashboardMetadata.vtgateHostView)
- .addTemplates([
- templates.hostVtgate,
- ])
- .addLink(helpers.default.getDashboardLink(config._config.dashborardLinks))
- .addPanels([
- texts.vtgateHost { gridPos: { h: 3, w: 24, x: 0, y: 0 } },
- rows.RED { gridPos: { h: 1, w: 24, x: 0, y: 4 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequestsByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 5 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRateByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 5 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99ByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 5 } },
- rows.REDByTabletType.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequestsByInstanceDBType) { gridPos: { h: 7, w: 8, x: 0, y: 9 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRateByInstanceDBType) { gridPos: { h: 7, w: 8, x: 8, y: 9 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99ByInstanceDBType) { gridPos: { h: 7, w: 8, x: 16, y: 9 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 8 } },
- rows.errors.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorsByInstanceKeyspace) { gridPos: { h: 7, w: 8, x: 0, y: 17 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorsByInstanceCode) { gridPos: { h: 7, w: 8, x: 8, y: 17 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 16 } },
- rows.duration.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationAVGByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 25 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP50ByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 25 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP95ByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 25 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 24 } },
- rows.OS.addPanels([
- helpers.os.getPanel(config.os.panels.CPUUsageByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 33 } },
- helpers.os.getPanel(config.os.panels.MemoryUsageByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 33 } },
- helpers.os.getPanel(config.os.panels.NetworkUsageByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 33 } },
- helpers.os.getPanel(config.os.panels.TCPRetransmissionsByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 40 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 32 } },
- ]),
- },
-}
diff --git a/vitess-mixin/dashboards/layouts/vtgate_overview.libsonnet b/vitess-mixin/dashboards/layouts/vtgate_overview.libsonnet
deleted file mode 100644
index b2c14eb8563..00000000000
--- a/vitess-mixin/dashboards/layouts/vtgate_overview.libsonnet
+++ /dev/null
@@ -1,58 +0,0 @@
-local heatmaps = import '../resources/grafonnet/heatmaps.libsonnet';
-local helpers = import '../resources/grafonnet/helpers/helpers.libsonnet';
-local rows = import '../resources/grafonnet/rows.libsonnet';
-local singlestats = import '../resources/grafonnet/singlestats.libsonnet';
-local templates = import '../resources/grafonnet/templates.libsonnet';
-local texts = import '../resources/grafonnet/texts.libsonnet';
-
-local config = import '../../config.libsonnet';
-
-// TODO: add connections info
-
-{
- grafanaDashboards+:: {
- 'vtgate_overview.json':
-
- helpers.dashboard.getDashboard(config._config.grafanaDashboardMetadata.vtgateOverview)
- .addLink(helpers.default.getDashboardLink(config._config.dashborardLinks))
- .addPanels([
- texts.vtgateOverview { gridPos: { h: 3, w: 24, x: 0, y: 0 } },
-
- rows.RED { gridPos: { h: 1, w: 24, x: 0, y: 4 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequests) { gridPos: { h: 7, w: 8, x: 0, y: 5 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRate) { gridPos: { h: 7, w: 8, x: 8, y: 5 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99) { gridPos: { h: 7, w: 8, x: 16, y: 5 } },
-
- rows.REDByKeyspace.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequestsByKeyspace) { gridPos: { h: 7, w: 8, x: 0, y: 13 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRateByKeyspace) { gridPos: { h: 7, w: 8, x: 8, y: 13 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99ByKeyspace) { gridPos: { h: 7, w: 8, x: 16, y: 13 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 12 } },
-
- rows.REDByTabletType.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateRequestsByDBType) { gridPos: { h: 7, w: 8, x: 0, y: 21 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorRateByDBType) { gridPos: { h: 7, w: 8, x: 8, y: 21 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP99ByDBType) { gridPos: { h: 7, w: 8, x: 16, y: 21 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 20 } },
-
- rows.errors.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorsByCode) { gridPos: { h: 7, w: 8, x: 0, y: 29 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorsByOperation) { gridPos: { h: 7, w: 8, x: 8, y: 29 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateErrorsByDbtype) { gridPos: { h: 7, w: 8, x: 16, y: 29 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 28 } },
-
- rows.duration.addPanels([
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationAVG) { gridPos: { h: 7, w: 8, x: 0, y: 37 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP50) { gridPos: { h: 7, w: 8, x: 8, y: 37 } },
- helpers.vtgate.getPanel(config.vtgate.panels.vtgateDurationP95) { gridPos: { h: 7, w: 8, x: 16, y: 37 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 36 } },
-
- rows.OS.addPanels([
- helpers.os.getPanel(config.os.panels.CPUUsage) { gridPos: { h: 7, w: 8, x: 0, y: 45 } },
- helpers.os.getPanel(config.os.panels.MemoryUsage) { gridPos: { h: 7, w: 8, x: 8, y: 45 } },
- helpers.os.getPanel(config.os.panels.NetworkUsage) { gridPos: { h: 7, w: 8, x: 16, y: 45 } },
- helpers.os.getPanel(config.os.panels.TCPRetransmissions) { gridPos: { h: 7, w: 8, x: 16, y: 52 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 44 } },
- ]),
- },
-}
diff --git a/vitess-mixin/dashboards/layouts/vttablet_host_view.libsonnet b/vitess-mixin/dashboards/layouts/vttablet_host_view.libsonnet
deleted file mode 100644
index 7148deb44ee..00000000000
--- a/vitess-mixin/dashboards/layouts/vttablet_host_view.libsonnet
+++ /dev/null
@@ -1,103 +0,0 @@
-local heatmaps = import '../resources/grafonnet/heatmaps.libsonnet';
-local helpers = import '../resources/grafonnet/helpers/helpers.libsonnet';
-local rows = import '../resources/grafonnet/rows.libsonnet';
-local templates = import '../resources/grafonnet/templates.libsonnet';
-local texts = import '../resources/grafonnet/texts.libsonnet';
-
-local config = import '../../config.libsonnet';
-local rows_helper = helpers.default;
-
-{
- grafanaDashboards+:: {
- 'vttablet_host_view.json':
-
- helpers.dashboard.getDashboard(config._config.grafanaDashboardMetadata.vttabletHostView)
- .addTemplates(
- [
- templates.hostVttablet,
- ]
- ).addLink(helpers.default.getDashboardLink(config._config.dashborardLinks))
- .addPanels(
- [
- texts.vttabletHost { gridPos: { h: 3, w: 24, x: 0, y: 0 } },
-
- rows.RED { gridPos: { h: 1, w: 24, x: 0, y: 4 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRequestsByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 5 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletErrorRateByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 5 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryDurationP99ByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 5 } },
-
- rows.REDByPlanType.addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRequestsByPlanType) { gridPos: { h: 7, w: 8, x: 0, y: 13 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletErrorRateByPlanFilteredByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 13 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryDurationP99ByPlan) { gridPos: { h: 7, w: 8, x: 16, y: 13 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 12 } },
-
- rows.REDByTable.addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRequestsByTableFilteredByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 29 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletErrorRateByTableFilteredByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 29 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 28 } },
-
- rows.rowsReturned.addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRowsReturnedByTableFilteredByInstance) { gridPos: { h: 7, w: 12, x: 0, y: 37 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletRowsReturnedByPlansFilterByInstance) { gridPos: { h: 7, w: 12, x: 12, y: 37 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 36 } },
-
- rows_helper.getRow(config.row.queryErrors).addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueriesKilled) { gridPos: { h: 7, w: 8, x: 0, y: 45 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryErrorsByType) { gridPos: { h: 7, w: 8, x: 8, y: 45 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 44 } },
-
- rows.vitessQueryPool.addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryPoolAvailableConnections) { gridPos: { h: 7, w: 8, x: 0, y: 52 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryPoolActiveConnections) { gridPos: { h: 7, w: 8, x: 8, y: 52 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryPoolIddleClosedRate) { gridPos: { h: 7, w: 8, x: 16, y: 52 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryPoolWaitCount) { gridPos: { h: 7, w: 8, x: 0, y: 59 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryPoolAvgWaitTime) { gridPos: { h: 7, w: 8, x: 8, y: 59 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 51 } },
-
- rows.vitessTransactionPool.addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionPoolAvailableConnections) { gridPos: { h: 7, w: 8, x: 0, y: 67 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionPoolActiveConnections) { gridPos: { h: 7, w: 8, x: 8, y: 67 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionPoolIddleClosedRate) { gridPos: { h: 7, w: 8, x: 16, y: 67 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionPoolWaitCount) { gridPos: { h: 7, w: 8, x: 0, y: 74 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionPoolAvgWaitTime) { gridPos: { h: 7, w: 8, x: 8, y: 74 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 66 } },
-
- rows_helper.getRow(config.row.vitessTimings).addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryDurationAvgByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 82 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryDurationP50ByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 82 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletQueryDurationP95ByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 82 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionDurationAvgByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 89 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionDurationP50ByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 89 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletTransactionDurationP95ByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 89 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vtgateToVtTabletCallTimeAvgFilteredByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 86 } },
- heatmaps.vttabletQueryTimeDistribution { gridPos: { h: 7, w: 16, x: 8, y: 86 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 81 } },
-
- rows.mysql.addPanels([
- helpers.mysql.getPanel(config.mysql.panels.mysqlSlowQueriesByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 94 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 93 } },
-
- rows_helper.getRow(config.row.mysqlTimings).addPanels([
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletMysqlTimeAvgFilteredByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 102 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletMysqlExecTimeP50FilterebyInstance) { gridPos: { h: 7, w: 8, x: 8, y: 102 } },
- helpers.vttablet.getPanel(config.vttablet.panels.vttabletMysqlExecTimeP95FilterebyInstance) { gridPos: { h: 7, w: 8, x: 16, y: 102 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 101 } },
-
- rows.OS.addPanels([
- helpers.os.getPanel(config.os.panels.CPUUsageByInstance) { gridPos: { h: 7, w: 8, x: 0, y: 110 } },
- helpers.os.getPanel(config.os.panels.MemoryUsageByInstance) { gridPos: { h: 7, w: 8, x: 8, y: 110 } },
- helpers.os.getPanel(config.os.panels.DiskUsageByInstance) { gridPos: { h: 7, w: 8, x: 16, y: 110 } },
- helpers.os.getPanel(config.os.panels.NetworkTxByInstance) { gridPos: { h: 7, w: 12, x: 0, y: 117 } },
- helpers.os.getPanel(config.os.panels.NetworkRxByInstance) { gridPos: { h: 7, w: 12, x: 12, y: 117 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 109 } },
-
- rows_helper.getRow(config.row.misc).addPanels([
- helpers.os.getPanel(config.vttablet.panels.vttabletGarbageCollectionCount) { gridPos: { h: 7, w: 8, x: 0, y: 125 } },
- helpers.os.getPanel(config.vttablet.panels.vttabletGarbageCollectionDuration) { gridPos: { h: 7, w: 8, x: 8, y: 125 } },
- helpers.os.getPanel(config.vttablet.panels.vttabletGarbageCollectionDurationQuantiles) { gridPos: { h: 7, w: 8, x: 16, y: 125 } },
- ]) { gridPos: { h: 1, w: 24, x: 0, y: 124 } },
- ],
- ),
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/configuration_templates.libsonnet b/vitess-mixin/dashboards/resources/config/configuration_templates.libsonnet
deleted file mode 100644
index 6f1f85da0a3..00000000000
--- a/vitess-mixin/dashboards/resources/config/configuration_templates.libsonnet
+++ /dev/null
@@ -1,125 +0,0 @@
-local config = import '../../../config.libsonnet';
-
-{
- //Override default_panel values with custom configuration
- prometheus_vitess: {
- panel: {
-
- datasource: {
- datasource: '%(dataSource)s' % config._config,
- },
-
- default+: self.datasource {
- fill: 0,
- legend_alignAsTable: true,
- legend_values: true,
- min: 0,
- shared_tooltip: false,
- },
-
- legend_max+: self.default {
- legend_max: true,
- },
-
- legend_min_max_avg+: self.default {
- legend_max: true,
- legend_min: true,
- legend_avg: true,
- },
-
- legend_min_max_current+: self.default {
- legend_max: true,
- legend_min: true,
- legend_current: true,
- },
-
- null_as_zeros+: self.default {
- nullPointMode: 'null as zero',
- },
-
- mysql_default+: self.default {
- legend_max: true,
- legend_sort: 'max',
- },
-
- orc_default+: self.default {
- legend_current: true,
- legend_rightSide: true,
- legend_sort: 'current',
- legend_sortDesc: false,
- pointradius: 5,
- sort: 'none',
- },
-
- vitess_vttablet_host_view+: self.mysql_default {
- legend_current: true,
- legend_min: true,
- legend_sort: 'current',
- legend_sortDesc: true,
- },
-
- go_gc_seconds+: self.legend_max {
- format: 's',
- },
-
- go_gc_ops+: self.legend_max {
- format: 'ops',
- },
-
- mysql_timings+: self.legend_min_max_avg {
- legend_sort: 'max',
- legend_sortDesc: true,
- format: 's',
- },
-
- vtgate_to_vttablet_calls: self.legend_min_max_avg + self.null_as_zeros {
- format: 's',
- legend_sortDesc: true,
- legend_sort: 'max',
- },
-
- },
- },
-
- prometheus_node: {
- panel: {
- default: {
- datasource: '%(nodeDataSource)s' % config._config,
- fill: 0,
- legend_alignAsTable: true,
- legend_current: true,
- legend_sort: 'current',
- legend_sortDesc: true,
- legend_values: true,
- min: 0,
- sort: 'decreasing',
- },
-
- percent_panel: self.default {
- format: 'percentunit',
- legend_min: true,
- legend_max: true,
- },
-
- null_as_zeros+: self.default {
- nullPointMode: 'null as zero',
- },
-
- vttablet_host_view: self.percent_panel {
- legend_avg: true,
- legend_current: false,
- legend_sort: 'max',
- },
-
- performance_analysis_short: self.percent_panel {
- format: 'short',
- legend_min: false,
- legend_max: false,
- },
-
- performance_analysis_seconds+: self.performance_analysis_short {
- format: 's',
- },
- },
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/mysql_config.libsonnet b/vitess-mixin/dashboards/resources/config/mysql_config.libsonnet
deleted file mode 100644
index 543e3565902..00000000000
--- a/vitess-mixin/dashboards/resources/config/mysql_config.libsonnet
+++ /dev/null
@@ -1,87 +0,0 @@
-local config = import '../../../config.libsonnet';
-local configuration_templates = import './configuration_templates.libsonnet';
-local vitess_ct = configuration_templates.prometheus_vitess;
-
-// TODO: move local template variables and fields to ./configuration_templates.libsonnet.
-{
- // TODO: add description for each panel.
- panels: {
-
- local panel_template = vitess_ct.panel.mysql_default,
- local vttablet_host_view_panel_template = vitess_ct.panel.vitess_vttablet_host_view,
-
- // TODO Create a recording rule for the prometheus target.
- mysqlRestart: panel_template {
- title: 'MySQL (by keyspace/shard)',
- bars: true,
- format: 'short',
- legend_sort: 'max',
- legend_sortDesc: false,
- lines: false,
- sort: 'increasing',
- targets: [
- {
- expr: |||
- count by (keyspace, shard) (
- idelta (
- mysql_global_status_uptime{
- %(mysqlSelector)s
- }[5m]
- ) < 0
- )
- ||| % config._config,
- legendFormat: '{{keyspace}}/{{shard}}',
- },
- ],
- },
-
- // TODO Create a recording rule for the prometheus target.
- mysqlSlowQueries: panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Slow queries',
- format: 'cps',
- legend_min: true,
- legend_current: true,
- legend_sort: 'current',
- legend_sortDesc: true,
- sort: 'decreasing',
- nullPointMode: 'null as zero',
- targets: [
- {
- expr: |||
- sum (
- rate(
- mysql_global_status_slow_queries{
- %(mysqlSelector)s
- }[$interval]
- )
- )
- ||| % config._config,
- legendFormat: 'Slow Queries',
- },
- ],
- },
-
- // TODO Create a recording rule for the prometheus target.
- mysqlSlowQueriesByInstance: vttablet_host_view_panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Slow Queries',
- format: 'ops',
- targets: [
- {
- expr: |||
- sum by(instance)(
- rate(
- mysql_global_status_slow_queries{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/os_config.libsonnet b/vitess-mixin/dashboards/resources/config/os_config.libsonnet
deleted file mode 100644
index 8451311cb1b..00000000000
--- a/vitess-mixin/dashboards/resources/config/os_config.libsonnet
+++ /dev/null
@@ -1,384 +0,0 @@
-/** This is a configuration file containing metadata for OS (Prometheus Node) grafana resources. */
-
-local config = import '../../../config.libsonnet';
-local configuration_templates = import './configuration_templates.libsonnet';
-local node_ct = configuration_templates.prometheus_node;
-
-// TODO: move local template variables and fields to ./configuration_templates.libsonnet.
-{
- // TODO: add description for each panel.
- panels: {
-
- local vtgate_panel_template = node_ct.panel.percent_panel,
- local vttablet_host_view_panel_template = node_ct.panel.vttablet_host_view,
-
- CPUUsage:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'CPU Usage',
- targets: [
- {
- expr:
- |||
- 1 -
- avg (
- rate(
- node_cpu_seconds_total{
- %(vtgateNodeSelector)s,
- mode="idle"
- }[1m]
- )
- )
- ||| % config._config,
- legendFormat: 'cpu usage',
- },
- ],
- },
-
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- CPUUsageByInstance:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'CPU Usage',
- targets: [
- {
- expr:
- |||
- 1 -
- avg by (instance)(
- rate(
- node_cpu_seconds_total{
- instance=~"$host",
- mode="idle"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- MemoryUsage:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Memory Usage',
- targets: [
- {
- expr:
- |||
- 1 -
- sum (
- node_memory_MemAvailable_bytes{
- %(vtgateNodeSelector)s
- }
- )
- /
- sum (
- node_memory_MemTotal_bytes{
- %(vtgateNodeSelector)s
- }
- )
- ||| % config._config,
- legendFormat: 'Memory Usage',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- MemoryUsageByInstance:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Memory Usage',
- targets: [
- {
- expr:
- |||
- 1 -
- sum by (instance)(
- node_memory_MemAvailable_bytes{
- instance=~"$host"
- }
- )
- /
- sum by (instance)(
- node_memory_MemTotal_bytes{
- instance=~"$host"
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- TCPRetransmissions:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'TCP Retransmissions',
- targets: [
- {
- expr:
- |||
- sum (
- rate(
- node_netstat_Tcp_RetransSegs{
- %(vtgateNodeSelector)s
- }[1m]
- )
- )
- /
- sum (
- rate(
- node_netstat_Tcp_OutSegs{
- %(vtgateNodeSelector)s
- }[1m]
- )
- )
- ||| % config._config,
- legendFormat: 'TCP retransmissions',
- },
- ],
- },
-
- TCPRetransmissionsByInstance:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'TCP Retransmissions',
- targets: [
- {
- expr:
- |||
- sum by (instance) (
- rate(
- node_netstat_Tcp_RetransSegs{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by (instance) (
- rate(
- node_netstat_Tcp_OutSegs{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- NetworkUsage:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Network Usage',
- format: 'bps',
- min: null,
- seriesOverrides: [
- {
- alias: '/egress .*/',
- transform: 'negative-Y',
- },
- ],
- targets: [
- {
- expr:
- |||
- sum (
- rate(
- node_network_receive_bytes_total{
- %(vtgateNodeSelector)s
- }[5m]
- )
- )
- * 8
- ||| % config._config,
- legendFormat: 'ingress',
- },
- {
- expr:
- |||
- sum (
- rate(
- node_network_transmit_bytes_total{
- %(vtgateNodeSelector)s
- }[5m]
- )
- )
- * 8
- ||| % config._config,
- legendFormat: 'egress',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- NetworkUsageByInstance:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Network Usage',
- format: 'Bps',
- min: null,
- seriesOverrides: [
- {
- alias: '/egress .*/',
- transform: 'negative-Y',
- },
- ],
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_receive_bytes_total{
- instance=~"$host"
- }[5m]
- )
- )
- ||| % config._config,
- legendFormat: 'ingress - {{instance}}',
- },
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_transmit_bytes_total{
- instance=~"$host"
- }[5m]
- )
- )
- ||| % config._config,
- legendFormat: 'egress - {{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- NetworkUsageByInstanceFilteredByShardKeyspace:
- vttablet_host_view_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Network Usage',
- format: 'bps',
- min: null,
- seriesOverrides: [
- {
- alias: '/egress .*/',
- transform: 'negative-Y',
- },
- ],
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_receive_bytes_total{
- keyspace="$keyspace",
- shard=~"$shard",
- instance=~"$host"
- }[5m]
- )
- )
- * 8
- |||,
- legendFormat: 'ingress - {{instance}}',
- },
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_transmit_bytes_total{
- keyspace="$keyspace",
- shard=~"$shard",
- instance=~"$host"
- }[5m]
- )
- )
- * 8
- |||,
- legendFormat: 'egress - {{instance}}',
- },
- ],
- },
-
- NetworkRxByInstance:
- vttablet_host_view_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Network Rx Bytes',
- format: 'bps',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_receive_bytes_total{
- instance=~"$host"
- }[1m]
- )
- )
- * 8
- |||,
- legendFormat: 'ingress - {{instance}}',
- },
- ],
- },
-
- NetworkTxByInstance:
- vttablet_host_view_panel_template
- + node_ct.panel.null_as_zeros {
- title: 'Network Tx Bytes',
- format: 'bps',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- node_network_transmit_bytes_total{
- instance=~"$host"
- }[1m]
- )
- )
- * 8
- |||,
- legendFormat: 'egress - {{instance}}',
- },
- ],
- },
-
- DiskUsageByInstance:
- vtgate_panel_template
- + node_ct.panel.null_as_zeros {
- title: '/mnt disk free',
- min: null,
- targets: [
- {
- expr:
- |||
- avg by(instance)(
- node_filesystem_avail_bytes{
- instance=~"$host",
- mountpoint="%(vttabletMountpoint)s"
- }
- /
- node_filesystem_size_bytes{
- instance=~"$host",
- mountpoint="%(vttabletMountpoint)s"
- }
- )
- ||| % config._config,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/row_config.libsonnet b/vitess-mixin/dashboards/resources/config/row_config.libsonnet
deleted file mode 100644
index 2fb6d6cb355..00000000000
--- a/vitess-mixin/dashboards/resources/config/row_config.libsonnet
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- misc:: {
- title: 'Misc',
- collapse: true,
- },
- mysqlTimings: {
- title: 'MySQL Timings',
- collapse: true,
- },
- queryErrors:: {
- title: 'Queries/Errors',
- collapse: true,
- },
- vitessTimings:: {
- title: 'Vitess Timings',
- collapse: true,
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/vtgate_config.libsonnet b/vitess-mixin/dashboards/resources/config/vtgate_config.libsonnet
deleted file mode 100644
index acbc7e19efb..00000000000
--- a/vitess-mixin/dashboards/resources/config/vtgate_config.libsonnet
+++ /dev/null
@@ -1,765 +0,0 @@
-/** This is a configuration file containing metadata for vtgate grafana resources. */
-
-local config = import '../../../config.libsonnet';
-local configuration_templates = import './configuration_templates.libsonnet';
-local vitess_ct = configuration_templates.prometheus_vitess;
-
-// TODO: move local template variables and fields to ./configuration_templates.libsonnet.
-{
- // ____ _
- // | _ \ __ _ _ __ ___| |___
- // | |_) / _` | '_ \ / _ \ / __|
- // | __/ (_| | | | | __/ \__ \
- // |_| \__,_|_| |_|\___|_|___/
-
- // TODO: add description for each panel.
- panels: {
-
- //Override default_panel values with custom configuration
- local panel_template = {
- datasource: '%(dataSource)s' % config._config,
- format: 'rps',
- fill: 0,
- legend_values: true,
- legend_alignAsTable: true,
- legend_min: true,
- legend_max: true,
- legend_current: true,
- legend_sort: 'current',
- legend_sortDesc: true,
- min: 0,
- sort: 'decreasing',
- },
-
- local garbage_collector_panel_template = panel_template {
- format: 's',
- legend_sort: 'max',
- },
-
- vtgateRequests:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests',
- fill: 1,
- targets: [
- {
- expr: |||
- sum (
- vitess_mixin:vtgate_api_count:rate1m
- )
- |||,
- legendFormat: 'Requests',
- },
- ],
- },
-
- vtgateRequestsByKeyspace:
- panel_template +
- vitess_ct.panel.null_as_zeros {
- title: 'Requests (by keyspace)',
- targets: [
- {
- expr: |||
- sum by(keyspace)(
- vitess_mixin:vtgate_api_count_by_keyspace:rate1m
- )
- ||| % config._config,
- legendFormat: '{{keyspace}}',
- },
- ],
- },
-
-
- vtgateRequestsByDBType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests (by db_type)',
- targets: [
- {
- expr: |||
- sum by (db_type)(
- vitess_mixin:vtgate_api_count_by_db_type:rate1m
- )
- |||,
- legendFormat: '{{db_type}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vtgateRequestsByInstanceDBType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests (by db_type)',
- fill: 0,
- targets: [
- {
- expr: |||
- sum by (instance, db_type)(
- rate(
- vtgate_api_count{
- instance=~"$host",
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}} - {{db_type}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS TARGET
- vtgateRequestsByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests',
- fill: 0,
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vtgate_api_count{
- instance=~'$host'
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
-
- vtgateErrorRate:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate',
- format: 'percentunit',
- fill: 1,
- aliasColors: {
- 'Error rate': '#F2495C',
- },
- targets: [
- {
- expr: |||
- sum (
- vitess_mixin:vtgate_api_error_counts:rate1m)
- /
- sum (
- vitess_mixin:vtgate_api_count:rate1m)
- |||,
- legendFormat: 'Error rate',
- },
- ],
- },
-
- vtgateErrorRateByKeyspace:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate (by keyspace)',
- format: 'percentunit',
- targets: [
- {
- expr: |||
- sum by(keyspace)(
- vitess_mixin:vtgate_api_error_counts_by_keyspace:rate1m)
- /
- sum by(keyspace)(
- vitess_mixin:vtgate_api_count_by_keyspace:rate1m)
- |||,
- legendFormat: '{{keyspace}}',
- },
- ],
- },
-
- vtgateErrorRateByDBType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate (by db_type)',
- format: 'percentunit',
- targets: [
- {
- expr: |||
- sum by (db_type)(
- vitess_mixin:vtgate_api_error_counts_by_db_type:rate1m
- )
- /
- sum by (db_type)(
- vitess_mixin:vtgate_api_count_by_db_type:rate1m
- )
- ||| % config._config,
- legendFormat: '{{db_type}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS TARGET
- vtgateErrorRateByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate',
- fill: 0,
- format: 'percentunit',
- nullPointMode: 'null as zero',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- vtgate_api_error_counts[1m]
- ) > 0
- )
- /
- sum by(instance)(
- rate(
- vtgate_api_count[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO Create RECORDING RULES FOR THESE PROM TARGETS
- vtgateErrorRateByInstanceDBType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate (by db_type)',
- fill: 0,
- format: 'percentunit',
- targets: [
- {
- expr:
- |||
- sum by(instance, db_type)(
- rate(vtgate_api_error_counts{
- instance=~"$host"
- }[1m]
- ) > 0
- )
- /
- sum by(instance, db_type)(
- rate(
- vtgate_api_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}} - {{db_type}}',
- intervalFactor: 1,
- },
- ],
- },
-
- vtgateDurationP99:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Duration 99th quantile',
- fill: 1,
- format: 's',
- aliasColors: {
- Duration: '#5794F2',
- },
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.99,
- sum by(le)(
- vitess_mixin:vtgate_api_bucket:rate1m
- )
- )
- |||,
- legendFormat: 'Duration',
- },
- ],
- },
-
- vtgateDurationP99ByKeyspace:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Duration 99th quantile (by keyspace)',
- format: 's',
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.99,
- sum by(keyspace,le)(
- vitess_mixin:vtgate_api_bucket_by_keyspace:rate1m
- )
- )
- ||| % config._config,
- legendFormat: '{{keyspace}}',
- },
- ],
- },
-
- local vtgateDurationTemplate =
- panel_template
- + vitess_ct.panel.null_as_zeros {
- fill: 1,
- format: 's',
- aliasColors: {
- Duration: '#5794F2',
- },
- },
-
- //TODO crete a recording rule for this prometheus vitess target
- vtgateDurationP99ByInstance: vtgateDurationTemplate {
- title: 'Duration 99th quantile',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.99,
- sum by(instance,le)(
- rate(
- vtgate_api_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO crete a recording rule for this prometheus vitess target
- vtgateDurationP99ByInstanceDBType: vtgateDurationTemplate {
- title: 'Duration 99th quantile (by db_type)',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.99,
- sum by(instance,db_type,le)(
- rate(
- vtgate_api_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}} - {{db_type}}',
- intervalFactor: 1,
- },
- ],
- },
-
- vtgateDurationP50: vtgateDurationTemplate {
- title: 'Duration 50th quantile',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.50,
- sum by(le)(
- vitess_mixin:vtgate_api_bucket:rate1m
- )
- )
- |||,
- legendFormat: 'Duration p50',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vtgateDurationP50ByInstance: vtgateDurationTemplate {
- title: 'Duration 50th quantile',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.50,
- sum by(instance, le)(
- rate(
- vtgate_api_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vtgateDurationP95: vtgateDurationTemplate {
- title: 'Duration 95th quantile',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.95,
- sum by(le)(
- vitess_mixin:vtgate_api_bucket:rate1m
- )
- )
- |||,
- legendFormat: 'Duration p95',
- },
- ],
- },
-
- vtgateDurationP95ByInstance: vtgateDurationTemplate {
- title: 'Duration 95th quantile',
- fill: 0,
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.95,
- sum by(instance, le)(
- rate(
- vtgate_api_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO write a recording rule for this prometheus_vitess target
- // only vtgate_api_sum requires a rule. Use 1m interval instead of 5m.
- vtgateDurationAVG: vtgateDurationTemplate {
- title: 'Duration (Avg)',
- fill: 0,
- targets: [
- {
- expr: |||
- sum (
- rate(
- vtgate_api_sum[5m]
- )
- )
- /
- sum (
- rate(
- vtgate_api_count[5m]
- )
- )
- |||,
- legendFormat: 'Avg Latency',
- },
- ],
- },
-
- //TODO write a recording rule for this prometheus_vitess target
- vtgateDurationAVGByInstance: vtgateDurationTemplate {
- title: 'Duration (Avg)',
- fill: 0,
- targets: [
- {
- expr: |||
- sum by (instance)(
- rate(
- vtgate_api_sum{
- instance=~"$host"
- }[5m]
- )
- )
- /
- sum by (instance)(
- rate(
- vtgate_api_count{
- instance=~"$host"
- }[5m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vtgateDurationP99ByDBType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Duration 99th quantile (by db_type)',
- format: 's',
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.99,
- sum by (db_type, le)(
- vitess_mixin:vtgate_api_bucket_by_db_type:rate1m
- )
- )
- |||,
- legendFormat: '{{db_type}}',
- },
- ],
- },
-
- vtgateErrorsByCode:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Errors (by code)',
- format: 'cps',
- targets: [
- {
- expr: |||
- sum by (code)(
- vitess_mixin:vtgate_api_error_counts_by_code:rate1m
- )
- |||,
- legendFormat: '{{code}}',
- },
- ],
-
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vtgateErrorsByInstanceCode:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Errors (by code)',
- format: 'cps',
- targets: [
- {
- expr: |||
- sum by (instance,code)(
- rate(
- vtgate_api_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}} - {{code}}',
- },
- ],
-
- },
-
- vtgateErrorsByOperation:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Errors (by operation)',
- format: 'cps',
- targets: [
- {
- expr: |||
- sum by (operation)(
- vitess_mixin:vtgate_api_error_counts_by_operation:rate1m
- )
- |||,
- legendFormat: '{{operation}}',
- },
- ],
-
- },
-
- vtgateErrorsByDbtype:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Errors (by db_type)',
- format: 'cps',
- targets: [
- {
- expr: |||
- sum by (db_type)(
- vitess_mixin:vtgate_api_error_counts_by_db_type:rate1m
- )
- |||,
- legendFormat: '{{db_type}}',
- },
- ],
-
- },
-
- //TODO CREATE RECORDING RULE FOR THIS PROM TARGET
- vtgateErrorsByInstanceKeyspace:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Errors (by keyspace)',
- format: 'cps',
- targets: [
- {
- expr: |||
- sum by (instance,keyspace)(
- rate(
- vtgate_api_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{keyspace}}',
- intervalFactor: 1,
- },
- ],
- },
-
- vtgateRestart: {
- title: 'vtgate',
- bars: true,
- datasource: '%(dataSource)s' % config._config,
- fill: 0,
- format: 'short',
- legend_alignAsTable: true,
- legend_current: false,
- legend_max: true,
- legend_min: false,
- legend_sort: 'max',
- legend_sortDesc: false,
- legend_values: true,
- lines: false,
- min: 0,
- shared_tooltip: false,
- sort: 'increasing',
- targets: [
- {
- expr: |||
- sum by (instance)(
- vitess_mixin:process_start_time_seconds_by_instance_job:sum5m{
- %(vtgateSelector)s
- }
- )
- ||| % config._config,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO crete a recording rule for this prometheus vitess target
- vtgateGarbageCollectionCount: garbage_collector_panel_template {
- title: 'GC Count',
- format: 'ops',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- go_gc_duration_seconds_count{
- %(vtgateSelector)s
- }[1m]
- )
- )
- ||| % config._config,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
- //TODO crete a recording rule for this prometheus vitess target
- vtgateGarbageCollectionDuration: garbage_collector_panel_template {
- title: 'GC Duration total per second',
- description: 'A summary of the pause duration of garbage collection cycles',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- go_gc_duration_seconds_count{
- %(vtgateSelector)s
- }[1m]
- )
- )
- ||| % config._config,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
- //TODO crete a recording rule for this prometheus vitess target
- vtgateGarbageCollectionDurationQuantiles: garbage_collector_panel_template {
- title: 'GC Duration quantiles',
- targets: [
- {
- expr:
- |||
- sum by(quantile)(
- rate(
- go_gc_duration_seconds{
- %(vtgateSelector)s
- }[1m]
- )
- )
- ||| % config._config,
- legendFormat: 'p{{quantile}}',
- intervalFactor: 1,
- },
- ],
- },
- },
-
- // _ _ _ _
- // ___(_)_ __ __ _| | ___ ___| |_ __ _| |_ ___
- // / __| | '_ \ / _` | |/ _ \/ __| __/ _` | __/ __|
- // \__ \ | | | | (_| | | __/\__ \ || (_| | |_\__ \
- // |___/_|_| |_|\__, |_|\___||___/\__\__,_|\__|___/
- // |___/
-
- //TODO move default configurations to helper code (vttablet_helper)
- singlestats: {
-
- vtgateQPS: {
- title: 'QPS - vtgate',
- datasource: '%(dataSource)s' % config._config,
- format: 'short',
- valueFontSize: '70%',
- valueName: 'current',
- sparklineFull: true,
- sparklineShow: true,
- target:
- {
- expr: |||
- sum (
- vitess_mixin:vtgate_api_count:rate1m
- )
- |||,
- intervalFactor: 1,
- },
- },
-
- vtgateQueryLatencyP99: {
- title: 'Query latency p99',
- datasource: '%(dataSource)s' % config._config,
- colorBackground: true,
- decimals: 2,
- format: 'ms',
- valueFontSize: '70%',
- valueName: 'current',
- thresholds: '30,50',
- target:
- {
- expr: |||
- 1000 * histogram_quantile(
- 0.99,
- sum by(le)(
- vitess_mixin:vtgate_api_bucket:rate1m
- )
- )
- |||,
- instant: true,
- intervalFactor: 1,
- },
- },
- },
-}
diff --git a/vitess-mixin/dashboards/resources/config/vttablet_config.libsonnet b/vitess-mixin/dashboards/resources/config/vttablet_config.libsonnet
deleted file mode 100644
index 4dbd8a989de..00000000000
--- a/vitess-mixin/dashboards/resources/config/vttablet_config.libsonnet
+++ /dev/null
@@ -1,1073 +0,0 @@
-/** This is a configuration file containing metadata for vttablet grafana resources. */
-
-local config = import '../../../config.libsonnet';
-local configuration_templates = import './configuration_templates.libsonnet';
-local vitess_ct = configuration_templates.prometheus_vitess;
-
-// TODO: move local template variables to ./configurations_templates.libsonnet.
-{
- panels: {
- // ____ _
- // | _ \ __ _ _ __ ___| |___
- // | |_) / _` | '_ \ / _ \ / __|
- // | __/ (_| | | | | __/ \__ \
- // |_| \__,_|_| |_|\___|_|___/
-
- // TODO: add description for each panel.
-
- //Override default_panel values with custom configuration
- local vttablet_queries_killed = vitess_ct.panel.legend_min_max_avg + vitess_ct.panel.null_as_zeros,
- local vttablet_query_errors_by_type = vitess_ct.panel.legend_min_max_avg + vitess_ct.panel.null_as_zeros,
-
- local panel_template = vitess_ct.panel.legend_min_max_current {
- legend_sort: 'current',
- legend_sortDesc: true,
- shared_tooltip: true,
- sort: 'decreasing',
- },
-
- local vttablet_host_view_panel_template = panel_template {
- legend_sort: 'avg',
- legend_avg: true,
- legend_current: false,
- },
-
- //TODO Create a recording rule.
- countServingTablets:
- panel_template {
- title: '# of serving tablets',
- legend_sortDesc: false,
- shared_tooltip: false,
- sort: 'increasing',
- targets: [
- {
- expr:
- |||
- count(
- vttablet_tablet_server_state{
- %(vttabletSelector)s,
- name="SERVING"
- }
- )
- |||
- % config._config,
- legendFormat: 'SERVING',
- },
- ],
- },
-
- vttabletRequestsByTable:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests (by table)',
- format: 'rps',
- targets: [
- {
- expr:
- |||
- sum by (table)(
- vitess_mixin:vttablet_query_counts_by_keyspace_table:rate1m{
- table=~"$table"
- }
- )
- or
- vector(0)
- |||,
- legendFormat: '{{table}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMEHTEUS TARGET
- vttabletRequestsByPlanType:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests (by plan type)',
- format: 'ops',
- nullPointMode: 'null as zero',
- targets: [
- {
- expr:
- |||
- sum by (plan_type)(
- rate(
- vttablet_queries_count{
- instance=~"$host"
- } [1m]
- )
- )
- |||,
- legendFormat: '{{plan_type}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vttabletRequestsByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests',
- format: 'ops',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- nullPointMode: 'null as zero',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_query_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vttabletRequestsByTableFilteredByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Requests (by table)',
- format: 'ops',
- nullPointMode: 'null as zero',
- targets: [
- {
- expr:
- |||
- sum by (table)(
- rate(
- vttablet_query_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{table}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vttabletErrorRateByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate',
- format: 'percentunit',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- /
- (
- sum by (instance)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- +
- sum by (instance)(
- rate(
- vttablet_query_counts{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vttabletErrorRateByPlanFilteredByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate (by plan type)',
- format: 'percentunit',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- targets: [
- {
- expr:
- |||
- sum by (plan)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- /
- (
- sum by (plan)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- +
- sum by (plan)(
- rate(
- vttablet_query_counts{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{plan}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROM TARGET
- vttabletErrorRateByTableFilteredByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Error rate (by table)',
- format: 'percentunit',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- targets: [
- {
- expr:
- |||
- sum by (table)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- /
- (
- sum by (table)(
- rate(
- vttablet_query_error_counts{
- instance=~"$host"
- }[1m]
- )
- )
- +
- sum by (table)(
- rate(
- vttablet_query_counts{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{table}}',
- },
- ],
- },
-
- vttabletRowsReturnedByTableFilteredByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Rows Returned (by table)',
- targets: [
- {
- expr:
- |||
- sum by (table) (
- rate(
- vttablet_query_row_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{table}}',
- },
- ],
- },
-
- vttabletRowsReturnedByPlansFilterByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Rows Returned (by plan)',
- targets: [
- {
- expr:
- |||
- sum by (plan) (
- rate(
- vttablet_query_row_counts{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{plan}}',
- },
- ],
- },
-
- //TODO DEDUPLICATE LEGEND CONFIGURATION FOR QUERY DURATION PANELS
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryDurationAvgByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Query Duration (avg)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- vttablet_queries_sum{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by(instance)(
- rate(
- vttablet_queries_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryDurationP50ByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Query Duration (p50)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.50,sum by(instance,le)(
- rate(
- vttablet_queries_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryDurationP95ByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Query Duration (p95)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.95,sum by(instance,le)(
- rate(
- vttablet_queries_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryDurationP99ByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Duration (p99)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.99,sum by(instance,le)(
- rate(
- vttablet_queries_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryDurationP99ByPlan:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Duration p99 (by plan type)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'avg',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.99,sum by(plan_type,le)(
- rate(
- vttablet_queries_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{plan_type}}',
- },
- ],
- },
-
- //TODO DEDUPLICATE LEGEND CONFIGURATION FOR TRANSACTION DURATION PANELS
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionDurationAvgByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Transaction Duration (avg)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- vttablet_transactions_sum{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by(instance)(
- rate(
- vttablet_transactions_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionDurationP50ByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Transaction Duration (p50)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.50,sum by(instance,le)(
- rate(
- vttablet_transactions_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionDurationP95ByInstance:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Transaction Duration (p95)',
- format: 's',
- legend_current: false,
- legend_avg: true,
- legend_sort: 'max',
- targets: [
- {
- expr:
- |||
- histogram_quantile(
- 0.95,sum by(instance,le)(
- rate(
- vttablet_transactions_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vttabletQueryTransactionKilled:
- panel_template
- + vitess_ct.panel.null_as_zeros {
- title: 'Query/Transaction killed',
- format: 'cps',
- legend_alignAsTable: true,
- shared_tooltip: false,
- targets: [
- {
- expr:
- |||
- sum (
- vitess_mixin:vttablet_kills:rate1m
- )
- |||,
- legendFormat: 'Killed',
- },
- ],
- },
-
- vttabletRestart: {
- title: 'vttablet',
- bars: true,
- datasource: '%(dataSource)s' % config._config,
- fill: 0,
- format: 'short',
- legend_values: true,
- legend_alignAsTable: true,
- legend_max: true,
- legend_sort: 'max',
- legend_sortDesc: false,
- lines: false,
- min: 0,
- shared_tooltip: false,
- sort: 'increasing',
- targets: [
- {
- expr:
- |||
- sum by (instance) (
- vitess_mixin:process_start_time_seconds_by_instance_job:sum5m{
- %(vttabletSelector)s
- }
- )
- ||| % config._config,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryPoolAvailableConnections: vttablet_host_view_panel_template {
- title: 'Available Connections',
- description: 'number of available connections in the pool in real-time',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- vttablet_conn_pool_available{
- instance=~'$host'
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryPoolActiveConnections: vttablet_host_view_panel_template {
- title: 'Active Connections',
- description: 'count of in use connections to mysql',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by(instance) (
- vttablet_conn_pool_active{
- instance=~'$host'
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryPoolIddleClosedRate: vttablet_host_view_panel_template {
- title: 'Idle Closed Rate',
- description: 'rate of closing connections due to the idle timeout',
- format: 'ops',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_conn_pool_idle_closed{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryPoolWaitCount: vttablet_host_view_panel_template {
- title: 'Wait count',
- description: 'WaitCount will give you how often the transaction pool gets full that causes new transactions to wait.',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_conn_pool_wait_count{
- instance=~'$host'
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryPoolAvgWaitTime: vttablet_host_view_panel_template {
- title: 'Avg wait time',
- format: 's',
- description: 'WaitTime/WaitCount will tell you the average wait time.',
- targets: [
- {
- expr:
- |||
- sum by (instance) (
- rate(
- vttablet_conn_pool_wait_time{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by (instance) (
- rate(
- vttablet_conn_pool_wait_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vttabletQueriesKilled: vttablet_queries_killed {
- title: 'Queries Killed',
- description: |||
- Kills reports the queries and transactions killed by VTTablet due to timeout.
- It’s a very important variable to look at during outages.
- |||,
- targets: [
- {
- expr: |||
- sum by (instance)(
- vitess_mixin:vttablet_kills_by_instance:rate1m{
- instance=~"$host"
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- vttabletQueryErrorsByType: vttablet_query_errors_by_type {
- title: 'Query errors (by error code)',
- description: '',
- targets: [
- {
- expr: |||
- sum by (error_code)(
- vitess_mixin:vttablet_errors:rate1m{
- instance=~"$host"
- }
- )
- |||,
- legendFormat: 'ErrorCode: {{error_code}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionPoolAvailableConnections: vttablet_host_view_panel_template {
- title: 'Available Connections',
- description: 'number of available connections in the pool',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- vttablet_transaction_pool_available{
- instance=~'$host'
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionPoolActiveConnections: vttablet_host_view_panel_template {
- title: 'Active Connections',
- description: 'Number of connections actually open to mysql',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by(instance) (
- vttablet_transaction_pool_active{
- instance=~'$host'
- }
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionPoolIddleClosedRate: vttablet_host_view_panel_template {
- title: 'Idle Closed Rate',
- description: 'Rate of closing connections due to the idle timeout',
- format: 'ops',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_transaction_pool_idle_closed{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionPoolWaitCount: vttablet_host_view_panel_template {
- title: 'Wait count',
- description: 'WaitCount will give you how often the transaction pool gets full that causes new transactions to wait.',
- format: 'short',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vttablet_transaction_pool_wait_count{
- instance=~'$host'
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletTransactionPoolAvgWaitTime: vttablet_host_view_panel_template {
- title: 'Avg wait time',
- format: 's',
- description: 'WaitTime/WaitCount will tell you the average wait time.',
- targets: [
- {
- expr:
- |||
- sum by (instance) (
- rate(
- vttablet_transaction_pool_wait_time{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by (instance) (
- rate(
- vttablet_transaction_pool_wait_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletGarbageCollectionCount: vitess_ct.panel.go_gc_ops {
- title: 'GC Count',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- go_gc_duration_seconds_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletGarbageCollectionDuration: vitess_ct.panel.go_gc_seconds {
- title: 'GC Duration total per second',
- description: 'A summary of the pause duration of garbage collection cycles',
- targets: [
- {
- expr:
- |||
- sum by(instance)(
- rate(
- go_gc_duration_seconds_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- intervalFactor: 1,
- },
- ],
- },
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletGarbageCollectionDurationQuantiles: vitess_ct.panel.go_gc_seconds {
- title: 'GC Duration quantiles (all hosts)',
- targets: [
- {
- expr:
- |||
- sum by(quantile)(
- rate(
- go_gc_duration_seconds{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: 'p{{quantile}}',
- intervalFactor: 1,
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletMysqlTimeAvgFilteredByInstance: vitess_ct.panel.mysql_timings {
- title: 'MySQL time (avg)',
- targets: [
- {
- expr:
- |||
- sum by (instance) (
- rate(
- vttablet_mysql_sum{
- instance=~"$host"
- }[1m]
- )
- )
- /
- sum by (instance) (
- rate(
- vttablet_mysql_count{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletMysqlExecTimeP50FilterebyInstance: vitess_ct.panel.mysql_timings {
- title: 'MySQL Exec Time P50',
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.50,
- sum by (le, instance) (
- rate(
- vttablet_mysql_bucket{
- operation="Exec",
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletMysqlExecTimeP95FilterebyInstance: vitess_ct.panel.mysql_timings {
- title: 'MySQL Exec Time P95',
- targets: [
- {
- expr: |||
- histogram_quantile(
- 0.95,
- sum by (le, instance) (
- rate(
- vttablet_mysql_bucket{
- operation="Exec",
- instance=~"$host"
- }[1m]
- )
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vtgateToVtTabletCallTimeAvgFilteredByInstance: vitess_ct.panel.vtgate_to_vttablet_calls {
- title: 'VtGate -> VtTablet Call Time (avg)',
- targets: [
- {
- expr:
- |||
- sum by (instance)(
- rate(
- vtgate_vttablet_call_sum[1m]
- )
- )
- /
- sum by (instance)(
- rate(
- vtgate_vttablet_call_count[1m]
- )
- )
- |||,
- legendFormat: '{{instance}}',
- },
- ],
- },
-
- },
-
- singlestats: {
- // _ _ _ _
- // ___(_)_ __ __ _| | ___ ___| |_ __ _| |_ ___
- // / __| | '_ \ / _` | |/ _ \/ __| __/ _` | __/ __|
- // \__ \ | | | | (_| | | __/\__ \ || (_| | |_\__ \
- // |___/_|_| |_|\__, |_|\___||___/\__\__,_|\__|___/
- // |___/
-
- vttabletQPS: {
- title: 'QPS - vttablet',
- datasource: '%(dataSource)s' % config._config,
- format: 'short',
- valueFontSize: '70%',
- valueName: 'current',
- sparklineFull: true,
- sparklineShow: true,
- target:
- {
- expr: |||
- sum (
- vitess_mixin:vttablet_query_counts:rate1m
- )
- |||,
- intervalFactor: 1,
- },
- },
- },
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/heatmaps.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/heatmaps.libsonnet
deleted file mode 100644
index 9a6e5f41527..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/heatmaps.libsonnet
+++ /dev/null
@@ -1,36 +0,0 @@
-// Re-cyclable components for heatmap resources
-local config = import '../../../config.libsonnet';
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-
-local heatmap = grafana.heatmapPanel;
-local prometheus = grafana.prometheus;
-{
- //TODO move to resources/vttablet
- //TODO CREATE A RECORDING RULE FOR THIS PROMETHEUS TARGET
- vttabletQueryTimeDistribution::
- heatmap.new(
- title='Query Time Distribution (Heatmap)',
- description='Shows a heatmap of the histogram bucketing of the time per read query.',
- datasource='%(dataSource)s' % config._config,
- dataFormat='tsbuckets',
- yAxis_format='s',
- color_cardColor='#FF9830',
- color_exponent=0.3,
- color_mode='opacity',
- yAxis_decimals=0,
- ).addTarget(
- prometheus.target(
- |||
- sum by (le) (
- rate(
- vttablet_queries_bucket{
- instance=~"$host"
- }[1m]
- )
- )
- |||,
- format='heatmap',
- legendFormat='{{le}}'
- )
- ),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/dashboard_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/dashboard_helper.libsonnet
deleted file mode 100644
index d998cc65540..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/dashboard_helper.libsonnet
+++ /dev/null
@@ -1,16 +0,0 @@
-/** This is a helper library to load grafonnet dashboards using the mixin metadata stored in `config.libshonnet` */
-
-local grafonnet_helper = import 'grafonnet_helper.libsonnet';
-
-{
- /**
- * Builds a dashboard using grafonnet and the configuration from `config.libsonnet`
- *
- * @name dashboard_helper.getDashboard
- *
- * @param config The dashboard configuration from mixin config file.
- * @return A new graphPanel with the configuration specified in `config.libsonnet`
- *
- */
- getDashboard(config):: grafonnet_helper.getDashboard(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/grafonnet_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/grafonnet_helper.libsonnet
deleted file mode 100644
index 2ff41c6a06f..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/grafonnet_helper.libsonnet
+++ /dev/null
@@ -1,376 +0,0 @@
-/**
- * This is a helper library to generate grafana resources reading the configuration from a config file.
- */
-
-local grafana = import '../../../../vendor/grafonnet/grafana.libsonnet';
-local prometheus = grafana.prometheus;
-local alert_condition = grafana.alertCondition;
-
-// _ _ _
-// __ _ _ __ _ __ ___ | |_ __ _| |_(_) ___ _ __
-// / _` | '_ \| '_ \ / _ \| __/ _` | __| |/ _ \| '_ \
-// | (_| | | | | | | | (_) | || (_| | |_| | (_) | | | |
-// \__,_|_| |_|_| |_|\___/ \__\__,_|\__|_|\___/|_| |_|
-
-local getAnnotation(config) = if (config.name == 'default') then
- grafana.annotation.default
-else
- // TODO when the properties are supported by grafonnet use the lib constructor
- // instead of using composition
- grafana.annotation.datasource(
- config.name,
- config.datasource
- ) +
- config.properties;
-
-// _ _ _ _
-// __| | __ _ ___| |__ | |__ ___ __ _ _ __ __| |
-// / _` |/ _` / __| '_ \| '_ \ / _ \ / _` | '__/ _` |
-// | (_| | (_| \__ \ | | | |_) | (_) | (_| | | | (_| |
-// \__,_|\__,_|___/_| |_|_.__/ \___/ \__,_|_| \__,_|
-
-local getDashboard(config) = grafana.dashboard.new(
- title=config.title,
- description=config.description,
- uid=config.uid,
- time_from=config.time_from,
- tags=(config.dashboardTags),
- editable=true,
- graphTooltip='shared_crosshair',
-) + {
- environments:: config.environments,
-};
-
-// _
-// _ __ __ _ _ __ ___| |
-// | '_ \ / _` | '_ \ / _ \ |
-// | |_) | (_| | | | | __/ |
-// | .__/ \__,_|_| |_|\___|_|
-// |_|
-// The default panel contains all the parameters that we want to override.
-// https://github.com/grafana/grafonnet-lib/blob/master/grafonnet/graph_panel.libsonnet
-
-local default_panel = {
- title: '',
- aliasColors: {},
- bars: false,
- decimals: null,
- description: null,
- format: 'short',
- fill: 1,
- legend_alignAsTable: false,
- legend_avg: false,
- legend_current: false,
- legend_hideZero: null,
- legend_max: false,
- legend_min: false,
- legend_rightSide: false,
- legend_sort: null,
- legend_sortDesc: null,
- legend_values: false,
- lines: true,
- linewidth: 1,
- max: null,
- min: null,
- points: false,
- pointradius: 5,
- nullPointMode: 'null',
- shared_tooltip: true,
- sort: 0,
- thresholds: [],
-};
-
-local default_prometheus_target = {
- format: 'time_series',
- instant: null,
- intervalFactor: 2,
- legendFormat: '',
-};
-
-local default_alert_condition = {
- evaluatorParams: [],
- evaluatorType: 'gt',
- operatorType: 'and',
- queryRefId: 'A',
- queryTimeEnd: 'now',
- queryTimeStart: '5m',
- reducerParams: [],
- reducerType: 'avg',
-};
-
-local getConditions(config) =
- if std.objectHas(config.alert[std.extVar('env')], 'conditions') then
- //reducerType is a grafonnet field value. This asserts the config is not legacy
- if std.objectHas(config.alert[std.extVar('env')].conditions[0], 'reducerType')
- then
- local x = std.map(
- function(c) default_alert_condition + c
- , config.alert[std.extVar('env')].conditions
- );
- std.map(
- function(c)
- alert_condition.new(
- evaluatorParams=c.evaluatorParams,
- evaluatorType=c.evaluatorType,
- operatorType=c.operatorType,
- queryRefId=c.queryRefId,
- queryTimeEnd=c.queryTimeEnd,
- queryTimeStart=c.queryTimeStart,
- reducerParams=c.reducerParams,
- reducerType=c.reducerType,
- )
- , x
- )
- else
- //Legacy config files include calls to grafonnet.alert_condition.new()
- //TODO update legacy config files to use alert conditions in json format,
- config.alert[std.extVar('env')].conditions
- else [];
-
-local getTargets(config) =
- if std.objectHas(config, 'targets') then
- if config.datasource != null &&
- std.startsWith(config.datasource, 'Prometheus') &&
- std.objectHas(config.targets[0], 'expr')
- then
- local x = std.map(
- function(t) default_prometheus_target + t
- , config.targets
- );
- std.map(
- function(t)
- prometheus.target(
- t.expr,
- legendFormat=t.legendFormat,
- instant=t.instant,
- intervalFactor=t.intervalFactor,
- format=t.format
- )
- , x
- )
- else
- //When the datasource is not prometheus(elastic, graphite) config file
- //include calls to graphite.target() and elasticsearch.target().
- //see webapp_config.lisonnet
- //TODO Update this method to decouple grafonnet code from the configuration files.
- //Legacy configuration files include prometheus.target() calls.
- //TODO update legacy config files to use {'expr':'Prom query' ...} format,
- config.targets
- else [];
-
-// This method overriddes grafonnet graphPanel defaults with the values in the config file .
-// https://github.com/grafana/grafonnet-lib/blob/master/grafonnet/graph_panel.libsonnet
-// TODO: When grapPanel supports either addLinks (https://github.com/grafana/grafonnet-lib/pull/278)
-// we should add the links there instead of composing the `options` field.
-local initPanel(config) =
- grafana.graphPanel.new(
- title=config.title,
- aliasColors=config.aliasColors,
- bars=config.bars,
- datasource=config.datasource,
- decimals=config.decimals,
- description=config.description,
- fill=config.fill,
- format=config.format,
- legend_alignAsTable=config.legend_alignAsTable,
- legend_avg=config.legend_avg,
- legend_rightSide=config.legend_rightSide,
- legend_hideZero=config.legend_hideZero,
- legend_min=config.legend_min,
- legend_max=config.legend_max,
- legend_current=config.legend_current,
- legend_sort=config.legend_sort,
- legend_sortDesc=config.legend_sortDesc,
- legend_values=config.legend_values,
- lines=config.lines,
- linewidth=config.linewidth,
- max=config.max,
- min=config.min,
- points=config.points,
- pointradius=config.pointradius,
- nullPointMode=config.nullPointMode,
- shared_tooltip=config.shared_tooltip,
- sort=config.sort,
- thresholds=config.thresholds,
- ).addTargets(
- getTargets(config)
- ) +
- {
- [if std.objectHas(config, 'options')
- then 'options']:
- config.options,
- };
-
-local getPanel(c) =
- if std.objectHas(c, 'alert') then
- local config = default_panel + c;
- local panel = initPanel(config).addAlert(
- config.alert.name,
- executionErrorState=config.alert.executionErrorState,
- forDuration=config.alert.forDuration,
- frequency=config.alert.frequency,
- message=config.alert.message,
- noDataState=config.alert.noDataState,
- notifications=config.alert[std.extVar('env')].notifications,
- ).addConditions(
- getConditions(config)
- );
- if std.objectHas(config, 'seriesOverrides') then
- local it = panel;
- std.foldl(function(p, o) p.addSeriesOverride(o), config.seriesOverrides, it)
- else
- panel
- else
- (local config = default_panel + c;
- local panel = initPanel(config);
- if std.objectHas(config, 'seriesOverrides') then
- local it = panel;
- std.foldl(function(p, o) p.addSeriesOverride(o), config.seriesOverrides, it)
- else
- panel);
-
-// _ __ _____ __
-// | '__/ _ \ \ /\ / /
-// | | | (_) \ V V /
-// |_| \___/ \_/\_/
-
-local row_default = {
- title: '',
- height: null,
- collapse: false,
- repeat: null,
- showTitle: null,
- titleSize: 'h6',
-};
-
-local getRow(c) =
- local config = row_default + c;
- grafana.row.new(
- title=config.title,
- height=config.height,
- collapse=config.collapse,
- repeat=config.repeat,
- showTitle=config.showTitle,
- titleSize=config.titleSize
- );
-
-// _ _ _ _
-// ___(_)_ __ __ _| | ___ ___| |_ __ _| |_
-// / __| | '_ \ / _` | |/ _ \/ __| __/ _` | __|
-// \__ \ | | | | (_| | | __/\__ \ || (_| | |_
-// |___/_|_| |_|\__, |_|\___||___/\__\__,_|\__|
-// |___/
-//The default value should include all the parameters that are overridden by the objects that extend the default.
-//Default values match grafonnet defaults > https://github.com/grafana/grafonnet-lib/blob/master/grafonnet/singlestat.libsonnet
-
-local default_singlestat = {
- colors: [
- '#299c46',
- 'rgba(237, 129, 40, 0.89)',
- '#d44a3a',
- ],
- colorBackground: false,
- decimals: null,
- format: 'none',
- valueFontSize: '80%',
- valueName: 'avg',
- sparklineFull: false,
- sparklineShow: false,
- thresholds: '',
-};
-
-local initSingleStat(config) = grafana.singlestat.new(
- title=config.title,
- datasource=config.datasource,
- colors=config.colors,
- colorBackground=config.colorBackground,
- decimals=config.decimals,
- format=config.format,
- valueFontSize=config.valueFontSize,
- valueName=config.valueName,
- sparklineFull=config.sparklineFull,
- sparklineShow=config.sparklineShow,
- thresholds=config.thresholds,
-);
-
-local getSingleStat(c) = if std.objectHas(c, 'target')
-then
- local config = default_singlestat + c;
- local tc = default_prometheus_target + config.target;
- local t = prometheus.target(
- tc.expr,
- legendFormat=tc.legendFormat,
- instant=tc.instant,
- intervalFactor=tc.intervalFactor,
- format=tc.format
- );
- initSingleStat(config).addTarget(t)
-else
- local config = default_singlestat + c;
- initSingleStat(config);
-
-// _ _ _
-// | |_ ___ _ __ ___ _ __ | | __ _| |_ ___
-// | __/ _ \ '_ ` _ \| '_ \| |/ _` | __/ _ \
-// | || __/ | | | | | |_) | | (_| | || __/
-// \__\___|_| |_| |_| .__/|_|\__,_|\__\___|
-// |_|
-// default values from https://github.com/grafana/grafonnet-lib/blob/master/grafonnet/template.libsonnet
-local template_default = {
- label: null,
- allValues: null,
- tagValuesQuery: '',
- current: null,
- hide: '',
- regex: '',
- refresh: 'never',
- includeAll: false,
- multi: false,
- sort: 0,
-};
-local getTemplate(c) =
- local config = template_default + c;
- grafana.template.new(
- name=config.name,
- datasource=config.datasource,
- query=config.query,
- label=config.label,
- current=config.current,
- regex=config.regex,
- refresh=config.refresh,
- sort=config.sort,
- );
-
-// _ _ _ _ _ _ _
-// __| | __ _ ___| |__ | |__ ___ __ _ _ __ __| | | (_)_ __ | | __
-// / _` |/ _` / __| '_ \| '_ \ / _ \ / _` | '__/ _` | | | | '_ \| |/ /
-// | (_| | (_| \__ \ | | | |_) | (_) | (_| | | | (_| | | | | | | | <
-// \__,_|\__,_|___/_| |_|_.__/ \___/ \__,_|_| \__,_| |_|_|_| |_|_|\_\
-local link_default = {
- asDropdown: true,
- includeVars: false,
- keepTime: false,
- icon: 'external link',
- url: '',
- targetBlank: false,
- type: 'dashboards',
-};
-
-local getDashboardLink(c) =
- local config = link_default + c;
- grafana.link.dashboards(
- title=config.title,
- tags=config.tags,
- keepTime=config.keepTime,
- includeVars=config.includeVars,
- );
-
-{
- getAnnotation(config):: getAnnotation(config),
- getDashboard(config):: getDashboard(config),
- getPanel(config):: getPanel(config),
- getRow(config):: getRow(config),
- getSingleStat(config):: getSingleStat(config),
- getTemplate(config):: getTemplate(config),
- getDashboardLink(config):: getDashboardLink(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/helpers.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/helpers.libsonnet
deleted file mode 100644
index a6d74985dd3..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/helpers.libsonnet
+++ /dev/null
@@ -1,9 +0,0 @@
-// TODO deduplicate helper code. Same/similar functions are used by vtgate, vttablet and orchestrator helpers
-{
- dashboard:: import 'dashboard_helper.libsonnet',
- default:: import 'grafonnet_helper.libsonnet',
- mysql:: import 'mysql_helper.libsonnet',
- os:: import 'os_helper.libsonnet',
- vtgate:: import 'vtgate_helper.libsonnet',
- vttablet:: import 'vttablet_helper.libsonnet',
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/mysql_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/mysql_helper.libsonnet
deleted file mode 100644
index 3d0b1ff6a44..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/mysql_helper.libsonnet
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * This is a helper library to generate os resources reading the configuration from mysql_config.libsonnet
- */
-
-local grafonnet_helper = import './grafonnet_helper.libsonnet';
-
-/**
- * Builds grapPanel using grafonnet and the configuration from `mysql_config.libsonnet`
- *
- * @name mysql_helper.getPanel
- *
- * @param `config`: The panel configuration from mysql_config file.
- *
- * @return A new graphPanel with the configuration specified in `mysql_config.libsonnet`
- *
- */
-{
- getPanel(config):: grafonnet_helper.getPanel(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/os_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/os_helper.libsonnet
deleted file mode 100644
index 2580d54e43a..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/os_helper.libsonnet
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * This is a helper library to generate os resources reading the configuration from os_config.libsonnet
- */
-
-local grafonnet_helper = import './grafonnet_helper.libsonnet';
-
-{
- /**
- * Builds grapPanel using grafonnet and the configuration from `os_config.libsonnet`
- *
- * @name os_helper.getPanel
- *
- * @param `config`: The panel configuration from os_config file.
- *
- * @return A new graphPanel with the configuration specified in `os_config.libsonnet`
- *
- */
- getPanel(config):: grafonnet_helper.getPanel(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/vtgate_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/vtgate_helper.libsonnet
deleted file mode 100644
index 2997979edf4..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/vtgate_helper.libsonnet
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * This is a helper library to generate vtgate resources reading the configuration from vtgate_config.libsonnet
- */
-
-local grafonnet_helper = import './grafonnet_helper.libsonnet';
-
-{
- /**
- * Builds grapPanel using grafonnet and the configuration from `vtgate_config.libsonnet`
- *
- * @name vtgate_helper.getPanel
- *
- * @param `config`: The panel configuration from vtgate_config file.
- *
- * @return A new graphPanel with the configuration specified in `vtgate_config.libsonnet`
- *
- */
- getPanel(config):: grafonnet_helper.getPanel(config),
-
- /**
- * Builds a singlestat using grafonnet and the configuration from `vtgate_config.libsonnet`
- *
- * @name vtgate_helper.getSingleStat
- *
- * @param `config`: The singlestat configuration from vtgate_config file.
- *
- * @return A new singlestat with the configuration specified in `vtgate_config.libsonnet`
- *
- */
- getSingleStat(config):: grafonnet_helper.getSingleStat(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/helpers/vttablet_helper.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/helpers/vttablet_helper.libsonnet
deleted file mode 100644
index 2613de0f094..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/helpers/vttablet_helper.libsonnet
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * This is a helper library to generate vttablet resources reading the configuration from `vttablet_config.libsonnet`
- */
-local grafonnet_helper = import './grafonnet_helper.libsonnet';
-
-{
- /**
- * Builds grapPanel using grafonnet and the configuration from `vttablet_config.libsonnet`
- *
- * @name vttablet_helper.getPanel
- *
- * @param `config`: The panel configuration from vttablet_config file.
- *
- * @return A new graphPanel with the configuration specified in `vttablet_config.libsonnet`
- *
- */
- getPanel(config):: grafonnet_helper.getPanel(config),
- /**
- * Builds singlestat using grafonnet and the configuration from `vttablet_config.libsonnet`
- *
- * @name vttablet_helper.getPanel
- *
- * @param `config`: The singlestat configuration from vttablet_config file.
- *
- * @return A new singlestat with the configuration specified in `vttablet_config.libsonnet`
- *
- */
- getSingleStat(config):: grafonnet_helper.getSingleStat(config),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/panels.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/panels.libsonnet
deleted file mode 100644
index 40c20a2cb10..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/panels.libsonnet
+++ /dev/null
@@ -1,65 +0,0 @@
-// Re-cyclable components for panel resources
-local config = import '../../../config.libsonnet';
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-
-local graphPanel = grafana.graphPanel;
-local prometheus = grafana.prometheus;
-
-// TODO: add description for each panel.
-// TODO: create a _helper _config file for each group [vtctld],
-{
- // _ _ _ _
- // __ _| |_ ___| |_| | __| |
- // \ \ / / __/ __| __| |/ _` |
- // \ V /| || (__| |_| | (_| |
- // \_/ \__\___|\__|_|\__,_|
- //
-
- // _
- // _ __ ___ (_)___ ___
- // | '_ ` _ \| / __|/ __|
- // | | | | | | \__ \ (__
- // |_| |_| |_|_|___/\___|
- //
- local default_notification_config = {
- prod+: {
- notifications: [
- { uid: 'alerts-vitess' },
- { uid: 'pagerduty-vitess' },
- ],
- },
- dev+: {
- notifications: [
- { uid: 'alerts-vitess-dev' },
- ],
- },
- },
-
- vtctldRestart::
- graphPanel.new(
- 'vtctld',
- bars=true,
- datasource='%(dataSource)s' % config._config,
- fill=0,
- format='short',
- legend_values=true,
- legend_alignAsTable=true,
- legend_max=true,
- legend_sort='max',
- legend_sortDesc=false,
- lines=false,
- min=0,
- shared_tooltip=false,
- sort='increasing',
- )
- .addTarget(prometheus.target(
- |||
- sum by (instance) (
- vitess_mixin:process_start_time_seconds_by_instance_job:sum5m{
- %(vtctldSelector)s
- }
- ) > 0
- ||| % config._config,
- legendFormat='{{instance}}'
- )),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/rows.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/rows.libsonnet
deleted file mode 100644
index 54173c2a3f1..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/rows.libsonnet
+++ /dev/null
@@ -1,182 +0,0 @@
-// Re-cyclable components for row resources
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-local row = grafana.row;
-
-//TODO move all rows to config/row_config.libsonnet and update the layouts to use grafonnet_helper.getRow()
-{
- connection::
- row.new(
- title='Connection',
- ),
-
- cpu::
- row.new(
- title='CPU',
- collapse=true,
- ),
-
- duration::
- row.new(
- title='Duration',
- collapse=true,
- ),
-
- errorsRowsReturned::
- row.new(
- title='Errors / Rows returned',
- ),
-
- errors::
- row.new(
- title='Errors',
- collapse=true,
- ),
-
- healthcheck::
- row.new(
- title='Healthcheck',
- collapse=true,
- ),
-
- tabletsQueries::
- row.new(
- title='Tablets/Queries',
- ),
-
- mysql::
- row.new(
- title='MySQL',
- collapse=true,
- ),
-
- misc::
- row.new(
- title='Misc',
- collapse=true,
- ),
-
- networkingTCP::
- row.new(
- title='Networking TCP',
- collapse=true,
- ),
-
- networkNIC::
- row.new(
- title='Network NIC',
- collapse=true,
- ),
-
- OS::
- row.new(
- title='OS',
- collapse=true,
- ),
-
- processes::
- row.new(
- title='Processes',
- collapse=true,
- ),
-
- queryTimings::
- row.new(
- // as we don't have timings by table (yet!)
- title="Query/Transaction timings (table filter doesn't apply)",
- collapse=true,
- ),
-
- query::
- row.new(
- title='Query',
- ),
-
- RED::
- row.new(
- title='RED - Requests / Error rate / Duration',
- ),
-
- REDByKeyspace::
- row.new(
- title='RED (by keyspace)',
- collapse=true
- ),
-
- REDByTabletType::
- row.new(
- title='RED (by tablet type)',
- collapse=true
- ),
-
- REDByPlanType::
- row.new(
- title='RED (by plan type)',
- collapse=true
- ),
-
- REDByShard::
- row.new(
- title='RED (by shard)',
- collapse=true
- ),
-
- REDByTable::
- row.new(
- title='RED (by table)',
- collapse=true
- ),
-
-
- rowsReturned::
- row.new(
- title='Rows returned',
- collapse=true,
- ),
-
- serviceRestart::
- row.new(
- title='Service restart',
- ),
-
- storage::
- row.new(
- title='Storage',
- collapse=true,
- ),
-
- topLevel::
- row.new(
- title='Top level',
- ),
-
- topologyWatcher::
- row.new(
- title='Topology watcher',
- collapse=true,
- ),
-
- vitessQueryPool::
- row.new(
- title='Vitess - Query pool',
- collapse=true,
- ),
-
- vitessTransactionPool::
- row.new(
- title='Vitess - Transaction pool',
- collapse=true,
- ),
-
- vtgate::
- row.new(
- title='vtgate - Requests (by table / by plan / by keyspace )',
- collapse=true,
- ),
-
- vttablet::
- row.new(
- title='vttablet - Requests (by table / by plan / by keyspace )',
- collapse=true,
- ),
-
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/singlestats.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/singlestats.libsonnet
deleted file mode 100644
index e3930e382d8..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/singlestats.libsonnet
+++ /dev/null
@@ -1,221 +0,0 @@
-// Re-cyclable components for singlestat resources
-local config = import '../../../config.libsonnet';
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-
-local singlestat = grafana.singlestat;
-local prometheus = grafana.prometheus;
-
-{
- //TODO move to resource to use vtgate_config/vtgate_helper
- vtgateSuccessRate::
- singlestat.new(
- 'Query success - vtgate',
- datasource='%(dataSource)s' % config._config,
- colorBackground=true,
- decimals=4,
- format='percent',
- colors=[
- '#d44a3a',
- 'rgba(237, 129, 40, 0.89)',
- '#299c46',
- ],
- valueFontSize='70%',
- valueName='current',
- thresholds='0.99,0.999',
- )
- .addTarget(
- prometheus.target(
- |||
- 100
- -
- sum(
- rate(
- vtgate_api_error_counts{
- %(vtgateSelector)s
- }[$interval]
- ) OR vector(0)
- )
- /
- sum(
- rate(
- vtgate_api_count{
- %(vtgateSelector)s
- }[$interval]
- )
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
- //TODO move to resource to use vtgate_config/vtgate_helper
- vtgateUp::
- singlestat.new(
- 'vtgate',
- datasource='%(dataSource)s' % config._config,
- valueFontSize='50%',
- valueName='current',
- )
- .addTarget(
- prometheus.target(
- |||
- sum(
- up{
- %(vtgateSelector)s
- }
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
- //TODO move to resource to use vttablet_config/vttablet_helper
- vttabletQuerySuccess::
- singlestat.new(
- 'Query success - vttablet',
- datasource='%(dataSource)s' % config._config,
- colorBackground=true,
- decimals=4,
- format='percent',
- colors=[
- '#d44a3a',
- 'rgba(237, 129, 40, 0.89)',
- '#299c46',
- ],
- valueFontSize='70%',
- valueName='current',
- thresholds='0.99,0.999',
- )
- .addTarget(
- prometheus.target(
- |||
- 100
- -
- (
- sum (
- vitess_mixin:vttablet_errors:rate1m
- )
- /
- sum (
- vitess_mixin:vttablet_query_counts:rate1m
- )
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
- //TODO move to resource to use vttablet_config/vttablet_helper
- vttabletUp::
- singlestat.new(
- 'vttablet',
- datasource='%(dataSource)s' % config._config,
- valueFontSize='50%',
- valueName='current',
- )
- .addTarget(
- prometheus.target(
- |||
- sum(
- up{
- %(vttabletSelector)s
- }
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
-
- //TODO move to resource to use vttablet_config/vttablet_helper
- keyspaceCount::
- singlestat.new(
- 'keyspace',
- description='count of keyspaces with active queries',
- datasource='%(dataSource)s' % config._config,
- valueFontSize='50%',
- valueName='current',
- )
- .addTarget(
- prometheus.target(
- |||
- count(
- count by (keyspace)(
- vtgate_vttablet_call_count{
- }
- )
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
- //TODO move to resource to use vttablet_config/vttablet_helper
- shardCount::
- singlestat.new(
- 'shard',
- datasource='%(dataSource)s' % config._config,
- valueFontSize='50%',
- valueName='current',
- )
- .addTarget(
- prometheus.target(
- |||
- count(
- count by(shard)(
- vttablet_tablet_state{
- %(vttabletSelector)s
- }
- )
- )
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-
- mysqlQPS::
- singlestat.new(
- 'QPS - MySQL',
- datasource='%(dataSource)s' % config._config,
- format='short',
- valueFontSize='70%',
- valueName='current',
- sparklineFull=true,
- sparklineShow=true,
- )
- .addTarget(
- prometheus.target(
- |||
- sum (
- vitess_mixin:mysql_global_status_queries:rate1m
- )
- |||,
- intervalFactor=1
- )
- ),
-
- vtctldUp::
- singlestat.new(
- 'vtctld',
- datasource='%(dataSource)s' % config._config,
- valueFontSize='50%',
- valueName='current',
- )
- .addTarget(
- prometheus.target(
- |||
- sum(
- up{
- %(vtctldSelector)s})
- ||| % config._config,
- instant=true,
- intervalFactor=1
- )
- ),
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/templates.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/templates.libsonnet
deleted file mode 100644
index a32b71283c4..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/templates.libsonnet
+++ /dev/null
@@ -1,51 +0,0 @@
-// Re-cyclable components for template resources
-local config = import '../../../config.libsonnet';
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-
-local template = grafana.template;
-{
- interval:: template.interval(
- name='interval',
- label='Interval',
- query='auto,1m,5m,10m,30m,1h,6h,12h',
- current='auto',
- auto_min='1m'
- ),
-
- table::
- template.new(
- 'table',
- '%(dataSource)s' % config._config,
- 'query_result(sum by(table)(vitess_mixin:vtgate_queries_processed_by_table:rate1m{keyspace="$keyspace"}))',
- regex='.*table="(.*)".*',
- label='Table',
- refresh='time',
- includeAll=true,
- sort=1,
- allValues='.*',
- ),
-
- hostVtgate::
- template.new(
- 'host',
- '%(dataSource)s' % config._config,
- 'label_values(vtgate_build_number, instance)',
- label='Host(s)',
- refresh='time',
- multi=true,
- allValues='.*',
- ),
-
- hostVttablet::
- template.new(
- 'host',
- '%(dataSource)s' % config._config,
- 'label_values(vttablet_build_number{}, instance)',
- label='Host(s)',
- refresh='time',
- multi=true,
- allValues='.*',
- sort=1
- ),
-
-}
diff --git a/vitess-mixin/dashboards/resources/grafonnet/texts.libsonnet b/vitess-mixin/dashboards/resources/grafonnet/texts.libsonnet
deleted file mode 100644
index 44478b7a13f..00000000000
--- a/vitess-mixin/dashboards/resources/grafonnet/texts.libsonnet
+++ /dev/null
@@ -1,65 +0,0 @@
-// Re-cyclable components for text resources
-local config = import '../../../config.libsonnet';
-local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
-
-local text = grafana.text;
-
-// TODO: figure out how to make emoji work in jsonnet. They are not correctly handled
-{
-
- local footnote =
- |||
- This Dasboard has been automatically generated using vitess-mixin.
- If you want to contribute please visit [https://github.com/vitess/vitess-mixin](https://github.com/vitessio/vitess/tree/main/vitess-mixin)!
- |||,
-
- local notes = {
- footnote: footnote,
- },
-
- clusterOverview::
- text.new(
- '',
- mode='markdown',
- content=|||
- #### Cluster overview
-
- This is a general overview of the Vitess clusters.
-
- %(footnote)s
- ||| % notes
- ),
-
- vtgateOverview::
- text.new(
- '',
- mode='markdown',
- content=|||
- #### vtgate overview
-
- This is a general overview of the vtgate tier.
-
- %(footnote)s
- ||| % notes
- ),
-
- vtgateHost::
- text.new(
- '',
- mode='markdown',
- content=|||
- #### vtgate host
- %s
- ||| % footnote,
- ),
-
- vttabletHost::
- text.new(
- '',
- mode='markdown',
- content=|||
- #### vttablet host
- %s
- ||| % footnote,
- ),
-}
diff --git a/vitess-mixin/e2e/.env b/vitess-mixin/e2e/.env
deleted file mode 100644
index 00e3ed4bf0a..00000000000
--- a/vitess-mixin/e2e/.env
+++ /dev/null
@@ -1,18 +0,0 @@
-TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500 -topo_global_root vitess/global
-GRPC_PORT=15999
-WEB_PORT=8080
-MYSQL_PORT=15306
-
-CELL=local
-KEYSPACE=commerce
-DB=commerce
-
-EXTERNAL_DB=0
-DB_HOST=external_db_host
-DB_PORT=3306
-DB_USER=external_db_user
-DB_PASS=external_db_password
-DB_CHARSET=CHARACTER SET utf8 COLLATE utf8_general_ci
-
-GRAFANA_VERSION=7.3.6
-DISPLAY=
\ No newline at end of file
diff --git a/vitess-mixin/e2e/Dockerfile b/vitess-mixin/e2e/Dockerfile
deleted file mode 100644
index cf4a4a9f85e..00000000000
--- a/vitess-mixin/e2e/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-ARG CYPRESS_IMAGE
-
-FROM $CYPRESS_IMAGE
-WORKDIR /e2e
-
-# dependencies will be installed only if the package files change
-COPY package.json .
-COPY package-lock.json .
-
-# by setting CI environment variable we switch the Cypress install messages
-# to small "started / finished" and avoid 1000s of lines of progress messages
-# https://github.com/cypress-io/cypress/issues/1243
-ENV CI=1
-RUN npm ci
-# verify that Cypress has been installed correctly.
-# running this command separately from "cypress run" will also cache its result
-# to avoid verifying again when running the tests
-RUN npx cypress verify
diff --git a/vitess-mixin/e2e/backups/.gitignore b/vitess-mixin/e2e/backups/.gitignore
deleted file mode 100644
index 35bc8010eb9..00000000000
--- a/vitess-mixin/e2e/backups/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# ignore all files in this dir...
-*
-# ... except for this one.
-!.gitignore
diff --git a/vitess-mixin/e2e/config/init_db.sql b/vitess-mixin/e2e/config/init_db.sql
deleted file mode 100644
index 6059bbf7ca6..00000000000
--- a/vitess-mixin/e2e/config/init_db.sql
+++ /dev/null
@@ -1,79 +0,0 @@
-# This file is executed immediately after mysql_install_db,
-# to initialize a fresh data directory.
-###############################################################################
-# Equivalent of mysql_secure_installation
-###############################################################################
-# We need to ensure that super_read_only is disabled so that we can execute
-# these commands. Note that disabling it does NOT disable read_only.
-# We save the current value so that we only re-enable it at the end if it was
-# enabled before.
-SET @original_super_read_only=IF(@@global.super_read_only=1, 'ON', 'OFF');
-SET GLOBAL super_read_only='OFF';
-# Changes during the init db should not make it to the binlog.
-# They could potentially create errant transactions on replicas.
-SET sql_log_bin = 0;
-# Remove anonymous users & disable remote root access (only allow UNIX socket).
-DROP USER IF EXISTS ''@'%', ''@'localhost', 'root'@'%';
-# Remove test database.
-DROP DATABASE IF EXISTS test;
-###############################################################################
-# Vitess defaults
-###############################################################################
-# Vitess-internal database.
-CREATE DATABASE IF NOT EXISTS _vt;
-# Note that definitions of local_metadata and shard_metadata should be the same
-# as in production which is defined in go/vt/mysqlctl/metadata_tables.go.
-CREATE TABLE IF NOT EXISTS _vt.local_metadata (
- name VARCHAR(255) NOT NULL,
- value VARCHAR(255) NOT NULL,
- db_name VARBINARY(255) NOT NULL,
- PRIMARY KEY (db_name, name)
- ) ENGINE=InnoDB;
-CREATE TABLE IF NOT EXISTS _vt.shard_metadata (
- name VARCHAR(255) NOT NULL,
- value MEDIUMBLOB NOT NULL,
- db_name VARBINARY(255) NOT NULL,
- PRIMARY KEY (db_name, name)
- ) ENGINE=InnoDB;
-# Admin user with all privileges.
-CREATE USER 'vt_dba'@'localhost';
-GRANT ALL ON *.* TO 'vt_dba'@'localhost';
-GRANT GRANT OPTION ON *.* TO 'vt_dba'@'localhost';
-# User for app traffic, with global read-write access.
-CREATE USER 'vt_app'@'localhost';
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE,
- REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
- LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW,
- SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
- ON *.* TO 'vt_app'@'localhost';
-# User for app debug traffic, with global read access.
-CREATE USER 'vt_appdebug'@'localhost';
-GRANT SELECT, SHOW DATABASES, PROCESS ON *.* TO 'vt_appdebug'@'localhost';
-# User for administrative operations that need to be executed as non-SUPER.
-# Same permissions as vt_app here.
-CREATE USER 'vt_allprivs'@'localhost';
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE,
- REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
- LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW,
- SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
- ON *.* TO 'vt_allprivs'@'localhost';
-# User for slave replication connections.
-# TODO: Should we set a password on this since it allows remote connections?
-CREATE USER 'vt_repl'@'%';
-GRANT REPLICATION SLAVE ON *.* TO 'vt_repl'@'%';
-# User for Vitess filtered replication (binlog player).
-# Same permissions as vt_app.
-CREATE USER 'vt_filtered'@'localhost';
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, FILE,
- REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
- LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW,
- SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
- ON *.* TO 'vt_filtered'@'localhost';
-
-RESET SLAVE ALL;
-RESET MASTER;
-# custom sql is used to add custom scripts like creating users/passwords. We use it in our tests
-# {{custom_sql}}
-
-# We need to set super_read_only back to what it was before
-SET GLOBAL super_read_only=IFNULL(@original_super_read_only, 'ON');
diff --git a/vitess-mixin/e2e/cypress.json b/vitess-mixin/e2e/cypress.json
deleted file mode 100644
index c1ffae0a972..00000000000
--- a/vitess-mixin/e2e/cypress.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "viewportWidth": 1200,
- "viewportHeight": 900
-}
diff --git a/vitess-mixin/e2e/cypress/fixtures/.keep b/vitess-mixin/e2e/cypress/fixtures/.keep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/vitess-mixin/e2e/cypress/integration/cluster_overview_spec.js b/vitess-mixin/e2e/cypress/integration/cluster_overview_spec.js
deleted file mode 100644
index 5bb40a68c3b..00000000000
--- a/vitess-mixin/e2e/cypress/integration/cluster_overview_spec.js
+++ /dev/null
@@ -1,56 +0,0 @@
-const fs = require('fs')
-
-describe('vitess-mixin: Cluster Overview Dashboard Test', function () {
-
- let panelTitles = []
-
- before(function () {
- cy.readFile('./test/cluster_overview.json').then((data) => {
- cy.createDashboard(data)
- })
- })
- it('renders cluster overview dashboard', function () {
- cy.visit('/d/vitess-cluster-overview/cluster-overview-auto-generated')
- })
- //TEMPLATES
- it('contains the Interval Template', function () {
- cy.get('.submenu-controls').contains('Interval');
- })
- //LINKS
- it('contains vitess-mixin Dashboard links dropdown', function () {
- cy.get('.submenu-controls').get('.gf-form').contains('vitess-mixin')
- })
- // INIT PANELS
- it('checks all panels in the cluster overview dashboard exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(22)
- expect(titles).to.deep.eq([
- '',
- 'Query success - vtgate',
- 'Query success - vttablet',
- 'Query latency p99',
- 'QPS - vtgate',
- 'QPS - MySQL',
- 'vtgate',
- 'vttablet',
- 'QPS - vttablet',
- 'keyspace',
- 'shard',
- 'vtctld',
- 'Requests',
- 'Error rate',
- 'Duration 99th quantile',
- 'Requests (by keyspace)',
- 'Error rate (by keyspace)',
- 'Duration 99th quantile (by keyspace)',
- '# of serving tablets',
- 'Slow queries',
- 'Query/Transaction killed'
- ])
- })
- })
-})
diff --git a/vitess-mixin/e2e/cypress/integration/vtgate_host_view.js b/vitess-mixin/e2e/cypress/integration/vtgate_host_view.js
deleted file mode 100644
index 7cbbcdb0e9a..00000000000
--- a/vitess-mixin/e2e/cypress/integration/vtgate_host_view.js
+++ /dev/null
@@ -1,174 +0,0 @@
-const fs = require('fs')
-
-describe('vitess-mixin: Vtgate Host View Dashboard Test', function() {
-
- let panelTitles = []
-
- before(function() {
- cy.readFile('./test/vtgate_host_view.json').then((data) => {
- cy.createDashboard(data)
- })
- })
- it('renders vtgate hostview dashboard', function() {
- cy.visit('/d/vitess-vtgate-host-view/vtgate - host view (auto-generated)')
- })
- //SUB-MENU CONTROLS
- it('contains the Host(s) Template', function() {
- cy.get('.submenu-controls').contains('Host(s)');
- })
- it('contains vitess-mixin Dashboard links dropdown', function() {
- cy.get('.submenu-controls').get('.gf-form').contains('vitess-mixin')
- })
- //Rows are loaded at start time
- it('contains 5 rows', function() {
- cy.get('.dashboard-row').should('have.length',5)
- })
- // RED ROW
- it('contains the RED row', function() {
- cy.get('.dashboard-row').contains('RED - Requests / Error rate / Duration')
- })
-
- it('checks all panels in the RED row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests',
- 'Error rate',
- 'Duration 99th quantile'
- ])
- })
- })
-
- it('collapses the RED row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED - Requests / Error rate / Duration').click();
- })
-
- // ROW (BY TABLET TYPE)
- it('contains the RED (by tablet type) row', function() {
- cy.get('.dashboard-row').contains('RED (by tablet type)');
- })
- it('RED (by tablet type) row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('RED (by tablet type)');
- })
- it('expands the RED (by tablet type) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by tablet type)').click();
- })
-
- it('checks all panels in the RED (by tablet type) row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests (by db_type)',
- 'Error rate (by db_type)',
- 'Duration 99th quantile (by db_type)'
- ])
- })
- })
-
- it('collapses the RED (by tablet type) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by tablet type)').click();
- cy.get('.dashboard-row--collapsed').contains('RED (by tablet type)');
- })
-
- //ERRORS ROW
- it('contains the Errors row', function() {
- cy.get('.dashboard-row').contains('Errors');
- })
- it('Errors row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('Errors');
- })
- it('expands the Errors row', function(){
- cy.get('.dashboard-row__title.pointer').contains('Errors').scrollIntoView().click();
- })
- it('checks all panels in the Errors Row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(3)
- expect(titles).to.deep.eq([
- '',
- 'Errors (by keyspace)',
- 'Errors (by code)'
- ])
- })
- })
- it('collapses the Errors row', function(){
- cy.get('.dashboard-row__title.pointer').contains('Errors').click();
- cy.get('.dashboard-row--collapsed').contains('Errors');
- })
- //DURATION ROW
- it('contains the Duration row', function() {
- cy.get('.dashboard-row').contains(/^Duration/)
- })
- it('Duration row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains(/^Duration/)
- })
- it('expands the Duration row', function(){
- cy.get('.dashboard-row__title.pointer').contains(/^Duration/).click();
- })
-
- it('checks all panels in the Duration row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Duration (Avg)',
- 'Duration 50th quantile',
- 'Duration 95th quantile'
- ])
- })
- })
-
- it('collapses the Duration row', function(){
- cy.get('.dashboard-row__title.pointer').contains(/^Duration/).click();
- cy.get('.dashboard-row--collapsed').contains(/^Duration/);
- })
- //OS ROW
- it('contains the OS row', function() {
- cy.get('.dashboard-row').contains('OS')
- })
- it('OS row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('OS')
- })
- it('expands the OS row', function(){
- cy.get('.dashboard-row__title.pointer').contains('OS').click();
- })
-
- it('checks all panels in the OS row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(5)
- expect(titles).to.deep.eq([
- '',
- 'CPU Usage',
- 'Memory Usage',
- 'Network Usage',
- 'TCP Retransmissions'
- ])
- })
- })
-
- it('collapses the OS row', function(){
- cy.get('.dashboard-row__title.pointer').contains('OS').click();
- cy.get('.dashboard-row--collapsed').contains('OS');
- })
-})
diff --git a/vitess-mixin/e2e/cypress/integration/vtgate_overview.js b/vitess-mixin/e2e/cypress/integration/vtgate_overview.js
deleted file mode 100644
index eb8122ca403..00000000000
--- a/vitess-mixin/e2e/cypress/integration/vtgate_overview.js
+++ /dev/null
@@ -1,201 +0,0 @@
-const fs = require('fs')
-
-describe('vitess-mixin: Vtgate Overview Dashboard Test', function() {
-
- let panelTitles = []
-
- before(function() {
- cy.readFile('./test/vtgate_overview.json').then((data) => {
- cy.createDashboard(data)
- })
- })
- it('renders vtgate overview dashboard', function() {
- cy.visit('/d/vitess-vtgate-overview/vtgate - overview (auto-generated)')
- })
- //SUB-MENU CONTROLS
- it('contains vitess-mixin Dashboard links dropdown', function() {
- cy.get('.submenu-controls').get('.gf-form').contains('vitess-mixin');
- })
- // RED ROW
- it('contains the RED row', function() {
- cy.get('.dashboard-row').contains('RED - Requests / Error rate / Duration');
- })
-
- it('checks all panels in the RED row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests',
- 'Error rate',
- 'Duration 99th quantile'
- ])
- })
- })
-
- it('collapses the RED row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED - Requests / Error rate / Duration').click();
- })
-
- // RED (BY KEYSPACE) ROW
- it('contains the RED (by keyspace) row', function() {
- cy.get('.dashboard-row').contains('RED (by keyspace)');
- })
- it('RED (by keyspace) row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('RED (by keyspace)');
- })
- it('expands the RED (by keyspace) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by keyspace)').click();
- })
-
- it('checks all panels in the RED (by keyspace) row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests (by keyspace)',
- 'Error rate (by keyspace)',
- 'Duration 99th quantile (by keyspace)'
- ])
- })
- })
-
- it('collapses the RED (by keyspace) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by keyspace)').click();
- })
-
- // ROW (BY TABLET TYPE)
- it('contains the RED (by tablet type) row', function() {
- cy.get('.dashboard-row').contains('RED (by tablet type)');
- })
- it('RED (by tablet type) row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('RED (by tablet type)');
- })
- it('expands the RED (by tablet type) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by tablet type)').click();
- })
-
- it('checks all panels in the RED (By tablet type) row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests (by db_type)',
- 'Error rate (by db_type)',
- 'Duration 99th quantile (by db_type)'
- ])
- })
- })
-
- it('collapses the RED (by tablet type) row', function(){
- cy.get('.dashboard-row__title.pointer').contains('RED (by tablet type)').click();
- cy.get('.dashboard-row--collapsed').contains('RED (by tablet type)');
- })
-
- //ERRORS ROW
- it('contains the Errors row', function() {
- cy.get('.dashboard-row').contains('Errors');
- })
- it('Errors row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('Errors');
- })
- it('expands the Errors row', function(){
- cy.get('.dashboard-row__title.pointer').contains('Errors').click();
- })
-
- it('checks all panels in the Errors row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Errors (by code)',
- 'Errors (by operation)',
- 'Errors (by db_type)'
- ])
- })
- })
-
- it('collapses the Errors row', function(){
- cy.get('.dashboard-row__title.pointer').contains('Errors').click();
- })
-
- //DURATION ROW
- it('contains the Duration row', function() {
- cy.get('.dashboard-row').contains(/^Duration/);
- })
- it('Duration row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains(/^Duration/);
- })
- it('expands the Duration row', function(){
- cy.get('.dashboard-row__title.pointer').contains(/^Duration/).click();
- })
-
- it('checks all panels in the Duration row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Duration (Avg)',
- 'Duration 50th quantile',
- 'Duration 95th quantile'
- ])
- })
- })
-
- it('collapses the Duration row', function(){
- cy.get('.dashboard-row__title.pointer').contains(/^Duration/).click();
- })
-
- //OS ROW
- it('contains the OS row', function() {
- cy.get('.dashboard-row').contains('OS');
- })
- it('OS row is collapsed', function() {
- cy.get('.dashboard-row--collapsed').contains('OS');
- })
- it('expands the OS row', function(){
- cy.get('.dashboard-row__title.pointer').contains('OS').click();
- })
-
- it('checks all panels in the row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(5)
- expect(titles).to.deep.eq([
- '',
- 'CPU Usage',
- 'Memory Usage',
- 'Network Usage',
- 'TCP Retransmissions'
- ])
- })
- })
-
- it('collapses the OS row', function(){
- cy.get('.dashboard-row__title.pointer').contains('OS').click();
- cy.get('.dashboard-row--collapsed').contains('OS');
- })
-})
diff --git a/vitess-mixin/e2e/cypress/integration/vttablet_host_view.js b/vitess-mixin/e2e/cypress/integration/vttablet_host_view.js
deleted file mode 100644
index f98ba803d85..00000000000
--- a/vitess-mixin/e2e/cypress/integration/vttablet_host_view.js
+++ /dev/null
@@ -1,409 +0,0 @@
-const fs = require('fs')
-
-describe('vitess-mixin: Vttablet Host View Dashboard Test', function () {
-
- let panelTitles = []
-
- before(function () {
- cy.readFile('./test/vttablet_host_view.json').then((data) => {
- cy.createDashboard(data)
- })
- })
- it('renders vttablet hostview dashboard', function () {
- cy.visit('/d/vitess-vttablet-host-view/vttablet - host view (auto-generated)')
- })
- //SUB-MENU CONTROLS
- it('contains the Host(s) Template', function () {
- cy.get('.submenu-controls').contains('Host(s)');
- })
- it('contains vitess-mixin Dashboard links dropdown', function () {
- cy.get('.submenu-controls').get('.gf-form').contains('vitess-mixin')
- })
- //All Rows are loaded at start time
- it('contains 12 rows', function () {
- cy.get('.dashboard-row').should('have.length', 12)
- })
-
- // RED ROW
- it('contains the RED row', function () {
- cy.get('.dashboard-row').contains('RED - Requests / Error rate / Duration')
- })
-
- it('checks all panels in the RED row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests',
- 'Error rate',
- 'Duration (p99)'
- ])
- })
- })
-
- it('collapses the RED row', function () {
- cy.get('.dashboard-row__title.pointer').contains('RED - Requests / Error rate / Duration').click();
- })
- // RED BY PLAN TYPE ROW
-
- it('contains the RED (by plan type) row', function () {
- cy.get('.dashboard-row').contains('RED (by plan type)')
- })
- it('RED (by plan type) row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('RED (by plan type)')
- })
- it('expands the RED (by plan type) row', function () {
- cy.get('.dashboard-row__title.pointer').contains('RED (by plan type)').click();
- })
-
- it('checks all panels in the RED (by plan type) row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'Requests (by plan type)',
- 'Error rate (by plan type)',
- 'Duration p99 (by plan type)'
- ])
- })
- })
-
- it('collapses the RED (by plan type) row', function () {
- cy.get('.dashboard-row__title.pointer').contains('RED (by plan type)').click();
- cy.get('.dashboard-row--collapsed').contains('RED (by plan type)');
- })
-
- // RED BY TABLE ROW
-
- it('contains the RED (by table) row', function () {
- cy.get('.dashboard-row').contains('RED (by table)')
- })
- it('RED (by table) row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('RED (by table)')
- })
- it('expands the RED (by table) row', function () {
- cy.get('.dashboard-row__title.pointer').contains('RED (by table)').click();
- })
-
- it('checks all panels in the RED (by table) row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(3)
- expect(titles).to.deep.eq([
- '',
- 'Requests (by table)',
- 'Error rate (by table)'
- ])
- })
- })
-
- it('collapses the RED (by table) row', function () {
- cy.get('.dashboard-row__title.pointer').contains('RED (by table)').click();
- cy.get('.dashboard-row--collapsed').contains('RED (by table)');
- })
-
- // Rows Returned
- it('contains the Rows Returned row', function () {
- cy.get('.dashboard-row').contains(/^Rows returned/)
- })
- it('Rows returned row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains(/^Rows returned/)
- })
- it('expands the Rows returned row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Rows returned/).click();
- })
-
- it('checks all panels in the Rows returned row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(3)
- expect(titles).to.deep.eq([
- '',
- 'Rows Returned (by table)',
- 'Rows Returned (by plan)'
- ])
- })
- })
-
- it('collapses the Rows returned row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Rows returned/).click();
- cy.get('.dashboard-row--collapsed').contains(/^Rows returned/);
- })
-
- // Queries/Errors
- it('contains the Queries/Errors row', function () {
- cy.get('.dashboard-row').contains(/^Queries\/Errors/)
- })
- it('Queries/Errors row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains(/^Queries\/Errors/)
- })
- it('expands the Queries/Errors row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Queries\/Errors/).click();
- })
-
- it('checks all panels in the Queries/Errors row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(3)
- expect(titles).to.deep.eq([
- '',
- 'Queries Killed',
- 'Query errors (by error code)'
- ])
- })
- })
-
- it('collapses the Queries/Errors row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Queries\/Errors/).click();
- cy.get('.dashboard-row--collapsed').contains(/^Queries\/Errors/);
- })
-
- // Vitess Query pool
- it('contains the Vitess - Query pool row', function () {
- cy.get('.dashboard-row').contains('Vitess - Query pool')
- })
- it('Vitess - Query pool row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('Vitess - Query pool')
- })
- it('expands the Vitess - Query pool row', function () {
- cy.get('.dashboard-row__title.pointer').contains('Vitess - Query pool').click();
- })
-
- it('checks all panels in the Query pool row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(6)
- expect(titles).to.deep.eq([
- '',
- 'Available Connections',
- 'Active Connections',
- 'Idle Closed Rate',
- 'Wait count',
- 'Avg wait time'
- ])
- })
- })
-
- it('collapses the Vitess - Query pool row', function () {
- cy.get('.dashboard-row__title.pointer').contains('Vitess - Query pool').click();
- cy.get('.dashboard-row--collapsed').contains('Vitess - Query pool');
- })
-
- // Vitess Transaction pool
- it('contains the Vitess - Transaction pool row', function () {
- cy.get('.dashboard-row').contains('Vitess - Transaction pool')
- })
- it('Vitess - Transaction pool row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('Vitess - Transaction pool')
- })
- it('expands the Vitess - Transaction pool row', function () {
- cy.get('.dashboard-row__title.pointer').contains('Vitess - Transaction pool').click();
- })
-
- it('checks all panels in the Transaction row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(6)
- expect(titles).to.deep.eq([
- '',
- 'Available Connections',
- 'Active Connections',
- 'Idle Closed Rate',
- 'Wait count',
- 'Avg wait time'
- ])
- })
- })
-
- it('collapses the Vitess - Transaction pool row', function () {
- cy.get('.dashboard-row__title.pointer').contains('Vitess - Transaction pool').click();
- cy.get('.dashboard-row--collapsed').contains('Vitess - Transaction pool');
- })
-
- //Vitess timings
- it('contains the Vitess Timings row', function () {
- cy.get('.dashboard-row').contains(/^Vitess Timings/)
- })
- it('Vitess Timings row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains(/^Vitess Timings/)
- })
- it('Vitess Timings row has 8 panels', function () {
- cy.get('.dashboard-row').contains(/^Vitess Timings/).find('.dashboard-row__panel_count').contains('(8 panels)')
- })
- it('expands the Vitess Timings row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Vitess Timings/).click();
- })
-
- it('checks all panels in the Vitess Timings row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(9)
- expect(titles).to.deep.eq([
- '',
- 'Query Duration (avg)',
- 'Query Duration (p50)',
- 'Query Duration (p95)',
- 'VtGate -> VtTablet Call Time (avg)',
- 'Query Time Distribution (Heatmap)',
- 'Transaction Duration (avg)',
- 'Transaction Duration (p50)',
- 'Transaction Duration (p95)'
- ])
- })
- })
-
- it('collapses the Vitess Timings row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Vitess Timings/).click();
- cy.get('.dashboard-row--collapsed').contains(/^Vitess Timings/);
- })
-
-
- //MYSQL ROW
- it('contains the MySQL row', function () {
- cy.get('.dashboard-row').contains('MySQL');
- })
- it('MySQL row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('MySQL');
- })
- it('expands the MySQL row', function () {
- cy.get('.dashboard-row__title.pointer').contains('MySQL').click();
- })
- it('checks all panels in the MySQL row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(2)
- expect(titles).to.deep.eq([
- '',
- 'Slow Queries'
- ])
- })
- })
- it('collapses the MySQL row', function () {
- cy.get('.dashboard-row__title.pointer').contains('MySQL').click();
- cy.get('.dashboard-row--collapsed').contains('MySQL');
- })
-
- //MYSQL Timings ROW
- it('contains the MySQL Timings row', function () {
- cy.get('.dashboard-row').contains(/MySQL Timings/);
- })
- it('MySQL Timings row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains(/MySQL Timings/);
- })
- it('expands the MySQL Timings row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/MySQL Timings/).click();
- })
-
- it('checks all panels in the MySQL row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'MySQL time (avg)',
- 'MySQL Exec Time P50',
- 'MySQL Exec Time P95'
- ])
- })
- })
-
- it('collapses the MySQL Timings row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/MySQL Timings/).click();
- cy.get('.dashboard-row--collapsed').contains(/MySQL Timings/);
- })
-
- //OS ROW
- it('contains the OS row', function () {
- cy.get('.dashboard-row').contains('OS');
- })
- it('OS row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains('OS');
- })
- it('expands the OS row', function () {
- cy.get('.dashboard-row__title.pointer').contains('OS').scrollIntoView().click();
- })
- it('checks all panels in the OS row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(6)
- expect(titles).to.deep.eq([
- '',
- 'CPU Usage',
- 'Memory Usage',
- '/mnt disk free',
- 'Network Tx Bytes',
- 'Network Rx Bytes'
- ])
- })
- })
- it('collapses the OS row', function () {
- cy.get('.dashboard-row__title.pointer').contains('OS').click();
- cy.get('.dashboard-row--collapsed').contains('OS');
- })
-
- //Misc ROW
- it('contains the Misc row', function () {
- cy.get('.dashboard-row').contains(/^Misc/);
- })
- it('Misc row is collapsed', function () {
- cy.get('.dashboard-row--collapsed').contains(/^Misc/);
- })
- it('expands the Misc row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Misc/).click();
- })
- it('checks all panels in the Misc row exist',function() {
- cy.get('.panel-title').should(($p) => {
- let titles = $p.map((i,el) => {
- return Cypress.$(el).text()
- })
- titles = titles.get()
- expect(titles).to.have.length(4)
- expect(titles).to.deep.eq([
- '',
- 'GC Count',
- 'GC Duration total per second',
- 'GC Duration quantiles (all hosts)'
- ])
- })
- })
- it('collapses the Misc row', function () {
- cy.get('.dashboard-row__title.pointer').contains(/^Misc/).click();
- cy.get('.dashboard-row--collapsed').contains(/^Misc/);
- })
-
-})
diff --git a/vitess-mixin/e2e/cypress/plugins/index.js b/vitess-mixin/e2e/cypress/plugins/index.js
deleted file mode 100644
index aa9918d2153..00000000000
--- a/vitess-mixin/e2e/cypress/plugins/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-///
-// ***********************************************************
-// This example plugins/index.js can be used to load plugins
-//
-// You can change the location of this file or turn off loading
-// the plugins file with the 'pluginsFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/plugins-guide
-// ***********************************************************
-
-// This function is called when a project is opened or re-opened (e.g. due to
-// the project's config changing)
-
-/**
- * @type {Cypress.PluginConfig}
- */
-module.exports = (on, config) => {
- // `on` is used to hook into various events Cypress emits
- // `config` is the resolved Cypress config
-}
diff --git a/vitess-mixin/e2e/cypress/support/commands.js b/vitess-mixin/e2e/cypress/support/commands.js
deleted file mode 100644
index 88dec8ed7b0..00000000000
--- a/vitess-mixin/e2e/cypress/support/commands.js
+++ /dev/null
@@ -1,33 +0,0 @@
-const http = require("http")
-
-Cypress.Commands.overwrite('visit', (orig, url, options) => {
- options = options || {}
- options.auth = {
- username: 'admin',
- password: 'admin',
- }
- return orig(url, options)
-})
-
-Cypress.Commands.add('createDashboard', function(dashboardJSON) {
-
- const payload = JSON.stringify({
- dashboard: dashboardJSON,
- overwrite: true
- })
-
- const options = {
- auth: 'admin:admin',
- hostname: 'grafana',
- port: 3000,
- path: '/api/dashboards/db',
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- }
- }
-
- const req = http.request(options)
- req.write(payload)
- req.end()
-})
diff --git a/vitess-mixin/e2e/cypress/support/index.js b/vitess-mixin/e2e/cypress/support/index.js
deleted file mode 100644
index 614041bb83f..00000000000
--- a/vitess-mixin/e2e/cypress/support/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-require('./commands')
-
-const fs = require('fs')
-
-// This does not use the usual Cypress.Commands.add registration so that it's
-// performed synchronously and we're able to return the panelTitles variable.
-cy.createDashboardFromUnitTests = function(testDir, uid, excludePanels=[]) {
- let panelTitles = []
- cy.readFile(testDir).then(function(str) {
- let panels = []
- for (let [i, [name, panel]] of Object.entries(Object.entries(str))) {
- if (excludePanels.includes(name)) {
- continue
- }
- panel['id'] = parseInt(i)
- panel['gridPos'] = {'w': 6, 'h': 4, 'x': i * 6 % 24 }
- panelTitles.push(panel.title)
- panels.push(panel)
- }
- let dashboardJSON = {
- 'uid': uid,
- 'title': uid,
- 'panels': panels
- }
- cy.createDashboard(dashboardJSON)
- })
- return panelTitles
-}
diff --git a/vitess-mixin/e2e/dbcli.sh b/vitess-mixin/e2e/dbcli.sh
deleted file mode 100755
index 6d56f0b2763..00000000000
--- a/vitess-mixin/e2e/dbcli.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-usage () {
- echo "Starts a session on a sideloaded vttablet."
- echo "Note that this is a direct MySQL connection; if you actually want to work with Vitess, connect via the vtgate with:"
- echo " mysql --port=15306 --host=127.0.0.1"
- echo
- echo "Usage: $0 []"
- echo " Don't forget the 'vt_' before the keyspace!"
-}
-
-if [ $# -lt 1 ]; then
- usage
- exit -1
-fi
-
-keyspace=${2:-vt_test_keyspace}
-long_alias=`printf "%010d" $1`
-docker-compose exec vttablet$1 mysql -uvt_dba -S /vt/vtdataroot/vt_${long_alias}/mysql.sock $keyspace
diff --git a/vitess-mixin/e2e/default_vschema.json b/vitess-mixin/e2e/default_vschema.json
deleted file mode 100644
index e0b50a66037..00000000000
--- a/vitess-mixin/e2e/default_vschema.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "sharded": false,
- "vindexes": {
- "hash": {
- "type": "hash"
- }
- }
-}
diff --git a/vitess-mixin/e2e/docker-compose.beginners.yml b/vitess-mixin/e2e/docker-compose.beginners.yml
deleted file mode 100644
index 46eadd57801..00000000000
--- a/vitess-mixin/e2e/docker-compose.beginners.yml
+++ /dev/null
@@ -1,312 +0,0 @@
-version: "2.1"
-services:
- consul1:
- image: consul:latest
- hostname: "consul1"
- ports:
- - "8400:8400"
- - "8500:8500"
- - "8600:8600"
- command: "agent -server -bootstrap-expect 3 -ui -disable-host-node-id -client 0.0.0.0"
- consul2:
- image: consul:latest
- hostname: "consul2"
- expose:
- - "8400"
- - "8500"
- - "8600"
- command: "agent -server -retry-join consul1 -disable-host-node-id"
- depends_on:
- - consul1
- consul3:
- image: consul:latest
- hostname: "consul3"
- expose:
- - "8400"
- - "8500"
- - "8600"
- command: "agent -server -retry-join consul1 -disable-host-node-id"
- depends_on:
- - consul1
- # This is a convenience container to quickly test vitess against an external database.
- # In practice you will point Vitess to your existing database and migrate to a Vitess managed cluster.
- external_db_host:
- build:
- context: ./external_db/mysql
- dockerfile: Dockerfile
- restart: always
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-pass}
- MYSQL_DATABASE: ${DB:-commerce}
- MYSQL_USER: ${DB_USER:-external_db_user}
- MYSQL_PASSWORD: ${DB_PASS:-external_db_password}
- volumes:
- - ./external_db/mysql/:/docker-entrypoint-initdb.d/
- - ./external_db/mysql/log:/var/log/mysql
- command:
- - --server-id=1
- - --log-bin=mysql-bin
- - --gtid_mode=ON
- - --enforce_gtid_consistency
- - --general_log=1
- - --slow_query_log=1
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=$${MYSQL_ROOT_PASSWORD} --execute \"SHOW DATABASES;\""
- timeout: 10s
- retries: 10
- ports:
- - "3306"
-
- vtctld:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15000:$WEB_PORT"
- - "$GRPC_PORT"
- command: ["sh", "-c", " /vt/bin/vtctld \
- $TOPOLOGY_FLAGS \
- -cell $CELL \
- -service_map 'grpc-vtctl' \
- -backup_storage_implementation file \
- -file_backup_storage_root /vt/vtdataroot/backups \
- -logtostderr=true \
- -port $WEB_PORT \
- -grpc_port $GRPC_PORT
- "]
- depends_on:
- - consul1
- - consul2
- - consul3
- depends_on:
- external_db_host:
- condition: service_healthy
-
- vtgate:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15099:$WEB_PORT"
- - "$GRPC_PORT"
- - "15306:$MYSQL_PORT"
- command: ["sh", "-c", "/vt/bin/vtgate \
- $TOPOLOGY_FLAGS \
- --logtostderr=true \
- --port $WEB_PORT \
- --grpc_port $GRPC_PORT \
- --mysql_server_port $MYSQL_PORT \
- --mysql_auth_server_impl none \
- --cell $CELL \
- --cells_to_watch $CELL \
- --tablet_types_to_wait PRIMARY,REPLICA \
- --service_map 'grpc-vtgateservice' \
- --enable_system_settings=true \
- "]
- volumes:
- - ".:/script"
- environment:
- - KEYSPACE
- - DB
- depends_on:
- - vtctld
- depends_on:
- vttablet101:
- condition: service_healthy
-
- schemaload:
- image: vitess/lite:${VITESS_TAG:-latest}
- command:
- - sh
- - -c
- - /script/schemaload.sh
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - TARGETTAB
- - SLEEPTIME
- - VSCHEMA_FILE
- - SCHEMA_FILES
- - POST_LOAD_FILE
- - EXTERNAL_DB
- volumes:
- - .:/script
- depends_on:
- vttablet101:
- condition: service_healthy
-
- vttablet100:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15100:$WEB_PORT"
- - "$GRPC_PORT"
- - "3306"
- volumes:
- - ".:/script"
- - "./backups:/vt/vtdataroot/backups"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- - ROLE=primary
- command: ["sh", "-c", "[ $$EXTERNAL_DB -eq 1 ] && /script/vttablet-up.sh 100 || exit 0"]
- depends_on:
- - vtctld
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:$$WEB_PORT/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-
- vttablet101:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15101:$WEB_PORT"
- - "$GRPC_PORT"
- - "3306"
- volumes:
- - ".:/script"
- - "./backups:/vt/vtdataroot/backups"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- - ROLE=primary
- command: ["sh", "-c", "/script/vttablet-up.sh 101"]
- depends_on:
- - vtctld
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:$$WEB_PORT/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-
- vttablet102:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15102:$WEB_PORT"
- - "$GRPC_PORT"
- - "3306"
- volumes:
- - ".:/script"
- - "./backups:/vt/vtdataroot/backups"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- command: ["sh", "-c", "/script/vttablet-up.sh 102"]
- depends_on:
- - vtctld
- - vttablet101
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:$$WEB_PORT/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-
- vttablet103:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15103:$WEB_PORT"
- - "$GRPC_PORT"
- - "3306"
- volumes:
- - ".:/script"
- - "./backups:/vt/vtdataroot/backups"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- command: ["sh", "-c", "/script/vttablet-up.sh 103"]
- depends_on:
- - vtctld
- - vttablet101
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:$$WEB_PORT/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-
- vtorc:
- image: vitess/lite:${VITESS_TAG:-latest}
- command: ["sh", "-c", "/script/vtorc-up.sh"]
- depends_on:
- - vtctld
- ports:
- - "13000:3000"
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:3000/api/status"]
- interval: 5s
- timeout: 10s
- retries: 15
-
- vreplication:
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS
- - WEB_PORT
- - GRPC_PORT
- - CELL
- - KEYSPACE
- - DB
- - EXTERNAL_DB
- - DB_PORT
- - DB_HOST
- - DB_USER
- - DB_PASS
- - DB_CHARSET
- command: ["sh", "-c", "[ $$EXTERNAL_DB -eq 1 ] && /script/externaldb_vreplication.sh || exit 0"]
- depends_on:
- - vtctld
diff --git a/vitess-mixin/e2e/docker-compose.dev.yml b/vitess-mixin/e2e/docker-compose.dev.yml
deleted file mode 100644
index e5bb4f20ef5..00000000000
--- a/vitess-mixin/e2e/docker-compose.dev.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-version: '3'
-services:
- grafana:
- image: grafana/grafana:${GRAFANA_VERSION?err}
- ports:
- - "3030:3000"
- e2e:
- build:
- context: .
- args:
- CYPRESS_IMAGE: cypress/included:5.3.0
- image: grafonnet-e2e-dev
- entrypoint: cypress open --project .
- depends_on:
- - grafana
- environment:
- - CYPRESS_baseUrl=http://grafana:3000
- - CYPRESS_video=false
- - DISPLAY=${DISPLAY?err}
- volumes:
- - ./cypress:/e2e/cypress
- - ./cypress.json:/e2e/cypress.json
- - ../dashboards_out:/e2e/test
- - /tmp/.X11-unix:/tmp/.X11-unix
- deploy:
- resources:
- limits:
- memory: 2G
- reservations:
- memory: 1G
-volumes:
- prometheus-data: {}
diff --git a/vitess-mixin/e2e/docker-compose.vt.yml b/vitess-mixin/e2e/docker-compose.vt.yml
deleted file mode 100644
index 1132068f252..00000000000
--- a/vitess-mixin/e2e/docker-compose.vt.yml
+++ /dev/null
@@ -1,447 +0,0 @@
-version: '3'
-services:
- consul1:
- command: agent -server -bootstrap-expect 3 -ui -disable-host-node-id -client 0.0.0.0
- hostname: consul1
- image: consul:latest
- ports:
- - 8400:8400
- - 8500:8500
- - 8600:8600
- consul2:
- command: agent -server -retry-join consul1 -disable-host-node-id
- depends_on:
- - consul1
- expose:
- - "8400"
- - "8500"
- - "8600"
- hostname: consul2
- image: consul:latest
- consul3:
- command: agent -server -retry-join consul1 -disable-host-node-id
- depends_on:
- - consul1
- expose:
- - "8400"
- - "8500"
- - "8600"
- hostname: consul3
- image: consul:latest
- external_db_host:
- build:
- context: ./external_db/mysql
- dockerfile: Dockerfile
- command:
- - --server-id=1
- - --log-bin=mysql-bin
- - --gtid_mode=ON
- - --enforce_gtid_consistency
- - --general_log=1
- - --slow_query_log=1
- environment:
- MYSQL_DATABASE: ${DB:-commerce}
- MYSQL_PASSWORD: ${DB_PASS:-external_db_password}
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-pass}
- MYSQL_USER: ${DB_USER:-external_db_user}
- healthcheck:
- retries: 10
- test: /usr/bin/mysql --user=root --password=$${MYSQL_ROOT_PASSWORD} --execute
- "SHOW DATABASES;"
- timeout: 10s
- ports:
- - "3306"
- restart: always
- volumes:
- - ./external_db/mysql/:/docker-entrypoint-initdb.d/
- - ./external_db/mysql/log:/var/log/mysql
- schemaload_lookup_keyspace:
- command:
- - sh
- - -c
- - /script/schemaload.sh
- depends_on:
- vttablet301:
- condition: service_healthy
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=lookup_keyspace
- - TARGETTAB=test-0000000301
- - SLEEPTIME=15
- - VSCHEMA_FILE=lookup_keyspace_vschema.json
- - SCHEMA_FILES=lookup_keyspace_schema_file.sql
- - POST_LOAD_FILE=
- - EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - .:/script
- schemaload_test_keyspace:
- command:
- - sh
- - -c
- - /script/schemaload.sh
- depends_on:
- vttablet101:
- condition: service_healthy
- vttablet201:
- condition: service_healthy
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - TARGETTAB=test-0000000101
- - SLEEPTIME=15
- - VSCHEMA_FILE=test_keyspace_vschema.json
- - SCHEMA_FILES=test_keyspace_schema_file.sql
- - POST_LOAD_FILE=
- - EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - .:/script
- vreplication:
- command:
- - sh
- - -c
- - '[ $$EXTERNAL_DB -eq 1 ] && /script/externaldb_vreplication.sh || exit 0'
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - EXTERNAL_DB=0
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - .:/script
- vtctld:
- command:
- - sh
- - -c
- - ' /vt/bin/vtctld -topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global -cell test
- -service_map ''grpc-vtctl'' -backup_storage_implementation file -file_backup_storage_root
- /vt/vtdataroot/backups -logtostderr=true -port 8080 -grpc_port 15999 '
- depends_on:
- external_db_host:
- condition: service_healthy
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15000:8080
- - "15999"
- volumes:
- - .:/script
- vtgate:
- command:
- - sh
- - -c
- - '/script/run-forever.sh /vt/bin/vtgate --topo_implementation consul --topo_global_server_address
- consul1:8500 --topo_global_root vitess/global --logtostderr=true --port 8080 --grpc_port
- 15999 --mysql_server_port 15306 --mysql_auth_server_impl none --cell test --cells_to_watch
- test --tablet_types_to_wait PRIMARY,REPLICA,RDONLY --service_map ''grpc-vtgateservice''
- --normalize_queries=true '
- depends_on:
- - vtctld
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15099:8080
- - "15999"
- - 15306:15306
- volumes:
- - .:/script
- vtorc:
- command:
- - sh
- - -c
- - /script/vtorc-up.sh
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - EXTERNAL_DB=0
- - DB_USER=
- - DB_PASS=
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 13000:3000
- volumes:
- - .:/script
- vttablet101:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 101
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=-80
- - ROLE=primary
- - VTHOST=vttablet101
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15101:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet102:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 102
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=-80
- - ROLE=replica
- - VTHOST=vttablet102
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15102:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet201:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 201
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=80-
- - ROLE=primary
- - VTHOST=vttablet201
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15201:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet202:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 202
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=80-
- - ROLE=replica
- - VTHOST=vttablet202
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15202:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet301:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 301
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=lookup_keyspace
- - SHARD=-
- - ROLE=primary
- - VTHOST=vttablet301
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15301:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet302:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 302
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=lookup_keyspace
- - SHARD=-
- - ROLE=replica
- - VTHOST=vttablet302
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl -s --fail --show-error localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - 15302:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- prometheus:
- image: prom/prometheus:v2.21.0
- ports:
- - 9000:9090
- volumes:
- - ./prometheus:/etc/prometheus
- - ../prometheus_rules.yaml:/etc/prometheus/prometheus_rules.yaml
- - prometheus-data:/prometheus
- command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
- depends_on:
- - vtctld
- grafana:
- image: grafana/grafana:${GRAFANA_VERSION?err}
- ports:
- - "3030:3000"
- volumes:
- - ./grafana/provisioning:/etc/grafana/provisioning
- - ../dashboards_out/cluster_overview.json:/etc/grafana/provisioning/dashboards/cluster_overview.json
- - ../dashboards_out/vtgate_overview.json:/etc/grafana/provisioning/dashboards/vtgate_overview.json
- - ../dashboards_out/vtgate_host_view.json:/etc/grafana/provisioning/dashboards/vtgate_host_view.json
- - ../dashboards_out/vttablet_host_view.json:/etc/grafana/provisioning/dashboards/vttablet_host_view.json
- depends_on:
- - prometheus
- - vtgate
- - vttablet101
- node-exporter:
- image: prom/node-exporter
- volumes:
- - /proc:/host/proc:ro
- - /sys:/host/sys:ro
- - /:/rootfs:ro
- command:
- - '--path.procfs=/host/proc'
- - '--path.sysfs=/host/sys'
- - --collector.filesystem.ignored-mount-points
- - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
- ports:
- - '9100:9100'
- deploy:
- mode: global
- mysqld_exporter:
- image: prom/mysqld-exporter:latest
- environment:
- - DATA_SOURCE_NAME=root:pass@(external_db_host:3306)/
- ports:
- - "9104:9104"
- depends_on:
- - external_db_host
- # TODO: ADD CYPRESS FOR AUTOMATED TESTING
-volumes:
- prometheus-data: {}
diff --git a/vitess-mixin/e2e/docker-compose.yml b/vitess-mixin/e2e/docker-compose.yml
deleted file mode 100644
index e46fbcab849..00000000000
--- a/vitess-mixin/e2e/docker-compose.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-version: '3'
-services:
- grafana:
- image: grafana/grafana:${GRAFANA_VERSION?err}
- e2e:
- build:
- context: .
- args:
- CYPRESS_IMAGE: cypress/base:12
- image: grafonnet-e2e
- command: npx cypress run
- depends_on:
- - grafana
- environment:
- - CYPRESS_baseUrl=http://grafana:3000
- - CYPRESS_video=false
- volumes:
- - ./cypress:/e2e/cypress
- - ./cypress.json:/e2e/cypress.json
- - ../dashboards_out:/e2e/test
diff --git a/vitess-mixin/e2e/external_db/.env b/vitess-mixin/e2e/external_db/.env
deleted file mode 100644
index f2745ff08ef..00000000000
--- a/vitess-mixin/e2e/external_db/.env
+++ /dev/null
@@ -1,4 +0,0 @@
-MYSQL_ROOT_PASSWORD=pass
-MYSQL_USER=dbuser
-MYSQL_PASSWORD=dbpass
-MYSQL_DB=commerce
\ No newline at end of file
diff --git a/vitess-mixin/e2e/external_db/README.md b/vitess-mixin/e2e/external_db/README.md
deleted file mode 100644
index 610a9350111..00000000000
--- a/vitess-mixin/e2e/external_db/README.md
+++ /dev/null
@@ -1,113 +0,0 @@
-**This README is kept here for reference, however the parent [README](../README) contains all the information necesaary to simulate this in a better way**
-
-# Simulate external/remote database for Vitess using docker-compose
-
-This directory has a docker-compose that will bring up a mysql instance.
-You can then point your vitess cluster to it to understand how to use Vitess for your existing database
-when you cannot install Vitess on the mysql instance.
-
-First you will need to [install docker-compose](https://docs.docker.com/compose/install/).
-
-
-### Create new docker-machine
-Create a new docker-machine that will run your mysql container.
-Creating a new machine allows you to more comprehensively test the remote functionality.
-```
-vitess/examples/compose/external_db$ docker-machine create remote-db
-```
-
-Grab the docker-machine ip
-```
-vitess/examples/compose/external_db$ docker-machine ip remote-db
-192.168.99.101
-```
-
-Set the environment variables for the remote-db machine
-```
-vitess/examples/compose/external_db$ eval $(docker-machine ip remote-db)
-```
-
-### Start mysql
-Start the mysql instance
-```
-vitess/examples/compose/external_db$ docker-compose up -d
-```
-This will do the following;
-1. Starts mysql service and exposes it at `:3306`
-2. Creates a `commerce` database with `users` table
-3. Adds sample data to the users table
-4. Starts a lightweight adminer container to interact with the database accessible at `:8081`
-5. Default credentials
- ```
- MYSQL_DB: commerce
- MYSQL_USER: dbuser
- MYSQL_PASSWORD: dbpass
- MYSQL_ROOT_PASSWORD: pass
- ```
-
-### Confirm containers are up
-Run the following
-```
-vitess/examples/compose/external_db$ docker-compose ps
-```
-
-A valid response should look like below
-```sh
- Name Command State Ports
----------------------------------------------------------------------------------------------------------
-external_db_adminer_1 entrypoint.sh docker-php-e ... Up 0.0.0.0:8081->8080/tcp
-external_db_db_1 docker-entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp
-```
-You now have a mysql instance ready to be *migrated* to Vitess.
-
-### Start Vitess pointed to this remote database
-Head on to [vitess compose instructions](../README.md )
-
-If using docker-compose.beginners.yml, run;
-```
-vitess/examples/compose$ cp docker-compose.beginners.yml docker-compose.yml
-```
-Update your `.env` file with these;
-```
-KEYSPACE=commerce
-DB=commerce
-EXTERNAL_DB=1
-DB_HOST=
-DB_PORT=3306
-DB_USER=dbuser
-DB_PASS=dbpass
-DB_CHARSET=CHARACTER SET latin1 COLLATE latin1_swedish_ci
-```
-
-
-If using `vtcompose` command, run;
-```
-vitess/examples/compose$ go run vtcompose/vtcompose.go -keyspaceData="commerce:0:2::" -externalDbData="commerce::3306:dbuser:dbpass:CHARACTER SET latin1 COLLATE latin1_swedish_ci"
-```
-
-**Ensure you start Vitess in a different docker-machine!!**
-If not, run;
-```
-vitess/examples/compose$ docker-machine create vitess
-vitess/examples/compose$ $(docker-machine env vitess)
-```
-
-Start Vitess
-```
-vitess/examples/compose$ docker-compose up -d
-```
-
-You should now have Vitess running against your external database instance.
-
-* [Follow this guide for advanced usage](../README.md#advanced-usage "Advanced Usage" )
-* [See this for common issues](../README.md#common-errors "Common Issues" )
-
-### Migrating to Vitess
-Migrating to Vitess entirely can be done from;
-a) The Vitess Control Panel at http://:15000
-b) The `lvtctl.sh` Helper Script;
-
-The steps are same
-1. Do an EmergencyReparentShard to make a replica the new primary.
-2. Ran InitShardPrimary on the new primary.
-3. If Vitess is wrong about who the MySQL primary is, you can update it with TabletExternallyReparented
diff --git a/vitess-mixin/e2e/external_db/docker-compose.yml b/vitess-mixin/e2e/external_db/docker-compose.yml
deleted file mode 100644
index 4c414324e63..00000000000
--- a/vitess-mixin/e2e/external_db/docker-compose.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-version: '2.1'
-
-volumes:
- vol-db:
-
-services:
- db:
- build:
- context: ./mysql
- dockerfile: Dockerfile
- restart: always
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-pass}
- MYSQL_DATABASE: ${MYSQL_DB:-commerce}
- MYSQL_USER: ${MYSQL_USER:-dbuser}
- MYSQL_PASSWORD: ${MYSQL_PASSWORD:-dbpass}
- volumes:
- - vol-db:/var/lib/mysql
- - ./mysql/:/docker-entrypoint-initdb.d/
- - ./mysql/mysql57.cnf:/etc/mysql/conf.d/mysql57.cnf:ro
- - ./mysql/log:/var/log/mysql
- command:
- - --server-id=1
- - --log-bin=mysql-bin
- - --gtid_mode=ON
- - --enforce_gtid_consistency
- - --general_log=1
- - --slow_query_log=1
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=$${MYSQL_ROOT_PASSWORD} --execute \"SHOW DATABASES;\""
- timeout: 10s
- retries: 10
- ports:
- - "3306:3306"
-
- adminer:
- image: adminer
- environment:
- ADMINER_DESIGN: rmsoft
- ports:
- - "8081:8080"
diff --git a/vitess-mixin/e2e/external_db/mysql/Dockerfile b/vitess-mixin/e2e/external_db/mysql/Dockerfile
deleted file mode 100644
index f44c63951e3..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/Dockerfile
+++ /dev/null
@@ -1,2 +0,0 @@
-FROM mysql:5.7
-COPY . /docker-entrypoint-initdb.d
\ No newline at end of file
diff --git a/vitess-mixin/e2e/external_db/mysql/commerce.sql b/vitess-mixin/e2e/external_db/mysql/commerce.sql
deleted file mode 100644
index 8154d91e7f5..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/commerce.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-CREATE DATABASE IF NOT EXISTS commerce;
-USE commerce;
-DROP TABLE IF EXISTS users;
-CREATE TABLE users (
- device_id BIGINT,
- first_name VARCHAR(50),
- last_name VARCHAR(50),
- telephone BIGINT,
- gender VARCHAR(16),
- reference_id INT,
- confidence INT,
- coverage INT,
- refstart DATETIME,
- refstop DATETIME,
- qrystart DATETIME,
- qrystop DATETIME);
-
-LOAD DATA LOCAL INFILE '/docker-entrypoint-initdb.d/dataset.csv' INTO TABLE users FIELDS TERMINATED BY ',';
-
-ALTER TABLE users ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/external_db/mysql/dataset.csv b/vitess-mixin/e2e/external_db/mysql/dataset.csv
deleted file mode 100644
index f2af8d74ce7..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/dataset.csv
+++ /dev/null
@@ -1,1000 +0,0 @@
-1,Elianore,Dunbleton,867-921-5436,Female,1,4,90,2018-11-20 00:23:59,2018-02-11 11:32:09,2018-06-18 23:40:59,2018-07-14 00:59:56
-2,Isa,Gilfoyle,539-533-8647,Male,7,86,65,2018-03-22 18:52:41,2019-01-16 21:08:18,2019-01-03 10:48:54,2018-08-29 14:52:14
-3,Millicent,Jedrys,184-899-3979,Female,5,30,17,2018-06-29 14:14:44,2018-06-07 05:03:57,2018-04-08 03:56:39,2018-02-12 06:41:48
-4,Davey,Sutch,862-838-8206,Male,1,62,94,2018-11-14 06:47:18,2018-08-08 22:44:26,2018-07-12 21:09:27,2018-03-04 16:23:22
-5,Adiana,Strowger,792-848-5008,Female,6,97,75,2018-08-07 01:32:59,2018-08-06 16:19:48,2019-01-20 13:11:37,2018-09-02 22:39:39
-6,Oby,Winthrop,522-736-9711,Male,7,95,11,2018-09-29 06:49:44,2018-02-02 11:07:25,2018-08-17 12:49:31,2018-06-03 13:27:48
-7,Berte,Beldon,947-708-5622,Female,6,3,26,2018-11-21 14:55:27,2018-11-15 17:16:04,2018-01-23 06:12:07,2018-08-30 14:40:37
-8,Logan,Atack,103-849-8439,Male,1,20,86,2019-01-04 01:18:38,2018-09-20 23:59:42,2018-05-10 13:14:24,2018-09-25 10:05:29
-9,Vania,Rosenblum,302-132-8289,Female,5,85,32,2018-03-31 00:24:32,2018-07-28 14:50:39,2018-04-19 12:32:49,2018-04-03 08:31:11
-10,Giffie,Lindblad,312-429-3236,Male,1,52,65,2018-04-15 15:34:57,2018-09-03 05:54:49,2019-01-05 06:42:27,2018-11-05 21:47:08
-11,Bili,Weigh,442-992-2387,Female,5,88,97,2018-12-01 04:31:51,2018-08-22 15:52:23,2018-12-07 23:25:46,2018-08-08 07:47:35
-12,Marlin,Stair,854-643-9633,Male,1,62,61,2018-05-30 14:08:25,2018-03-02 03:34:27,2018-03-21 22:43:12,2018-06-03 18:02:22
-13,Dacey,Corradino,364-281-2170,Female,3,82,19,2018-04-10 01:42:36,2019-01-08 17:42:03,2018-05-20 04:07:33,2018-10-14 03:57:57
-14,Caresse,Santon,221-929-9690,Female,7,97,50,2018-11-20 23:15:03,2019-01-01 18:46:08,2018-04-08 05:49:39,2018-10-04 04:00:37
-15,Trixi,Westphalen,681-738-3653,Female,7,100,87,2018-07-09 18:04:01,2018-11-21 04:36:24,2018-11-25 09:43:50,2018-09-10 07:40:31
-16,Pauline,Breslauer,821-177-6696,Female,6,63,24,2018-11-02 19:56:35,2018-02-09 07:46:00,2019-01-08 03:21:02,2018-09-18 08:18:06
-17,Meridith,Briddock,716-528-7645,Female,3,72,24,2018-11-30 20:13:26,2018-04-04 00:17:34,2018-07-12 04:42:43,2018-07-13 02:53:00
-18,Cordy,Sothern,733-369-1763,Male,6,72,5,2018-08-19 02:02:51,2018-10-01 16:39:38,2019-01-18 12:58:50,2018-04-26 11:01:54
-19,Thom,Swarbrigg,566-424-7472,Male,3,56,29,2018-01-25 19:13:40,2018-09-06 20:39:48,2018-12-23 14:49:40,2018-09-19 13:03:37
-20,Amelina,Ekell,514-321-8056,Female,5,42,43,2018-12-15 14:21:28,2018-08-07 02:53:55,2018-09-30 04:29:03,2018-08-02 18:29:13
-21,Cesare,Lahy,446-382-1825,Male,2,32,10,2018-07-08 01:24:43,2018-03-24 15:25:21,2018-11-15 18:50:17,2018-03-27 19:18:16
-22,Elnora,Cheale,489-718-9700,Female,6,12,73,2018-10-26 17:34:35,2018-12-22 05:44:59,2018-05-09 01:25:04,2018-09-21 18:40:44
-23,Hadrian,Snarie,859-447-4644,Male,1,18,4,2018-08-31 12:15:30,2018-04-16 11:19:30,2018-02-28 10:55:26,2018-10-31 07:05:29
-24,Ravid,Meriott,518-484-9203,Male,1,83,12,2018-12-01 21:38:00,2018-02-12 17:25:00,2018-09-18 16:34:45,2018-09-08 17:32:17
-25,Elenore,De Gowe,180-237-8349,Female,7,75,3,2018-03-20 20:52:00,2018-12-22 19:52:58,2018-07-06 23:18:01,2018-08-12 22:02:21
-26,Juieta,Pridie,278-696-9233,Female,1,93,57,2018-09-04 18:45:44,2018-06-04 17:38:47,2018-11-16 10:31:12,2018-07-15 10:27:10
-27,Neddie,Mosedall,956-605-6537,Male,3,94,19,2018-04-09 13:54:22,2018-04-12 10:58:25,2018-08-21 10:57:27,2018-08-22 20:29:53
-28,Octavius,Fordham,797-217-3886,Male,3,32,82,2018-11-23 16:25:55,2018-11-15 12:08:34,2018-10-28 03:46:45,2018-06-22 03:16:15
-29,Edwin,Tapson,578-261-4030,Male,7,83,39,2018-12-16 01:07:34,2018-12-27 23:39:47,2018-12-03 00:30:10,2018-03-09 18:09:49
-30,Korry,Dyos,108-910-1353,Female,3,80,93,2018-06-14 09:39:58,2018-08-12 21:17:11,2018-09-14 12:22:43,2018-04-08 23:31:12
-31,Kenn,Leist,300-420-7371,Male,5,100,90,2018-11-24 01:42:36,2018-10-27 21:31:19,2019-01-05 02:32:45,2018-11-24 06:45:27
-32,Eldredge,Kemmis,451-974-5763,Male,2,44,42,2018-11-18 11:28:34,2018-02-17 08:01:53,2018-08-21 19:25:26,2018-12-23 12:29:15
-33,Suzanne,Matthiae,560-959-3441,Female,4,56,7,2018-05-04 04:19:19,2018-04-11 11:59:42,2018-02-01 16:22:38,2018-11-15 19:58:02
-34,Josh,Callendar,719-551-3561,Male,4,61,56,2018-10-12 07:20:47,2018-06-14 12:53:31,2018-07-20 09:35:33,2018-03-26 05:54:27
-35,Ian,Thoresby,392-740-5436,Male,7,77,8,2018-03-04 19:37:23,2018-08-07 02:19:40,2018-09-24 07:54:33,2018-07-09 15:36:52
-36,Cordi,Vanichkin,773-231-4509,Female,1,99,90,2018-07-02 02:43:15,2019-01-20 04:28:54,2018-09-05 05:02:38,2019-01-08 04:08:00
-37,Ariel,Le land,917-249-6942,Male,5,9,45,2018-04-29 18:48:49,2018-06-23 08:15:12,2018-01-22 01:29:55,2019-01-03 21:24:23
-38,Delila,Assard,119-780-7155,Female,3,83,70,2018-12-01 01:09:53,2018-05-22 00:23:40,2018-05-19 13:53:02,2018-02-17 03:43:18
-39,Deny,Cullrford,100-298-0840,Female,5,50,39,2018-05-09 23:21:57,2018-05-31 23:46:32,2018-12-03 09:53:47,2019-01-12 10:16:35
-40,Frannie,Sharer,410-855-0951,Male,6,72,43,2018-05-12 06:05:03,2018-04-21 17:15:14,2018-08-30 07:18:18,2018-06-20 04:51:13
-41,Jonis,Lintin,803-933-8038,Female,4,89,84,2018-09-13 20:13:23,2018-08-28 18:20:52,2018-03-13 03:07:16,2018-03-05 07:10:50
-42,Bessie,Hackett,443-436-4804,Female,4,20,36,2018-06-13 07:34:49,2018-06-01 11:23:42,2018-10-19 12:40:14,2018-02-10 12:37:05
-43,Gayel,Tabard,704-527-0263,Female,6,40,44,2019-01-04 14:41:19,2018-04-15 00:21:22,2018-12-30 07:24:38,2018-05-02 21:10:48
-44,Ardisj,Ridder,899-877-7365,Female,1,21,84,2018-06-13 21:09:11,2018-12-02 20:33:23,2018-03-25 07:43:03,2018-10-12 11:26:41
-45,Hammad,Stroband,874-825-9046,Male,3,30,83,2018-09-14 06:04:39,2018-10-23 13:35:20,2018-03-10 08:19:18,2018-07-18 20:31:55
-46,Darius,Sorel,750-599-8665,Male,7,98,76,2018-09-17 22:09:17,2018-06-02 14:07:06,2018-12-08 15:52:18,2018-05-05 12:38:37
-47,Dido,Stockin,339-433-0084,Female,1,89,59,2018-04-30 07:42:06,2018-10-18 22:27:31,2018-11-11 05:06:09,2019-01-01 14:19:17
-48,Sholom,Cobbing,828-431-0433,Male,4,53,86,2018-11-03 23:21:35,2018-10-23 13:33:47,2018-09-03 06:25:27,2019-01-18 06:26:39
-49,Melinde,Hynd,283-446-7128,Female,5,97,84,2018-07-31 06:28:22,2018-10-24 04:00:28,2018-07-28 03:47:24,2018-02-10 19:44:46
-50,Hedvige,Fontenot,534-558-8139,Female,4,94,62,2018-07-15 15:22:39,2018-03-20 18:21:30,2018-03-04 17:34:45,2018-05-25 22:41:39
-51,Killian,Gilmartin,722-114-3059,Male,1,47,8,2018-08-24 01:48:56,2018-07-21 08:24:06,2018-11-05 06:28:14,2018-05-06 13:37:33
-52,Inness,O'Cullinane,630-746-2431,Male,3,71,93,2018-06-14 22:12:56,2018-04-12 23:09:39,2018-02-02 09:42:12,2018-11-14 01:06:15
-53,Doretta,Galiford,528-456-0043,Female,3,84,95,2018-09-09 15:03:41,2018-03-30 03:54:32,2018-10-03 10:51:33,2018-12-15 22:54:24
-54,Alicia,Kemmons,695-461-8136,Female,7,16,82,2018-03-26 20:29:48,2018-03-25 15:58:54,2018-01-30 03:52:35,2018-02-11 04:14:39
-55,Brandea,Nannizzi,215-545-0363,Female,2,86,20,2018-11-05 15:18:22,2018-02-18 13:05:40,2018-11-27 14:37:52,2018-05-04 23:08:00
-56,Jordan,Parkman,473-392-8118,Male,1,41,46,2018-09-27 14:56:49,2018-04-27 06:35:47,2018-02-04 22:54:44,2018-12-06 04:53:24
-57,Bourke,Whittaker,712-907-5729,Male,2,71,6,2018-10-19 17:00:36,2018-12-02 03:28:48,2018-04-13 01:02:14,2018-04-11 23:42:42
-58,Honey,Adriano,822-890-9194,Female,4,31,95,2018-06-18 04:19:51,2018-03-12 03:05:16,2018-02-02 00:52:15,2019-01-07 13:33:51
-59,Tracie,Warrender,617-331-6980,Male,3,69,37,2018-07-09 15:19:55,2018-07-26 13:00:13,2018-03-06 19:39:06,2018-10-05 14:56:58
-60,Billy,Eadmead,556-100-5109,Female,6,16,63,2018-10-04 07:52:43,2018-07-02 07:34:18,2018-05-03 01:03:27,2018-06-03 11:04:04
-61,Jamesy,Mellenby,554-299-7370,Male,6,53,82,2018-10-25 22:03:32,2018-05-03 02:36:00,2018-01-26 21:04:03,2018-09-15 17:06:05
-62,Goober,Mawby,765-918-7080,Male,1,70,20,2018-08-05 15:03:53,2018-09-15 16:38:46,2018-03-02 01:37:07,2018-12-15 23:40:37
-63,Zach,Tompkins,798-498-7252,Male,6,45,65,2018-06-26 09:42:40,2018-04-20 17:05:50,2018-09-18 16:58:53,2018-06-24 00:57:54
-64,Augustine,Cornbill,600-318-2489,Male,7,30,38,2018-02-08 08:08:53,2018-08-14 07:05:17,2018-10-14 01:12:13,2018-09-20 19:42:49
-65,Cort,Rosingdall,915-533-3544,Male,5,81,82,2019-01-18 02:20:54,2018-03-12 08:02:19,2018-05-13 15:10:29,2018-05-16 21:38:26
-66,Broddie,Dziwisz,404-420-5799,Male,7,3,22,2018-08-30 21:01:34,2018-03-13 06:37:11,2018-04-27 16:13:37,2018-12-09 08:39:26
-67,Clarke,Goodge,499-845-2443,Male,2,14,95,2018-04-02 10:32:42,2018-04-27 00:42:32,2018-05-29 08:36:44,2018-04-01 23:40:09
-68,Madelyn,Knight,724-972-4025,Female,6,12,57,2018-04-25 04:45:31,2018-08-13 14:34:24,2018-05-25 09:58:32,2018-09-02 04:03:25
-69,Bibby,Pace,266-593-6853,Female,2,11,87,2018-04-12 22:35:20,2018-03-10 11:28:13,2018-04-12 15:22:53,2018-04-21 18:57:47
-70,Nedi,Tambling,534-778-4478,Female,5,69,95,2018-04-27 15:43:27,2018-07-27 11:55:14,2018-04-05 07:02:04,2018-08-26 01:25:05
-71,Veronica,Alejandro,208-365-2416,Female,1,22,32,2018-04-09 03:42:21,2018-03-30 02:47:59,2018-02-08 16:43:52,2018-03-10 19:51:53
-72,Cecil,Walewicz,133-144-8036,Male,3,58,23,2018-12-26 06:56:13,2018-06-08 09:09:35,2018-02-16 16:39:15,2018-12-21 00:33:53
-73,Salem,Armell,186-906-5312,Male,7,25,47,2018-10-08 00:28:48,2018-09-03 00:55:23,2018-01-31 20:13:21,2018-04-06 20:30:43
-74,Brook,Buckston,714-565-2523,Female,1,13,92,2018-02-12 13:53:51,2019-01-10 22:17:38,2018-08-03 18:27:58,2018-09-06 10:38:45
-75,Benson,MacParlan,881-685-7375,Male,7,95,39,2018-04-07 06:40:34,2018-05-10 22:04:48,2018-10-06 01:07:35,2018-12-25 18:36:48
-76,Lukas,Kittle,845-541-8229,Male,1,52,85,2018-04-14 08:08:32,2018-08-21 12:21:22,2018-11-17 23:14:34,2018-06-21 02:48:31
-77,Jessa,Claus,611-425-9914,Female,7,99,56,2018-10-22 02:50:57,2018-11-25 03:44:27,2018-06-30 15:33:40,2018-07-02 03:59:50
-78,Hieronymus,Schurig,840-630-9703,Male,6,98,77,2018-01-24 18:01:57,2018-06-05 08:22:05,2018-07-12 07:09:14,2018-07-31 08:09:20
-79,Quintilla,Risborough,367-606-2805,Female,4,15,15,2018-10-24 13:48:18,2018-12-16 11:17:17,2018-05-17 19:15:19,2018-06-22 16:46:31
-80,Arv,Billingsley,438-164-1166,Male,3,54,65,2018-07-21 13:35:44,2018-10-07 14:37:53,2018-11-16 15:38:23,2018-10-19 21:07:38
-81,Happy,Rodrigo,427-752-3843,Female,2,28,25,2018-01-28 21:31:16,2018-07-06 04:48:40,2018-02-19 10:50:55,2018-10-20 15:58:59
-82,Cos,Chalfain,609-228-7131,Male,6,12,80,2018-02-24 18:06:52,2018-07-21 03:12:50,2018-02-22 09:53:50,2018-12-04 18:31:35
-83,Dael,Crother,249-141-1807,Male,3,11,86,2018-09-09 23:04:41,2018-02-24 13:19:31,2018-11-05 15:18:33,2018-12-23 18:55:24
-84,Evin,Tettley,974-233-5051,Male,1,57,61,2018-12-26 14:24:36,2018-05-28 19:09:40,2018-09-18 10:01:10,2018-04-04 21:11:05
-85,Bethanne,Hynson,395-152-0590,Female,5,51,39,2018-11-12 01:12:14,2018-07-21 02:07:45,2019-01-06 17:16:22,2018-11-15 16:58:09
-86,Adrian,Sapson,962-473-8077,Female,4,19,63,2018-02-13 14:27:28,2018-06-26 14:23:38,2018-09-17 04:28:22,2018-07-19 18:25:11
-87,Zaneta,Alforde,961-173-4877,Female,2,70,67,2018-11-04 11:27:20,2018-06-09 18:02:24,2018-08-17 03:13:55,2018-09-02 00:28:34
-88,Grady,Kobiera,687-321-5987,Male,1,62,96,2018-06-23 20:06:04,2018-02-08 04:03:21,2018-12-05 23:36:55,2018-10-26 14:17:35
-89,Dominique,Carslake,230-143-4475,Male,4,38,64,2018-05-19 01:14:57,2018-09-24 20:05:20,2018-06-26 12:15:04,2018-10-30 18:21:59
-90,Julietta,Gude,585-759-9173,Female,7,59,75,2018-11-25 20:42:33,2018-08-31 21:59:40,2018-12-31 21:04:44,2018-11-23 04:31:37
-91,Lothaire,Macrow,510-775-2964,Male,1,91,59,2018-04-22 14:12:47,2018-07-05 11:15:49,2018-06-04 12:44:19,2018-10-12 10:28:46
-92,Agneta,Trematick,391-964-4713,Female,6,6,91,2018-01-31 13:00:06,2018-11-24 20:48:15,2018-07-27 00:12:28,2018-02-17 08:41:55
-93,Pet,Padgett,690-476-6060,Female,2,17,84,2018-03-21 11:54:39,2018-03-08 01:51:40,2018-12-21 16:41:23,2018-02-07 14:47:44
-94,Barclay,Binion,516-626-1251,Male,4,49,46,2018-10-19 13:16:50,2018-06-25 01:26:53,2018-02-23 06:44:17,2018-10-08 11:01:59
-95,Dillie,Quilleash,676-581-4684,Male,3,27,14,2019-01-02 01:50:23,2019-01-02 04:16:15,2018-07-21 11:54:44,2018-03-06 02:17:37
-96,Marissa,Twinterman,855-444-0657,Female,6,52,62,2018-07-27 09:41:53,2018-03-18 21:07:51,2018-09-05 04:45:41,2018-05-01 14:08:21
-97,Perl,Braun,639-977-9224,Female,7,93,88,2018-03-12 07:21:26,2018-11-12 18:45:36,2018-09-10 10:45:15,2018-09-30 10:28:01
-98,Gwenette,Jozef,804-642-8405,Female,1,67,64,2018-05-02 20:04:22,2018-05-25 14:26:42,2018-12-22 04:00:00,2018-04-27 17:36:21
-99,Gabbi,Nassey,998-336-4318,Female,3,35,79,2018-11-13 07:58:46,2018-02-23 01:11:32,2018-11-08 17:30:31,2018-07-24 03:14:25
-100,Susana,Ebben,826-329-4492,Female,5,9,98,2018-07-08 08:40:45,2018-07-12 00:41:34,2018-10-12 15:33:58,2018-06-16 15:33:32
-101,Mallorie,Marsters,637-209-9862,Female,5,18,34,2018-07-30 15:18:09,2018-09-23 17:22:45,2018-12-21 17:11:36,2018-07-06 19:42:09
-102,Marley,Bethell,102-272-8411,Female,6,70,7,2018-10-08 12:25:07,2018-04-13 04:50:24,2018-03-01 09:20:29,2018-04-05 02:02:24
-103,Genvieve,McMeekin,679-490-4369,Female,3,7,25,2018-02-25 15:34:48,2018-06-24 16:32:10,2018-07-03 20:04:57,2018-12-11 02:53:30
-104,Bartram,Leahey,830-491-8399,Male,3,100,57,2018-10-18 18:39:57,2018-04-08 02:16:41,2018-07-20 01:10:35,2018-06-20 09:41:56
-105,Livvyy,Thornewell,872-138-4425,Female,6,58,58,2019-01-17 09:36:59,2018-04-13 07:25:55,2018-11-28 12:44:14,2018-07-14 04:05:13
-106,Gabriella,Cornish,202-570-6308,Female,7,79,67,2018-08-25 01:20:02,2018-11-30 22:05:13,2018-10-21 11:47:58,2018-11-20 04:28:53
-107,Humberto,Lanfranchi,636-653-6377,Male,3,18,85,2018-08-21 03:38:03,2018-09-01 07:20:38,2018-04-27 04:23:16,2018-08-15 14:45:48
-108,Othella,Asaaf,386-100-6369,Female,4,59,93,2018-05-20 17:17:26,2018-10-23 01:32:55,2018-09-20 03:27:06,2018-12-17 21:11:18
-109,Mil,Booij,494-405-6566,Female,5,88,97,2018-07-12 19:07:28,2018-02-14 12:57:18,2018-12-11 19:22:18,2018-11-23 12:41:41
-110,Orel,Blaxland,309-372-2193,Female,7,30,93,2018-11-18 23:18:41,2018-06-21 19:30:46,2018-09-15 13:43:25,2018-02-04 09:51:54
-111,Sibeal,Fennelow,543-514-6831,Female,6,92,56,2018-10-09 14:48:56,2018-12-18 22:29:16,2018-04-09 03:30:48,2018-04-04 18:11:19
-112,Sidnee,Thorby,687-609-9785,Male,2,30,12,2018-03-28 10:27:39,2018-07-01 07:12:38,2018-02-16 12:58:34,2018-11-16 01:37:38
-113,Lora,Ridewood,164-690-9005,Female,1,37,55,2018-11-13 21:13:39,2018-09-06 23:00:39,2019-01-17 10:31:22,2018-12-05 22:14:39
-114,Velma,Brolan,359-817-6834,Female,6,26,38,2019-01-16 21:47:15,2018-11-25 16:54:49,2018-10-07 01:07:24,2018-10-11 01:14:02
-115,Vassili,Kirkbride,287-966-8144,Male,6,52,16,2018-12-20 23:23:45,2018-12-21 08:42:29,2018-02-25 02:07:40,2018-06-28 04:39:19
-116,Nettie,Bulmer,357-176-0651,Female,5,16,44,2018-09-19 15:07:17,2018-03-16 17:55:44,2018-09-06 22:48:36,2018-04-28 23:48:07
-117,Elyn,Matthew,176-489-8486,Female,4,25,95,2018-04-10 12:26:47,2019-01-10 03:12:46,2018-07-28 23:51:46,2018-07-07 16:15:50
-118,Nat,Enderlein,480-924-1165,Male,4,94,42,2018-09-10 06:56:16,2018-04-24 02:55:47,2018-03-17 15:48:28,2018-04-30 06:11:27
-119,Allister,Laundon,267-536-1588,Male,6,86,21,2018-08-21 09:06:13,2018-11-26 09:47:45,2018-04-05 15:01:24,2018-01-21 02:29:49
-120,Suzy,Dubery,631-694-1983,Female,5,54,24,2018-07-12 11:08:05,2018-07-21 06:22:14,2018-09-04 03:44:08,2018-11-14 04:59:58
-121,Reinaldo,Assel,927-809-0971,Male,3,4,44,2018-10-17 17:15:04,2018-12-24 21:34:45,2019-01-15 07:39:25,2018-02-06 19:16:38
-122,Claudell,Reckus,196-391-8789,Male,1,34,75,2018-08-12 02:29:09,2018-11-28 02:43:43,2018-08-21 09:11:37,2018-07-14 12:51:48
-123,Kary,Jee,656-508-4636,Female,2,67,47,2018-12-17 10:42:46,2018-05-16 14:59:10,2018-12-23 02:44:31,2018-12-19 01:28:44
-124,Giustino,Tinan,292-383-3412,Male,7,100,96,2018-02-05 08:16:51,2018-04-10 02:46:18,2018-12-07 23:33:47,2018-03-25 18:50:56
-125,Matthew,Palmer,562-655-9301,Male,5,87,100,2018-07-14 00:43:30,2018-01-22 19:53:17,2018-05-18 08:37:49,2018-04-16 10:03:59
-126,Helge,Paradyce,454-788-5166,Female,4,31,87,2018-12-29 12:15:52,2018-02-08 19:33:17,2018-12-29 06:51:56,2018-11-11 03:52:39
-127,Anthe,Cullinan,517-178-4457,Female,4,61,14,2018-07-10 05:46:54,2018-12-22 09:39:32,2018-12-06 16:59:53,2018-12-30 08:24:22
-128,Cindy,Bellie,284-376-7890,Female,6,26,95,2018-02-04 23:09:03,2018-09-06 16:30:50,2018-05-25 00:39:04,2018-12-20 19:03:33
-129,Deva,Branthwaite,272-973-9361,Female,5,4,74,2018-06-05 05:56:15,2018-06-26 03:23:22,2018-06-06 00:42:51,2018-12-01 12:32:06
-130,Karen,Frank,495-748-4715,Female,6,55,54,2018-10-26 02:19:25,2018-04-11 12:50:31,2019-01-12 15:29:42,2018-12-23 04:07:28
-131,Batsheva,Wressell,364-562-3308,Female,2,93,2,2018-12-08 11:50:47,2018-10-05 08:11:01,2018-12-29 23:04:37,2018-10-13 09:59:34
-132,Damian,Devon,617-622-5769,Male,1,81,84,2018-03-03 22:21:45,2018-02-09 02:46:29,2018-02-04 03:39:23,2018-06-24 17:15:50
-133,Mischa,Feldbrin,941-794-4981,Male,2,17,93,2018-07-05 04:20:06,2018-11-22 10:46:44,2018-10-25 23:05:17,2018-08-04 04:19:58
-134,Remus,Mochar,964-251-2864,Male,2,78,88,2018-05-08 23:51:18,2019-01-19 19:38:55,2018-06-13 09:14:44,2019-01-10 12:37:02
-135,Cleon,Ambroise,790-235-3681,Male,3,38,95,2018-08-11 11:07:40,2018-07-06 04:03:45,2018-12-18 09:47:22,2018-03-31 14:59:58
-136,Sidney,Duthy,739-113-2227,Male,4,95,79,2018-09-25 19:41:46,2018-09-05 07:30:26,2018-03-21 18:52:33,2018-04-25 13:58:28
-137,Xavier,Gon,942-422-7024,Male,5,35,47,2018-09-05 22:08:31,2018-05-10 20:19:08,2018-06-25 18:32:07,2018-04-11 04:44:32
-138,Ara,Gwyllt,450-595-4186,Male,4,4,28,2018-10-28 21:12:39,2018-02-13 08:26:45,2018-06-16 21:44:05,2018-08-01 11:08:43
-139,Libbey,Millwall,764-602-4598,Female,7,89,31,2019-01-14 17:04:08,2018-02-22 03:01:08,2018-02-27 08:56:59,2018-11-09 13:18:23
-140,Rosalynd,Wellard,798-378-3350,Female,4,58,44,2018-07-13 19:23:05,2018-11-20 20:46:20,2018-01-31 02:28:58,2018-10-25 13:31:05
-141,Reinaldo,O'Dea,896-868-5961,Male,2,72,69,2018-08-08 04:21:04,2018-06-23 08:34:34,2018-08-31 08:41:08,2018-11-19 09:43:28
-142,Veradis,Holyard,706-725-9446,Female,3,78,56,2018-09-05 17:38:33,2018-05-04 13:04:38,2018-11-05 12:46:29,2018-09-25 08:56:54
-143,Birdie,Collerd,319-380-7196,Female,2,22,1,2018-10-16 19:45:08,2018-08-05 06:38:47,2018-11-22 11:10:39,2018-10-20 09:48:22
-144,Sada,Schout,825-204-2108,Female,7,88,10,2018-04-13 13:44:13,2018-06-06 14:39:37,2018-11-09 10:29:00,2018-09-15 05:38:03
-145,Ambros,Mayoral,819-227-9360,Male,7,50,91,2018-03-27 15:27:05,2018-08-02 02:18:35,2018-06-27 17:10:44,2018-07-21 14:18:29
-146,Emile,Abraham,622-769-6584,Male,6,10,44,2018-09-15 10:24:46,2018-07-10 07:58:58,2018-06-18 22:49:01,2018-04-20 09:07:25
-147,Lira,Reboulet,983-623-7858,Female,4,54,39,2018-06-27 09:11:33,2018-10-01 07:52:19,2018-10-21 09:48:43,2018-09-09 22:17:51
-148,Bucky,Dubery,127-215-3377,Male,1,13,5,2018-02-15 22:03:55,2018-10-15 16:35:39,2018-02-20 10:22:26,2018-11-05 12:56:42
-149,Ced,Meert,482-685-6526,Male,1,85,40,2018-11-09 04:11:10,2019-01-16 14:34:41,2018-05-22 12:18:01,2018-03-13 13:09:46
-150,Hamlen,Boyson,723-641-9907,Male,7,3,25,2018-07-08 10:27:28,2018-09-06 08:34:00,2018-10-19 17:18:48,2018-02-22 19:31:50
-151,Scotty,Bromell,605-116-4137,Male,4,44,83,2018-02-03 11:10:35,2018-03-05 15:14:24,2018-06-20 01:47:46,2018-04-09 17:34:46
-152,Betti,Cuttelar,947-869-1635,Female,7,31,68,2018-07-14 23:35:44,2018-09-07 08:03:02,2018-05-02 15:32:32,2018-02-26 15:33:55
-153,Lothario,Whellams,959-671-9821,Male,3,91,85,2018-12-17 02:20:59,2018-08-31 16:54:24,2018-09-30 18:16:21,2018-06-06 21:30:55
-154,Maurits,Eisenberg,612-730-0598,Male,5,95,2,2018-07-11 05:38:06,2018-01-26 15:01:11,2018-11-11 22:30:48,2018-04-16 07:20:25
-155,Jeffry,Wilprecht,420-521-7374,Male,2,2,19,2018-07-31 12:28:42,2018-03-19 23:14:58,2018-11-29 11:25:28,2018-02-19 02:42:46
-156,Victor,Grinter,303-176-4062,Male,3,28,82,2018-04-15 17:22:33,2018-04-26 11:56:35,2018-10-06 23:26:58,2018-04-05 07:32:13
-157,Sonnie,Lobe,794-424-7798,Male,1,68,99,2018-12-23 13:36:28,2018-11-24 21:42:21,2018-03-23 12:37:58,2018-06-26 15:29:05
-158,Krishna,Fletcher,520-484-4343,Male,5,77,26,2018-05-15 11:17:35,2018-12-22 22:52:12,2018-05-10 22:50:32,2018-05-05 21:38:09
-159,Kerrie,Bartholomieu,654-465-0213,Female,4,7,56,2018-11-02 19:08:33,2018-01-27 09:11:25,2018-12-13 16:53:49,2018-05-06 13:16:06
-160,Rasla,Dibbs,192-692-8022,Female,5,58,38,2018-05-13 16:41:12,2018-12-17 01:00:54,2018-08-19 15:33:37,2019-01-11 00:33:40
-161,Mellisa,Prinn,884-570-1200,Female,3,2,44,2018-06-17 15:55:01,2018-02-09 22:16:46,2018-01-21 11:35:44,2018-03-22 01:43:34
-162,Shandeigh,Prise,284-912-2475,Female,1,24,63,2018-04-16 10:09:01,2018-09-06 02:59:22,2018-05-21 00:23:45,2018-05-18 15:59:58
-163,Aline,Pockey,145-621-3349,Female,5,46,99,2018-07-08 01:50:19,2018-07-23 03:08:04,2018-07-25 04:19:37,2018-08-02 04:28:24
-164,Quinton,Filon,646-285-5370,Male,7,71,90,2018-09-26 09:06:43,2018-09-15 14:33:28,2018-11-23 04:26:39,2019-01-20 06:07:08
-165,Brena,Bentke,336-549-2800,Female,6,52,73,2018-02-07 03:32:01,2018-09-21 09:41:58,2018-08-01 23:49:56,2018-04-24 04:41:42
-166,Kessia,Bentote,261-293-3478,Female,7,34,27,2019-01-03 17:12:12,2018-01-28 01:36:43,2018-09-06 07:29:49,2018-07-16 11:22:52
-167,Serene,Jellett,617-490-3045,Female,4,8,12,2018-08-01 05:18:42,2018-08-21 11:58:23,2018-02-17 11:36:57,2018-12-29 13:38:10
-168,Drugi,Chainey,642-531-9743,Male,1,27,14,2019-01-06 06:11:34,2018-11-02 16:07:48,2019-01-07 21:38:11,2018-10-26 19:58:30
-169,Benjamen,Angric,161-599-1534,Male,6,80,80,2018-03-25 19:49:25,2018-08-23 06:12:13,2018-05-09 05:22:56,2018-04-03 12:50:17
-170,Augustine,de Werk,986-128-9745,Male,7,40,35,2018-09-07 12:55:20,2018-09-15 16:46:53,2018-02-12 14:00:28,2018-02-20 11:54:00
-171,Rorke,Laidlaw,818-603-8046,Male,1,99,95,2018-12-25 21:27:03,2018-12-15 12:30:46,2018-11-06 04:14:51,2018-11-30 18:51:21
-172,Clywd,Cawdron,118-860-8931,Male,3,12,48,2018-10-28 00:46:43,2018-07-04 11:34:45,2018-01-24 04:40:57,2018-11-08 13:52:59
-173,Maudie,Habbijam,781-157-2628,Female,1,79,35,2018-11-30 12:07:21,2018-03-07 00:30:04,2018-11-14 11:01:28,2018-12-25 08:37:17
-174,Gina,Adamovitz,873-120-9534,Female,1,99,41,2018-10-15 08:16:08,2018-02-02 10:04:20,2018-03-11 05:28:50,2018-08-15 16:28:04
-175,Dorey,Berkeley,856-131-2818,Female,5,8,45,2018-06-14 02:47:10,2018-12-04 16:14:29,2018-02-20 02:19:22,2018-04-14 04:00:28
-176,Ashli,Stanistrete,507-365-9155,Female,3,50,85,2019-01-15 15:53:25,2018-09-08 00:21:37,2018-09-08 14:26:57,2018-08-12 18:04:42
-177,Aleta,Jessard,640-184-4123,Female,1,63,42,2018-12-13 11:45:35,2018-07-13 05:43:20,2018-07-19 01:29:59,2018-08-19 10:17:25
-178,Conney,Tansly,619-324-6788,Male,7,18,68,2018-02-06 08:22:33,2018-02-09 16:00:31,2018-02-17 20:35:12,2018-09-01 00:28:07
-179,Chaddie,Curling,967-821-4721,Male,3,50,28,2018-04-18 18:52:52,2018-10-04 03:42:09,2018-11-06 23:55:33,2018-12-23 04:01:13
-180,Skyler,Shard,173-185-5465,Male,7,48,76,2018-03-21 23:42:54,2018-05-22 07:52:04,2018-02-28 18:02:47,2018-08-20 09:21:32
-181,Alair,Bruggen,225-747-4685,Male,5,45,4,2018-03-13 03:01:40,2018-04-30 23:24:34,2018-04-25 03:14:01,2018-07-26 19:41:29
-182,Forester,Rackstraw,111-188-6870,Male,6,11,43,2018-09-26 04:05:12,2018-08-25 04:59:08,2018-02-09 16:50:13,2018-06-10 06:53:15
-183,Stinky,Klassmann,628-447-6394,Male,5,42,77,2018-12-29 18:37:51,2018-01-31 04:16:33,2018-05-27 09:10:31,2018-02-03 20:09:44
-184,Gabriella,Weeds,978-256-0633,Female,3,17,50,2018-10-10 14:56:11,2019-01-19 07:53:13,2018-08-28 10:02:39,2018-05-03 15:01:38
-185,Ingeborg,Swine,765-792-5768,Female,5,39,37,2018-10-13 03:17:12,2018-11-25 20:17:22,2018-08-25 21:54:45,2018-12-04 07:44:58
-186,Kain,Everingham,945-715-9320,Male,7,52,80,2018-10-22 01:58:35,2018-04-16 11:48:35,2018-02-22 17:07:19,2018-12-15 01:59:16
-187,Noble,Swadlinge,928-764-8545,Male,7,24,75,2018-07-02 20:12:53,2018-07-19 00:23:08,2018-08-06 21:50:01,2018-05-04 08:56:30
-188,Amber,Shropshire,983-928-3309,Female,1,100,37,2018-03-18 04:32:13,2018-08-09 03:16:35,2018-11-21 04:25:29,2018-10-03 06:20:54
-189,Hedy,Sapena,301-104-2652,Female,3,37,35,2018-07-04 12:54:06,2018-10-12 20:33:48,2018-04-10 07:32:31,2018-03-17 10:12:03
-190,Nerissa,Jedras,425-605-9508,Female,1,18,31,2019-01-12 14:05:35,2018-10-19 14:28:35,2018-06-14 21:07:02,2018-03-22 05:53:32
-191,Terrel,Kear,681-621-2157,Male,3,98,45,2018-02-20 10:42:05,2018-11-08 04:29:14,2018-03-09 02:33:02,2018-07-04 18:27:00
-192,Dennison,Theodoris,722-911-1627,Male,6,76,32,2018-11-18 05:15:23,2018-05-13 02:02:05,2019-01-15 21:45:30,2018-04-13 17:24:17
-193,Chrystel,Ferentz,497-580-2963,Female,2,96,6,2018-12-11 03:17:23,2018-05-23 04:35:09,2018-11-01 17:51:50,2018-08-02 02:44:29
-194,Devland,Butchers,313-172-9223,Male,6,42,38,2019-01-16 07:17:37,2018-11-09 17:37:48,2018-04-10 08:57:30,2018-05-02 13:47:28
-195,Simon,Astupenas,981-207-6441,Male,2,57,43,2018-11-07 15:02:00,2018-01-25 17:30:33,2018-07-13 05:08:19,2018-10-29 18:37:22
-196,Jordan,Attride,447-912-6034,Female,7,25,37,2018-06-06 14:29:43,2018-06-30 03:49:38,2018-12-09 18:11:23,2018-01-30 19:12:46
-197,Clerissa,Forsard,485-444-1412,Female,2,88,66,2018-09-19 00:56:28,2018-07-23 15:36:37,2018-11-17 11:43:09,2018-11-17 17:11:53
-198,Alastair,Toth,495-980-1189,Male,1,62,59,2018-03-04 17:35:31,2018-06-18 07:02:22,2018-07-30 02:31:33,2018-07-20 14:21:29
-199,Aldo,Bruton,488-482-2130,Male,2,33,99,2018-06-09 23:01:18,2018-08-22 04:11:53,2018-07-17 05:55:24,2018-04-08 10:13:23
-200,Lorin,Mourant,953-195-5245,Male,1,78,78,2018-02-04 07:07:36,2018-08-05 08:03:40,2018-11-22 13:04:30,2018-03-10 12:32:28
-201,Nonnah,Dreini,137-834-9350,Female,1,20,84,2018-11-23 21:47:29,2018-07-02 22:51:42,2018-05-28 23:33:57,2018-06-11 11:55:17
-202,Winnie,Muris,865-681-2171,Female,2,31,76,2018-10-29 21:53:21,2018-10-12 17:59:08,2018-03-21 12:37:41,2018-06-26 05:24:49
-203,Marybelle,Wedmore.,566-812-6518,Female,6,94,20,2018-04-08 17:51:07,2018-01-25 19:29:58,2018-05-29 08:33:21,2018-12-18 09:29:05
-204,Christophorus,La Batie,776-298-7693,Male,2,100,44,2018-11-26 01:22:44,2018-11-28 19:33:42,2018-01-26 20:34:09,2018-10-15 19:29:24
-205,Erhart,Laydon,425-854-5387,Male,7,15,35,2018-11-09 09:53:34,2018-11-11 01:43:14,2019-01-16 12:20:32,2018-08-01 09:34:47
-206,Myrta,Playfair,512-835-4158,Female,4,8,51,2018-05-04 15:28:01,2018-05-11 22:03:31,2018-05-21 02:28:31,2018-03-17 08:25:48
-207,Tybie,McGhee,155-902-0043,Female,5,25,55,2018-03-19 17:19:34,2018-11-11 01:53:03,2018-06-01 16:21:08,2018-08-21 09:39:26
-208,Augusto,Chelam,595-490-1187,Male,2,20,22,2018-02-26 17:51:20,2018-04-15 11:38:21,2018-11-29 19:44:24,2018-05-17 16:31:14
-209,Louisette,Firbanks,365-745-5229,Female,1,51,35,2018-04-17 19:42:14,2018-03-19 09:56:15,2018-04-22 09:48:27,2018-11-20 05:52:44
-210,Brucie,Speers,688-351-7130,Male,3,65,20,2018-09-22 06:54:04,2018-08-14 23:05:08,2018-03-13 17:38:11,2018-12-29 06:47:13
-211,Nathanial,Ayliff,974-831-8727,Male,1,23,95,2018-09-02 06:27:24,2018-06-18 22:51:54,2018-12-25 13:15:52,2018-03-09 05:29:17
-212,Shawnee,McClenan,177-754-4767,Female,4,54,82,2018-04-17 14:01:32,2018-08-15 14:02:31,2019-01-04 03:04:30,2018-10-20 15:25:45
-213,Giavani,Cay,976-869-6321,Male,1,92,27,2018-07-22 17:43:03,2018-02-20 03:19:34,2018-05-06 13:52:36,2018-12-05 18:14:41
-214,Claudia,Fazackerley,454-663-9623,Female,4,26,25,2019-01-07 16:15:34,2018-03-06 15:31:53,2018-02-06 23:08:37,2018-11-13 17:45:22
-215,Nevil,Phelp,255-488-7211,Male,5,22,40,2018-09-11 19:55:44,2018-05-13 12:07:30,2018-08-27 02:20:49,2019-01-17 21:11:30
-216,Elle,Antal,303-999-5794,Female,4,23,5,2018-02-15 19:05:09,2018-10-15 01:01:31,2018-12-31 16:08:16,2018-03-23 15:16:38
-217,Brnaby,Dewsbury,173-850-9221,Male,3,82,22,2018-05-19 14:05:10,2018-12-30 00:25:40,2018-09-27 06:32:26,2018-04-25 02:17:22
-218,Ronda,Dranfield,835-657-5998,Female,5,61,54,2018-10-18 03:51:07,2018-07-20 06:01:19,2018-11-17 15:09:04,2018-12-04 20:06:06
-219,Vania,Brannan,288-990-8986,Female,3,88,25,2018-07-03 11:19:29,2018-11-13 09:44:15,2018-02-28 13:57:43,2018-02-28 05:42:56
-220,Jessy,Baggelley,848-274-4914,Female,7,38,75,2018-12-04 13:44:16,2018-11-20 01:53:14,2018-02-25 03:07:40,2018-06-17 19:02:59
-221,Paxon,Kensall,262-215-6295,Male,1,3,63,2018-08-12 21:30:25,2018-11-24 01:13:12,2018-06-04 19:20:59,2018-08-16 14:48:22
-222,Tana,O'Donohue,514-853-5855,Female,4,99,1,2018-03-21 06:05:58,2018-05-01 00:39:55,2018-03-10 21:55:54,2018-10-31 10:25:10
-223,Thomasina,Gibbons,501-364-8398,Female,3,37,56,2018-11-22 03:07:49,2018-06-30 16:44:00,2018-08-05 18:41:13,2019-01-07 06:21:44
-224,Bellanca,Golston,673-979-3362,Female,1,57,53,2018-05-02 00:04:42,2018-01-21 22:51:57,2018-08-20 18:40:05,2018-02-09 08:22:11
-225,Maureene,Drejer,769-639-6612,Female,7,49,17,2018-02-20 12:00:24,2018-09-01 04:44:08,2018-08-15 22:04:06,2018-09-04 06:40:59
-226,Beatrisa,Blanche,914-368-0909,Female,4,47,77,2018-05-21 06:41:29,2018-10-04 19:21:53,2018-07-11 04:03:32,2018-04-05 01:26:21
-227,Melita,Filipczak,743-692-1202,Female,2,18,45,2018-04-04 09:49:49,2018-03-30 16:30:51,2019-01-09 03:34:15,2018-02-05 00:54:24
-228,Jean,Rzehor,983-469-9959,Male,2,76,95,2018-08-17 14:15:05,2018-09-25 10:05:56,2018-09-04 10:03:08,2018-02-16 04:46:04
-229,Netti,Odeson,140-282-6021,Female,7,46,99,2018-04-08 08:08:21,2018-05-07 06:33:55,2018-03-10 06:30:39,2018-08-27 01:08:06
-230,Lark,Komorowski,889-340-2588,Female,6,36,54,2018-05-27 12:55:35,2018-11-18 05:20:17,2018-11-19 04:18:03,2018-04-24 14:21:19
-231,Mae,Howells,972-510-2059,Female,2,54,97,2019-01-17 19:46:20,2018-07-10 05:29:24,2018-07-06 16:03:28,2018-07-18 17:41:40
-232,Brewer,Wolstencroft,243-516-4986,Male,4,68,84,2018-07-19 01:48:48,2018-12-31 10:44:05,2018-05-25 20:15:52,2018-04-27 22:38:48
-233,Chrystel,Buist,285-587-4608,Female,3,66,90,2018-02-06 05:43:09,2018-06-10 20:45:59,2018-11-27 09:40:02,2018-12-30 22:43:43
-234,Nicola,Feltoe,102-119-8958,Female,6,30,100,2018-05-26 00:46:42,2018-03-17 00:12:12,2019-01-16 18:40:38,2018-01-27 09:20:23
-235,Engelbert,Matveiko,868-192-6148,Male,3,3,6,2018-05-27 06:16:04,2018-12-24 00:22:43,2018-04-18 07:21:59,2018-12-03 08:49:41
-236,Lezley,M'Chirrie,749-737-2204,Male,4,16,17,2018-07-06 21:48:48,2018-02-09 05:08:49,2018-09-05 10:59:16,2018-03-22 01:13:02
-237,Josy,Larkins,826-241-0108,Female,1,8,18,2018-10-26 03:28:37,2018-02-24 22:01:17,2018-12-29 22:31:43,2018-05-23 06:28:27
-238,Armando,Girt,296-631-5842,Male,1,90,62,2018-03-14 20:02:06,2018-02-25 03:43:37,2018-05-29 18:43:28,2018-10-10 16:04:29
-239,Nevins,Boch,243-865-0986,Male,7,87,34,2018-04-27 05:11:05,2018-06-13 18:02:47,2018-04-17 23:28:45,2018-03-11 20:07:50
-240,Gordan,MacHoste,194-807-0099,Male,2,8,10,2018-11-30 11:09:40,2018-03-19 08:40:39,2018-07-07 07:58:57,2018-12-03 15:54:45
-241,Vlad,Urling,756-416-9308,Male,6,44,75,2018-07-01 08:10:44,2018-06-25 11:50:00,2018-02-18 09:41:26,2019-01-20 16:56:43
-242,Karney,Batteson,884-299-0885,Male,3,4,70,2018-04-21 18:15:47,2018-03-17 15:26:35,2018-09-21 06:49:36,2018-03-03 10:02:05
-243,Shep,Croisier,182-249-1703,Male,2,25,64,2018-11-27 15:36:38,2018-03-27 09:16:11,2018-07-27 14:14:49,2018-08-31 21:47:02
-244,Jackelyn,Franschini,203-947-2285,Female,5,93,18,2018-05-11 18:05:34,2018-07-09 02:56:23,2018-05-26 13:31:09,2018-11-12 13:51:54
-245,Kingston,Brazier,388-460-9266,Male,5,67,43,2018-11-17 16:06:03,2018-10-22 21:39:40,2018-11-03 04:17:45,2018-08-23 17:37:21
-246,Derwin,Postin,334-746-9914,Male,2,9,74,2018-04-28 10:39:48,2018-10-16 21:01:17,2019-01-17 12:54:27,2018-09-18 06:08:12
-247,Rustie,Boddington,499-187-3081,Male,7,75,92,2018-07-09 18:05:33,2018-09-15 11:50:52,2018-06-10 05:00:00,2018-09-23 05:52:23
-248,Araldo,MacConnulty,922-950-0398,Male,4,66,28,2018-11-11 12:46:18,2018-09-10 16:05:23,2018-09-21 00:16:24,2018-10-10 19:06:57
-249,Brear,Zuanelli,948-803-5705,Female,7,88,15,2018-03-03 08:12:37,2018-10-06 14:14:00,2018-09-06 21:02:50,2018-04-04 06:13:25
-250,Ruttger,Cartan,503-123-4758,Male,6,8,46,2018-07-02 10:33:15,2018-10-11 08:51:25,2018-02-16 18:01:35,2018-05-15 00:25:35
-251,Leta,Gravenell,798-643-9817,Female,6,19,50,2018-09-26 18:01:14,2018-12-31 01:08:01,2018-08-12 01:18:26,2018-08-12 11:04:31
-252,Nanny,Spellward,298-614-5133,Female,2,78,35,2018-07-31 14:38:53,2018-07-11 11:50:42,2018-06-24 03:47:24,2018-08-23 06:25:24
-253,Garwin,Overil,981-304-0345,Male,1,66,62,2018-02-20 05:57:01,2018-02-04 20:02:37,2018-04-21 16:30:20,2018-07-27 08:45:03
-254,Ancell,Bromidge,677-576-3535,Male,1,54,47,2018-02-27 19:07:09,2018-07-07 17:41:39,2018-03-14 05:31:23,2018-11-18 21:30:30
-255,Harmonia,McIleen,610-808-3838,Female,5,76,7,2018-05-09 14:49:35,2018-04-12 02:30:13,2019-01-17 21:59:23,2018-04-20 05:21:50
-256,Ginni,See,809-189-3574,Female,7,93,45,2018-04-11 20:22:07,2018-08-17 13:12:57,2018-04-20 06:30:33,2018-04-17 00:12:41
-257,Christi,Doorly,614-386-8893,Female,7,23,11,2018-08-09 05:01:14,2018-03-11 21:19:53,2018-05-09 23:37:07,2018-03-27 22:07:11
-258,Perice,Severy,433-906-1030,Male,1,18,5,2018-09-01 12:30:04,2018-09-13 05:34:16,2019-01-16 22:35:35,2019-01-09 20:31:49
-259,Dulsea,Yokel,279-965-4206,Female,2,93,50,2018-10-31 22:48:09,2018-07-13 09:25:20,2018-02-16 09:15:58,2018-05-12 21:55:26
-260,Marge,Cheng,549-350-8693,Female,2,10,68,2018-09-01 18:42:35,2018-04-07 10:58:53,2018-07-30 16:05:15,2018-10-20 05:45:19
-261,Baron,McIlmorow,283-456-4615,Male,2,41,89,2018-11-07 01:23:03,2018-12-20 18:25:28,2018-08-31 12:49:04,2018-05-27 07:39:41
-262,Rabbi,Beaglehole,904-724-1771,Male,2,94,67,2018-11-04 08:21:47,2018-12-28 20:54:40,2018-12-08 10:20:14,2018-11-29 19:47:40
-263,Olvan,Asher,310-502-8368,Male,7,76,67,2018-03-15 22:02:48,2018-07-30 12:08:26,2018-12-06 22:49:46,2018-06-17 22:03:05
-264,Yard,Beldon,209-784-5636,Male,7,90,9,2018-07-24 02:02:11,2018-05-11 03:54:15,2018-08-20 18:46:55,2018-03-10 04:11:33
-265,Enriqueta,Barraclough,332-372-0081,Female,6,75,69,2018-08-18 05:08:19,2018-01-27 11:36:23,2018-05-23 08:59:06,2018-02-11 04:14:36
-266,Alli,Smallcomb,255-741-1276,Female,2,8,1,2018-12-06 01:19:35,2018-07-16 16:10:12,2018-07-16 13:31:05,2018-10-26 07:03:09
-267,Shay,Amsden,816-821-9426,Male,6,25,35,2018-03-15 01:09:39,2018-11-26 05:57:30,2018-10-26 07:54:05,2018-04-14 01:42:13
-268,Jacynth,Boscott,970-121-0282,Female,1,88,89,2018-07-31 16:10:10,2018-05-10 10:28:44,2018-10-02 23:00:23,2018-07-02 13:55:14
-269,Dominique,Farny,782-337-7486,Male,1,17,29,2018-09-09 16:09:20,2018-04-10 15:04:16,2018-03-25 16:40:27,2019-01-04 20:02:55
-270,Keefe,Guerrero,440-254-1961,Male,4,96,29,2018-10-19 10:06:55,2018-07-28 18:31:17,2018-05-05 19:05:12,2018-06-01 05:55:25
-271,Buiron,Anfossi,512-333-8553,Male,2,92,51,2018-09-09 16:00:30,2018-02-20 14:27:22,2018-03-11 07:29:35,2018-07-12 02:19:45
-272,Eleonore,Puller,325-656-5909,Female,4,88,37,2018-12-04 20:39:40,2018-02-13 04:35:07,2018-08-16 18:26:05,2018-06-08 07:45:57
-273,Katuscha,Rasch,427-956-1046,Female,4,68,90,2018-06-19 01:20:15,2018-04-03 01:55:07,2018-04-17 19:09:09,2018-08-15 11:04:06
-274,Hoebart,Linger,972-926-3923,Male,4,74,74,2018-02-19 01:23:42,2018-01-26 15:34:23,2018-09-13 07:10:43,2018-06-07 23:26:33
-275,Patrick,Hryskiewicz,736-622-7490,Male,3,91,1,2019-01-13 09:57:23,2018-05-06 15:42:09,2018-07-01 17:16:14,2018-09-01 02:26:15
-276,Bert,Adrianello,485-126-1547,Female,7,33,12,2018-11-01 06:34:27,2018-09-14 23:29:20,2018-03-11 08:15:03,2018-09-21 21:53:26
-277,Burton,Spittall,570-586-9893,Male,7,46,33,2018-01-28 06:20:39,2018-06-15 19:15:06,2018-06-27 02:36:30,2018-03-24 02:52:03
-278,Tessy,Mitchley,167-983-7021,Female,5,45,26,2018-03-02 16:44:00,2018-12-25 18:48:13,2018-04-01 18:27:41,2018-04-03 20:39:05
-279,Nettle,Hause,489-296-7367,Female,2,99,15,2018-03-18 02:50:49,2018-03-02 01:31:53,2018-10-31 06:40:34,2018-04-28 11:21:14
-280,Pearce,Darwent,801-341-9474,Male,2,24,44,2018-05-28 23:54:50,2018-02-07 18:37:22,2018-09-11 02:48:52,2018-11-09 16:24:17
-281,Kelsey,Suttle,536-591-5133,Female,6,11,76,2018-02-14 19:05:31,2018-07-14 19:32:27,2018-03-26 04:59:22,2018-04-01 20:21:57
-282,Gillie,Sponton,270-390-2110,Female,2,94,57,2018-03-14 11:50:53,2018-03-27 13:10:53,2018-04-23 19:54:11,2018-08-22 21:53:12
-283,Marsha,Dietz,740-837-1891,Female,5,90,95,2018-03-18 04:53:06,2018-06-29 02:28:55,2018-08-10 05:14:09,2018-05-10 04:03:25
-284,Miles,Purchon,413-518-8673,Male,2,57,98,2018-04-02 15:49:11,2018-02-04 16:57:33,2018-09-09 22:23:44,2018-03-16 04:00:43
-285,Collette,Menego,440-637-0309,Female,3,21,56,2018-04-18 04:27:48,2018-05-05 08:32:40,2018-03-17 17:54:26,2018-04-12 00:24:45
-286,Heriberto,Dunkerton,321-657-4492,Male,5,99,91,2018-08-17 12:11:42,2018-10-26 14:33:07,2018-03-10 13:13:28,2018-05-03 02:14:30
-287,Hailee,Remington,671-722-2287,Female,6,69,53,2018-08-01 01:54:04,2018-08-20 04:05:47,2018-04-24 14:22:04,2018-11-02 14:15:55
-288,Ingunna,Errigo,378-401-4671,Female,3,83,66,2018-12-22 21:52:13,2018-12-24 18:41:25,2018-11-11 17:31:47,2018-06-27 14:34:11
-289,Barbie,Grishmanov,184-949-4040,Female,7,93,68,2018-08-14 21:25:04,2018-08-26 18:27:48,2018-04-28 10:50:33,2018-08-06 14:12:21
-290,Anderson,Freeland,842-434-1249,Male,6,22,71,2019-01-05 09:24:32,2018-06-13 07:19:06,2018-04-24 22:20:16,2018-05-31 21:18:59
-291,Olympie,Prantl,988-864-1736,Female,1,39,40,2018-04-06 05:52:26,2018-03-10 03:20:54,2018-02-06 16:53:55,2018-09-03 16:18:27
-292,Amos,Lanyon,552-486-3382,Male,1,17,35,2018-07-03 20:26:09,2018-11-16 06:37:27,2018-08-16 14:36:30,2018-04-07 19:59:08
-293,Gabby,Stockau,753-586-0632,Male,5,19,14,2018-12-10 13:52:07,2018-03-20 20:50:50,2018-04-11 20:54:39,2018-11-13 17:11:21
-294,Uta,Joan,660-241-5130,Female,7,67,41,2018-04-21 18:11:39,2018-07-12 17:47:45,2018-05-20 14:57:17,2018-09-19 10:15:02
-295,Elnar,Manjot,691-939-7359,Male,5,18,86,2018-11-24 20:27:24,2018-04-29 05:45:30,2018-09-06 04:15:04,2018-05-31 17:11:55
-296,Avram,Cowins,471-336-0418,Male,1,18,23,2018-10-07 19:35:52,2018-07-24 19:33:54,2018-05-09 12:43:10,2018-10-08 09:08:37
-297,Kyla,Fines,380-936-0659,Female,7,16,6,2018-12-04 05:02:51,2018-06-13 12:25:14,2018-05-15 10:17:43,2018-07-24 13:06:26
-298,Tymothy,Trevillion,740-586-6434,Male,4,99,5,2018-11-29 03:58:39,2018-07-10 01:02:27,2018-07-05 11:15:40,2018-07-17 11:17:00
-299,Rafaelita,Stiven,313-253-8470,Female,7,94,91,2018-05-11 22:09:50,2018-12-04 03:23:26,2018-06-04 22:13:06,2018-08-02 01:03:16
-300,Stanwood,Bracci,757-577-7619,Male,3,79,15,2018-06-02 08:42:52,2018-05-01 23:25:28,2018-10-27 06:54:40,2019-01-03 19:33:39
-301,Heddie,Pegden,750-484-0458,Female,3,85,74,2018-02-15 15:15:50,2018-08-13 10:31:12,2018-10-22 05:36:44,2018-07-27 21:33:04
-302,Letty,Ipplett,534-461-3389,Female,2,24,58,2018-12-30 15:03:42,2018-12-25 22:41:39,2018-08-06 08:13:19,2018-06-13 08:22:24
-303,Clarke,Buckberry,261-218-0110,Male,4,39,35,2018-11-25 02:26:48,2018-10-01 22:53:26,2019-01-01 07:32:49,2018-06-23 02:36:18
-304,Valina,Bouskill,292-930-7629,Female,2,63,32,2018-03-13 00:24:33,2018-12-08 10:39:51,2019-01-06 10:27:01,2018-07-13 00:19:13
-305,Jeth,Mosedall,326-529-0770,Male,7,44,30,2019-01-17 17:26:19,2018-03-23 23:40:12,2018-12-16 02:11:33,2018-09-08 07:21:24
-306,Mano,Komorowski,467-693-9454,Male,5,63,33,2018-12-05 21:37:13,2018-05-15 16:54:39,2018-11-21 08:06:01,2018-12-25 19:18:03
-307,Libby,Worters,651-420-4117,Female,6,62,73,2018-11-16 15:37:33,2018-04-10 08:47:08,2018-09-25 07:08:44,2018-12-20 18:11:17
-308,Ginnie,Dunnion,884-641-9401,Female,4,15,91,2018-02-25 04:25:07,2018-06-11 12:12:35,2018-12-20 05:03:34,2018-05-12 15:41:13
-309,Addi,Butterfill,454-471-6991,Female,6,45,37,2019-01-14 00:57:24,2018-10-22 12:37:53,2018-11-12 17:11:49,2018-04-13 08:39:20
-310,Eustace,Calway,260-583-1874,Male,3,98,96,2018-12-08 14:19:50,2018-03-09 04:33:52,2018-08-03 22:32:38,2018-12-17 16:12:12
-311,Greta,Tailour,864-452-3785,Female,5,63,78,2018-05-09 23:36:15,2018-09-16 21:21:51,2018-06-17 03:49:40,2018-06-25 12:40:03
-312,Nance,Ruston,102-299-0194,Female,4,66,33,2018-04-19 13:30:14,2018-08-22 20:55:14,2018-03-02 20:03:46,2018-03-23 09:40:10
-313,Harriette,Dicty,498-183-6908,Female,7,1,13,2018-12-31 04:35:08,2018-08-13 12:05:13,2018-04-30 22:42:00,2018-12-03 13:23:45
-314,Merrielle,Mapes,918-608-0262,Female,5,47,45,2018-12-16 07:21:41,2018-10-27 21:05:00,2018-03-23 14:05:12,2018-08-02 11:02:53
-315,Gris,Scurrell,392-726-5529,Male,4,71,95,2018-02-23 03:36:40,2018-04-09 20:52:39,2018-03-07 02:56:27,2018-10-22 11:26:37
-316,Novelia,Newdick,262-887-9640,Female,3,20,97,2018-05-18 12:00:02,2018-02-04 08:00:28,2018-01-28 09:59:37,2018-07-06 05:53:32
-317,Sean,Breton,304-133-1524,Male,4,91,49,2018-07-09 23:07:45,2018-10-27 06:20:49,2018-08-22 21:03:24,2018-06-13 05:33:30
-318,Winston,Springham,259-758-2788,Male,6,86,20,2018-03-20 19:07:57,2018-03-17 14:55:01,2018-08-05 20:39:20,2018-02-11 22:19:58
-319,Clemmie,Saywood,341-505-9072,Male,4,61,30,2018-06-08 02:47:28,2018-07-03 05:59:45,2018-10-28 00:28:02,2018-04-07 23:20:59
-320,Robinia,Vida,537-434-4616,Female,6,19,32,2018-05-03 10:52:24,2018-10-12 00:17:12,2018-11-27 23:47:32,2018-12-17 00:24:59
-321,Findley,Melanaphy,423-892-4436,Male,1,100,31,2018-02-04 19:41:01,2018-08-17 10:08:47,2018-11-04 14:37:46,2018-07-01 11:45:21
-322,Brooks,O'Keenan,840-842-8591,Female,4,82,84,2018-08-21 21:40:21,2018-08-31 04:07:15,2018-02-01 02:25:03,2018-12-09 10:50:21
-323,Caz,Leaf,797-315-7239,Male,6,75,22,2018-10-17 18:51:00,2018-11-22 19:03:52,2018-02-15 06:48:13,2018-04-19 22:25:23
-324,Ad,Harvey,336-617-2629,Male,4,46,5,2018-07-01 18:17:34,2018-05-24 05:31:23,2018-04-05 21:04:43,2018-07-21 06:50:26
-325,Berrie,Robardley,671-363-7428,Female,2,46,55,2018-05-14 01:56:01,2018-09-20 02:21:44,2019-01-14 15:24:34,2018-05-14 15:49:53
-326,Corliss,Halwell,154-276-2412,Female,3,63,16,2018-12-21 10:15:57,2018-11-26 00:14:11,2018-10-24 18:09:31,2018-05-27 11:41:11
-327,Carlina,Laird,357-488-1031,Female,5,59,27,2018-10-24 22:33:19,2018-10-23 00:27:39,2018-10-26 13:59:23,2018-07-19 02:41:32
-328,Rivalee,Bartolomucci,299-435-2483,Female,2,86,75,2018-06-02 23:51:58,2018-10-18 07:08:38,2019-01-11 07:36:58,2018-06-06 22:53:26
-329,Eleen,Girardy,254-561-4781,Female,6,99,58,2018-08-12 03:49:21,2019-01-04 17:17:54,2018-07-07 17:22:19,2018-02-08 00:26:15
-330,Junina,Scarisbrick,668-657-6435,Female,2,82,52,2018-10-08 01:58:04,2019-01-18 08:27:33,2018-10-13 10:36:18,2018-04-09 10:28:35
-331,Mufi,Insole,497-136-1156,Female,1,3,77,2018-07-01 05:18:23,2018-04-25 06:55:14,2018-12-23 07:35:00,2018-09-14 19:25:46
-332,Burk,Sawday,758-694-5610,Male,1,16,37,2018-05-18 17:42:50,2018-09-01 06:27:12,2018-05-06 06:30:31,2018-11-29 12:15:41
-333,Jess,Gully,330-430-8050,Female,5,2,75,2018-04-21 00:37:44,2018-06-12 02:34:07,2018-05-04 05:50:38,2018-11-25 21:02:42
-334,Dayna,Goublier,395-283-7995,Female,1,3,58,2018-03-10 13:08:34,2018-04-01 05:11:59,2018-07-17 13:31:35,2019-01-02 10:31:32
-335,Shandy,Grzegorczyk,271-236-1931,Female,6,32,34,2018-10-24 18:00:50,2018-03-17 19:11:58,2018-07-13 09:20:10,2018-07-07 03:03:48
-336,Alec,Nunnery,471-774-4412,Male,3,85,94,2018-02-15 09:59:45,2018-01-30 12:50:03,2018-03-01 13:47:47,2018-09-28 11:00:16
-337,Marti,Bedboro,799-912-3939,Female,3,88,26,2018-06-25 11:23:21,2018-10-30 08:43:52,2018-01-29 08:37:23,2018-06-06 00:28:49
-338,Malchy,Kobpac,819-568-9360,Male,4,9,14,2018-02-24 04:10:07,2018-10-05 18:35:23,2018-06-15 18:09:22,2018-11-15 08:05:17
-339,Egan,Dobbinson,366-886-7331,Male,5,43,13,2018-03-14 16:50:59,2018-08-08 23:17:17,2018-05-14 23:29:30,2018-08-19 04:54:16
-340,Maisie,Legg,700-620-6322,Female,7,85,21,2018-08-24 21:35:43,2018-08-30 17:01:27,2018-09-26 01:11:55,2018-12-29 12:04:35
-341,Fidel,Cossum,677-926-2862,Male,3,37,35,2018-07-26 05:42:32,2018-03-10 10:55:00,2018-12-22 17:20:15,2018-12-23 18:00:25
-342,Artemis,Beaton,301-959-5912,Male,7,15,26,2019-01-16 02:54:03,2018-10-28 11:08:44,2018-04-03 17:01:17,2018-04-13 04:28:34
-343,Culver,MacShirrie,126-770-5278,Male,4,28,43,2018-04-18 15:27:55,2018-08-01 10:35:51,2018-03-25 11:19:36,2018-06-01 19:23:11
-344,Jessa,Penreth,684-809-2622,Female,7,59,63,2018-08-04 18:24:37,2018-12-16 20:09:17,2018-04-11 13:14:28,2018-04-22 20:10:29
-345,Nydia,Hefner,535-519-6688,Female,3,70,29,2018-07-22 18:53:43,2018-09-02 00:30:03,2018-10-29 22:17:37,2018-05-07 11:46:24
-346,Ber,Naulty,311-674-2440,Male,6,85,70,2018-09-03 15:50:38,2018-07-04 22:30:51,2018-06-29 11:55:09,2018-05-16 11:27:56
-347,Margit,Greder,417-702-7174,Female,3,35,4,2018-04-28 01:58:34,2018-07-07 16:48:11,2018-10-08 13:45:45,2018-07-30 06:54:10
-348,Haroun,Kleynen,447-297-5270,Male,1,91,87,2018-05-14 13:40:54,2018-02-06 20:20:54,2018-04-24 19:09:01,2018-07-08 15:20:39
-349,Aylmer,Hubner,861-836-0360,Male,7,92,93,2018-02-10 06:55:44,2018-05-09 06:47:11,2018-07-09 15:46:54,2018-06-24 16:38:43
-350,Natty,Clemenzo,127-593-4758,Male,2,26,56,2018-02-01 13:02:29,2018-08-21 13:26:29,2018-12-24 09:27:03,2018-12-03 17:23:39
-351,Adriaens,Galier,704-551-4514,Female,1,64,55,2018-02-20 14:06:58,2018-09-17 22:53:46,2018-06-05 21:13:53,2018-02-25 03:51:27
-352,Raphaela,Higounet,493-470-8620,Female,7,72,86,2018-04-06 23:54:14,2018-11-09 00:01:09,2018-04-16 13:28:28,2018-10-15 09:06:54
-353,Nadia,Cureton,243-413-5780,Female,7,16,92,2018-10-20 06:35:07,2018-04-22 20:08:35,2018-04-07 15:26:39,2018-07-12 20:04:06
-354,Elliot,Bursell,301-524-4971,Male,6,59,44,2018-06-15 18:56:07,2018-03-14 21:30:37,2018-04-10 07:08:26,2018-10-03 23:57:13
-355,Miltie,Credland,318-601-5704,Male,3,5,47,2018-11-14 17:21:39,2018-04-18 22:02:24,2018-05-29 11:29:17,2018-08-28 19:44:37
-356,Andre,Dockray,631-438-3562,Male,2,1,36,2018-10-08 05:05:08,2018-10-07 10:51:00,2018-03-15 03:21:37,2018-08-31 02:22:35
-357,Marty,Vannah,864-526-0455,Male,5,32,9,2018-07-24 00:22:10,2018-08-26 02:40:08,2018-06-27 12:17:04,2018-05-23 03:24:49
-358,Timofei,Paddeley,941-127-2852,Male,4,75,28,2018-06-23 03:54:48,2018-06-16 19:23:26,2018-01-22 23:50:44,2018-09-17 11:00:42
-359,Susie,Bister,717-420-9064,Female,2,35,88,2018-08-09 20:57:50,2018-12-31 14:45:14,2018-04-16 17:44:38,2018-04-22 00:14:47
-360,Salvatore,Saenz,433-114-2254,Male,7,20,65,2018-02-14 15:55:26,2018-10-12 01:07:22,2018-11-29 04:17:51,2018-03-26 04:48:55
-361,Orin,Buttler,311-657-3727,Male,6,34,55,2018-04-05 00:11:44,2018-03-18 20:58:52,2018-09-14 10:40:07,2018-08-10 05:15:21
-362,Darbee,Garnam,956-529-4862,Male,1,75,26,2018-04-10 03:09:44,2018-06-29 01:39:43,2018-08-22 22:42:21,2018-09-15 23:23:04
-363,Lynne,Order,955-214-1203,Female,3,7,62,2018-11-15 23:40:31,2019-01-19 17:41:26,2018-02-14 19:18:25,2018-05-13 10:24:56
-364,Quinn,Hickinbottom,161-623-2666,Female,4,55,12,2018-10-24 13:06:05,2018-05-14 12:29:26,2018-10-03 06:49:08,2018-08-31 05:23:27
-365,Fionnula,Lonsbrough,271-974-9269,Female,2,24,86,2018-11-26 13:04:53,2018-04-30 00:03:02,2018-12-10 17:59:39,2018-11-02 17:56:01
-366,Blinni,Bound,991-243-7726,Female,3,34,55,2018-03-15 03:25:08,2018-07-17 18:13:35,2018-01-22 14:47:57,2018-07-03 10:31:07
-367,Joellyn,Duddin,562-523-2225,Female,3,91,7,2018-03-05 16:54:40,2018-07-11 18:24:57,2018-01-27 22:51:59,2018-06-14 14:18:32
-368,Shawn,McCandie,460-327-7535,Male,7,83,25,2018-03-04 04:08:42,2018-02-27 20:23:00,2018-05-03 04:17:09,2018-05-11 02:19:04
-369,Ferdinande,Beckinsall,555-188-2556,Female,1,23,71,2019-01-09 18:09:00,2018-11-05 21:40:44,2018-04-18 11:39:10,2018-05-26 04:58:28
-370,Dex,Hercock,124-933-7494,Male,4,66,59,2018-12-03 18:59:16,2018-08-24 14:54:44,2018-12-04 06:20:22,2018-02-12 20:16:12
-371,Auguste,Kindread,503-140-7531,Female,1,66,99,2018-09-06 02:28:55,2018-06-16 13:03:23,2018-12-18 05:54:52,2018-06-18 08:33:05
-372,Nicolle,McGarvie,977-633-1344,Female,3,80,30,2018-06-27 01:20:37,2019-01-03 07:13:42,2018-08-14 06:50:08,2018-03-11 19:28:21
-373,Meir,Poxson,979-687-3866,Male,4,95,64,2018-07-09 19:27:35,2018-05-02 06:46:01,2018-03-13 19:59:34,2018-02-14 17:37:01
-374,Aurore,Mathe,855-273-0680,Female,1,35,18,2018-12-25 19:52:38,2018-06-27 16:21:30,2018-09-05 07:24:39,2018-07-07 20:33:00
-375,Tara,Kovacs,289-503-0397,Female,1,96,65,2018-02-01 14:13:00,2018-09-13 12:52:31,2018-12-11 12:17:26,2018-01-27 11:08:31
-376,Oliver,Keitch,295-918-1908,Male,2,2,91,2018-04-25 08:41:36,2018-10-26 12:47:17,2018-09-17 07:21:55,2018-05-05 18:27:42
-377,Terrie,Van der Linde,437-439-0685,Female,5,40,86,2018-06-13 19:39:12,2018-09-27 20:24:10,2018-11-29 11:48:24,2018-08-03 10:38:12
-378,Dickie,Rhymes,812-341-6120,Male,1,20,77,2018-02-19 18:11:07,2018-07-04 05:36:40,2018-11-14 00:59:02,2018-11-24 17:13:06
-379,Lynette,Hadland,438-785-0370,Female,1,49,29,2018-04-01 23:24:07,2018-08-21 14:23:03,2018-05-13 18:28:29,2018-12-12 21:59:32
-380,Blanch,Smythin,325-174-1975,Female,1,13,78,2018-11-04 02:34:45,2018-10-22 10:28:57,2018-09-14 10:12:56,2018-10-23 19:59:00
-381,Camellia,Rickeard,681-592-9848,Female,5,53,4,2018-08-25 10:15:49,2018-04-05 06:53:58,2018-02-17 08:17:38,2018-09-11 01:16:02
-382,Muire,Minto,821-124-3681,Female,2,92,71,2018-10-16 14:05:30,2018-05-21 07:22:46,2018-10-26 09:45:10,2018-09-07 09:40:50
-383,Franz,Goullee,650-849-7354,Male,1,19,86,2018-07-14 09:46:05,2018-02-20 08:15:57,2018-06-05 10:37:07,2018-06-14 13:33:38
-384,Ardath,Salaman,542-596-2751,Female,6,3,76,2018-06-07 05:11:01,2018-09-17 09:28:04,2018-04-10 13:00:45,2018-11-27 21:22:09
-385,Graeme,Balshen,286-335-9657,Male,3,44,17,2018-07-18 15:23:20,2018-03-28 07:57:47,2018-11-12 18:58:13,2018-10-11 13:56:49
-386,Lola,Ainsbury,875-341-9340,Female,5,48,71,2018-03-12 03:05:33,2018-11-01 02:55:54,2018-02-15 04:37:51,2018-05-27 04:11:38
-387,Marchelle,Reynoollds,771-436-6596,Female,3,15,98,2018-07-21 06:24:35,2018-10-15 12:19:29,2018-10-21 17:19:01,2018-12-07 00:08:23
-388,Ruddie,Ginger,639-798-1010,Male,6,53,88,2018-10-27 08:25:56,2018-08-05 15:50:59,2018-05-26 08:38:25,2018-03-12 08:36:31
-389,Kathrine,Guiu,822-798-6112,Female,2,31,32,2018-07-21 23:07:18,2018-04-23 18:22:19,2018-12-14 04:50:14,2018-12-17 05:07:54
-390,Bobbie,Peet,321-618-4507,Male,6,40,10,2018-12-07 06:56:32,2018-05-26 07:54:01,2018-02-12 22:14:19,2018-03-02 09:00:13
-391,Waylon,Brignall,721-399-8864,Male,2,29,55,2018-03-05 23:01:40,2018-02-12 20:24:53,2018-10-03 20:50:03,2018-05-27 20:39:09
-392,Randene,M'Chirrie,274-833-8717,Female,7,5,29,2018-11-09 00:26:39,2018-05-08 06:51:45,2018-10-07 04:03:07,2018-07-11 15:11:59
-393,Venus,Burgise,888-311-2349,Female,5,49,10,2018-01-31 18:35:34,2018-06-11 17:52:44,2019-01-18 10:15:45,2018-01-29 11:19:22
-394,Patton,Atkirk,887-990-8528,Male,3,14,48,2018-09-02 04:16:21,2018-12-07 12:14:18,2018-09-11 02:15:29,2018-05-31 08:26:51
-395,Ethelda,Sclater,557-210-5737,Female,2,98,59,2018-10-08 02:45:35,2018-03-07 11:02:12,2018-03-09 22:30:08,2018-07-15 06:00:38
-396,Kerry,Mascall,178-504-3458,Male,3,83,65,2018-08-12 19:58:08,2018-07-06 21:04:42,2018-07-15 00:45:35,2018-11-11 14:30:45
-397,Kelsey,Bohills,477-245-9384,Female,4,23,40,2018-08-31 00:28:52,2018-04-23 15:33:52,2018-08-22 04:21:43,2018-12-27 08:56:06
-398,Brennen,Ahrendsen,666-924-8234,Male,3,47,82,2018-12-10 22:01:21,2018-11-13 15:03:16,2018-01-21 19:47:47,2018-07-28 11:39:10
-399,Carmelina,Mountcastle,871-952-4482,Female,6,14,79,2018-05-25 02:01:07,2018-05-15 19:52:19,2018-07-16 23:16:38,2018-05-22 23:32:19
-400,Dale,Eltone,663-128-1228,Male,1,80,26,2018-10-13 23:51:08,2018-02-19 19:49:01,2018-01-27 11:58:54,2018-07-02 14:05:44
-401,Brianna,Beauchop,922-667-1003,Female,5,12,12,2018-11-05 20:21:33,2018-06-24 22:17:20,2018-06-12 04:34:37,2018-07-09 06:48:22
-402,Guillema,MacKibbon,164-334-7955,Female,3,6,56,2018-06-24 21:01:56,2018-08-15 08:52:58,2018-07-21 21:42:02,2018-02-26 08:29:48
-403,Ettore,Brailsford,231-820-9624,Male,1,92,34,2019-01-17 05:37:42,2018-06-30 12:14:43,2018-04-11 20:55:10,2018-01-21 17:40:14
-404,Shawn,M'cowis,293-256-5912,Male,7,12,87,2018-02-07 20:27:20,2018-08-07 19:48:03,2019-01-01 18:32:27,2018-08-31 20:41:20
-405,Lolly,Rankcom,743-968-5736,Female,2,17,31,2018-11-03 21:37:26,2018-07-18 08:15:01,2018-12-28 23:22:36,2018-09-04 02:20:01
-406,Jeffry,Dingle,194-835-0524,Male,1,6,58,2018-10-21 16:42:07,2018-06-01 21:41:20,2018-06-17 04:34:34,2018-12-29 19:09:29
-407,Marcelle,Molder,766-356-8780,Female,3,85,45,2018-10-18 11:17:27,2018-10-17 20:18:59,2018-09-05 10:30:56,2018-08-10 06:31:09
-408,Binni,Ferney,214-353-4132,Female,6,6,98,2018-02-20 07:18:40,2018-06-24 11:40:51,2018-12-13 02:29:35,2018-10-04 10:52:07
-409,Pat,Whenham,885-713-4885,Male,7,64,5,2018-10-29 12:39:59,2018-11-08 18:24:31,2018-04-17 11:10:35,2018-10-13 22:45:02
-410,Towney,Mizzi,602-556-2702,Male,7,40,94,2018-03-02 22:07:54,2018-08-30 01:11:53,2018-12-21 22:30:09,2018-04-08 21:36:17
-411,Cecil,Bickerdike,577-476-2260,Male,2,2,65,2018-02-25 13:53:37,2018-02-13 04:10:01,2018-05-27 20:30:46,2018-04-11 01:36:56
-412,Franciskus,Thomlinson,539-919-8711,Male,4,69,14,2018-11-12 12:18:44,2018-02-07 14:40:19,2018-08-23 04:04:48,2018-02-11 00:53:06
-413,Valentino,Machent,281-308-6846,Male,6,76,23,2018-10-04 13:04:01,2018-09-13 11:56:13,2018-06-25 21:50:15,2018-06-03 04:08:35
-414,Evelin,Harpham,287-743-1401,Male,7,1,5,2018-06-15 01:25:03,2018-05-17 06:35:54,2018-10-22 08:02:14,2018-08-25 01:58:06
-415,Cassandre,Crum,685-341-7481,Female,3,25,79,2018-07-29 10:09:33,2018-01-30 23:16:22,2019-01-13 15:40:35,2018-07-14 15:57:17
-416,Loren,Leschelle,321-405-9197,Male,3,26,13,2018-04-29 06:52:46,2018-06-21 13:57:41,2018-07-30 18:39:32,2018-09-01 00:31:38
-417,Ilaire,Plose,336-197-4797,Male,1,53,50,2018-07-01 07:52:56,2018-10-30 02:18:43,2018-08-21 23:46:29,2018-08-07 13:03:11
-418,Hannis,Issacof,315-716-3782,Female,2,99,85,2019-01-19 10:40:46,2018-04-26 10:04:56,2018-11-15 02:42:19,2018-08-21 16:50:00
-419,Meggie,Beeke,556-174-4615,Female,1,13,85,2018-03-05 16:12:22,2018-09-19 22:31:27,2018-12-04 04:01:57,2018-04-14 20:14:40
-420,Clemens,Leades,183-447-0091,Male,7,98,12,2018-06-18 06:17:24,2018-04-10 09:59:20,2018-03-20 22:45:02,2018-05-10 17:11:21
-421,Dennis,Chifney,196-548-2180,Male,7,75,98,2018-12-09 00:19:15,2018-06-16 10:29:26,2018-09-12 03:26:46,2018-10-24 16:42:20
-422,Yuri,Laytham,783-967-4260,Male,7,72,60,2018-01-28 20:33:42,2018-11-10 15:59:58,2018-05-07 10:19:43,2018-03-08 01:03:28
-423,Rosaline,Gibbins,376-974-7633,Female,3,22,56,2018-06-26 01:09:00,2018-10-30 23:51:58,2018-07-31 09:43:54,2018-11-23 12:00:53
-424,Yule,Hadwick,795-430-0875,Male,2,99,87,2018-03-09 17:35:22,2018-07-18 20:38:41,2018-08-29 09:29:40,2018-12-12 13:21:09
-425,Albertine,Bernlin,415-360-6554,Female,2,40,34,2018-05-24 10:27:28,2018-10-31 10:36:51,2018-07-04 15:40:42,2018-05-23 02:22:57
-426,Donnell,Stammler,944-379-5489,Male,4,59,41,2018-06-28 16:01:29,2018-05-18 12:55:36,2018-03-07 06:37:32,2018-03-25 12:44:31
-427,Brant,Athy,987-827-3040,Male,5,52,7,2018-01-24 14:17:54,2018-10-06 04:10:01,2018-02-21 04:02:17,2018-05-27 20:44:43
-428,Rose,Barnaby,789-522-4912,Female,7,31,46,2018-11-30 14:09:29,2018-11-06 16:28:33,2018-12-13 23:06:42,2018-09-12 17:39:14
-429,Valina,Ply,729-373-7904,Female,3,65,27,2018-11-15 05:26:26,2018-11-28 15:21:13,2018-05-01 00:56:08,2018-02-05 07:37:50
-430,Berkley,Ferry,484-341-3250,Male,6,47,48,2018-07-26 11:27:11,2018-03-05 19:23:46,2018-08-05 08:09:19,2018-05-30 08:43:28
-431,Jarred,Cunnington,995-170-5820,Male,4,6,1,2018-07-12 11:36:19,2018-10-19 05:16:25,2018-06-28 12:38:16,2018-10-08 06:52:46
-432,Marys,Audry,449-892-8929,Female,2,25,86,2018-11-21 14:36:19,2018-11-26 13:31:27,2018-03-28 15:22:34,2018-01-28 08:07:21
-433,Coreen,Vinnicombe,267-868-6003,Female,6,64,45,2018-10-19 22:09:21,2018-12-08 23:41:39,2018-08-16 05:46:08,2018-11-18 14:46:52
-434,Spense,Sarfati,945-773-9494,Male,4,6,3,2018-03-18 13:44:54,2018-09-04 10:40:58,2019-01-15 18:23:55,2018-06-07 16:02:39
-435,Chandra,Burgin,130-446-4470,Female,4,95,96,2018-09-27 16:48:00,2018-05-20 20:44:56,2018-11-23 04:46:53,2018-01-31 16:31:14
-436,Tomas,Currin,756-279-5643,Male,4,41,4,2018-11-18 07:22:02,2018-11-14 14:03:44,2018-09-18 12:36:39,2018-06-05 09:28:43
-437,Conway,Wesson,754-769-3550,Male,1,52,46,2019-01-02 08:07:04,2018-02-14 00:52:12,2018-02-11 10:52:29,2018-02-16 15:31:25
-438,Stefa,Meese,610-105-6841,Female,7,39,28,2018-04-28 02:21:35,2018-10-21 01:33:19,2018-11-23 21:00:01,2019-01-10 08:36:35
-439,Theadora,Ubee,609-368-9924,Female,6,42,5,2018-04-22 17:02:17,2018-08-21 16:33:25,2018-08-25 04:12:23,2018-02-16 01:13:06
-440,Virginia,Flawn,711-955-7169,Female,3,20,19,2018-08-16 18:01:55,2018-04-18 10:08:19,2018-01-27 09:38:48,2018-05-29 02:29:24
-441,Marv,Mummery,820-192-1452,Male,5,75,95,2018-05-29 15:29:25,2018-03-19 14:00:54,2018-01-22 01:15:38,2018-08-17 08:36:00
-442,Fulton,Zelake,283-584-1765,Male,7,4,3,2019-01-13 23:55:52,2018-08-19 22:29:51,2018-04-16 02:28:54,2018-03-16 16:58:02
-443,Guillemette,Ferretti,776-408-8649,Female,3,24,79,2018-07-31 04:43:48,2018-08-04 15:42:51,2018-04-11 16:00:11,2019-01-07 22:56:20
-444,Egbert,Dureden,698-387-7895,Male,7,54,6,2018-02-25 13:06:41,2018-01-28 14:50:49,2019-01-01 05:38:28,2018-06-19 00:46:05
-445,Trumaine,Canniffe,563-399-5639,Male,1,79,93,2018-11-08 00:30:08,2018-04-07 04:15:13,2018-03-30 14:48:19,2018-04-10 23:29:00
-446,Burr,Goves,451-577-7757,Male,1,27,72,2018-03-16 22:57:50,2018-02-04 21:42:45,2018-06-27 04:37:53,2019-01-16 15:20:56
-447,Juditha,Luebbert,958-685-2937,Female,4,36,87,2018-08-30 23:36:55,2018-06-22 07:04:37,2018-08-23 08:03:08,2018-03-28 04:50:57
-448,Lilly,Smewings,246-392-5467,Female,7,61,65,2018-06-02 21:56:15,2018-09-21 22:08:51,2018-11-29 20:26:34,2018-09-09 13:36:55
-449,Beckie,Curd,239-783-9576,Female,2,18,69,2018-11-20 04:10:54,2018-07-09 08:10:52,2018-03-19 21:04:09,2018-06-19 12:09:53
-450,Cristie,Edmonds,203-875-9153,Female,6,75,68,2018-11-16 10:01:12,2018-08-05 10:10:51,2019-01-11 05:06:49,2018-02-27 23:12:37
-451,Richmound,Machans,259-901-3247,Male,6,7,81,2019-01-12 15:06:01,2018-08-04 16:50:11,2018-12-30 16:16:18,2018-04-24 01:22:55
-452,Murial,Heiss,686-151-1653,Female,6,62,44,2018-05-18 13:49:57,2018-07-31 04:58:55,2018-02-26 22:38:19,2018-06-03 12:20:39
-453,Leonhard,O'Hear,205-401-7116,Male,5,3,1,2018-12-01 20:43:01,2018-06-19 12:45:05,2018-06-17 21:31:22,2018-12-29 20:41:28
-454,Kin,Yakovlev,952-369-5846,Male,1,39,38,2018-03-05 07:22:54,2018-06-20 14:24:43,2018-12-24 17:56:41,2018-07-13 07:55:25
-455,Debee,Fransinelli,230-272-0203,Female,3,64,60,2018-03-28 12:01:56,2018-09-10 13:03:46,2018-05-10 07:50:05,2018-08-10 09:35:31
-456,Nappie,Seaton,809-725-5784,Male,1,67,52,2018-09-13 00:18:51,2018-07-10 10:46:33,2018-04-19 00:56:44,2018-06-17 12:12:31
-457,Adelheid,Wanjek,795-641-9749,Female,1,21,97,2018-03-09 22:00:35,2018-08-09 22:29:44,2018-05-22 14:09:09,2018-03-19 18:49:28
-458,Jeannette,Glanville,377-671-9024,Female,7,84,44,2018-10-05 10:17:32,2018-04-06 12:22:12,2018-05-10 03:19:20,2018-09-30 04:25:01
-459,Adrianna,Blezard,773-598-7742,Female,6,89,62,2018-04-25 21:46:25,2018-05-26 05:44:50,2018-07-14 12:21:26,2018-09-28 10:26:06
-460,Gloria,Keelin,120-823-7944,Female,4,9,68,2018-07-13 21:08:25,2018-03-14 15:55:09,2018-04-02 02:08:40,2019-01-09 11:56:17
-461,Becki,Gatling,845-125-4361,Female,4,1,71,2018-06-24 20:47:16,2018-08-28 04:29:09,2018-05-06 23:04:29,2018-06-01 05:37:42
-462,Gabriellia,Lobley,844-697-7445,Female,2,89,99,2018-09-15 13:57:53,2018-06-14 14:04:36,2018-12-09 22:49:10,2018-02-12 02:07:35
-463,Aaren,McVie,973-286-0455,Female,4,67,14,2018-10-24 23:51:19,2018-04-28 04:48:26,2018-08-01 00:36:09,2018-07-03 13:36:32
-464,Barbara,Luddy,270-772-2682,Female,6,31,58,2018-03-18 11:34:08,2018-11-10 07:14:55,2018-12-12 21:20:10,2018-08-31 00:15:05
-465,Ibrahim,Went,494-197-0863,Male,3,35,42,2018-10-27 09:01:43,2018-05-24 01:03:27,2018-11-12 00:22:15,2018-03-28 09:23:37
-466,Sherry,Meert,142-492-1426,Female,7,30,41,2018-09-05 17:22:28,2019-01-11 02:43:23,2018-08-24 21:28:14,2018-03-23 18:02:50
-467,Marietta,Caulwell,931-150-2069,Male,5,5,93,2018-10-20 06:55:32,2018-08-24 12:59:12,2018-02-05 08:19:35,2018-01-23 22:03:22
-468,Kaiser,Gossage,250-466-8664,Male,6,23,93,2018-08-30 13:38:00,2018-10-27 22:45:24,2018-06-20 08:32:02,2018-01-25 09:32:34
-469,Margie,Fenelon,570-190-5079,Female,7,83,33,2018-12-11 01:27:54,2018-02-18 13:46:59,2018-09-23 21:24:36,2018-09-12 19:05:02
-470,Alvin,Stallan,451-964-7576,Male,6,25,97,2018-10-10 09:53:05,2018-05-12 18:37:24,2018-04-16 18:11:41,2018-12-06 13:37:08
-471,Corbin,Lamport,950-956-7283,Male,2,80,15,2018-10-08 17:14:14,2018-12-03 17:06:55,2018-08-04 22:29:17,2018-12-03 12:04:13
-472,Imelda,Crat,346-373-3643,Female,3,60,21,2018-01-25 18:42:27,2018-02-02 11:29:22,2018-05-12 06:06:53,2018-05-24 14:31:31
-473,Kala,Aikenhead,665-137-0705,Female,3,5,83,2018-03-11 01:11:04,2019-01-18 14:28:39,2018-04-20 06:28:31,2018-06-21 01:18:27
-474,Bastien,Lavell,325-523-0512,Male,7,87,91,2019-01-14 08:13:00,2018-06-08 18:23:51,2018-12-02 08:49:53,2018-12-06 00:24:41
-475,Muriel,Cannon,174-249-0377,Female,7,11,49,2018-06-09 02:06:14,2018-05-19 03:47:34,2018-02-15 07:14:49,2018-03-19 22:10:50
-476,Duane,Presland,616-278-2852,Male,6,49,20,2018-02-10 17:43:55,2018-02-21 00:21:21,2018-10-01 16:17:22,2018-04-06 08:15:06
-477,Emmerich,Baildon,408-829-6965,Male,1,13,29,2018-11-08 20:46:52,2018-07-04 14:45:10,2018-05-22 03:30:35,2018-07-26 23:46:21
-478,El,Seabourne,745-257-4885,Male,6,13,60,2019-01-05 01:40:08,2019-01-07 01:30:58,2018-08-24 00:13:56,2018-08-20 02:39:03
-479,Rivalee,Robertsson,882-741-1264,Female,3,36,70,2018-10-07 07:27:41,2018-05-13 11:32:58,2018-12-07 16:22:21,2018-12-12 19:59:38
-480,Alexis,Lapping,852-596-1033,Female,1,48,44,2018-01-30 22:17:04,2018-08-30 00:34:37,2018-11-04 00:05:38,2018-12-11 02:01:32
-481,Francine,Slatcher,134-351-4974,Female,1,56,91,2018-12-25 00:49:27,2018-10-11 02:42:45,2018-10-09 12:40:08,2018-09-01 13:26:34
-482,Kristen,Petters,440-151-8788,Female,7,19,49,2018-02-17 01:34:14,2018-10-28 03:18:55,2018-09-13 14:14:48,2018-01-22 12:26:05
-483,Riobard,Helin,217-648-4050,Male,6,3,62,2019-01-08 20:13:28,2018-07-10 21:50:12,2018-02-14 10:54:30,2018-07-10 15:21:36
-484,Jere,Marrison,125-522-1752,Male,5,77,48,2018-03-27 12:35:57,2018-08-11 12:06:00,2018-07-10 09:48:33,2018-11-12 18:44:01
-485,Sheila,Edens,296-894-3200,Female,3,99,67,2018-09-02 05:54:01,2018-03-13 04:55:49,2019-01-07 04:42:32,2018-12-12 03:46:51
-486,Georgy,Sallings,860-751-2558,Male,5,42,98,2018-03-04 09:36:14,2018-12-18 03:43:57,2018-05-26 16:22:04,2018-09-02 12:56:41
-487,Marcellina,Ledgister,286-469-6281,Female,6,17,35,2018-07-04 19:56:40,2018-04-13 18:15:53,2018-06-22 16:02:20,2018-02-12 13:24:14
-488,Terra,Dodamead,913-630-9923,Female,1,82,1,2018-12-11 19:54:27,2018-12-11 20:39:38,2018-03-28 15:51:45,2018-08-25 04:08:21
-489,Alia,Morrel,431-923-1395,Female,7,7,38,2018-05-24 06:33:39,2018-03-16 20:23:58,2018-09-11 05:45:02,2018-02-10 15:26:52
-490,Henri,Cullivan,513-315-1874,Male,2,7,65,2018-02-21 12:36:28,2018-02-28 14:01:27,2018-11-04 00:27:37,2018-06-18 18:54:48
-491,Josie,Langrish,674-305-6918,Female,2,79,72,2018-07-26 02:09:25,2018-12-03 14:04:40,2018-10-18 18:24:47,2018-09-01 09:38:00
-492,Brittany,Redwall,197-871-1265,Female,2,98,39,2019-01-15 16:02:18,2018-07-28 14:31:51,2019-01-05 12:31:54,2018-02-17 02:21:53
-493,Phillie,Caulket,276-222-0475,Female,2,92,27,2018-10-19 10:58:15,2018-10-01 05:23:18,2018-10-31 20:41:31,2018-01-23 21:09:13
-494,Clair,Ring,789-696-3129,Female,1,60,89,2018-12-15 04:12:43,2018-03-14 18:18:51,2018-02-01 04:15:54,2018-05-24 23:34:59
-495,Allis,Sunner,601-505-2836,Female,3,37,9,2018-03-16 18:20:34,2018-10-03 23:52:03,2018-09-09 20:19:13,2018-09-12 13:27:03
-496,Madeleine,Haitlie,956-801-4088,Female,4,55,99,2018-05-23 09:24:40,2018-09-25 14:13:54,2018-12-07 06:01:21,2018-08-05 05:36:15
-497,Cirillo,Gronav,571-141-3522,Male,5,81,10,2018-10-11 20:52:40,2018-02-21 03:11:05,2018-09-16 08:35:42,2018-03-26 20:16:43
-498,Arturo,Cowitz,923-926-3273,Male,3,93,12,2018-11-22 05:37:54,2018-02-17 15:11:34,2018-03-31 00:15:46,2018-08-03 14:49:13
-499,Haley,Cartmill,139-891-8155,Female,2,79,56,2018-10-28 03:24:17,2018-09-26 03:42:15,2018-09-16 20:27:43,2018-10-21 06:51:02
-500,Caddric,Eim,386-491-4555,Male,4,88,81,2018-07-27 07:41:11,2018-11-06 13:25:15,2018-04-30 01:01:46,2018-10-27 13:14:40
-501,Sargent,Beart,958-909-4690,Male,1,44,9,2018-07-18 12:02:07,2018-07-23 05:06:07,2018-07-16 15:25:53,2018-08-26 13:12:34
-502,Dane,Gason,502-241-7120,Male,6,79,58,2018-11-17 04:47:55,2018-07-17 16:19:37,2018-12-02 13:39:55,2018-08-07 15:28:47
-503,Humfried,Canelas,275-518-1730,Male,3,82,87,2018-02-02 11:38:29,2018-10-18 04:09:03,2018-02-04 00:47:16,2018-07-23 00:37:30
-504,Sam,Freiberg,757-773-6048,Female,5,89,31,2018-12-01 22:51:12,2018-06-29 03:50:29,2018-07-25 14:13:37,2018-06-11 22:59:09
-505,Goddart,Crossgrove,820-183-6322,Male,3,41,25,2018-11-22 23:25:36,2018-01-29 08:12:28,2018-09-24 21:36:56,2018-03-04 00:40:37
-506,Joela,Bondesen,856-474-9498,Female,5,71,97,2018-05-08 08:23:42,2018-12-20 17:54:27,2018-08-13 11:11:11,2018-08-06 19:06:58
-507,Harrie,Nendick,943-670-9341,Female,3,66,6,2018-05-03 20:18:57,2018-11-06 16:35:09,2018-07-18 17:01:56,2018-03-29 06:23:00
-508,Farlay,Manderson,834-991-0018,Male,4,44,9,2018-08-16 12:51:08,2018-09-19 19:35:31,2018-09-28 07:49:16,2018-11-26 04:15:32
-509,Warren,Pegram,815-768-9711,Male,1,2,70,2018-11-03 16:08:12,2018-09-27 19:07:58,2018-02-15 09:57:42,2018-02-04 05:33:01
-510,Mylo,Haskayne,624-512-7407,Male,3,71,28,2018-11-05 07:00:48,2018-08-22 23:42:06,2018-10-13 09:30:14,2018-12-17 14:14:01
-511,Giacomo,Halsho,976-203-6826,Male,2,59,100,2018-04-11 12:30:03,2018-05-06 11:36:27,2019-01-03 21:44:26,2018-06-13 06:17:36
-512,Aloysia,Stuchburie,466-684-9228,Female,7,15,94,2018-05-05 20:22:16,2018-05-06 16:01:54,2018-11-13 03:57:27,2018-08-05 07:41:19
-513,Brit,Glentz,283-639-7723,Male,4,5,19,2018-04-07 12:25:00,2018-09-26 07:12:01,2018-06-05 14:15:20,2018-06-02 16:59:25
-514,Maddi,Kerfoot,543-438-1531,Female,3,16,67,2018-06-30 07:58:22,2018-12-16 23:14:43,2019-01-03 10:51:10,2018-09-10 17:15:42
-515,Ruy,Townson,801-852-6590,Male,1,31,55,2018-02-22 06:06:31,2019-01-20 20:38:59,2018-09-28 17:23:51,2018-09-30 05:48:30
-516,Rawley,Tatum,634-340-1379,Male,5,32,35,2018-02-14 04:43:24,2018-06-30 10:54:44,2018-11-22 11:23:10,2018-03-01 16:10:00
-517,Teddy,Pickford,404-551-3889,Male,2,82,54,2018-12-29 05:25:46,2018-04-13 05:46:18,2018-10-11 18:14:38,2018-11-07 08:35:59
-518,Randolph,Stealfox,750-802-5940,Male,3,91,11,2018-04-03 20:00:54,2018-11-29 19:15:41,2018-02-20 09:38:24,2018-03-25 15:38:52
-519,Filmer,Sumption,833-713-4339,Male,2,2,8,2018-01-26 04:26:32,2018-03-08 20:23:21,2018-07-27 10:41:05,2018-11-04 20:18:36
-520,Barbee,Salvador,475-228-6268,Female,1,13,71,2018-10-24 00:02:01,2018-01-21 21:29:45,2018-07-03 13:31:36,2019-01-07 14:59:36
-521,Valina,Spillett,588-767-5376,Female,5,27,8,2018-03-03 01:39:51,2018-01-28 01:22:11,2018-04-22 03:30:25,2018-03-08 04:45:22
-522,Taber,Faunt,428-608-8317,Male,5,46,93,2018-06-09 11:17:55,2018-09-01 01:34:32,2018-02-19 13:01:55,2018-08-15 06:00:48
-523,Lilas,Siemons,680-968-7597,Female,6,31,25,2018-11-26 22:08:43,2018-02-15 23:08:21,2018-12-26 05:40:57,2018-02-22 02:08:43
-524,Spence,Vosper,720-164-0499,Male,2,37,73,2018-01-31 08:38:29,2018-07-08 11:20:30,2018-10-31 09:36:46,2018-08-26 13:46:48
-525,Robinett,Le Breton De La Vieuville,690-247-8261,Female,6,47,79,2018-04-02 23:29:51,2018-04-26 14:43:49,2018-09-29 04:02:35,2018-02-22 14:19:00
-526,Pia,Favell,689-639-0553,Female,5,96,86,2018-09-27 09:10:13,2018-02-18 08:18:56,2018-09-16 10:20:42,2018-09-19 19:46:37
-527,Jody,Persich,875-503-4255,Female,5,1,63,2018-12-28 04:07:08,2018-02-19 06:37:40,2018-11-08 19:30:56,2018-04-16 19:36:13
-528,Mimi,Meach,664-906-5485,Female,3,46,59,2018-05-16 02:36:27,2018-02-06 06:52:54,2018-03-16 20:22:46,2018-12-24 10:29:20
-529,Nyssa,Hillborne,493-931-8360,Female,6,70,73,2018-12-08 00:07:34,2018-01-31 21:28:10,2018-04-14 12:33:22,2018-12-18 17:12:16
-530,Chrissie,Jagger,284-506-7117,Male,7,89,53,2018-03-21 21:11:02,2018-09-10 16:42:15,2019-01-17 21:11:31,2018-10-26 07:01:07
-531,Jacqueline,Hebblewhite,313-329-3935,Female,6,70,40,2018-07-29 17:39:44,2018-08-26 14:11:15,2018-12-18 12:39:49,2018-09-04 11:21:47
-532,Gunilla,Frarey,231-521-7913,Female,7,3,44,2018-03-05 06:12:04,2018-06-21 16:09:41,2018-01-27 13:30:18,2018-02-28 16:14:26
-533,Eleni,Fassum,149-906-0502,Female,1,40,27,2018-11-17 06:56:45,2018-06-22 05:04:09,2018-05-07 22:21:42,2018-12-21 21:39:19
-534,Kerr,Kelshaw,729-673-6161,Male,6,94,93,2018-11-23 00:31:03,2018-12-09 03:46:43,2018-02-22 16:54:17,2018-09-09 11:05:13
-535,Lisha,Curgenven,874-739-3351,Female,4,97,18,2018-02-20 18:11:36,2018-10-17 06:38:52,2018-12-26 02:40:15,2018-02-13 09:24:09
-536,Bevin,Jakeman,676-751-7045,Male,1,87,71,2018-02-20 13:08:18,2018-11-21 06:36:13,2018-09-22 09:22:49,2018-10-09 06:21:12
-537,Harland,Sidney,139-828-9659,Male,6,23,85,2018-09-18 02:15:28,2018-04-10 06:49:54,2018-12-05 20:08:51,2018-08-05 09:53:26
-538,Rori,Seys,180-907-6460,Female,5,27,23,2018-02-22 03:55:23,2018-08-01 08:40:28,2018-05-15 12:42:51,2018-10-22 00:24:22
-539,Baxy,Marjanski,580-759-7206,Male,4,95,30,2018-09-01 14:33:22,2018-12-14 23:01:00,2018-12-02 00:20:18,2018-08-25 13:54:47
-540,Martie,Dearsley,102-718-1278,Male,7,89,15,2018-03-15 10:57:25,2018-03-03 03:48:25,2018-07-12 03:48:36,2018-07-22 13:18:47
-541,Erin,Ruddick,969-222-3994,Male,1,97,56,2018-05-18 05:27:05,2018-02-23 12:22:10,2018-04-13 08:34:06,2018-11-25 15:51:09
-542,Tome,Lorne,842-424-5954,Male,4,58,76,2018-12-11 13:20:20,2018-07-29 14:26:59,2018-08-12 08:27:28,2018-04-03 13:46:52
-543,Nell,Borkin,228-448-5895,Female,1,3,1,2018-11-30 16:38:15,2018-07-27 09:33:59,2018-08-23 02:00:10,2018-09-28 00:28:48
-544,Teirtza,Springthorp,538-731-0003,Female,4,8,3,2018-03-28 08:52:40,2018-11-03 18:14:45,2019-01-02 06:05:23,2018-03-22 22:01:00
-545,Arlina,Feighney,977-853-6783,Female,1,18,40,2018-02-08 21:04:46,2018-03-02 23:43:32,2018-03-05 13:33:15,2018-05-12 17:12:38
-546,Melosa,Gifford,804-769-4197,Female,7,55,98,2018-02-04 08:50:49,2018-10-10 06:22:51,2018-06-01 01:45:08,2018-12-24 03:31:15
-547,Charin,Petrello,597-441-0171,Female,6,67,18,2018-09-10 08:11:34,2018-03-15 18:44:45,2018-10-22 23:24:05,2018-07-31 01:37:48
-548,Cristian,Stute,223-959-7392,Male,2,5,69,2018-11-01 17:37:10,2018-05-25 14:21:07,2018-10-09 08:14:38,2018-06-29 13:27:34
-549,Velvet,Morison,848-981-1316,Female,1,20,17,2018-02-14 02:16:51,2018-08-25 23:57:58,2018-04-20 10:47:18,2018-04-04 19:16:45
-550,Vivienne,Taillard,392-626-2926,Female,2,38,47,2019-01-20 11:03:04,2018-06-11 20:42:47,2018-05-13 17:10:39,2018-06-02 20:11:46
-551,Zach,Vials,406-733-0058,Male,1,28,88,2018-12-14 14:36:03,2018-02-25 21:52:58,2018-10-17 02:37:28,2018-02-05 17:26:59
-552,Christie,De Caville,268-836-0470,Male,6,28,91,2018-11-26 14:01:43,2018-06-27 22:05:24,2018-11-10 16:11:15,2018-07-20 12:01:34
-553,Dulce,Walesby,578-217-3628,Female,6,83,40,2018-04-12 08:24:30,2018-10-07 09:32:47,2018-04-10 12:21:16,2018-06-04 11:56:13
-554,Shermy,Martinek,627-924-0370,Male,1,54,86,2018-09-02 00:41:57,2018-09-16 02:42:47,2018-05-10 03:54:12,2018-11-14 17:54:47
-555,Curcio,Cudworth,355-447-1790,Male,2,43,26,2018-05-31 02:31:23,2018-11-18 23:47:19,2018-02-26 10:49:12,2018-08-22 04:36:14
-556,Newton,Zuan,810-756-5844,Male,5,85,20,2018-03-09 16:07:56,2018-10-12 16:45:42,2018-05-02 19:27:29,2018-04-21 12:37:09
-557,Gina,Keyho,566-476-0815,Female,4,8,83,2018-09-21 17:12:16,2018-03-20 10:13:51,2018-05-22 10:29:45,2018-09-23 17:23:36
-558,Emmanuel,Beacham,923-766-7627,Male,4,15,10,2018-10-14 04:16:42,2018-12-12 21:49:16,2018-04-06 14:49:00,2018-02-10 06:29:37
-559,Mel,Deniseau,577-125-8484,Female,3,12,6,2018-06-01 18:43:13,2018-11-09 14:24:38,2018-07-01 23:11:43,2018-11-24 10:28:42
-560,Deena,Knutton,544-886-5072,Female,2,98,57,2018-02-11 05:11:20,2018-08-19 14:06:35,2018-09-06 12:12:59,2018-10-07 13:53:21
-561,Flossy,Antonacci,108-542-7284,Female,2,20,36,2018-05-20 08:28:31,2018-04-01 14:07:20,2018-07-23 02:08:55,2018-08-29 00:40:11
-562,Gabriela,Gravy,565-992-0341,Female,3,54,70,2018-03-14 07:29:51,2018-11-24 05:40:57,2018-06-24 11:53:15,2018-12-13 15:23:43
-563,Emelen,Healey,821-210-6931,Male,7,16,79,2018-03-02 11:53:31,2018-07-04 07:43:45,2018-08-20 22:28:53,2018-08-20 07:13:10
-564,Anne-marie,Peatman,431-777-2495,Female,4,38,1,2018-02-28 18:38:14,2018-08-28 18:58:41,2018-09-01 22:16:42,2018-11-14 23:08:02
-565,Raymond,Truelock,671-694-3305,Male,5,20,76,2018-11-19 18:58:41,2018-10-26 03:22:35,2018-10-13 10:05:37,2018-10-20 00:19:39
-566,Gabriel,Matlock,704-620-9706,Female,1,29,24,2018-07-24 15:56:02,2018-12-23 10:03:48,2018-07-13 22:41:53,2018-06-12 13:42:42
-567,Leontine,Kollasch,793-692-0103,Female,4,68,78,2018-05-05 06:54:44,2018-07-26 19:41:30,2018-04-16 00:46:38,2018-11-20 19:18:17
-568,Amelina,Gullick,674-849-6707,Female,2,75,43,2019-01-01 12:18:11,2018-02-18 10:50:33,2018-09-11 05:30:18,2018-12-28 03:43:14
-569,Matthew,Gateley,450-774-0905,Male,5,93,62,2018-02-17 13:01:16,2018-06-17 01:27:48,2018-12-03 19:17:56,2018-08-31 08:39:46
-570,Alvan,Postance,415-301-3970,Male,5,36,24,2018-02-15 12:09:30,2018-07-26 19:38:06,2018-09-23 03:56:41,2018-09-17 12:13:43
-571,Ethelind,Otteridge,724-398-4832,Female,1,11,20,2019-01-09 07:06:55,2018-08-06 11:24:34,2018-02-04 09:08:33,2018-02-04 10:18:38
-572,Allayne,Pettegre,567-912-1393,Male,5,50,24,2019-01-17 18:14:12,2018-03-20 23:30:29,2018-07-08 17:53:55,2018-03-30 22:34:32
-573,Cindee,MacGill,218-267-2220,Female,3,85,36,2018-03-18 06:24:30,2018-08-12 14:08:59,2018-06-07 00:36:38,2018-07-28 18:35:16
-574,Jeramie,Fante,508-403-4318,Male,6,17,58,2018-09-05 21:09:00,2018-07-16 01:34:59,2018-05-30 20:15:51,2018-10-07 09:23:32
-575,Johannah,Treamayne,670-278-1704,Female,1,44,50,2018-09-01 12:25:07,2018-09-04 03:56:02,2018-03-25 08:47:56,2018-06-27 19:44:57
-576,Dari,Brocklesby,128-823-5176,Female,2,21,47,2018-11-06 21:06:13,2018-11-23 13:57:31,2019-01-01 00:06:22,2018-06-23 04:39:41
-577,Cob,Younglove,589-756-5544,Male,1,34,97,2018-06-06 05:48:43,2019-01-01 02:48:52,2018-09-20 02:52:35,2018-06-29 07:02:35
-578,Genevieve,Benois,718-259-0218,Female,1,83,84,2018-12-29 00:38:58,2019-01-17 14:12:58,2018-08-21 12:35:34,2018-07-15 16:50:51
-579,Demetra,Clineck,537-758-1797,Female,7,58,86,2018-04-18 09:28:08,2018-05-18 03:26:25,2018-02-24 07:51:24,2018-12-11 05:21:46
-580,Edithe,MacNeilage,254-201-0040,Female,5,2,46,2018-12-06 12:01:57,2018-02-16 02:10:30,2018-02-23 14:46:58,2018-12-31 17:43:21
-581,Osbourne,Scranny,682-363-4094,Male,3,29,17,2018-05-10 17:26:21,2018-11-02 03:59:01,2018-04-07 16:21:34,2018-07-31 23:17:47
-582,Con,Shyre,535-646-6697,Male,3,96,16,2018-07-14 00:36:39,2018-12-15 03:20:27,2018-07-23 10:48:18,2018-03-18 15:21:58
-583,Sylvester,Cannicott,456-905-3181,Male,1,2,37,2018-12-19 15:40:57,2018-06-18 08:08:39,2018-05-16 20:50:39,2018-10-02 13:56:35
-584,Any,Hayter,822-858-6900,Male,7,52,26,2018-11-06 13:05:00,2018-12-07 12:10:14,2018-12-30 08:34:38,2018-11-29 15:54:05
-585,Hebert,Casaro,238-642-2667,Male,5,86,80,2018-08-01 13:07:27,2018-11-03 12:14:52,2018-07-26 07:25:57,2019-01-19 03:35:48
-586,Lurlene,Feare,839-313-4455,Female,3,59,51,2018-08-26 04:27:58,2018-10-22 00:35:33,2018-06-26 19:50:51,2018-10-10 07:34:07
-587,Benjy,Mulvenna,623-742-2472,Male,3,63,37,2018-12-05 12:16:12,2018-06-01 06:27:24,2018-05-17 11:06:08,2018-11-03 18:34:32
-588,Odey,Burborough,705-824-5381,Male,7,35,7,2018-11-08 11:17:04,2018-10-02 17:39:13,2018-06-12 17:24:31,2018-11-16 00:36:52
-589,Marin,Piddletown,544-353-3265,Female,6,65,12,2018-06-05 02:00:30,2018-04-15 22:13:49,2018-10-25 08:48:07,2018-02-10 21:14:37
-590,Cyrille,holmes,735-579-6221,Male,7,40,75,2018-04-16 22:04:54,2018-04-25 22:55:07,2018-07-02 18:15:05,2018-08-10 21:27:54
-591,Maurice,Rains,484-638-1467,Male,5,73,91,2018-09-29 20:25:42,2018-05-09 00:14:24,2018-10-31 20:25:12,2018-10-07 19:50:59
-592,Caddric,Styant,859-759-9605,Male,6,10,38,2018-06-20 20:21:02,2018-12-09 17:47:12,2019-01-09 04:06:46,2018-07-19 05:01:01
-593,Vittorio,Straffon,643-403-5013,Male,3,46,7,2018-05-21 05:19:11,2018-12-06 16:33:18,2018-07-03 02:13:34,2018-11-03 12:50:20
-594,Filippo,Adamiak,414-171-7965,Male,5,13,70,2018-03-31 10:48:08,2018-07-07 00:41:10,2018-04-29 13:12:05,2018-08-12 07:32:33
-595,Abran,Blanning,940-243-9117,Male,6,88,72,2018-06-16 02:58:35,2018-08-17 14:00:04,2018-12-23 23:58:31,2018-04-15 17:28:52
-596,Ewart,Van Der Weedenburg,712-866-8225,Male,1,35,99,2018-12-03 12:43:02,2018-08-22 00:51:23,2018-06-03 09:07:10,2018-02-26 12:18:48
-597,Charmion,Toffoletto,139-517-9898,Female,2,60,33,2018-11-24 14:11:52,2018-10-26 03:35:48,2018-12-18 20:13:45,2018-09-23 22:05:26
-598,Marcellus,Casserly,253-327-1311,Male,3,41,81,2018-10-18 22:38:49,2018-03-13 20:31:39,2018-07-25 06:23:51,2018-06-05 20:55:02
-599,Bryant,Woonton,888-556-3681,Male,7,81,99,2018-02-28 09:31:55,2018-05-01 06:19:53,2019-01-09 14:08:26,2018-10-29 15:33:42
-600,Annnora,Beswick,518-587-0261,Female,6,56,22,2018-08-12 21:49:43,2019-01-08 19:34:20,2018-02-14 10:14:40,2018-08-01 03:40:27
-601,Donovan,Stenner,407-562-5695,Male,1,80,76,2018-08-31 07:45:11,2018-12-01 06:25:41,2018-02-28 03:57:11,2018-10-17 16:19:27
-602,Northrup,Limprecht,463-752-6075,Male,5,65,42,2018-11-03 02:27:29,2018-05-05 19:23:48,2018-02-18 06:54:36,2018-08-13 18:47:59
-603,Linoel,Havenhand,896-715-3769,Male,7,7,25,2018-05-10 18:45:39,2018-01-27 18:35:14,2018-06-14 18:17:37,2018-03-26 21:54:40
-604,Gerrilee,Morant,914-846-5569,Female,4,45,66,2018-02-17 20:40:10,2018-01-31 19:47:44,2018-10-09 22:28:47,2018-10-27 15:15:40
-605,Giralda,Daine,952-600-0863,Female,4,28,60,2018-06-15 19:09:55,2018-04-30 04:40:26,2018-09-14 06:48:06,2018-02-10 19:05:33
-606,Joela,Rand,808-932-6875,Female,1,27,3,2018-08-16 15:12:40,2018-09-27 15:12:49,2018-05-27 05:51:56,2018-04-13 14:52:35
-607,Obidiah,Beecham,324-361-0116,Male,7,72,18,2018-10-28 13:32:50,2018-06-20 18:58:47,2018-11-02 11:51:44,2018-03-11 23:29:03
-608,Karlik,Witherington,317-493-1871,Male,4,86,11,2019-01-20 03:58:33,2018-07-21 12:26:45,2018-08-23 20:09:48,2018-11-13 10:55:23
-609,Andras,Buttler,645-159-2747,Male,4,66,45,2018-05-19 10:32:36,2018-12-15 13:10:33,2018-01-31 23:04:41,2019-01-04 22:38:54
-610,Kevan,MacCorkell,902-102-9241,Male,5,35,56,2018-02-09 15:51:27,2018-07-17 04:54:50,2018-01-23 13:03:51,2018-07-12 19:59:05
-611,Dena,Welbelove,824-828-1515,Female,7,30,100,2018-03-13 11:53:11,2018-07-30 19:53:24,2019-01-12 19:12:36,2018-10-23 22:10:25
-612,Susette,Spurman,489-770-6265,Female,5,20,53,2018-05-08 12:17:52,2018-06-18 00:15:28,2018-04-14 14:12:49,2018-09-21 10:34:01
-613,Lisabeth,Clarycott,631-189-3198,Female,7,98,3,2018-08-30 00:26:48,2018-03-16 13:08:16,2018-10-12 07:44:50,2018-10-14 13:12:31
-614,Sheryl,Cicchinelli,508-453-8265,Female,6,77,4,2019-01-04 08:57:07,2018-07-27 00:56:42,2018-07-07 09:59:19,2018-08-03 11:54:06
-615,Milly,Harston,959-484-0888,Female,3,13,88,2018-05-02 06:02:08,2018-05-11 09:34:20,2019-01-11 22:42:26,2018-02-06 01:43:05
-616,Avery,Cant,144-536-3636,Male,5,59,83,2018-04-28 04:40:20,2018-02-20 10:21:26,2018-01-23 14:16:23,2018-06-13 17:25:06
-617,Odelle,Hauxley,311-843-6729,Female,2,15,33,2018-06-09 20:51:56,2018-03-22 15:09:29,2019-01-07 22:47:04,2018-10-30 05:38:26
-618,Symon,Dewi,944-566-4724,Male,6,79,26,2018-10-23 03:09:57,2018-04-20 15:52:10,2018-07-23 05:16:26,2018-09-05 13:15:24
-619,Nora,Ingerson,644-377-6341,Female,7,58,74,2018-12-31 01:35:50,2018-03-08 16:01:54,2018-04-02 13:25:27,2018-08-14 07:54:24
-620,Mariam,Ceschelli,722-520-3029,Female,5,65,57,2018-08-17 21:29:16,2018-11-14 18:13:13,2018-11-22 04:05:56,2018-03-25 21:13:21
-621,Guglielma,Fearey,399-683-0328,Female,2,48,46,2018-12-01 22:21:56,2018-05-05 09:53:28,2018-04-01 03:22:30,2018-10-31 05:13:13
-622,Putnem,Glanton,730-351-4499,Male,3,47,40,2018-05-06 05:22:19,2018-08-03 21:56:51,2018-07-27 03:42:36,2018-09-26 03:10:38
-623,Blancha,Penney,585-209-3640,Female,4,92,1,2018-04-24 13:18:47,2018-06-21 21:42:31,2018-03-11 01:50:30,2018-08-17 20:04:54
-624,Zacherie,Manoelli,211-774-0854,Male,7,41,38,2018-09-29 10:25:00,2018-11-03 11:49:35,2018-06-04 21:41:44,2018-10-24 16:29:50
-625,Seymour,Murphey,840-189-1695,Male,7,27,18,2018-11-22 02:51:55,2018-11-13 09:09:33,2018-04-26 15:24:33,2018-06-10 09:01:11
-626,Kiele,Potte,807-707-7776,Female,5,50,79,2018-12-10 09:07:14,2018-02-09 02:17:04,2018-12-02 09:39:41,2018-06-25 03:58:33
-627,Pascale,Keat,699-216-9743,Male,6,20,78,2018-11-23 01:30:15,2018-04-11 09:12:08,2018-03-14 20:14:59,2018-02-13 23:24:16
-628,Krisha,Sails,162-533-7679,Male,5,91,52,2019-01-17 01:56:16,2018-02-15 14:18:56,2018-03-05 23:19:21,2018-02-24 11:00:50
-629,Justen,McFeat,266-387-8084,Male,4,45,19,2018-10-17 20:09:40,2018-12-29 10:26:10,2018-07-21 12:46:49,2018-02-12 09:50:24
-630,Daloris,Adamson,173-669-4723,Female,4,46,42,2018-02-02 14:26:53,2018-08-15 00:31:20,2018-10-28 08:17:42,2018-04-21 16:28:19
-631,Saleem,Cawood,885-138-1413,Male,6,96,11,2018-09-04 09:51:41,2018-06-12 17:37:20,2018-12-09 22:22:56,2018-11-28 01:06:26
-632,Yettie,Glynn,672-547-0019,Female,3,84,66,2018-11-13 23:39:10,2018-07-14 16:14:12,2018-09-21 13:43:43,2018-09-29 15:57:10
-633,Waite,Smalls,320-394-9058,Male,4,2,55,2018-12-17 16:32:29,2018-11-15 01:45:06,2018-03-17 23:34:19,2018-03-06 15:12:35
-634,Tomkin,Adam,674-394-3276,Male,3,5,48,2018-02-07 03:48:38,2018-07-13 14:23:03,2018-06-02 14:48:09,2018-07-13 06:23:14
-635,Dilly,Strotone,507-532-7349,Male,2,63,15,2018-10-18 04:02:56,2018-08-29 04:49:57,2018-12-04 03:03:45,2018-10-13 05:54:24
-636,Townsend,Eytel,577-285-3662,Male,2,28,15,2018-06-01 12:29:01,2018-09-17 04:48:03,2018-08-12 21:57:59,2018-02-19 20:48:01
-637,Aurel,Taleworth,826-459-6823,Female,4,21,100,2018-08-04 08:00:57,2018-09-17 17:45:32,2018-10-01 19:40:32,2018-09-12 06:23:27
-638,Barnabe,Eldredge,303-934-8908,Male,1,96,66,2018-11-25 12:08:25,2018-09-28 04:15:54,2018-06-11 18:54:23,2018-01-29 01:27:18
-639,Brnaby,Kwietek,319-338-0342,Male,1,99,21,2018-07-11 05:00:49,2018-09-07 18:54:24,2019-01-02 06:20:42,2018-07-12 08:08:28
-640,Thea,Beamont,123-463-1082,Female,4,95,46,2018-03-04 16:30:12,2018-09-20 03:40:11,2018-07-15 14:34:10,2018-08-29 13:50:42
-641,Moyra,MacAne,973-363-3000,Female,3,50,66,2018-06-15 02:19:51,2018-07-18 23:41:04,2018-11-11 08:19:50,2018-07-28 23:40:30
-642,Luce,Hanmer,800-595-2765,Male,4,71,68,2018-12-29 07:24:16,2018-03-30 23:25:56,2018-12-20 17:22:17,2018-07-01 23:50:17
-643,Clement,Gobert,746-653-6801,Male,2,29,39,2018-03-16 20:33:17,2018-12-07 02:34:52,2018-12-12 16:45:55,2018-12-20 02:30:28
-644,Dalenna,Kingsnorth,366-634-1391,Female,5,42,29,2018-04-19 19:41:25,2018-11-24 02:02:50,2018-03-31 05:36:32,2018-07-16 23:22:03
-645,Gigi,MacGilrewy,807-983-4035,Female,2,5,59,2018-11-13 14:20:34,2018-09-08 20:54:02,2018-09-05 14:11:49,2018-06-05 21:12:39
-646,Josi,De Vere,191-357-7492,Female,3,26,63,2018-11-16 05:10:17,2018-05-10 22:27:04,2018-05-04 18:15:10,2018-06-28 04:26:52
-647,Ripley,Pedrozzi,564-644-3142,Male,4,81,64,2018-05-06 05:04:31,2018-09-08 07:15:00,2018-11-12 01:23:19,2018-08-14 01:45:01
-648,Angelina,Henriques,513-742-8132,Female,1,4,93,2018-08-13 00:14:12,2018-03-20 21:24:41,2018-08-07 23:30:14,2018-11-23 00:03:11
-649,Anthia,Dandy,983-456-4556,Female,4,7,96,2018-05-12 17:03:46,2018-12-07 05:19:51,2018-11-20 12:22:28,2018-10-03 06:06:09
-650,Audry,Mourge,237-352-0739,Female,3,87,13,2018-01-25 21:10:18,2018-04-08 08:11:55,2018-01-26 17:58:05,2018-11-22 16:05:01
-651,Konstanze,Skocroft,383-376-4511,Female,5,53,15,2018-07-06 21:47:19,2018-07-21 19:51:01,2019-01-05 19:31:14,2018-12-02 06:51:10
-652,Koo,Arington,553-175-9464,Female,4,51,72,2018-03-12 21:13:34,2018-01-29 22:50:56,2018-07-28 03:59:46,2018-09-08 20:40:26
-653,Mimi,Novakovic,282-495-5519,Female,2,13,7,2019-01-18 17:51:56,2018-03-21 21:03:27,2018-11-26 23:09:59,2018-02-15 16:11:04
-654,Aldus,Aguirrezabal,289-348-2177,Male,2,27,59,2018-11-06 12:55:08,2018-03-03 18:13:31,2018-04-12 18:22:35,2018-08-22 21:43:49
-655,Sullivan,Kelmere,595-312-2528,Male,1,42,45,2018-12-01 16:35:57,2018-10-25 18:48:22,2018-09-07 00:15:27,2018-04-27 11:34:49
-656,Taite,Ruffli,824-778-7852,Male,4,22,46,2018-07-28 22:54:17,2018-10-09 20:45:57,2018-08-03 04:38:39,2018-11-26 15:09:49
-657,Rosene,Missen,922-494-6731,Female,7,91,26,2018-08-17 20:06:33,2018-11-02 02:58:57,2018-03-05 00:03:11,2018-05-31 23:55:38
-658,Ty,Fucher,639-989-4144,Male,3,68,100,2018-07-22 01:36:24,2018-03-08 21:12:38,2018-05-04 21:30:03,2018-09-06 22:32:37
-659,Heddi,Assel,246-263-2031,Female,6,39,92,2018-02-15 08:32:02,2018-02-26 03:11:18,2018-01-27 11:33:06,2018-08-29 02:37:29
-660,Boonie,Djorvic,425-328-7219,Male,7,49,6,2018-02-11 23:21:23,2018-03-07 04:45:35,2019-01-16 02:27:45,2018-10-14 03:27:02
-661,Aurie,Esgate,216-596-1681,Female,4,44,39,2019-01-07 13:40:58,2018-09-29 18:40:04,2018-04-15 01:33:28,2018-11-16 00:59:28
-662,Dana,Edginton,762-855-7796,Male,7,11,7,2018-10-22 11:13:58,2018-02-25 07:53:13,2018-10-26 14:30:34,2018-02-21 08:22:28
-663,Christiana,Haslock(e),322-905-9384,Female,7,66,50,2018-04-08 07:38:08,2018-05-11 05:11:14,2018-03-13 07:31:38,2018-03-24 02:07:40
-664,Lelia,Kimmerling,462-373-6886,Female,2,22,47,2018-07-16 09:28:30,2018-01-31 12:00:37,2018-05-14 00:22:05,2018-04-02 06:04:19
-665,Kaleena,Ferrier,462-635-6827,Female,2,74,81,2018-06-05 11:09:52,2018-02-12 09:02:48,2018-09-11 19:00:25,2018-02-20 13:36:01
-666,Davon,Kroch,646-511-8893,Male,2,79,55,2018-08-11 12:22:33,2018-03-09 12:30:22,2018-10-04 12:31:33,2018-08-30 17:50:16
-667,Agathe,Kingwell,879-547-0641,Female,7,16,34,2018-06-12 18:22:16,2018-08-05 00:55:58,2018-12-27 12:31:25,2018-02-19 01:39:48
-668,Tami,Brum,925-535-6949,Female,6,13,16,2018-08-10 21:16:02,2018-07-10 10:42:55,2018-10-03 09:45:52,2018-09-02 08:04:13
-669,Meghan,Behan,666-973-3081,Female,2,37,72,2018-07-01 22:33:57,2018-12-23 00:46:46,2018-11-15 22:39:02,2018-02-15 12:20:24
-670,Elliott,Gumbley,891-324-8441,Male,3,100,20,2018-05-26 06:24:39,2018-08-24 00:11:20,2018-10-25 08:36:44,2018-03-14 08:39:54
-671,Roosevelt,Headan,845-354-1730,Male,5,3,90,2018-07-01 14:50:49,2018-09-15 12:12:40,2018-12-24 01:35:47,2018-09-20 01:17:08
-672,Judie,Cozins,719-163-5308,Female,6,64,26,2018-02-13 12:22:03,2018-11-17 08:43:37,2018-04-01 06:23:24,2018-09-21 04:32:48
-673,Zebulen,Bulger,201-223-1332,Male,5,98,53,2018-07-16 23:18:20,2018-05-29 12:17:27,2018-04-28 14:52:50,2018-06-12 16:22:23
-674,Lea,Fairpo,372-782-5016,Female,6,19,3,2018-09-03 14:58:22,2018-07-08 18:29:06,2018-05-16 18:23:32,2018-12-29 08:04:07
-675,Mayer,Demead,393-580-8088,Male,4,41,38,2018-09-26 07:35:23,2018-04-11 15:45:52,2018-03-27 15:23:59,2018-06-06 14:21:04
-676,Ana,Cannaway,492-510-5265,Female,7,61,68,2018-02-10 08:21:49,2019-01-17 12:57:29,2018-03-10 19:54:59,2018-05-05 03:55:19
-677,Cathrine,Featonby,618-545-3336,Female,2,13,20,2018-04-06 05:43:01,2018-08-08 21:16:04,2018-09-14 02:33:02,2018-02-21 21:27:00
-678,Wilt,Pitcher,482-827-8133,Male,3,100,4,2018-07-28 21:19:49,2018-05-26 09:01:20,2018-08-20 04:38:04,2018-12-20 10:33:58
-679,Mirabelle,Beric,266-468-3958,Female,5,22,72,2018-05-02 12:06:49,2018-04-08 13:34:02,2018-05-08 04:55:38,2018-04-08 07:43:46
-680,Kitti,Duell,600-603-0212,Female,6,63,11,2018-06-03 10:32:14,2018-02-28 16:15:11,2018-07-14 16:05:36,2018-12-09 20:55:23
-681,Pebrook,Tunuy,901-401-5075,Male,7,43,54,2018-05-03 21:20:23,2018-08-22 11:35:56,2019-01-16 05:29:13,2018-06-03 07:29:48
-682,Maryanna,Eayrs,722-426-6216,Female,1,44,84,2018-09-20 04:29:10,2018-03-25 00:25:02,2018-08-24 07:28:58,2019-01-03 12:51:01
-683,Obadias,Izzatt,379-850-7154,Male,6,6,27,2018-04-26 21:45:09,2018-02-05 01:27:51,2018-12-26 01:14:44,2018-08-29 23:20:18
-684,Cherye,Androletti,524-563-8173,Female,3,68,10,2018-04-21 19:56:00,2018-09-14 22:29:43,2018-12-29 20:14:49,2018-11-16 03:21:36
-685,Joachim,Dimitrescu,795-788-5797,Male,5,76,2,2018-12-11 21:33:57,2018-12-23 19:18:05,2018-11-25 10:00:13,2018-03-10 21:29:53
-686,Wynne,Heyward,438-352-0453,Female,2,24,17,2018-08-16 11:16:51,2018-07-01 06:49:35,2018-10-07 18:27:47,2018-12-09 16:04:47
-687,Renell,Ipwell,436-940-9778,Female,2,20,24,2018-11-20 12:06:05,2018-07-02 02:09:18,2018-09-08 02:49:34,2018-02-07 07:39:15
-688,Ricky,Alderson,299-400-6861,Male,6,41,97,2018-11-21 08:08:46,2018-08-15 09:54:31,2018-12-12 09:05:40,2018-11-13 16:44:40
-689,Rubi,Gail,300-475-1452,Female,4,37,26,2019-01-06 23:27:48,2018-11-12 10:44:21,2018-12-06 15:12:08,2018-03-19 12:15:14
-690,Sherill,Tallent,643-731-0806,Female,5,51,98,2018-10-30 15:13:26,2018-06-09 19:32:29,2018-02-06 16:40:35,2018-09-26 13:31:25
-691,Elia,Hairon,537-738-0445,Male,4,59,64,2018-06-18 11:14:46,2018-08-12 09:09:40,2018-03-22 09:13:44,2018-10-25 02:49:49
-692,Johny,Degoe,380-482-6021,Male,2,89,51,2018-12-18 10:28:50,2018-10-04 06:40:46,2018-05-17 13:11:00,2019-01-18 01:02:48
-693,Kirstin,Hopfer,520-920-5762,Female,7,7,29,2018-03-03 02:44:21,2018-07-08 01:31:26,2018-08-12 04:22:03,2018-10-07 12:47:55
-694,Addie,Hrycek,411-674-4016,Female,1,62,3,2018-08-02 04:43:18,2018-09-19 05:54:13,2018-09-30 17:33:04,2018-10-24 16:39:15
-695,Devinne,Dilrew,876-178-5135,Female,6,97,69,2018-01-22 00:39:19,2018-05-29 02:38:21,2018-10-17 03:17:47,2018-07-28 12:51:30
-696,Violet,Petren,352-136-0037,Female,3,20,80,2018-09-23 03:09:33,2018-05-22 01:24:08,2019-01-06 00:46:41,2018-04-13 04:27:36
-697,Inga,Cahalan,847-549-2394,Female,3,98,26,2018-03-24 12:37:49,2018-10-09 07:41:56,2019-01-07 22:18:43,2018-01-28 07:44:56
-698,Burg,Liepina,736-158-9051,Male,4,89,88,2018-02-04 05:58:15,2018-02-24 08:51:40,2018-12-01 18:20:15,2018-02-20 12:27:18
-699,Winnifred,Yakutin,165-178-2008,Female,1,74,93,2018-12-14 06:11:18,2018-12-23 02:09:43,2018-04-07 06:12:17,2018-08-16 08:12:28
-700,Boone,Walsom,432-415-6784,Male,3,91,63,2018-06-12 09:05:08,2018-09-21 04:24:21,2018-09-18 05:27:12,2018-09-10 10:46:37
-701,Alberto,Steadman,316-988-9996,Male,7,11,32,2019-01-13 23:25:22,2018-04-27 23:46:24,2018-12-07 20:28:14,2018-02-03 17:46:13
-702,Babbie,Ossulton,151-959-6676,Female,5,50,26,2018-08-25 20:54:00,2018-05-14 14:24:06,2019-01-14 14:14:51,2018-08-15 11:39:35
-703,Franni,Sparwell,411-855-1156,Female,6,95,65,2018-07-21 15:32:34,2018-07-03 10:42:20,2018-08-26 02:44:03,2018-04-13 05:52:48
-704,Carlos,MacNair,911-726-0315,Male,1,17,35,2018-12-05 14:25:42,2018-12-12 19:39:25,2018-04-29 02:34:46,2018-10-22 16:34:03
-705,Violetta,Crosbie,334-280-9073,Female,3,9,44,2018-01-30 22:36:27,2018-08-07 22:12:15,2018-11-27 09:47:02,2018-07-24 14:22:36
-706,Malanie,Perico,380-744-7181,Female,6,68,23,2019-01-03 09:08:46,2018-08-26 01:51:30,2018-12-02 23:44:58,2018-02-16 00:13:42
-707,Ivor,Bowcher,940-535-1313,Male,2,79,20,2018-09-05 08:48:25,2018-05-21 21:40:04,2018-05-02 19:33:24,2018-06-22 07:46:47
-708,Hyacinth,Trump,241-552-4852,Female,4,46,7,2018-02-27 17:57:22,2018-11-20 03:54:39,2018-10-27 00:44:50,2018-09-19 14:04:29
-709,Vittorio,Blincko,136-124-8825,Male,5,70,20,2018-12-17 01:45:05,2018-06-06 18:10:29,2018-12-01 18:11:21,2018-04-14 00:43:46
-710,Tadeas,Glendenning,676-274-2212,Male,3,70,6,2018-08-22 07:42:12,2018-07-12 17:41:15,2018-07-24 17:42:26,2018-12-27 05:34:05
-711,Sky,Flew,681-787-4952,Male,3,81,48,2018-11-13 09:16:39,2018-09-14 09:34:51,2018-09-23 01:44:43,2018-11-21 00:50:58
-712,Luise,Olivetti,707-121-6217,Female,4,68,4,2018-03-29 01:36:21,2018-05-06 13:38:59,2018-05-06 09:55:05,2018-02-04 21:27:46
-713,Drusy,Capinetti,432-896-1449,Female,5,94,80,2018-07-31 20:38:50,2018-11-28 22:41:39,2018-04-27 00:57:40,2018-08-30 16:16:05
-714,Miranda,Rissen,700-512-2672,Female,7,29,40,2018-03-15 22:30:44,2018-02-01 02:59:19,2018-11-25 08:02:09,2018-11-05 07:51:59
-715,Ario,Bashford,390-128-4254,Male,2,54,93,2018-06-14 08:22:43,2018-08-12 18:13:42,2018-11-28 21:40:32,2018-12-29 03:09:26
-716,Rochella,Shackesby,103-592-3468,Female,7,41,14,2018-02-12 09:44:28,2018-08-22 10:35:46,2019-01-09 02:25:18,2018-10-10 17:50:44
-717,Wes,Christofides,192-457-7659,Male,1,69,89,2018-05-29 07:31:48,2019-01-06 03:40:33,2018-02-04 22:20:47,2019-01-05 16:01:23
-718,Griselda,Lukes,232-886-4996,Female,2,96,24,2019-01-10 12:54:29,2019-01-16 20:13:57,2018-04-26 08:07:43,2018-10-11 15:19:29
-719,Dredi,Cooksey,432-670-0783,Female,2,24,32,2018-02-28 00:00:07,2018-06-20 03:18:14,2018-07-21 09:03:11,2018-07-06 03:35:06
-720,Coleman,Trudgian,273-535-1414,Male,4,97,47,2018-04-25 23:41:09,2018-03-11 00:03:13,2018-06-03 13:44:14,2018-08-08 09:07:58
-721,Averill,Shilstone,947-108-0865,Male,7,1,64,2018-08-18 22:21:07,2018-04-12 03:24:47,2018-03-10 08:58:27,2018-08-03 14:04:03
-722,Carmen,Syder,954-822-0919,Female,2,47,75,2018-10-09 09:52:34,2018-11-21 01:16:40,2018-02-12 03:27:35,2018-08-12 12:44:55
-723,Morgan,Leband,547-933-1630,Female,5,39,97,2018-03-25 07:19:57,2018-03-28 20:22:12,2018-09-05 13:29:46,2018-10-12 09:04:17
-724,Milzie,Fearnley,589-230-2628,Female,1,44,13,2018-05-17 23:12:31,2018-07-29 21:43:28,2018-07-06 23:27:59,2018-09-14 01:45:16
-725,Deb,Marjot,495-276-5931,Female,2,27,81,2018-09-28 15:27:35,2018-02-05 23:31:12,2018-07-29 04:18:34,2018-03-08 09:45:23
-726,Shayne,Artinstall,628-997-5039,Male,2,23,20,2018-11-19 12:44:15,2018-05-30 23:05:12,2018-11-23 10:18:23,2018-06-08 14:18:23
-727,Annabal,Standbridge,226-314-1568,Female,5,16,5,2018-08-11 00:40:31,2018-12-20 14:06:36,2018-04-15 04:33:53,2018-11-09 16:42:45
-728,Sheffield,Crielly,360-797-0933,Male,7,57,90,2018-03-08 03:32:17,2018-11-07 06:12:46,2019-01-12 22:10:52,2019-01-02 03:16:09
-729,Antonius,Delagua,336-343-1380,Male,2,64,60,2018-10-14 22:56:26,2018-11-13 00:50:03,2018-07-02 11:23:06,2018-08-09 09:29:32
-730,Brana,Cannell,157-563-3935,Female,2,74,73,2019-01-19 15:41:16,2018-04-20 09:34:06,2018-08-02 12:28:32,2018-02-21 06:29:31
-731,Bartram,Praundlin,631-372-3479,Male,2,35,7,2018-10-03 02:00:10,2018-07-31 21:29:22,2019-01-10 21:43:54,2018-08-28 13:29:28
-732,Anthiathia,Goodwins,664-616-3575,Female,7,76,19,2018-04-26 19:57:15,2018-10-28 17:07:05,2018-02-21 16:38:28,2018-04-18 17:58:31
-733,Deborah,Ekell,577-861-9112,Female,5,74,43,2018-10-19 06:10:04,2018-03-12 03:47:48,2018-05-17 13:04:37,2018-02-09 05:48:05
-734,Lauri,Arunowicz,862-427-5257,Female,4,58,81,2018-07-29 04:16:13,2018-04-23 19:30:17,2018-03-19 21:30:18,2018-11-18 20:46:33
-735,Fowler,Markus,496-831-3082,Male,7,18,52,2018-01-26 22:36:43,2019-01-14 00:15:25,2018-03-18 05:45:56,2018-02-27 16:55:19
-736,Klara,Ramme,103-225-9086,Female,7,28,67,2018-05-21 17:32:08,2018-10-05 08:11:16,2018-06-25 15:05:21,2018-03-13 14:44:42
-737,Melisenda,Chitham,158-699-0591,Female,2,49,88,2018-04-16 02:24:00,2018-10-27 14:52:15,2018-12-31 05:39:31,2018-12-09 09:15:25
-738,Hale,Layborn,106-961-8551,Male,3,66,90,2018-04-22 19:39:27,2018-08-12 19:37:50,2018-08-17 10:37:06,2018-09-14 15:17:48
-739,Ferdie,Stubbeley,686-279-8217,Male,7,62,96,2018-09-25 03:29:05,2018-06-27 23:31:12,2018-07-21 18:49:24,2018-06-19 05:08:00
-740,Licha,O' Kelleher,463-395-9023,Female,6,75,16,2018-07-05 08:29:21,2018-09-13 21:32:41,2018-08-26 17:50:16,2018-05-22 11:30:48
-741,Gualterio,Kernar,123-900-7702,Male,2,32,18,2018-12-30 04:11:35,2018-04-15 10:32:33,2018-06-21 01:01:16,2018-11-15 03:34:48
-742,Harley,Lyokhin,664-282-7716,Male,1,42,45,2018-07-26 12:07:21,2018-02-09 02:23:37,2018-05-10 13:39:44,2018-11-25 04:15:16
-743,Kylila,Hukin,726-438-0889,Female,2,2,74,2019-01-02 09:08:44,2018-04-07 07:18:19,2018-04-19 16:12:40,2018-03-03 19:00:47
-744,Natividad,Dahlbom,744-480-5437,Female,5,82,39,2018-12-30 01:10:05,2018-08-01 07:16:39,2018-05-29 02:44:28,2018-11-08 15:02:54
-745,Virgina,Couzens,947-544-5389,Female,6,14,38,2018-11-19 23:03:21,2018-11-21 13:32:21,2018-03-29 02:30:25,2018-12-31 17:15:49
-746,Peyter,Diano,292-294-3875,Male,2,23,76,2018-12-22 18:12:13,2018-09-23 11:29:07,2018-07-12 06:09:06,2018-07-28 01:53:40
-747,Jayme,O'Curneen,225-447-3103,Male,3,10,84,2018-06-20 10:29:48,2018-08-12 10:14:12,2018-04-28 06:15:40,2018-07-19 08:52:24
-748,Frederik,Wilkisson,963-312-1892,Male,3,4,18,2018-09-11 01:05:52,2018-05-17 07:03:54,2018-09-07 08:19:47,2018-12-27 05:51:37
-749,Yankee,Harrower,918-854-5590,Male,7,14,88,2019-01-12 12:01:21,2018-08-24 08:15:58,2018-06-19 00:06:07,2018-06-19 07:16:40
-750,Tamas,MacRinn,856-289-3684,Male,6,83,91,2018-05-18 15:58:10,2018-06-09 14:45:50,2018-06-16 17:21:20,2018-12-18 02:23:35
-751,Valentin,Rawlings,663-758-9646,Male,4,16,34,2018-06-27 02:03:36,2018-12-10 04:32:16,2018-07-07 05:22:18,2018-02-03 06:54:36
-752,Colver,Yarr,382-717-8711,Male,5,23,10,2018-05-13 09:06:22,2018-04-06 13:41:41,2018-05-07 22:03:59,2018-11-12 22:30:08
-753,Alisa,Gaynesford,417-789-3077,Female,2,87,12,2018-07-16 18:03:56,2018-02-06 07:27:34,2018-07-12 08:51:47,2018-02-22 19:25:29
-754,Xavier,Cornwell,777-401-4183,Male,7,12,13,2018-12-03 01:19:40,2018-05-30 23:16:32,2018-10-01 21:33:13,2018-04-13 23:28:08
-755,Hy,Raftery,563-495-4017,Male,7,54,93,2018-03-25 23:10:24,2018-11-20 07:01:06,2018-03-27 13:09:16,2018-08-03 19:07:10
-756,Holt,Rosenfeld,962-871-1674,Male,2,43,35,2018-08-07 04:15:12,2018-05-21 13:42:27,2018-11-13 19:28:52,2018-03-27 10:14:19
-757,Zola,Andreopolos,543-481-8409,Female,4,31,62,2018-02-08 17:26:50,2018-12-12 15:18:24,2018-02-22 22:58:13,2019-01-02 05:55:39
-758,Letty,Scotting,546-656-5808,Female,5,15,94,2018-10-21 18:22:43,2018-05-26 22:09:39,2018-08-04 15:48:15,2018-08-28 06:14:32
-759,Celina,Lauchlan,202-835-6732,Female,7,47,9,2018-02-26 21:58:16,2019-01-10 01:22:46,2018-11-03 06:10:35,2018-04-21 11:00:49
-760,Drusy,Izakov,129-552-5886,Female,1,45,2,2018-10-11 13:12:08,2018-06-26 11:16:28,2018-08-24 23:58:00,2018-09-09 05:46:23
-761,Shana,Ference,915-610-3990,Female,3,1,7,2018-10-31 18:47:12,2018-09-13 14:33:49,2018-10-02 08:57:46,2018-02-18 19:30:28
-762,Colin,Broy,868-631-8529,Male,2,22,32,2018-05-23 19:06:02,2018-09-08 07:49:35,2018-12-13 21:44:07,2018-06-25 07:15:53
-763,Farlay,Cromett,640-335-8081,Male,7,34,25,2018-06-29 00:34:53,2018-12-08 12:49:01,2018-12-03 13:22:54,2018-06-24 16:33:04
-764,Leandra,Hamberstone,786-332-2588,Female,2,37,90,2018-12-22 15:35:04,2018-02-04 16:23:41,2018-01-28 07:51:51,2018-06-01 00:25:34
-765,Gan,McCahey,450-198-7472,Male,2,79,7,2018-06-26 07:22:06,2018-09-27 09:42:20,2018-03-13 20:28:52,2018-02-10 02:05:39
-766,Brose,Gane,302-470-1094,Male,7,27,25,2018-11-05 10:16:11,2018-12-27 12:00:35,2018-12-13 06:00:05,2018-08-30 01:03:46
-767,Mabel,Nurdin,417-183-7374,Female,1,73,62,2018-12-09 01:11:47,2018-06-09 12:03:13,2018-11-30 04:52:49,2018-04-24 11:08:53
-768,Melinda,Belliard,277-126-4396,Female,6,39,83,2018-07-13 11:17:51,2018-08-04 10:46:43,2018-11-19 23:27:57,2018-02-19 10:08:24
-769,Percy,Yakolev,433-703-6347,Male,4,78,23,2018-11-02 23:32:50,2018-12-19 16:21:10,2018-02-17 21:43:15,2018-12-09 00:57:58
-770,Portia,Legonidec,761-180-7070,Female,6,27,1,2018-11-01 18:06:54,2018-05-16 10:56:05,2018-08-06 20:45:16,2018-08-14 23:11:03
-771,Harry,Lapley,950-309-5667,Male,5,8,58,2018-03-01 15:09:46,2018-05-13 05:24:49,2018-03-22 16:01:05,2018-08-18 02:05:37
-772,Cort,Gathwaite,964-902-3053,Male,5,33,89,2018-08-18 20:12:14,2018-01-27 16:39:37,2018-12-26 22:46:04,2018-02-16 22:31:58
-773,Moselle,Davidsson,813-238-6494,Female,4,13,60,2019-01-10 17:47:31,2018-11-04 08:31:17,2018-04-30 12:09:52,2018-04-14 19:47:23
-774,Avril,Britton,340-286-1678,Female,3,4,16,2018-03-18 00:19:38,2018-12-29 06:21:49,2019-01-03 02:03:40,2018-11-29 12:05:59
-775,Linn,Confait,176-807-2635,Female,6,18,70,2018-09-18 15:11:21,2018-05-02 18:32:49,2018-03-25 13:46:21,2018-10-06 04:29:26
-776,Joletta,Fyldes,547-358-7132,Female,3,92,6,2019-01-07 18:53:22,2018-09-07 21:09:08,2018-10-22 08:38:19,2018-07-08 07:01:37
-777,Alvira,Donnersberg,712-756-5926,Female,1,20,77,2018-06-09 12:41:30,2018-12-29 01:15:22,2018-02-11 19:44:50,2018-02-21 21:33:12
-778,Kirbee,Sherer,434-167-9643,Female,4,84,40,2018-10-18 16:54:05,2018-04-02 11:16:17,2018-02-26 17:45:53,2018-10-21 05:24:45
-779,Griffy,Guitton,326-132-8573,Male,4,60,19,2018-06-22 17:59:44,2018-09-11 16:22:32,2018-11-10 19:43:30,2018-02-06 10:06:41
-780,Emmott,Allitt,969-852-2661,Male,2,48,37,2018-04-24 21:17:55,2018-11-01 06:07:42,2018-07-30 22:56:18,2018-11-13 22:12:50
-781,Tailor,Dalman,521-811-9925,Male,5,60,72,2018-12-14 09:37:55,2018-12-26 17:43:11,2018-12-10 03:38:52,2018-04-07 11:21:07
-782,Brennen,Vasilechko,176-109-0551,Male,6,90,55,2018-08-31 12:29:00,2018-05-23 03:06:41,2018-10-10 17:44:50,2018-10-21 00:47:28
-783,Dotty,MacCallam,161-881-1371,Female,1,56,3,2018-03-01 02:18:19,2019-01-06 18:00:59,2018-04-28 10:26:11,2018-02-05 06:43:37
-784,Jedidiah,Guerin,645-152-7671,Male,5,56,83,2018-04-02 15:07:20,2018-08-24 12:42:12,2018-12-21 09:17:44,2018-10-06 00:19:03
-785,Hannie,Danes,716-637-6821,Female,5,40,18,2019-01-08 07:08:18,2019-01-05 20:40:19,2019-01-16 12:16:28,2018-03-23 12:28:41
-786,Galen,Scogin,453-714-4492,Male,6,38,18,2018-10-27 06:54:20,2018-06-19 09:26:07,2019-01-10 20:55:20,2018-10-18 17:04:44
-787,Aleta,Melonby,207-524-3356,Female,3,98,3,2018-04-04 12:13:59,2018-06-06 11:50:34,2018-05-05 17:38:56,2018-03-11 12:56:42
-788,Adlai,Mauchlen,601-977-7616,Male,7,88,64,2018-03-24 04:33:36,2018-03-07 16:46:25,2018-03-16 19:25:21,2018-07-20 14:23:29
-789,Amelie,Le Barre,576-950-1963,Female,5,28,53,2018-08-10 15:52:25,2018-05-07 07:19:32,2018-12-21 21:24:49,2018-07-21 01:11:54
-790,Rodrique,Lestor,723-918-4771,Male,4,26,72,2018-08-29 10:37:42,2018-11-16 09:49:01,2018-08-31 05:08:59,2018-12-18 10:17:32
-791,Gifford,Challoner,411-352-9364,Male,5,63,18,2018-10-16 12:33:24,2018-11-24 23:28:34,2018-05-29 22:33:36,2018-11-06 07:45:09
-792,Dorene,Pogosian,391-363-6103,Female,4,74,78,2018-04-26 20:52:42,2018-08-02 21:57:23,2018-04-29 21:18:02,2018-02-13 20:06:09
-793,Lynnell,De Filippi,418-713-4087,Female,7,78,47,2018-12-03 11:11:47,2019-01-05 12:23:37,2018-05-05 19:10:42,2018-04-22 16:11:38
-794,Tod,Willicott,354-257-4541,Male,5,34,18,2018-07-19 20:11:25,2018-08-12 01:02:55,2018-08-05 23:52:34,2018-02-15 00:20:31
-795,Myrlene,Wornham,331-165-6672,Female,7,51,75,2018-11-24 15:52:43,2018-07-01 06:12:47,2018-08-08 19:45:02,2018-11-19 14:51:56
-796,Sibyl,Burnsyde,981-826-0517,Female,2,24,2,2018-11-01 05:15:20,2018-10-15 22:30:33,2018-05-27 21:38:42,2018-05-08 15:34:52
-797,Barron,Hanrott,700-573-3103,Male,6,81,99,2018-08-12 21:14:38,2018-03-09 17:36:14,2018-06-03 16:23:47,2018-10-13 22:34:58
-798,Marylee,Hunnawill,501-536-2494,Female,7,30,33,2018-10-19 01:54:52,2018-04-12 03:02:28,2018-09-12 02:31:37,2018-06-14 10:58:08
-799,Chip,Hunnaball,249-377-3740,Male,3,98,59,2018-04-25 10:02:32,2019-01-18 16:00:40,2018-02-14 02:06:39,2018-06-17 23:32:24
-800,Major,Milsap,444-230-6774,Male,7,20,23,2018-03-11 15:00:30,2018-01-24 21:48:22,2018-12-27 13:31:21,2018-08-10 23:29:32
-801,Ashli,Romain,886-453-6140,Female,6,12,19,2018-02-24 23:38:53,2018-05-01 04:29:06,2018-06-03 17:41:53,2018-04-21 00:29:25
-802,Keeley,Frankom,894-599-8867,Female,3,30,4,2019-01-05 18:11:47,2018-03-25 21:31:27,2018-05-26 03:52:58,2018-10-23 16:17:28
-803,Curcio,Widmoor,934-987-4248,Male,5,23,84,2018-03-31 07:42:11,2018-10-25 03:00:08,2018-10-18 23:14:42,2018-05-07 19:58:59
-804,Crawford,Ballston,771-623-5016,Male,5,24,48,2018-12-27 07:13:13,2019-01-09 10:21:22,2018-05-20 08:49:26,2018-09-16 08:46:49
-805,Templeton,Snibson,650-275-2922,Male,3,55,83,2018-12-04 05:22:30,2018-09-29 21:23:56,2018-03-08 17:58:24,2018-08-15 02:38:52
-806,Gail,Peachment,906-123-1774,Male,4,59,13,2018-09-21 07:44:03,2018-08-02 22:34:51,2018-03-08 07:11:39,2018-08-25 15:39:59
-807,Adriano,Escale,888-817-1180,Male,3,92,78,2018-07-24 16:32:20,2018-02-22 12:50:50,2018-06-26 12:34:44,2018-06-06 08:04:35
-808,Trista,Tudgay,340-171-5505,Female,5,44,62,2018-09-04 12:09:41,2018-01-31 01:51:09,2018-09-13 08:38:11,2018-06-06 05:49:50
-809,Angie,Carradice,507-239-1908,Female,1,12,69,2018-08-13 18:36:13,2018-11-23 03:57:42,2018-06-17 07:44:13,2018-12-09 16:37:23
-810,Maureen,Perllman,116-299-8383,Female,1,91,1,2018-04-10 06:12:02,2018-08-02 04:31:50,2018-06-18 00:58:20,2018-10-12 02:31:31
-811,Renaud,Roylance,267-492-3743,Male,3,36,85,2018-02-05 00:59:50,2018-11-26 02:06:43,2018-11-16 00:25:18,2018-02-02 08:38:37
-812,Dasi,Rhucroft,505-753-6245,Female,4,96,84,2018-11-10 18:36:26,2018-07-17 05:54:10,2018-07-12 13:34:58,2018-11-10 01:57:49
-813,Arlee,Gerdts,220-186-9711,Female,6,76,30,2018-12-26 11:24:38,2018-11-21 22:09:49,2018-04-16 14:09:09,2018-05-27 06:24:32
-814,Darrel,Maseres,540-324-4576,Male,6,20,52,2018-01-25 13:38:00,2019-01-11 23:26:49,2018-07-10 03:23:20,2018-06-27 20:41:34
-815,Merle,Haggie,867-109-5010,Male,5,96,73,2018-05-11 09:41:28,2018-02-26 23:39:01,2019-01-18 06:20:26,2018-11-24 20:35:34
-816,Jordanna,Slocket,561-552-2274,Female,3,64,28,2018-06-05 00:07:31,2018-10-24 18:30:56,2018-04-11 09:26:10,2018-07-17 15:09:53
-817,Rosa,Naulty,104-742-5724,Female,1,49,36,2018-07-25 05:49:28,2018-12-11 01:12:50,2018-04-02 22:12:09,2019-01-03 01:54:51
-818,Abbott,Nenci,465-121-4813,Male,3,79,57,2018-11-14 21:12:41,2018-03-22 04:16:18,2018-08-26 18:31:33,2018-05-16 10:32:25
-819,Edsel,Brockley,602-592-8501,Male,1,30,96,2018-01-21 00:58:41,2018-12-18 18:52:15,2018-03-18 23:16:05,2018-11-22 00:32:00
-820,Rickie,Tace,237-311-6775,Female,4,14,43,2018-07-28 16:49:11,2018-12-14 07:30:09,2018-02-18 22:51:29,2018-06-05 16:20:34
-821,Shaun,Stagg,356-435-7464,Female,7,54,35,2018-09-08 08:01:19,2018-03-09 16:11:16,2019-01-16 17:00:44,2018-11-30 14:34:15
-822,Alfred,Durden,512-204-4387,Male,2,79,46,2018-12-31 13:42:16,2018-05-24 21:54:26,2018-07-10 23:33:53,2018-08-10 04:33:54
-823,Christoffer,Bolderstone,868-441-3575,Male,6,4,30,2018-11-03 00:46:09,2018-04-30 04:41:20,2018-07-26 23:17:02,2018-04-27 19:17:50
-824,Ellette,Robard,806-623-1247,Female,2,59,70,2018-01-31 22:31:04,2018-01-28 04:26:39,2018-06-10 10:50:30,2018-11-01 17:27:42
-825,Loren,Mitrovic,840-960-0930,Male,7,27,31,2018-11-09 15:53:11,2018-03-25 02:53:57,2018-12-15 15:59:47,2018-06-20 19:00:48
-826,Leigh,Beebee,483-570-2017,Male,5,56,99,2018-03-27 09:56:26,2018-09-05 03:40:42,2018-12-13 03:28:25,2018-11-23 13:45:15
-827,Debby,Beldham,686-330-6591,Female,5,65,17,2018-08-01 18:59:48,2018-03-24 14:20:35,2019-01-10 21:11:42,2018-12-19 08:48:47
-828,Barron,Lowell,115-742-2050,Male,5,85,65,2018-03-03 04:32:02,2018-04-24 11:36:33,2018-09-15 15:08:52,2018-06-25 22:46:54
-829,Randi,Skydall,223-820-2793,Male,2,86,47,2018-07-20 00:15:51,2018-06-26 06:23:43,2018-12-28 12:30:07,2018-08-25 21:27:50
-830,Isabel,Roggerone,927-569-8210,Female,4,85,41,2018-09-23 13:54:09,2018-03-09 05:31:36,2018-06-11 18:42:42,2018-04-13 18:03:27
-831,Alvan,Geake,401-432-6471,Male,5,71,66,2018-03-29 20:49:43,2018-04-25 14:10:14,2018-07-24 01:39:45,2018-12-24 09:39:46
-832,Sophey,Jeandel,338-361-7635,Female,6,60,18,2018-08-05 04:29:15,2018-09-21 05:26:30,2018-06-08 07:30:41,2018-12-27 19:45:07
-833,Howie,Maxsted,197-553-3905,Male,5,94,69,2018-08-25 23:10:38,2019-01-20 02:12:00,2019-01-15 20:11:44,2018-02-13 17:46:32
-834,Padraig,Torr,529-469-0039,Male,1,62,17,2018-03-14 04:21:56,2018-06-08 14:24:59,2018-10-08 09:31:56,2018-08-30 02:59:15
-835,Shirl,Jeratt,713-937-2841,Female,2,18,89,2018-09-25 03:56:45,2018-07-17 02:54:21,2019-01-08 21:13:42,2018-02-20 17:16:17
-836,Durward,Kermott,625-654-9223,Male,6,67,25,2018-02-14 15:04:10,2018-03-23 06:42:12,2018-09-16 13:56:48,2018-03-10 11:02:08
-837,Rici,Francie,992-830-9527,Female,5,75,22,2018-07-21 07:35:59,2018-01-24 21:24:42,2018-12-20 10:46:19,2018-04-27 01:28:33
-838,Vivian,Suddell,715-471-1918,Female,6,81,45,2018-07-29 02:06:46,2018-10-15 14:05:00,2018-06-12 17:01:30,2018-05-12 22:22:36
-839,Eugenia,Tudhope,527-791-1359,Female,2,95,25,2019-01-05 12:54:58,2018-12-12 20:07:15,2018-12-22 12:11:13,2018-12-25 06:49:43
-840,Hamnet,Gateman,792-883-5589,Male,1,84,45,2018-06-26 04:15:53,2018-02-21 14:45:49,2018-08-29 18:01:14,2019-01-15 09:03:43
-841,Laraine,Emma,256-645-5057,Female,3,88,52,2018-05-29 03:26:20,2018-03-10 02:05:24,2018-05-12 21:29:38,2018-12-10 02:39:56
-842,Harley,D'Ruel,359-498-9270,Male,4,16,57,2018-02-15 07:39:22,2018-08-24 22:23:10,2018-07-19 02:07:06,2018-02-13 01:45:52
-843,Theda,Eades,222-998-5683,Female,7,2,71,2018-03-06 07:09:18,2018-09-14 11:46:16,2018-11-23 01:07:59,2018-12-02 03:37:22
-844,Giselbert,Klimentyev,165-127-0115,Male,6,88,93,2018-11-13 03:56:59,2018-04-09 02:33:25,2018-07-04 00:34:57,2018-06-04 05:56:23
-845,Lynnet,Tidd,370-452-0577,Female,6,47,3,2018-08-25 20:45:24,2018-08-27 16:50:01,2018-08-22 21:33:48,2018-06-27 22:32:52
-846,Donetta,Giannassi,913-466-0403,Female,2,39,55,2018-02-26 16:34:20,2018-07-10 03:35:10,2018-09-29 14:23:34,2018-10-10 13:02:02
-847,Conrade,Ruddell,514-722-6544,Male,3,13,100,2018-05-31 18:14:29,2018-10-19 05:51:32,2018-11-22 09:45:08,2018-02-22 05:00:31
-848,Tynan,Ritchie,552-416-9192,Male,4,50,26,2018-02-13 01:36:31,2018-07-24 03:28:00,2018-02-22 16:37:36,2018-02-28 07:16:54
-849,Erv,Huggins,528-946-8385,Male,3,73,82,2018-03-23 14:37:41,2018-08-12 12:26:08,2018-02-09 16:56:21,2018-08-09 06:33:34
-850,Darby,Ambrogini,266-338-3612,Male,6,92,21,2018-04-27 07:57:01,2018-10-19 20:49:49,2018-02-10 16:39:59,2018-09-03 00:53:41
-851,Devondra,Boc,775-193-7341,Female,5,36,51,2018-10-18 04:36:21,2018-10-28 14:06:15,2018-03-25 15:47:47,2018-08-20 22:31:48
-852,Meggy,Paxforde,435-917-5199,Female,2,40,85,2018-08-27 05:39:35,2018-01-23 20:18:58,2018-02-01 16:43:58,2018-08-07 12:15:36
-853,Pattie,Macallam,901-370-6579,Female,1,4,32,2018-07-11 10:30:06,2018-10-01 12:33:55,2018-02-08 02:35:59,2018-11-30 18:29:14
-854,Ray,Thayre,822-459-4971,Male,7,13,79,2018-07-13 03:44:05,2018-07-07 04:47:58,2018-08-28 19:24:34,2018-08-13 10:49:03
-855,Sindee,Gong,919-731-7167,Female,6,23,3,2018-12-08 15:31:48,2018-04-27 17:10:40,2018-07-14 14:10:46,2018-09-23 22:25:52
-856,Giovanni,Elsie,739-171-4273,Male,3,100,20,2018-11-22 21:14:50,2018-09-29 00:12:07,2018-05-17 09:43:48,2018-04-05 15:26:17
-857,Hadley,Davidde,813-908-2619,Male,7,64,65,2018-01-31 19:26:32,2018-11-10 09:08:19,2018-06-20 20:16:01,2018-04-18 19:33:00
-858,Jud,Schleicher,248-874-9513,Male,1,24,8,2018-04-06 16:54:03,2018-12-08 11:46:05,2018-10-02 20:22:44,2018-04-27 09:04:18
-859,Berget,Rasmus,599-370-5265,Female,2,46,8,2018-11-11 16:46:30,2018-11-24 16:42:40,2019-01-05 12:53:51,2018-12-17 18:41:54
-860,Floris,Lelliott,495-754-4852,Female,1,35,72,2019-01-06 22:27:28,2018-06-14 07:45:20,2018-10-25 10:22:56,2018-07-09 00:48:19
-861,Marianna,Huge,136-171-1910,Female,1,92,73,2018-05-04 21:19:28,2018-04-08 18:45:35,2018-02-08 18:06:55,2018-07-12 04:08:00
-862,Federica,Seakings,778-573-1492,Female,5,42,100,2018-02-18 23:40:45,2018-08-29 22:07:35,2018-06-27 21:37:10,2018-06-27 18:13:29
-863,Christophorus,Tett,516-196-0657,Male,3,68,89,2018-09-28 20:37:26,2018-07-03 17:19:03,2018-04-20 09:01:09,2018-06-11 11:31:56
-864,Kathlin,Hubbart,400-384-9734,Female,5,75,62,2018-09-23 11:16:50,2018-11-22 07:00:07,2018-11-12 09:29:23,2018-03-19 17:19:13
-865,Toinette,Christophersen,222-218-6841,Female,4,81,80,2018-06-24 07:27:29,2018-03-08 17:25:42,2018-11-19 23:39:15,2018-04-02 19:04:26
-866,Mei,Dragon,891-366-6658,Female,2,14,22,2018-03-17 07:33:08,2018-06-23 20:11:56,2018-10-30 02:21:14,2018-10-21 08:13:29
-867,Wileen,Guittet,118-965-5819,Female,7,22,73,2018-04-12 00:04:07,2018-08-23 08:56:44,2018-07-09 08:29:36,2018-02-22 06:45:41
-868,Bill,Skechley,531-261-9052,Female,1,93,45,2018-03-25 13:30:53,2018-10-17 03:47:35,2018-10-18 02:26:47,2018-12-08 19:05:40
-869,Chrissy,Rapley,863-731-8995,Female,7,17,8,2018-09-12 01:35:07,2018-07-22 15:02:10,2018-06-18 19:06:47,2018-12-22 20:00:52
-870,Gwynne,Hymers,287-878-7144,Female,4,6,29,2018-08-19 13:41:56,2018-12-10 18:23:35,2018-03-26 01:25:26,2018-07-05 16:38:09
-871,Noland,Hornung,922-794-4200,Male,3,66,82,2018-12-10 23:49:55,2018-09-15 01:16:20,2018-10-24 20:37:00,2018-10-27 07:56:58
-872,Sybila,Caren,883-754-0514,Female,1,40,33,2018-11-01 03:29:07,2018-03-07 23:07:07,2018-09-06 01:46:46,2018-03-17 17:02:04
-873,Arnaldo,Ortelt,648-204-0219,Male,5,24,20,2018-04-19 00:26:30,2018-06-09 12:00:33,2018-09-30 00:21:33,2018-07-12 18:59:39
-874,Sascha,Thurner,504-586-1976,Male,4,9,34,2018-09-03 11:21:47,2018-12-06 09:23:43,2018-11-21 03:43:51,2018-05-28 10:34:36
-875,Janeva,Stallion,168-726-9745,Female,7,66,60,2018-07-05 04:40:09,2018-02-19 12:25:04,2018-05-31 06:47:34,2018-01-24 21:43:59
-876,Imelda,Daintrey,786-279-9676,Female,5,26,12,2018-07-29 01:32:45,2018-05-21 03:09:18,2018-10-03 07:09:16,2018-12-28 16:07:06
-877,Kaia,Pauleit,937-468-0457,Female,5,36,63,2018-08-20 03:23:06,2018-09-20 08:02:05,2018-05-13 23:35:38,2018-03-19 03:48:06
-878,Fons,Coton,673-868-5084,Male,6,51,39,2018-02-28 14:51:40,2018-08-02 02:13:10,2018-02-01 01:38:38,2018-09-22 00:49:46
-879,Amalee,Groneway,336-875-1596,Female,5,19,58,2018-04-12 20:12:37,2018-11-27 06:39:14,2018-09-18 01:05:22,2018-04-22 08:39:02
-880,Paquito,O'Dwyer,324-526-6202,Male,7,99,41,2018-10-12 02:35:53,2018-02-10 00:52:03,2018-02-07 03:12:35,2018-10-18 21:47:13
-881,Shea,Forst,307-995-7972,Female,1,41,41,2018-10-02 02:03:39,2018-10-24 23:10:36,2019-01-09 17:11:05,2018-05-16 22:15:02
-882,Sylvan,McKimm,999-270-7047,Male,1,21,29,2018-04-13 22:42:31,2018-12-10 08:47:39,2018-05-25 01:01:54,2018-04-17 08:03:17
-883,Peyter,Rotte,919-508-2810,Male,3,51,43,2018-05-25 10:20:40,2018-05-07 09:22:17,2018-10-29 16:34:13,2018-05-08 18:00:18
-884,Ernestine,Jankowski,998-337-8068,Female,3,7,44,2018-01-22 22:18:12,2018-11-04 08:03:53,2019-01-14 13:07:45,2018-01-25 10:53:54
-885,Bridget,Pettet,701-799-8814,Female,5,84,73,2018-04-24 13:06:17,2018-09-27 02:37:43,2018-11-23 08:52:31,2018-08-30 18:46:39
-886,Arlana,Wisniowski,321-679-5349,Female,7,1,72,2018-09-20 23:41:45,2018-07-29 00:16:49,2018-02-08 09:55:35,2018-04-07 15:34:38
-887,Darbie,Verzey,936-723-9548,Female,6,95,2,2018-09-15 23:29:11,2018-01-28 09:02:28,2018-12-05 08:05:15,2018-02-08 01:02:29
-888,Quintana,Nutley,896-674-7083,Female,3,38,16,2018-07-22 20:52:42,2018-09-19 19:39:52,2018-04-29 01:58:40,2018-07-30 22:07:46
-889,Padgett,Urwen,141-490-6319,Male,6,32,96,2018-05-09 19:03:45,2018-04-07 12:16:47,2018-07-17 13:53:15,2018-09-19 15:54:14
-890,Beret,Gilchrest,524-146-3660,Female,3,30,45,2018-12-09 18:08:35,2018-02-09 07:44:41,2019-01-09 06:31:54,2018-06-03 05:03:43
-891,Jacquette,McBlain,180-111-2719,Female,5,45,49,2018-08-25 23:50:05,2018-08-14 04:10:24,2018-06-28 01:21:56,2018-05-09 06:07:09
-892,Heriberto,Hardway,934-411-2153,Male,7,100,67,2018-08-12 07:20:08,2018-08-30 23:04:44,2018-08-09 09:18:15,2018-08-21 13:19:44
-893,Charo,Cheeney,934-194-4292,Female,2,79,49,2018-02-19 02:30:34,2018-07-26 21:32:10,2018-03-14 13:44:53,2019-01-02 19:07:53
-894,Barty,Delacour,352-181-7260,Male,7,68,1,2018-02-08 11:54:33,2018-12-22 15:26:11,2018-05-05 05:29:07,2018-01-28 16:34:01
-895,Arel,Qusklay,776-527-2939,Male,6,72,24,2018-02-10 23:05:47,2018-10-31 16:14:34,2018-04-17 06:36:20,2018-09-21 15:13:20
-896,Cleon,Westcarr,735-686-0389,Male,1,56,68,2018-12-14 09:21:13,2018-08-04 15:56:37,2018-09-09 11:38:56,2018-03-19 03:56:38
-897,Nicole,Gorrie,216-361-4858,Female,2,65,77,2018-08-05 12:50:07,2018-03-10 14:07:01,2018-02-15 13:44:04,2019-01-06 01:05:50
-898,Issiah,Patters,901-518-7348,Male,7,40,78,2018-04-27 08:43:08,2018-11-08 01:40:02,2018-02-05 13:31:35,2018-08-05 21:26:55
-899,Kimbell,Torvey,614-432-0846,Male,3,46,34,2018-10-10 17:10:59,2018-04-09 13:30:10,2018-12-26 11:39:55,2018-03-11 23:16:21
-900,Arabel,Reaney,250-158-0650,Female,1,39,42,2018-06-24 20:58:36,2018-06-13 01:05:57,2018-09-21 12:17:09,2018-05-12 01:20:04
-901,Lowrance,Birckmann,707-493-5823,Male,3,40,81,2018-10-30 04:51:25,2018-04-14 15:18:25,2018-11-26 23:12:20,2018-11-19 04:09:43
-902,Sande,Tinson,644-792-0309,Female,1,4,93,2018-06-05 12:30:15,2018-06-05 01:29:00,2018-04-13 08:38:54,2018-12-10 03:36:34
-903,Antonetta,Twelve,506-143-6120,Female,7,95,49,2018-10-15 14:45:58,2018-11-02 11:22:24,2018-02-20 23:03:06,2018-02-13 22:09:09
-904,Marietta,Christensen,356-415-2235,Male,5,80,58,2018-10-22 11:01:49,2018-02-01 17:42:35,2018-11-22 02:54:09,2018-09-30 12:05:18
-905,Jodee,Pietraszek,300-188-3774,Female,4,10,37,2018-10-23 06:33:49,2018-10-21 00:19:46,2018-11-29 18:55:51,2018-11-06 15:41:47
-906,Marthena,Kitson,601-214-9309,Female,4,28,26,2018-07-23 16:23:23,2018-06-22 12:00:30,2018-12-01 12:31:45,2018-12-23 15:09:43
-907,Daron,Mackison,682-377-7219,Female,4,89,96,2018-05-28 03:03:57,2018-03-02 01:25:11,2018-12-01 09:00:59,2018-02-21 02:24:22
-908,Hube,Feldhuhn,942-914-1709,Male,5,24,35,2018-10-02 04:25:27,2018-06-28 02:29:41,2018-02-06 01:40:17,2018-04-23 22:52:35
-909,Loretta,Pritty,613-563-4790,Female,7,75,82,2018-07-08 17:13:07,2018-11-22 22:05:00,2018-10-30 22:21:57,2018-08-13 01:05:15
-910,Cathyleen,McCallion,883-828-7510,Female,2,45,11,2018-09-09 14:13:19,2018-01-31 15:57:37,2018-08-13 04:55:36,2018-09-09 10:40:55
-911,Haleigh,Gleader,682-121-8965,Female,3,8,38,2018-12-20 06:38:29,2019-01-17 01:03:40,2019-01-19 16:23:53,2018-08-17 03:24:51
-912,Charles,Rosengarten,618-810-0078,Male,2,93,36,2018-10-15 16:20:15,2018-12-28 14:31:32,2018-09-12 08:52:44,2018-07-15 21:25:15
-913,Bjorn,Erskine Sandys,529-581-3333,Male,3,75,81,2018-04-14 17:13:49,2018-10-21 15:46:05,2018-05-28 06:44:30,2018-08-10 04:37:46
-914,Darill,Bostock,625-801-8242,Male,2,81,23,2018-10-11 19:47:21,2018-06-12 04:06:41,2019-01-15 07:56:54,2018-04-28 18:50:01
-915,Noellyn,Benwell,722-714-8266,Female,2,11,12,2018-02-15 07:48:35,2018-04-07 17:41:22,2018-05-18 02:39:40,2018-07-22 07:12:38
-916,Dov,Letrange,300-443-5277,Male,5,91,80,2018-12-27 15:44:06,2018-06-01 01:17:13,2018-06-04 08:44:49,2018-05-07 08:43:09
-917,Olympie,Louden,465-432-6397,Female,1,19,13,2018-01-25 05:55:27,2018-06-19 10:44:49,2018-10-06 16:38:12,2018-11-22 20:46:37
-918,Finley,Casbon,425-531-2684,Male,4,85,21,2018-09-04 05:24:44,2018-10-19 21:14:24,2018-09-24 15:11:59,2018-07-02 05:41:48
-919,Dewitt,Krolak,700-648-7734,Male,7,43,3,2018-04-11 09:56:52,2018-07-11 01:42:09,2018-02-28 00:53:56,2018-06-20 15:39:09
-920,Noby,De la Yglesia,405-211-0709,Male,4,1,49,2018-12-05 02:27:53,2018-07-03 10:21:49,2018-09-23 09:16:19,2018-05-12 09:47:56
-921,Aloysius,Baggs,272-379-1280,Male,2,40,53,2018-05-14 22:08:41,2018-12-03 09:03:58,2018-07-15 04:40:33,2018-09-15 06:12:36
-922,Karilynn,Costa,732-871-1192,Female,2,68,76,2018-12-29 05:05:50,2018-12-23 08:00:43,2018-04-13 17:50:47,2018-03-24 11:13:51
-923,Ky,Waggett,413-701-9663,Male,5,7,59,2018-02-05 06:17:54,2018-07-07 03:47:33,2018-09-13 00:11:05,2018-12-21 03:34:37
-924,Leeanne,Neasam,130-573-1360,Female,4,74,77,2018-11-30 04:33:22,2018-03-26 07:40:00,2018-05-03 16:40:09,2018-05-10 20:32:41
-925,Muffin,Eades,789-128-6773,Male,4,84,25,2018-04-19 09:16:22,2018-11-08 03:55:54,2018-02-03 05:36:52,2018-10-21 22:14:13
-926,Iormina,Baudry,644-418-1313,Female,4,72,19,2019-01-16 00:35:47,2018-11-23 14:35:13,2018-04-06 17:59:52,2018-02-24 14:59:31
-927,Fabe,Ziemke,161-651-6080,Male,6,36,12,2019-01-14 08:28:41,2018-10-28 13:42:55,2018-07-07 04:53:18,2018-08-04 15:37:00
-928,Danni,Leese,768-599-1814,Female,7,30,71,2018-11-08 21:26:44,2018-05-01 17:49:56,2018-08-03 00:06:41,2018-10-18 08:20:47
-929,Rycca,Petegre,433-887-8926,Female,4,5,34,2018-07-02 07:56:41,2018-02-10 11:51:30,2018-04-08 10:08:07,2018-06-11 19:43:31
-930,Berkie,Reveland,791-499-2738,Male,1,57,80,2018-07-18 08:14:02,2018-04-15 08:54:18,2018-09-25 23:13:59,2018-08-12 23:49:27
-931,Tommy,Swett,915-667-6497,Male,1,98,11,2018-06-26 21:33:59,2018-07-10 07:15:47,2018-07-15 03:48:37,2018-04-01 11:58:09
-932,Derrek,Perkinson,169-674-1053,Male,4,85,25,2018-08-23 05:51:09,2018-09-17 23:57:57,2018-03-06 01:30:46,2018-05-06 22:10:10
-933,Lonni,Polycote,996-492-4081,Female,2,7,6,2018-06-09 22:12:53,2018-04-09 09:26:53,2018-07-19 03:36:09,2018-12-01 16:50:15
-934,Phyllis,Gallamore,788-489-0287,Female,4,32,71,2018-07-08 11:07:20,2018-05-25 09:24:00,2018-04-23 04:53:35,2019-01-19 16:11:17
-935,Brittne,Caccavari,799-716-9817,Female,2,53,25,2018-12-11 00:47:47,2018-01-22 09:05:30,2018-09-30 14:03:22,2018-08-09 05:13:34
-936,Quinn,Torricina,342-560-9404,Female,3,60,72,2019-01-06 06:26:23,2018-11-21 02:21:54,2018-02-15 20:43:28,2018-08-15 17:59:55
-937,Jacklyn,Bohling,824-878-8873,Female,1,41,34,2018-06-23 18:52:40,2018-05-14 22:58:13,2018-06-08 07:11:42,2018-08-04 15:57:46
-938,Hunfredo,Millam,816-916-1240,Male,1,86,58,2019-01-08 04:02:45,2019-01-12 17:57:33,2019-01-20 14:58:14,2018-12-03 22:29:35
-939,Hymie,Vosse,980-181-0718,Male,4,67,59,2018-12-25 10:58:52,2018-03-09 06:50:03,2018-03-03 04:06:28,2018-07-17 18:26:14
-940,Olia,Wyse,875-970-0069,Female,4,54,96,2018-11-01 03:11:42,2018-12-29 18:01:06,2018-05-01 00:58:58,2018-08-29 17:41:08
-941,Arline,Bierton,582-902-5400,Female,4,36,83,2018-11-19 01:06:41,2018-07-20 08:22:25,2018-02-15 09:56:13,2018-07-07 12:00:06
-942,Nevsa,Jacquot,393-800-6240,Female,3,76,100,2018-12-03 03:10:20,2018-10-05 15:30:34,2018-07-03 08:10:26,2019-01-15 02:21:14
-943,Analise,Bechley,178-276-2761,Female,4,10,4,2018-08-03 05:49:50,2018-12-25 22:04:16,2019-01-18 22:16:01,2018-03-07 14:10:26
-944,Siffre,Cumbridge,484-369-3900,Male,1,30,98,2018-11-08 05:35:17,2018-07-06 03:41:16,2018-03-26 11:58:13,2018-10-05 22:55:01
-945,Berget,Oldred,470-380-7016,Female,2,34,3,2018-12-24 01:06:10,2018-03-01 08:09:07,2018-08-27 19:47:44,2018-07-15 17:16:39
-946,Aaron,Arnison,195-265-7576,Male,4,68,94,2018-06-02 08:58:18,2018-08-03 00:56:00,2018-05-06 14:32:24,2018-02-16 07:54:16
-947,Fay,Sarfas,659-275-5381,Female,6,34,96,2019-01-02 00:06:51,2018-12-05 05:47:36,2018-04-22 03:52:40,2018-09-20 19:16:51
-948,Pennie,Rappaport,851-746-8484,Female,5,74,57,2018-06-13 14:50:19,2018-05-10 00:00:37,2018-05-03 15:48:50,2018-12-06 19:15:10
-949,Ennis,Schindler,685-873-8208,Male,2,9,15,2018-12-06 10:23:57,2018-06-05 08:10:38,2018-08-19 04:20:22,2018-08-31 04:33:19
-950,Sean,Breckwell,511-213-8051,Male,4,65,20,2018-06-20 04:24:36,2018-12-24 06:27:41,2018-07-17 12:13:34,2018-06-02 06:09:01
-951,Carlene,Vials,130-632-1736,Female,2,71,12,2018-03-26 06:16:26,2018-03-25 23:10:14,2018-03-02 15:43:13,2018-06-01 08:30:44
-952,Nerita,Paolinelli,943-836-6191,Female,2,88,24,2018-11-19 20:39:05,2018-09-18 20:22:25,2018-07-16 13:15:28,2018-12-21 02:47:25
-953,Benoite,Gheorghescu,378-772-1101,Female,4,78,44,2018-11-09 02:22:49,2019-01-09 18:23:07,2018-04-05 11:06:02,2018-05-14 05:39:56
-954,Erik,Auchterlonie,766-720-0406,Male,1,17,56,2018-03-01 23:55:26,2018-10-18 17:00:40,2018-07-12 00:30:26,2018-11-30 15:38:30
-955,Jesse,Laurenty,586-274-7629,Female,2,10,63,2018-08-16 12:07:51,2018-05-30 23:14:43,2018-06-19 02:24:42,2018-03-17 09:24:46
-956,Lynnet,Cuel,652-339-4808,Female,1,26,91,2018-11-05 19:14:13,2018-11-22 14:06:17,2018-12-25 13:52:54,2018-10-28 04:14:09
-957,Marge,Adnet,901-394-6344,Female,7,46,51,2018-02-21 02:14:23,2018-12-29 22:39:34,2018-03-27 11:48:32,2019-01-05 10:26:02
-958,Clara,Rangeley,154-876-9501,Female,6,73,50,2018-07-06 13:52:31,2018-05-28 12:09:22,2018-09-08 04:19:54,2018-09-02 19:04:27
-959,Ciel,Ching,205-133-7293,Female,7,26,19,2018-06-13 01:00:22,2018-06-26 05:13:24,2018-03-12 09:15:19,2018-06-29 23:55:03
-960,Phebe,Pentecust,671-551-3717,Female,6,79,26,2018-07-17 05:39:55,2018-05-28 11:52:54,2018-11-17 17:20:32,2018-07-27 07:39:40
-961,Koralle,Doleman,733-411-3555,Female,4,50,86,2018-10-28 12:28:47,2018-04-19 14:24:23,2018-04-19 20:04:57,2018-11-03 19:27:30
-962,Gypsy,Ashard,627-318-6598,Female,4,84,97,2018-10-29 08:41:04,2018-04-12 21:17:30,2019-01-12 05:14:18,2018-08-11 13:20:16
-963,Zebedee,Guilayn,442-936-9333,Male,3,35,49,2018-06-20 19:42:39,2019-01-19 12:44:29,2018-10-03 09:52:26,2018-11-23 22:02:46
-964,Waldemar,Isaak,931-973-9119,Male,4,82,45,2018-04-23 15:37:02,2018-05-09 15:24:30,2018-02-14 08:08:10,2018-07-03 18:15:44
-965,Zackariah,Donaway,407-803-4328,Male,1,89,1,2018-07-08 18:27:27,2018-03-04 22:13:59,2018-12-18 03:57:10,2018-07-07 10:37:23
-966,Amie,Graddon,806-683-2495,Female,7,24,48,2018-08-12 05:59:08,2018-02-02 02:33:10,2018-12-27 15:24:26,2018-09-09 14:21:34
-967,Homere,Hinkes,540-511-8058,Male,2,18,21,2018-02-15 19:40:23,2018-03-12 20:21:06,2018-07-24 20:35:51,2018-11-05 01:00:48
-968,Hildy,Romaint,578-715-3279,Female,1,64,42,2018-08-05 12:04:55,2018-10-30 20:39:13,2018-11-01 10:01:51,2018-10-13 16:01:35
-969,Norbie,Reinhardt,522-463-8856,Male,6,73,39,2018-12-26 16:31:22,2018-05-04 07:05:54,2018-11-01 19:36:06,2018-08-22 23:10:40
-970,Farlee,Robb,921-988-0129,Male,2,92,32,2018-09-25 21:50:48,2018-01-29 06:17:06,2018-12-05 20:31:07,2018-10-13 17:19:53
-971,Husain,Coomes,167-999-0871,Male,7,43,13,2018-06-22 13:30:21,2018-10-26 10:44:10,2019-01-18 20:06:38,2018-12-02 03:52:12
-972,Milo,Ikringill,848-791-7005,Male,6,93,81,2018-04-23 10:40:56,2018-11-16 14:25:18,2018-05-08 11:02:49,2018-09-27 02:14:23
-973,Bendite,Ivan,797-480-5441,Female,4,19,47,2018-03-24 15:48:07,2019-01-18 21:56:06,2018-12-06 11:16:03,2018-03-11 17:19:09
-974,Dall,Hewson,361-271-3138,Male,7,51,12,2018-12-01 16:04:22,2018-07-19 15:52:08,2018-11-26 22:45:09,2018-02-12 13:20:52
-975,Alfonse,Paddell,215-108-6430,Male,3,67,39,2018-07-20 13:46:01,2019-01-09 15:28:08,2018-05-15 18:34:09,2018-09-24 12:02:27
-976,Rachelle,Parysowna,448-408-3939,Female,6,75,37,2019-01-08 01:40:17,2019-01-14 14:50:14,2018-09-08 20:13:56,2018-08-26 17:34:13
-977,Vlad,Massimo,958-382-7108,Male,6,83,50,2019-01-10 14:14:56,2018-04-03 09:05:13,2018-07-12 05:33:43,2018-08-03 07:52:29
-978,Orran,Labarre,603-601-4448,Male,1,62,88,2018-08-02 15:34:45,2018-11-25 10:40:27,2018-02-25 06:26:19,2018-08-02 08:35:57
-979,Goldi,McGaw,418-474-0723,Female,4,92,65,2018-03-02 17:07:20,2018-03-04 17:41:59,2018-08-24 13:07:56,2018-11-04 17:29:39
-980,Ddene,O'Halloran,269-505-5567,Female,5,40,82,2018-07-19 04:42:22,2018-10-21 20:43:40,2018-05-31 18:32:46,2018-05-27 23:48:19
-981,Franciska,Randalston,518-473-9956,Female,2,31,23,2018-08-10 19:43:25,2018-07-27 07:50:34,2018-09-05 22:19:23,2018-07-03 10:32:00
-982,Izak,Aaronson,559-374-9622,Male,3,42,87,2018-08-15 00:25:50,2018-04-15 10:04:12,2018-06-28 14:35:41,2018-01-21 11:06:29
-983,Trey,Battany,836-241-1102,Male,2,15,41,2019-01-10 17:37:08,2018-09-21 17:33:14,2018-10-31 07:41:53,2018-05-02 04:23:23
-984,Monty,Print,851-362-4374,Male,1,72,54,2018-07-29 11:59:40,2018-02-03 04:49:31,2019-01-10 13:05:52,2018-12-15 23:29:32
-985,Ashton,Cunnah,780-629-9147,Male,4,45,20,2018-02-10 13:25:53,2018-12-25 15:32:25,2018-01-23 10:29:44,2018-05-31 16:54:21
-986,Becky,Stavers,700-388-4222,Female,6,10,79,2018-03-04 20:32:59,2018-06-13 23:55:18,2018-06-02 22:41:53,2018-11-04 01:01:48
-987,Udall,Undrell,187-686-5781,Male,3,62,28,2018-07-29 04:00:33,2018-08-10 09:03:52,2018-12-20 19:09:22,2019-01-08 10:29:39
-988,Wait,Kippie,649-986-8035,Male,6,59,99,2018-08-26 01:11:54,2018-11-11 11:43:07,2018-11-26 18:10:23,2018-05-03 06:50:49
-989,Laurence,Dubs,725-348-9456,Male,5,80,78,2018-12-29 16:41:25,2018-03-04 01:25:41,2018-07-24 13:07:42,2018-03-02 01:22:54
-990,Cyrille,Ansley,464-181-4696,Male,7,71,25,2018-10-12 23:36:32,2018-05-18 07:03:48,2018-12-20 18:06:28,2018-09-16 15:37:18
-991,Emory,Manwell,415-640-8797,Male,5,12,56,2018-07-21 03:32:53,2018-11-15 00:05:50,2018-06-11 19:00:20,2018-03-30 06:39:44
-992,Chevalier,Pelosi,210-721-7355,Male,1,3,53,2018-09-10 01:51:52,2018-08-05 09:51:36,2018-07-09 12:50:42,2018-12-20 17:33:50
-993,Vale,Havenhand,885-493-5138,Male,5,37,72,2018-11-01 03:19:32,2018-11-02 06:12:05,2019-01-18 19:09:41,2018-07-29 06:54:36
-994,Shel,Kislingbury,683-829-9112,Female,2,57,75,2018-07-06 02:01:25,2018-11-17 02:11:03,2018-07-20 22:39:14,2018-05-08 16:48:52
-995,Kris,Rodear,296-572-9182,Male,5,24,22,2018-05-21 05:50:41,2018-12-04 14:27:38,2018-09-01 22:26:00,2018-09-05 14:46:56
-996,Jillayne,Mackerel,971-775-5324,Female,4,77,29,2018-08-29 09:36:26,2018-09-18 17:04:42,2018-12-08 03:41:26,2018-11-28 11:52:45
-997,Wilona,Yonnie,985-459-5111,Female,4,36,62,2018-08-07 01:17:54,2018-08-25 03:30:42,2018-02-17 20:26:24,2018-03-09 21:08:39
-998,Herbert,Liver,278-295-4343,Male,1,10,92,2018-04-27 00:14:36,2018-08-27 15:24:57,2018-02-11 18:53:26,2018-05-05 07:57:16
-999,Charmian,Robison,320-515-4401,Female,4,66,52,2018-11-29 19:32:40,2018-09-14 07:10:38,2018-07-04 09:36:16,2018-02-20 20:59:30
-1000,Cad,Alster,344-476-5489,Male,6,50,52,2018-09-12 09:49:44,2018-04-09 17:52:16,2018-12-18 02:15:47,2018-04-22 03:31:11
diff --git a/vitess-mixin/e2e/external_db/mysql/grant.sh b/vitess-mixin/e2e/external_db/mysql/grant.sh
deleted file mode 100755
index 9371377d074..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/grant.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-
-echo '**********GRANTING PRIVILEGES START*******************'
-echo ${mysql[@]}
-# PURGE BINARY LOGS BEFORE DATE(NOW());
-mysql --protocol=socket -uroot -hlocalhost --socket=/var/run/mysqld/mysqld.sock -p$MYSQL_ROOT_PASSWORD -e \
-"GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'"
-echo '*************GRANTING PRIVILEGES END****************'
diff --git a/vitess-mixin/e2e/external_db/mysql/mysql56.cnf b/vitess-mixin/e2e/external_db/mysql/mysql56.cnf
deleted file mode 100644
index fdd34b1bd2e..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/mysql56.cnf
+++ /dev/null
@@ -1,41 +0,0 @@
-[mysqld]
-# Options for enabling GTID
-# https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-howto.html
-gtid_mode = ON
-log_bin
-log_slave_updates
-enforce_gtid_consistency
-
-# Crash-safe replication settings.
-master_info_repository = TABLE
-relay_log_info_repository = TABLE
-relay_log_purge = 1
-relay_log_recovery = 1
-
-# Native AIO tends to run into aio-max-nr limit during test startup.
-innodb_use_native_aio = 0
-
-# Semi-sync replication is required for automated unplanned failover
-# (when the master goes away). Here we just load the plugin so it's
-# available if desired, but it's disabled at startup.
-#
-# VTTablet will enable semi-sync at the proper time when replication is set up,
-# or when a primary is promoted or demoted based on the durability policy configured.
-plugin-load = rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so
-
-# When semi-sync is enabled, don't allow fallback to async
-# if you get no ack, or have no slaves. This is necessary to
-# prevent alternate futures when doing a failover in response to
-# a master that becomes unresponsive.
-rpl_semi_sync_master_timeout = 1000000000000000000
-rpl_semi_sync_master_wait_no_slave = 1
-server-id = 1
-# Remove ONLY_FULL_GROUP_BY until queries are fixed
-sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
-
-general_log = 1
-general_log_file = /var/log/mysql/query.log
-
-slow_query_log = 1
-long_query_time = 1 # seconds
-slow_query_log_file = /var/log/mysql/slow.log
\ No newline at end of file
diff --git a/vitess-mixin/e2e/external_db/mysql/mysql57.cnf b/vitess-mixin/e2e/external_db/mysql/mysql57.cnf
deleted file mode 100644
index ebf301187eb..00000000000
--- a/vitess-mixin/e2e/external_db/mysql/mysql57.cnf
+++ /dev/null
@@ -1,43 +0,0 @@
-# This file is auto-included when MySQL 5.7 is detected.
-
-# MySQL 5.7 does not enable the binary log by default, and
-# info repositories default to file
-[mysqld]
-gtid_mode = ON
-log_slave_updates
-enforce_gtid_consistency
-expire_logs_days = 3
-master_info_repository = TABLE
-relay_log_info_repository = TABLE
-relay_log_purge = 1
-relay_log_recovery = 1
-
-# In MySQL 5.7 the default charset is latin1
-
-character_set_server = utf8
-collation_server = utf8_general_ci
-
-# Semi-sync replication is required for automated unplanned failover
-# (when the master goes away). Here we just load the plugin so it's
-# available if desired, but it's disabled at startup.
-#
-# VTTablet will enable semi-sync at the proper time when replication is set up,
-# or when a primary is promoted or demoted based on the durability policy configured.
-plugin-load = rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so
-
-# When semi-sync is enabled, don't allow fallback to async
-# if you get no ack, or have no slaves. This is necessary to
-# prevent alternate futures when doing a failover in response to
-# a master that becomes unresponsive.
-rpl_semi_sync_master_timeout = 1000000000000000000
-rpl_semi_sync_master_wait_no_slave = 1
-
-## Specific edits for this external_db ##
-log_bin
-server-id = 1
-general_log = 1
-general_log_file = /var/log/mysql/query.log
-
-slow_query_log = 1
-long_query_time = 1 # seconds
-slow_query_log_file = /var/log/mysql/slow.log
diff --git a/vitess-mixin/e2e/externaldb_vreplication.sh b/vitess-mixin/e2e/externaldb_vreplication.sh
deleted file mode 100755
index 1138909aa13..00000000000
--- a/vitess-mixin/e2e/externaldb_vreplication.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/bash
-
-# Copyright 2020 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -ex
-
-VTCTLD_SERVER=${VTCTLD_SERVER:-'vtctld:15999'}
-
-# Wait until source and destination primaries are available
-until (/vt/bin/vtctlclient --server $VTCTLD_SERVER ListAllTablets | grep "ext_" | grep "primary" ); do
- echo 'waiting for external primary..';
- sleep 1;
-done
-
-until (/vt/bin/vtctlclient --server $VTCTLD_SERVER ListAllTablets | grep -v "ext_" | grep "primary" ); do
- echo 'waiting for managed primary..';
- sleep 1;
-done
-
-
-# Get source and destination tablet and shard information
-TABLET_INFO=$(/vt/bin/vtctlclient --server $VTCTLD_SERVER ListAllTablets)
-source_alias=$(echo "$TABLET_INFO "| grep "ext_" | grep "primary" | awk '{ print $1 }')
-dest_alias=$(echo "$TABLET_INFO "| grep -v "ext_" | grep "primary" | awk '{ print $1 }')
-source_keyspace=$(echo "$TABLET_INFO "| grep "ext_" | grep "primary" | awk '{ print $2 }')
-dest_keyspace=$(echo "$TABLET_INFO "| grep -v "ext_" | grep "primary" | awk '{ print $2 }')
-source_shard=$(echo "$TABLET_INFO "| grep "ext_" | grep "primary" | awk '{ print $3 }')
-dest_shard=$(echo "$TABLET_INFO "| grep -v "ext_" | grep "primary" | awk '{ print $3 }')
-source_tablet=$(echo "$TABLET_INFO "| grep "ext_" | grep "primary" | awk '{ print $2 "/" $3}')
-dest_tablet=$(echo "$TABLET_INFO "| grep -v "ext_" | grep "primary" | awk '{ print $2 "/" $3}')
-
-
-# Disable foreign_key checks on destination
-/vt/bin/vtctlclient --server $VTCTLD_SERVER ExecuteFetchAsDba $dest_alias 'SET GLOBAL FOREIGN_KEY_CHECKS=0;'
-
-# Get source_sql mode
-source_sql_mode=$(/vt/bin/vtctlclient --server $VTCTLD_SERVER ExecuteFetchAsDba $source_alias 'SELECT @@GLOBAL.sql_mode' | awk 'NR==4 {print $2}')
-
-# Apply source sql_mode to destination
-# The intention is to avoid replication errors
-/vt/bin/vtctlclient --server $VTCTLD_SERVER ExecuteFetchAsDba $dest_alias "SET GLOBAL sql_mode='$source_sql_mode';"
-
-# Verify sql_mode matches
-[ $source_sql_mode == $(/vt/bin/vtctlclient --server $VTCTLD_SERVER ExecuteFetchAsDba $dest_alias 'SELECT @@GLOBAL.sql_mode' | awk 'NR==4 {print $2}') ] && \
-echo "Source and Destination sql_mode Match." || echo "sql_mode MisMatch"
-
-until /vt/bin/vtctlclient --server $VTCTLD_SERVER GetSchema $dest_alias; do
- echo "Waiting for destination schema to be ready..";
- sleep 3;
-done
-
-# Copy schema from source to destination shard
-/vt/bin/vtctlclient --server $VTCTLD_SERVER CopySchemaShard $source_tablet $dest_tablet || true
-
-# Verify schema
-/vt/bin/vtctlclient --server $VTCTLD_SERVER GetSchema $dest_alias
-
-# Start vreplication
-/vt/bin/vtctlclient --server $VTCTLD_SERVER VReplicationExec $dest_alias 'insert into _vt.vreplication (db_name, source, pos, max_tps, max_replication_lag, tablet_types, time_updated, transaction_timestamp, state) values('"'"''"$dest_keyspace"''"'"', '"'"'keyspace:\"'"$source_keyspace"'\" shard:\"'"$source_shard"'\" filter: > on_ddl:EXEC_IGNORE '"'"', '"'"''"'"', 9999, 9999, '"'"'primary'"'"', 0, 0, '"'"'Running'"'"')'
-
-# Check vreplication status
-/vt/bin/vtctlclient --server $VTCTLD_SERVER VReplicationExec $dest_alias 'select * from _vt.vreplication'
-
diff --git a/vitess-mixin/e2e/fix_replication.sh b/vitess-mixin/e2e/fix_replication.sh
deleted file mode 100755
index e6a06c71124..00000000000
--- a/vitess-mixin/e2e/fix_replication.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This is a helper script to sync replicas for mysql.
-# It handles the special case where the primary has purged bin logs that the replica requires.
-# To use it place a mysql dump of the database on the same directory as this script.
-# The name of the dump must be $KEYSPACE.sql. The script can also download the mysqldump for you.
-# Replication is fixed by restoring the mysqldump and resetting the replica.
-# https://dev.mysql.com/doc/refman/5.7/en/replication-mode-change-online-disable-gtids.html
-# https://www.percona.com/blog/2013/02/08/how-to-createrestore-a-slave-using-gtid-replication-in-mysql-5-6/
-
-cd "$(dirname "${BASH_SOURCE[0]}")"
-
-function get_replication_status() {
- # Get replica status
- STATUS_LINE=$(mysql -u$DB_USER -p$DB_PASS -h 127.0.0.1 -e "SHOW SLAVE STATUS\G")
- LAST_ERRNO=$(grep "Last_IO_Errno:" <<< "$STATUS_LINE" | awk '{ print $2 }')
- SLAVE_SQL_RUNNING=$(grep "Slave_SQL_Running:" <<< "$STATUS_LINE" | awk '{ print $2 }')
- SLAVE_IO_RUNNING=$(grep "Slave_IO_Running:" <<< "$STATUS_LINE" | awk '{ print $2 }')
- MASTER_HOST=$(grep "Master_Host:" <<< "$STATUS_LINE" | awk '{ print $2 }')
- MASTER_PORT=$(grep "Master_Port:" <<< "$STATUS_LINE" | awk '{ print $2 }')
-
- echo "Slave_SQL_Running: $SLAVE_SQL_RUNNING"
- echo "Slave_IO_Running: $SLAVE_IO_RUNNING"
- echo "Last_IO_Errno: $LAST_ERRNO"
-}
-
-function reset_replication() {
- # Necessary before sql file can be imported
- echo "Importing MysqlDump: $KEYSPACE.sql"
- mysql -u$DB_USER -p$DB_PASS -h 127.0.0.1 -e "RESET MASTER;STOP SLAVE;CHANGE MASTER TO MASTER_AUTO_POSITION = 0;source $KEYSPACE.sql;START SLAVE;"
- # Restore Master Auto Position
- echo "Restoring Master Auto Setting"
- mysql -u$DB_USER -p$DB_PASS -h 127.0.0.1 -e "STOP SLAVE;CHANGE MASTER TO MASTER_AUTO_POSITION = 1;START SLAVE;"
-}
-
-# Retrieve replication status
-get_replication_status
-
-# Exit script if called with argument 'status'
-[ ${1:-''} != 'status' ] || exit 0;
-
-# Check if SLAVE_IO is running
-if [[ $SLAVE_IO_RUNNING = "No" && $LAST_ERRNO = 1236 ]]; then
-
- echo "Primary has purged bin logs that replica requires. Sync will require restore from mysqldump"
- if [[ -f $KEYSPACE.sql ]] ; then
- echo "mysqldump file $KEYSPACE.sql exists, attempting to restore.."
- echo "Resetting replication.."
- reset_replication
- else
- echo "Starting mysqldump. This may take a while.."
- # Modify flags to user's requirements
- if mysqldump -h $MASTER_HOST -P $MASTER_PORT -u$DB_USER -p$DB_PASS --databases $KEYSPACE \
- --triggers --routines --events --hex-blob --master-data=1 --quick --order-by-primary \
- --no-autocommit --skip-comments --skip-add-drop-table --skip-add-locks \
- --skip-disable-keys --single-transaction --set-gtid-purged=on --verbose > $KEYSPACE.sql; then
- echo "mysqldump complete for database $KEYSPACE"
- echo "Resetting replication.."
- reset_replication
- else
- echo "mysqldump failed for database $KEYSPACE"
- fi
- fi
-
-else
-
- echo "No Actions to perform"
-
-fi
diff --git a/vitess-mixin/e2e/grafana/provisioning/dashboards/dashboard.yml b/vitess-mixin/e2e/grafana/provisioning/dashboards/dashboard.yml
deleted file mode 100644
index edfcd4f2271..00000000000
--- a/vitess-mixin/e2e/grafana/provisioning/dashboards/dashboard.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-apiVersion: 1
-
-providers:
-- name: 'Vitess Mixin'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- editable: true
- options:
- path: /etc/grafana/provisioning/dashboards
\ No newline at end of file
diff --git a/vitess-mixin/e2e/grafana/provisioning/datasources/datasource.yml b/vitess-mixin/e2e/grafana/provisioning/datasources/datasource.yml
deleted file mode 100644
index a2140b8834e..00000000000
--- a/vitess-mixin/e2e/grafana/provisioning/datasources/datasource.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-apiVersion: 1
-
-deleteDatasources:
- - name: Prometheus
- orgId: 1
-
-datasources:
-
-- name: Prometheus
- type: prometheus
- access: proxy
- orgId: 1
- url: http://prometheus:9090
- user:
- database:
- basicAuth: false
- basicAuthUser:
- basicAuthPassword:
- withCredentials:
- isDefault: true
- version: 1
- editable: true
\ No newline at end of file
diff --git a/vitess-mixin/e2e/lfixrepl.sh b/vitess-mixin/e2e/lfixrepl.sh
deleted file mode 100755
index bd3e5646019..00000000000
--- a/vitess-mixin/e2e/lfixrepl.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Enable tty for Windows users using git-bash or cygwin
-if [[ "$OSTYPE" == "msys" ]]; then
- # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
- tty=winpty
- script=//script//fix_replication.sh
-fi
-
-# This is a convenience script to fix replication on replicas.
-exec $tty docker-compose exec ${CS:-vttablet2} ${script:-/script/fix_replication.sh} "$@"
\ No newline at end of file
diff --git a/vitess-mixin/e2e/lmysql.sh b/vitess-mixin/e2e/lmysql.sh
deleted file mode 100755
index d735e3783a8..00000000000
--- a/vitess-mixin/e2e/lmysql.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Enable tty for Windows users using git-bash or cygwin
-if [[ "$OSTYPE" == "msys" ]]; then
- # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
- tty=winpty
-fi
-
-# This is a convenience script to run mysql client against the local example.
-exec $tty docker-compose exec ${CS:-vttablet101} mysql "$@"
diff --git a/vitess-mixin/e2e/load_test.sql b/vitess-mixin/e2e/load_test.sql
deleted file mode 100644
index 71e7d805386..00000000000
--- a/vitess-mixin/e2e/load_test.sql
+++ /dev/null
@@ -1,46 +0,0 @@
--- INSERT TEST DATA
--- mysql --port=15306 --host=127.0.0.1 < load_test.sql
--- SIMULATED QUERIES
--- mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=test_keyspace:80-@primary --query="SELECT * FROM messages;"
--- mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=test_keyspace:80-@replica --query="SELECT * FROM messages;"
--- mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=lookup_keyspace:-@primary --query="SELECT * FROM messages_message_lookup;"
--- mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=lookup_keyspace:-@replica --query="SELECT * FROM messages_message_lookup;"
--- SIMULATED ERRORS
--- ╰─$ mysqlslap --port=15306 --host=127.0.0.1 --iterations=10000 --create-schema=test_keyspace:80-@primary --query="SELECT name FROM messages;"
--- ╰─$ mysqlslap --port=15306 --host=127.0.0.1 --iterations=10000 --create-schema=lookup_keyspace:-@replica --query="SELECT name FROM messages_message_lookup;"
-
-USE test_keyspace:80-@primary;
-INSERT INTO messages (page,time_created_ns,message) VALUES
-(1,1,'test'),
-(2,2,'test'),
-(3,3,'test'),
-(4,4,'test'),
-(5,5,'test'),
-(6,6,'test'),
-(7,7,'test'),
-(8,8,'test'),
-(9,9,'test');
-
-USE test_keyspace:-80@primary;
-INSERT INTO messages (page,time_created_ns,message) VALUES
-(10,1,'test'),
-(11,2,'test'),
-(12,3,'test'),
-(13,4,'test'),
-(14,5,'test'),
-(15,6,'test'),
-(16,7,'test'),
-(17,8,'test'),
-(18,9,'test');
-
-USE lookup_keyspace:-@primary;
-INSERT INTO messages_message_lookup (id,page,message) VALUES
-(1,1,'test'),
-(2,2,'test'),
-(3,3,'test'),
-(4,4,'test'),
-(5,5,'test'),
-(6,6,'test'),
-(7,7,'test'),
-(8,8,'test'),
-(9,9,'test');
diff --git a/vitess-mixin/e2e/lookup_keyspace_vschema.json b/vitess-mixin/e2e/lookup_keyspace_vschema.json
deleted file mode 100644
index f67289821fe..00000000000
--- a/vitess-mixin/e2e/lookup_keyspace_vschema.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "sharded": true,
- "tables": {
- "messages_message_lookup": {
- "column_vindexes": [
- {
- "column": "id",
- "name": "hash"
- }
- ]
- },
- "tokens_token_lookup": {
- "column_vindexes": [
- {
- "column": "id",
- "name": "hash"
- }
- ]
- }
- },
- "vindexes": {
- "hash": {
- "type": "hash"
- }
- }
-}
\ No newline at end of file
diff --git a/vitess-mixin/e2e/lvtctl.sh b/vitess-mixin/e2e/lvtctl.sh
deleted file mode 100755
index 64110743073..00000000000
--- a/vitess-mixin/e2e/lvtctl.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Enable tty for Windows users using git-bash or cygwin
-if [[ "$OSTYPE" == "msys" ]]; then
- # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
- tty=winpty
-fi
-
-# This is a convenience script to run vtctlclient against the local example.
-exec $tty docker-compose exec ${CS:-vtctld} vtctlclient -server vtctld:15999 "$@"
diff --git a/vitess-mixin/e2e/package-lock.json b/vitess-mixin/e2e/package-lock.json
deleted file mode 100644
index d686ef99233..00000000000
--- a/vitess-mixin/e2e/package-lock.json
+++ /dev/null
@@ -1,1483 +0,0 @@
-{
- "requires": true,
- "lockfileVersion": 1,
- "dependencies": {
- "@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true,
- "optional": true
- },
- "@cypress/request": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
- "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "http-signature": "~1.3.6",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "performance-now": "^2.1.0",
- "qs": "6.10.4",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "^4.1.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^8.3.2"
- }
- },
- "@cypress/xvfb": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
- "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
- "dev": true,
- "requires": {
- "debug": "^3.1.0",
- "lodash.once": "^4.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "@types/node": {
- "version": "18.17.17",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.17.tgz",
- "integrity": "sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw==",
- "dev": true
- },
- "@types/sinonjs__fake-timers": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
- "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
- "dev": true
- },
- "@types/sizzle": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
- "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==",
- "dev": true
- },
- "@types/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
- "dev": true,
- "optional": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
- "ansi-colors": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
- "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
- "dev": true
- },
- "ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.21.3"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "arch": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
- "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
- "dev": true
- },
- "asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true
- },
- "astral-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "dev": true
- },
- "async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true
- },
- "aws4": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
- "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "blob-util": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
- "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
- "dev": true
- },
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true
- },
- "cachedir": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz",
- "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
- "dev": true
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "check-more-types": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
- "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==",
- "dev": true
- },
- "ci-info": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
- "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
- "dev": true
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "requires": {
- "restore-cursor": "^3.1.0"
- }
- },
- "cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
- "dev": true,
- "requires": {
- "@colors/colors": "1.5.0",
- "string-width": "^4.2.0"
- }
- },
- "cli-truncate": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
- "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
- "dev": true,
- "requires": {
- "slice-ansi": "^3.0.0",
- "string-width": "^4.2.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true
- },
- "common-tags": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
- "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "cypress": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.2.0.tgz",
- "integrity": "sha512-AvDQxBydE771GTq0TR4ZUBvv9m9ffXuB/ueEtpDF/6gOcvFR96amgwSJP16Yhqw6VhmwqspT5nAGzoxxB+D89g==",
- "dev": true,
- "requires": {
- "@cypress/request": "^3.0.0",
- "@cypress/xvfb": "^1.2.4",
- "@types/node": "^18.17.5",
- "@types/sinonjs__fake-timers": "8.1.1",
- "@types/sizzle": "^2.3.2",
- "arch": "^2.2.0",
- "blob-util": "^2.0.2",
- "bluebird": "^3.7.2",
- "buffer": "^5.6.0",
- "cachedir": "^2.3.0",
- "chalk": "^4.1.0",
- "check-more-types": "^2.24.0",
- "cli-cursor": "^3.1.0",
- "cli-table3": "~0.6.1",
- "commander": "^6.2.1",
- "common-tags": "^1.8.0",
- "dayjs": "^1.10.4",
- "debug": "^4.3.4",
- "enquirer": "^2.3.6",
- "eventemitter2": "6.4.7",
- "execa": "4.1.0",
- "executable": "^4.1.1",
- "extract-zip": "2.0.1",
- "figures": "^3.2.0",
- "fs-extra": "^9.1.0",
- "getos": "^3.2.1",
- "is-ci": "^3.0.0",
- "is-installed-globally": "~0.4.0",
- "lazy-ass": "^1.6.0",
- "listr2": "^3.8.3",
- "lodash": "^4.17.21",
- "log-symbols": "^4.0.0",
- "minimist": "^1.2.8",
- "ospath": "^1.2.2",
- "pretty-bytes": "^5.6.0",
- "process": "^0.11.10",
- "proxy-from-env": "1.0.0",
- "request-progress": "^3.0.0",
- "semver": "^7.5.3",
- "supports-color": "^8.1.1",
- "tmp": "~0.2.1",
- "untildify": "^4.0.0",
- "yauzl": "^2.10.0"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "dayjs": {
- "version": "1.11.10",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
- "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==",
- "dev": true
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "requires": {
- "once": "^1.4.0"
- }
- },
- "enquirer": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
- "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
- "dev": true,
- "requires": {
- "ansi-colors": "^4.1.1",
- "strip-ansi": "^6.0.1"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "eventemitter2": {
- "version": "6.4.7",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
- "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
- "dev": true
- },
- "execa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
- "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.0",
- "get-stream": "^5.0.0",
- "human-signals": "^1.1.1",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.0",
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2",
- "strip-final-newline": "^2.0.0"
- }
- },
- "executable": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
- "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
- "dev": true,
- "requires": {
- "pify": "^2.2.0"
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "extract-zip": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
- "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
- "dev": true,
- "requires": {
- "@types/yauzl": "^2.9.1",
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- }
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "dev": true
- },
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "dev": true,
- "requires": {
- "pend": "~1.2.0"
- }
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true
- },
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dev": true,
- "requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "dependencies": {
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- }
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- }
- },
- "get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "getos": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
- "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
- "dev": true,
- "requires": {
- "async": "^3.2.0"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "global-dirs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
- "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
- "dev": true,
- "requires": {
- "ini": "2.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "dev": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
- },
- "http-signature": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
- "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^2.0.2",
- "sshpk": "^1.14.1"
- }
- },
- "human-signals": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
- "dev": true
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "dev": true
- },
- "is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "dev": true,
- "requires": {
- "ci-info": "^3.2.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "dev": true,
- "requires": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- }
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- },
- "dependencies": {
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- }
- }
- },
- "jsprim": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
- "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- }
- },
- "lazy-ass": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
- "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==",
- "dev": true
- },
- "listr2": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
- "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
- "dev": true,
- "requires": {
- "cli-truncate": "^2.1.0",
- "colorette": "^2.0.16",
- "log-update": "^4.0.0",
- "p-map": "^4.0.0",
- "rfdc": "^1.3.0",
- "rxjs": "^7.5.1",
- "through": "^2.3.8",
- "wrap-ansi": "^7.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
- "dev": true
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- }
- },
- "log-update": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
- "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.3.0",
- "cli-cursor": "^3.1.0",
- "slice-ansi": "^4.0.0",
- "wrap-ansi": "^6.2.0"
- },
- "dependencies": {
- "slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "ospath": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
- "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==",
- "dev": true
- },
- "p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true
- },
- "pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true
- },
- "proxy-from-env": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
- "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
- "dev": true
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "dev": true
- },
- "qs": {
- "version": "6.10.4",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz",
- "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
- "dev": true,
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true
- },
- "request-progress": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
- "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
- "dev": true,
- "requires": {
- "throttleit": "^1.0.0"
- }
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
- "restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "requires": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- }
- },
- "rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dev": true,
- "requires": {
- "tslib": "^2.1.0"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "slice-ansi": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
- "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- }
- },
- "sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "throttleit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
- "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "requires": {
- "rimraf": "^3.0.0"
- }
- },
- "tough-cookie": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
- "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
- "dev": true,
- "requires": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- }
- },
- "tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true
- },
- "universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true
- },
- "untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true
- },
- "url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "requires": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- }
- }
-}
diff --git a/vitess-mixin/e2e/package.json b/vitess-mixin/e2e/package.json
deleted file mode 100644
index ccc95ba93b0..00000000000
--- a/vitess-mixin/e2e/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "license": "Apache-2.0",
- "devDependencies": {
- "cypress": "^13.2.0"
- }
-}
diff --git a/vitess-mixin/e2e/prometheus/prometheus.yml b/vitess-mixin/e2e/prometheus/prometheus.yml
deleted file mode 100644
index bd8fe98dfa7..00000000000
--- a/vitess-mixin/e2e/prometheus/prometheus.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-global:
- scrape_interval: 5s
- scrape_timeout: 2s
-
-rule_files:
- - prometheus_rules.yaml
-
-scrape_configs:
- - job_name: vitess-vtctld
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'vtctld:8080'
- - job_name: vitess-vtgate
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'vtgate:8080'
- - job_name: vitess-vttablet
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'vttablet101:8080'
- - 'vttablet102:8080'
- - 'vttablet201:8080'
- - 'vttablet202:8080'
- - 'vttablet301:8080'
- - 'vttablet302:8080'
- # Mock mysql exporter for vttablet
- - job_name: mysql
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'mysqld_exporter:9104'
- metric_relabel_configs:
- - source_labels: [ instance ]
- target_label: instance
- action: replace
- replacement: vttablet101:8080
- # Mock node exporter for vtgate
- - job_name: node-exporter-vitess-vtgate
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'node-exporter:9100'
- metric_relabel_configs:
- - source_labels: [ instance ]
- target_label: instance
- action: replace
- replacement: vtgate:8080
- # Mock node exporter for vttablet
- - job_name: node-exporter-vitess-vttablet
- metrics_path: /metrics
- static_configs:
- - targets:
- - 'node-exporter:9100'
- metric_relabel_configs:
- - source_labels: [ instance ]
- target_label: instance
- action: replace
- replacement: vttablet101:8080
diff --git a/vitess-mixin/e2e/run-forever.sh b/vitess-mixin/e2e/run-forever.sh
deleted file mode 100755
index 51e511be77a..00000000000
--- a/vitess-mixin/e2e/run-forever.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-while true
-do
- $@
- sleep 2
-done
diff --git a/vitess-mixin/e2e/schemaload.sh b/vitess-mixin/e2e/schemaload.sh
deleted file mode 100755
index b8f13ee8812..00000000000
--- a/vitess-mixin/e2e/schemaload.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash -e
-
-# Copyright 2020 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-sleeptime=${SLEEPTIME:-0}
-targettab=${TARGETTAB:-"${CELL}-0000000101"}
-schema_files=${SCHEMA_FILES:-'create_messages.sql create_tokens.sql create'}
-vschema_file=${VSCHEMA_FILE:-'default_vschema.json'}
-load_file=${POST_LOAD_FILE:-''}
-external_db=${EXTERNAL_DB:-'0'}
-export PATH=/vt/bin:$PATH
-
-sleep $sleeptime
-
-if [ ! -f schema_run ]; then
- while true; do
- vtctlclient -server vtctld:$GRPC_PORT GetTablet $targettab && break
- sleep 1
- done
- if [ "$external_db" = "0" ]; then
- for schema_file in $schema_files; do
- echo "Applying Schema ${schema_file} to ${KEYSPACE}"
- vtctlclient -server vtctld:$GRPC_PORT ApplySchema -sql-file /script/tables/${schema_file} $KEYSPACE || \
- vtctlclient -server vtctld:$GRPC_PORT ApplySchema -sql "$(cat /script/tables/${schema_file})" $KEYSPACE || true
- done
- fi
- echo "Applying VSchema ${vschema_file} to ${KEYSPACE}"
-
- vtctlclient -server vtctld:$GRPC_PORT ApplyVSchema -vschema_file /script/${vschema_file} $KEYSPACE || \
- vtctlclient -server vtctld:$GRPC_PORT ApplyVSchema -vschema "$(cat /script/${vschema_file})" $KEYSPACE
-
- echo "List All Tablets"
- vtctlclient -server vtctld:$GRPC_PORT ListAllTablets
-
- if [ -n "$load_file" ]; then
- # vtgate can take a REALLY long time to come up fully
- sleep 60
- mysql --port=15306 --host=vtgate < /script/$load_file
- fi
-
- touch /vt/schema_run
- echo "Time: $(date). SchemaLoad completed at $(date "+%FT%T") " >> /vt/schema_run
- echo "Done Loading Schema at $(date "+%FT%T")"
-fi
diff --git a/vitess-mixin/e2e/tables/create_dinosaurs.sql b/vitess-mixin/e2e/tables/create_dinosaurs.sql
deleted file mode 100644
index ee9a5b624da..00000000000
--- a/vitess-mixin/e2e/tables/create_dinosaurs.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-CREATE TABLE dinosaurs (
- id BIGINT UNSIGNED,
- time_created_ns BIGINT UNSIGNED,
- name VARCHAR(255),
- PRIMARY KEY (id)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/create_eggs.sql b/vitess-mixin/e2e/tables/create_eggs.sql
deleted file mode 100644
index 7e74c50b5a1..00000000000
--- a/vitess-mixin/e2e/tables/create_eggs.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-CREATE TABLE eggs (
- id BIGINT UNSIGNED,
- time_created_ns BIGINT UNSIGNED,
- species VARCHAR(255),
- PRIMARY KEY (id)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/create_messages.sql b/vitess-mixin/e2e/tables/create_messages.sql
deleted file mode 100644
index 44c4cc16e87..00000000000
--- a/vitess-mixin/e2e/tables/create_messages.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-CREATE TABLE messages (
- page BIGINT(20) UNSIGNED,
- time_created_ns BIGINT(20) UNSIGNED,
- message VARCHAR(10000),
- PRIMARY KEY (page, time_created_ns)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/create_messages_message_lookup.sql b/vitess-mixin/e2e/tables/create_messages_message_lookup.sql
deleted file mode 100644
index 1eb667dac93..00000000000
--- a/vitess-mixin/e2e/tables/create_messages_message_lookup.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE TABLE messages_message_lookup (
- id BIGINT NOT NULL AUTO_INCREMENT,
- page BIGINT UNSIGNED,
- message VARCHAR(1000),
- PRIMARY KEY (id),
- UNIQUE KEY idx_message_page (`message`, `page`)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/create_tokens.sql b/vitess-mixin/e2e/tables/create_tokens.sql
deleted file mode 100644
index 69f1be03dec..00000000000
--- a/vitess-mixin/e2e/tables/create_tokens.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-CREATE TABLE tokens (
- page BIGINT(20) UNSIGNED,
- time_created_ns BIGINT(20) UNSIGNED,
- token VARCHAR(255) DEFAULT NULL,
- PRIMARY KEY (page, time_created_ns)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/create_tokens_token_lookup.sql b/vitess-mixin/e2e/tables/create_tokens_token_lookup.sql
deleted file mode 100644
index d3208fdfc41..00000000000
--- a/vitess-mixin/e2e/tables/create_tokens_token_lookup.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE TABLE tokens_token_lookup (
- id BIGINT NOT NULL AUTO_INCREMENT,
- page BIGINT UNSIGNED,
- token VARCHAR(255) DEFAULT NULL,
- PRIMARY KEY (id),
- UNIQUE KEY idx_token_page (`token`, `page`)
-) ENGINE=InnoDB;
\ No newline at end of file
diff --git a/vitess-mixin/e2e/tables/lookup_keyspace_schema_file.sql b/vitess-mixin/e2e/tables/lookup_keyspace_schema_file.sql
deleted file mode 100644
index e9c66144176..00000000000
--- a/vitess-mixin/e2e/tables/lookup_keyspace_schema_file.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-CREATE TABLE tokens_token_lookup (
- id BIGINT NOT NULL AUTO_INCREMENT,
- page BIGINT UNSIGNED,
- token VARCHAR(255) DEFAULT NULL,
- PRIMARY KEY (id),
- UNIQUE KEY idx_token_page (`token`, `page`)
-) ENGINE=InnoDB;
-
-CREATE TABLE messages_message_lookup (
- id BIGINT NOT NULL AUTO_INCREMENT,
- page BIGINT UNSIGNED,
- message VARCHAR(1000),
- PRIMARY KEY (id),
- UNIQUE KEY idx_message_page (`message`, `page`)
-) ENGINE=InnoDB;
-
diff --git a/vitess-mixin/e2e/tables/test_keyspace_schema_file.sql b/vitess-mixin/e2e/tables/test_keyspace_schema_file.sql
deleted file mode 100644
index b049e4ef211..00000000000
--- a/vitess-mixin/e2e/tables/test_keyspace_schema_file.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-CREATE TABLE messages (
- page BIGINT(20) UNSIGNED,
- time_created_ns BIGINT(20) UNSIGNED,
- message VARCHAR(10000),
- PRIMARY KEY (page, time_created_ns)
-) ENGINE=InnoDB;
-
-CREATE TABLE tokens (
- page BIGINT(20) UNSIGNED,
- time_created_ns BIGINT(20) UNSIGNED,
- token VARCHAR(255) DEFAULT NULL,
- PRIMARY KEY (page, time_created_ns)
-) ENGINE=InnoDB;
-
diff --git a/vitess-mixin/e2e/tablet.yml b/vitess-mixin/e2e/tablet.yml
deleted file mode 100644
index 86cc8316a41..00000000000
--- a/vitess-mixin/e2e/tablet.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-externalConnections:
- erpl:
- flavor: FilePos
- host: external_db_host
- port: 3306
- dbName: commerce
- app:
- user: external_db_user
- password: external_db_password
- dba:
- user: external_db_user
- password: external_db_password
- filtered:
- user: external_db_user
- password: external_db_password
- repl:
- user: external_db_user
- password: external_db_password
- appdebug:
- user: external_db_user
- password: external_db_password
- allprivs:
- user: external_db_user
- password: external_db_password
\ No newline at end of file
diff --git a/vitess-mixin/e2e/test_keyspace_vschema.json b/vitess-mixin/e2e/test_keyspace_vschema.json
deleted file mode 100644
index 55d0df96204..00000000000
--- a/vitess-mixin/e2e/test_keyspace_vschema.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "sharded": true,
- "tables": {
- "messages": {
- "column_vindexes": [
- {
- "column": "page",
- "name": "hash"
- },
- {
- "column": "message",
- "name": "messages_message_lookup"
- }
- ]
- },
- "tokens": {
- "column_vindexes": [
- {
- "column": "page",
- "name": "hash"
- },
- {
- "column": "token",
- "name": "tokens_token_lookup"
- }
- ]
- }
- },
- "vindexes": {
- "hash": {
- "type": "hash"
- },
- "messages_message_lookup": {
- "type": "lookup_hash",
- "params": {
- "table": "lookup_keyspace.messages_message_lookup",
- "from": "message",
- "to": "page",
- "autocommit": "true"
- },
- "owner": "messages"
- },
- "tokens_token_lookup": {
- "type": "lookup_hash",
- "params": {
- "table": "lookup_keyspace.tokens_token_lookup",
- "from": "token",
- "to": "page",
- "autocommit": "true"
- },
- "owner": "tokens"
- }
- }
-}
\ No newline at end of file
diff --git a/vitess-mixin/e2e/vtcompose/base_vschema.json b/vitess-mixin/e2e/vtcompose/base_vschema.json
deleted file mode 100644
index b867400e5ee..00000000000
--- a/vitess-mixin/e2e/vtcompose/base_vschema.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "sharded": true,
- "vindexes": {
- "hash": {
- "type": "hash"
- }
- },
- "tables": {
- }
-}
diff --git a/vitess-mixin/e2e/vtcompose/docker-compose.base.yml b/vitess-mixin/e2e/vtcompose/docker-compose.base.yml
deleted file mode 100644
index 2f2fbc12c70..00000000000
--- a/vitess-mixin/e2e/vtcompose/docker-compose.base.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-version: "2.1"
-services:
- consul1:
- image: consul:latest
- hostname: "consul1"
- ports:
- - "8400:8400"
- - "8500:8500"
- - "8600:8600"
- command: "agent -server -bootstrap-expect 3 -ui -disable-host-node-id -client 0.0.0.0"
- consul2:
- image: consul:latest
- hostname: "consul2"
- expose:
- - "8400"
- - "8500"
- - "8600"
- command: "agent -server -retry-join consul1 -disable-host-node-id"
- depends_on:
- - consul1
- consul3:
- image: consul:latest
- hostname: "consul3"
- expose:
- - "8400"
- - "8500"
- - "8600"
- command: "agent -server -retry-join consul1 -disable-host-node-id"
- depends_on:
- - consul1
- # This is a convenience container to quickly test vitess against an external database.
- # In practice you will point Vitess to your existing database and migrate to a Vitess managed cluster.
- external_db_host:
- build:
- context: ./external_db/mysql
- dockerfile: Dockerfile
- restart: always
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-pass}
- MYSQL_DATABASE: ${DB:-commerce}
- MYSQL_USER: ${DB_USER:-external_db_user}
- MYSQL_PASSWORD: ${DB_PASS:-external_db_password}
- volumes:
- - ./external_db/mysql/:/docker-entrypoint-initdb.d/
- - ./external_db/mysql/log:/var/log/mysql
- command:
- - --server-id=1
- - --log-bin=mysql-bin
- - --gtid_mode=ON
- - --enforce_gtid_consistency
- - --general_log=1
- - --slow_query_log=1
- healthcheck:
- test: "/usr/bin/mysql --user=root --password=$${MYSQL_ROOT_PASSWORD} --execute \"SHOW DATABASES;\""
- timeout: 10s
- retries: 10
- ports:
- - "3306"
\ No newline at end of file
diff --git a/vitess-mixin/e2e/vtcompose/docker-compose.test.yml b/vitess-mixin/e2e/vtcompose/docker-compose.test.yml
deleted file mode 100644
index e6928d73acc..00000000000
--- a/vitess-mixin/e2e/vtcompose/docker-compose.test.yml
+++ /dev/null
@@ -1,303 +0,0 @@
-# This file was generated by running `go run vtcompose/vtcompose.go` with no arguments.
-
-services:
- consul1:
- command: agent -server -bootstrap-expect 3 -ui -disable-host-node-id -client 0.0.0.0
- hostname: consul1
- image: consul:latest
- ports:
- - 8400:8400
- - 8500:8500
- - 8600:8600
- consul2:
- command: agent -server -retry-join consul1 -disable-host-node-id
- depends_on:
- - consul1
- expose:
- - "8400"
- - "8500"
- - "8600"
- hostname: consul2
- image: consul:latest
- consul3:
- command: agent -server -retry-join consul1 -disable-host-node-id
- depends_on:
- - consul1
- expose:
- - "8400"
- - "8500"
- - "8600"
- hostname: consul3
- image: consul:latest
- schemaload_test_keyspace:
- command:
- - sh
- - -c
- - /script/schemaload.sh
- depends_on:
- vttablet101:
- condition: service_healthy
- vttablet201:
- condition: service_healthy
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - TARGETTAB=test-0000000101
- - SLEEPTIME=15
- - VSCHEMA_FILE=test_keyspace_vschema.json
- - SCHEMA_FILES=test_keyspace_schema_file.sql
- - POST_LOAD_FILE=
- - EXTERNAL_DB=0
- image: vitess/lite
- volumes:
- - .:/script
- schemaload_unsharded_keyspace:
- command:
- - sh
- - -c
- - /script/schemaload.sh
- depends_on:
- vttablet301:
- condition: service_healthy
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=unsharded_keyspace
- - TARGETTAB=test-0000000301
- - SLEEPTIME=15
- - VSCHEMA_FILE=unsharded_keyspace_vschema.json
- - SCHEMA_FILES=unsharded_keyspace_schema_file.sql
- - POST_LOAD_FILE=
- - EXTERNAL_DB=0
- image: vitess/lite
- volumes:
- - .:/script
- vtctld:
- command:
- - sh
- - -c
- - ' $$VTROOT/bin/vtctld -topo_implementation consul -topo_global_server_address
- consul1:8500 -topo_global_root vitess/global -cell test ''grpc-vtctl'' -backup_storage_implementation
- file -file_backup_storage_root $$VTDATAROOT/backups -logtostderr=true -port
- 8080 -grpc_port 15999 -pid_file $$VTDATAROOT/tmp/vtctld.pid '
- depends_on:
- - consul1
- - consul2
- - consul3
- image: vitess/lite
- ports:
- - 15000:8080
- - "15999"
- volumes:
- - .:/script
- vtgate:
- command:
- - sh
- - -c
- - '/script/run-forever.sh $$VTROOT/bin/vtgate --topo_implementation consul --topo_global_server_address
- consul1:8500 --topo_global_root vitess/global --logtostderr=true --port 8080 --grpc_port
- 15999 --mysql_server_port 15306 --mysql_auth_server_impl none --cell test --cells_to_watch
- test --tablet_types_to_wait PRIMARY,REPLICA,RDONLY --service_map ''grpc-vtgateservice''
- --pid_file $$VTDATAROOT/tmp/vtgate.pid --normalize_queries=true '
- depends_on:
- - vtctld
- image: vitess/lite
- ports:
- - 15099:8080
- - "15999"
- - 15306:15306
- volumes:
- - .:/script
- vttablet101:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 101
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=-80
- - ROLE=primary
- - VTHOST=vttablet101
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite
- ports:
- - 15101:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet102:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 102
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=-80
- - ROLE=replica
- - VTHOST=vttablet102
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite
- ports:
- - 15102:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet201:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 201
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=80-
- - ROLE=primary
- - VTHOST=vttablet201
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite
- ports:
- - 15201:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet202:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 202
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=test_keyspace
- - SHARD=80-
- - ROLE=replica
- - VTHOST=vttablet202
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite
- ports:
- - 15202:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
- vttablet301:
- command:
- - sh
- - -c
- - /script/vttablet-up.sh 301
- depends_on:
- - vtctld
- environment:
- - TOPOLOGY_FLAGS=-topo_implementation consul -topo_global_server_address consul1:8500
- -topo_global_root vitess/global
- - WEB_PORT=8080
- - GRPC_PORT=15999
- - CELL=test
- - KEYSPACE=unsharded_keyspace
- - SHARD=-
- - ROLE=primary
- - VTHOST=vttablet301
- - EXTERNAL_DB=0
- - DB_PORT=
- - DB_HOST=
- - DB_USER=
- - DB_PASS=
- - DB_CHARSET=
- healthcheck:
- interval: 30s
- retries: 15
- test:
- - CMD-SHELL
- - curl localhost:8080/debug/health
- timeout: 10s
- image: vitess/lite
- ports:
- - 15301:8080
- - "15999"
- - "3306"
- volumes:
- - .:/script
-version: "2.1"
diff --git a/vitess-mixin/e2e/vtcompose/vtcompose.go b/vitess-mixin/e2e/vtcompose/vtcompose.go
deleted file mode 100644
index d272c7330ff..00000000000
--- a/vitess-mixin/e2e/vtcompose/vtcompose.go
+++ /dev/null
@@ -1,857 +0,0 @@
-/*
- * Copyright 2020 The Vitess Authors.
-
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
-
- * http://www.apache.org/licenses/LICENSE-2.0
-
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
- "bytes"
- "encoding/json"
- "flag"
- "fmt"
- "math"
- "os"
- "regexp"
- "strconv"
- "strings"
-
- jsonpatch "github.com/evanphx/json-patch"
- yamlpatch "github.com/krishicks/yaml-patch"
-
- "vitess.io/vitess/go/vt/log"
-)
-
-const (
- DefaultWebPort = 8080
- webPortUsage = "Web port to be used"
- DefaultGrpcPort = 15999
- gRpcPortUsage = "gRPC port to be used"
- DefaultMysqlPort = 15306
- mySqlPortUsage = "mySql port to be used"
- DefaultKeyspaceData = "test_keyspace:2:1:create_messages.sql,create_tokens.sql;unsharded_keyspace:0:0:create_dinosaurs.sql,create_eggs.sql"
- keyspaceDataUsage = "List of keyspace_name/external_db_name:num_of_shards:num_of_replica_tablets:schema_files:lookup_keyspace_name separated by ';'"
- DefaultCell = "test"
- cellUsage = "Vitess Cell name"
- DefaultExternalDbData = ""
- externalDbDataUsage = "List of Data corresponding to external DBs. List of ,,,,, separated by ';'"
- DefaultTopologyFlags = "-topo_implementation consul -topo_global_server_address consul1:8500 -topo_global_root vitess/global"
- topologyFlagsUsage = "Vitess Topology Flags config"
-)
-
-var (
- tabletsUsed = 0
- tablesPath = "tables/"
- baseDockerComposeFile = flag.String("base_yaml", "vtcompose/docker-compose.base.yml", "Starting docker-compose yaml")
- baseVschemaFile = flag.String("base_vschema", "vtcompose/base_vschema.json", "Starting vschema json")
-
- topologyFlags = flag.String("topologyFlags", DefaultTopologyFlags, topologyFlagsUsage)
- webPort = flag.Int("webPort", DefaultWebPort, webPortUsage)
- gRpcPort = flag.Int("gRpcPort", DefaultGrpcPort, gRpcPortUsage)
- mySqlPort = flag.Int("mySqlPort", DefaultMysqlPort, mySqlPortUsage)
- cell = flag.String("cell", DefaultCell, cellUsage)
- keyspaceData = flag.String("keyspaceData", DefaultKeyspaceData, keyspaceDataUsage)
- externalDbData = flag.String("externalDbData", DefaultExternalDbData, externalDbDataUsage)
-)
-
-type vtOptions struct {
- webPort int
- gRpcPort int
- mySqlPort int
- topologyFlags string
- cell string
-}
-
-type keyspaceInfo struct {
- keyspace string
- shards int
- replicaTablets int
- lookupKeyspace string
- useLookups bool
- schemaFile *os.File
- schemaFileNames []string
-}
-
-type externalDbInfo struct {
- dbName string
- dbHost string
- dbPort string
- dbUser string
- dbPass string
- dbCharset string
-}
-
-func newKeyspaceInfo(
- keyspace string,
- shards int,
- replicaTablets int,
- schemaFiles []string,
- lookupKeyspace string,
-) keyspaceInfo {
- k := keyspaceInfo{
- keyspace: keyspace,
- shards: shards,
- replicaTablets: replicaTablets,
- schemaFileNames: schemaFiles,
- lookupKeyspace: lookupKeyspace,
- }
- if len(strings.TrimSpace(lookupKeyspace)) == 0 {
- k.useLookups = false
- } else {
- k.useLookups = true
- }
-
- k.schemaFile = nil
- return k
-}
-
-func newExternalDbInfo(dbName, dbHost, dbPort, dbUser, dbPass, dbCharset string) externalDbInfo {
- return externalDbInfo{
- dbName: dbName,
- dbHost: dbHost,
- dbPort: dbPort,
- dbUser: dbUser,
- dbPass: dbPass,
- dbCharset: dbCharset,
- }
-}
-
-func parseKeyspaceInfo(keyspaceData string) map[string]keyspaceInfo {
- keyspaceInfoMap := make(map[string]keyspaceInfo)
-
- for _, v := range strings.Split(keyspaceData, ";") {
- tokens := strings.Split(v, ":")
- shards, _ := strconv.Atoi(tokens[1])
- replicaTablets, _ := strconv.Atoi(tokens[2])
- schemaFileNames := []string{}
- // Make schemafiles argument optional
- if len(tokens) > 3 {
- f := func(c rune) bool {
- return c == ','
- }
- schemaFileNames = strings.FieldsFunc(tokens[3], f)
- }
-
- if len(tokens) > 4 {
- keyspaceInfoMap[tokens[0]] = newKeyspaceInfo(tokens[0], shards, replicaTablets, schemaFileNames, tokens[4])
- } else {
- keyspaceInfoMap[tokens[0]] = newKeyspaceInfo(tokens[0], shards, replicaTablets, schemaFileNames, "")
- }
- }
-
- return keyspaceInfoMap
-}
-
-func parseExternalDbData(externalDbData string) map[string]externalDbInfo {
- externalDbInfoMap := make(map[string]externalDbInfo)
- for _, v := range strings.Split(externalDbData, ";") {
- tokens := strings.Split(v, ":")
- if len(tokens) > 1 {
- externalDbInfoMap[tokens[0]] =
- newExternalDbInfo(tokens[0], tokens[1], tokens[2], tokens[3], tokens[4], tokens[5])
- }
- }
-
- return externalDbInfoMap
-}
-
-func main() {
- flag.Parse()
- keyspaceInfoMap := parseKeyspaceInfo(*keyspaceData)
- externalDbInfoMap := parseExternalDbData(*externalDbData)
- vtOpts := vtOptions{
- webPort: *webPort,
- gRpcPort: *gRpcPort,
- mySqlPort: *mySqlPort,
- topologyFlags: *topologyFlags,
- cell: *cell,
- }
-
- // Write schemaFile.
- for k, v := range keyspaceInfoMap {
- if _, ok := externalDbInfoMap[k]; !ok {
- v.schemaFile = createFile(fmt.Sprintf("%s%s_schema_file.sql", tablesPath, v.keyspace))
- appendToSqlFile(v.schemaFileNames, v.schemaFile)
- closeFile(v.schemaFile)
- }
- }
-
- // Vschema Patching
- for k, keyspaceData := range keyspaceInfoMap {
- vSchemaFile := readFile(*baseVschemaFile)
- if keyspaceData.shards == 0 {
- vSchemaFile = applyJsonInMemoryPatch(vSchemaFile, `[{"op": "replace","path": "/sharded", "value": false}]`)
- }
-
- // Check if it is an external_db
- if _, ok := externalDbInfoMap[k]; ok {
- //This is no longer necessary, but we'll keep it for reference
- //https://github.com/vitessio/vitess/pull/4868, https://github.com/vitessio/vitess/pull/5010
- //vSchemaFile = applyJsonInMemoryPatch(vSchemaFile,`[{"op": "add","path": "/tables/*", "value": {}}]`)
- } else {
- var primaryTableColumns map[string]string
- vSchemaFile, primaryTableColumns = addTablesVschemaPatch(vSchemaFile, keyspaceData.schemaFileNames)
-
- if keyspaceData.useLookups {
- lookup := keyspaceInfoMap[keyspaceData.lookupKeyspace]
- vSchemaFile = addLookupDataToVschema(vSchemaFile, lookup.schemaFileNames, primaryTableColumns, lookup.keyspace)
- }
- }
-
- writeVschemaFile(vSchemaFile, fmt.Sprintf("%s_vschema.json", keyspaceData.keyspace))
- }
-
- // Docker Compose File Patches
- dockerComposeFile := readFile(*baseDockerComposeFile)
- dockerComposeFile = applyDockerComposePatches(dockerComposeFile, keyspaceInfoMap, externalDbInfoMap, vtOpts)
- writeFile(dockerComposeFile, "docker-compose.yml")
-}
-
-func applyFilePatch(dockerYaml []byte, patchFile string) []byte {
- yamlPatch, err := os.ReadFile(patchFile)
- if err != nil {
- log.Fatalf("reading yaml patch file %s: %s", patchFile, err)
- }
-
- patch, err := yamlpatch.DecodePatch(yamlPatch)
- if err != nil {
- log.Fatalf("decoding patch failed: %s", err)
- }
-
- bs, err := patch.Apply(dockerYaml)
- if err != nil {
- log.Fatalf("applying patch failed: %s", err)
- }
- return bs
-}
-
-func applyJsonInMemoryPatch(vSchemaFile []byte, patchString string) []byte {
- patch, err := jsonpatch.DecodePatch([]byte(patchString))
- if err != nil {
- log.Fatalf("decoding vschema patch failed: %s", err)
- }
-
- modified, err := patch.Apply(vSchemaFile)
- if err != nil {
- log.Fatalf("applying vschema patch failed: %s", err)
- }
- return modified
-}
-
-func applyInMemoryPatch(dockerYaml []byte, patchString string) []byte {
- patch, err := yamlpatch.DecodePatch([]byte(patchString))
- if err != nil {
- log.Fatalf("decoding patch failed: %s", err)
- }
-
- bs, err := patch.Apply(dockerYaml)
- if err != nil {
- log.Fatalf("applying patch failed: %s", err)
- }
- return bs
-}
-
-func createFile(filePath string) *os.File {
- f, err := os.Create(filePath)
- if err != nil {
- log.Fatalf("creating %s %s", filePath, err)
- }
- return f
-}
-
-func readFile(filePath string) []byte {
- file, err := os.ReadFile(filePath)
-
- if err != nil {
- log.Fatalf("reading %s: %s", filePath, err)
- }
-
- return file
-}
-
-func closeFile(file *os.File) {
- err := file.Close()
- if err != nil {
- log.Fatalf("Closing schema_file.sql %s", err)
- }
-}
-
-func handleError(err error) {
- if err != nil {
- log.Fatalf("Error: %s", err)
- }
-}
-
-func appendToSqlFile(schemaFileNames []string, f *os.File) {
- for _, file := range schemaFileNames {
- data, err := os.ReadFile(tablesPath + file)
- if err != nil {
- log.Fatalf("reading %s: %s", tablesPath+file, err)
- }
-
- _, err = f.Write(data)
- handleError(err)
-
- _, err = f.WriteString("\n\n")
- handleError(err)
-
- err = f.Sync()
- handleError(err)
- }
-}
-
-func getTableName(sqlFile string) string {
- sqlFileData, err := os.ReadFile(sqlFile)
- if err != nil {
- log.Fatalf("reading sqlFile file %s: %s", sqlFile, err)
- }
-
- r, _ := regexp.Compile("CREATE TABLE ([a-z_-]*) \\(")
- rs := r.FindStringSubmatch(string(sqlFileData))
- // replace all ` from table name if exists
- return strings.ReplaceAll(rs[1], "`", "")
-}
-
-func getPrimaryKey(sqlFile string) string {
- sqlFileData, err := os.ReadFile(sqlFile)
- if err != nil {
- log.Fatalf("reading sqlFile file %s: %s", sqlFile, err)
- }
-
- r, _ := regexp.Compile("PRIMARY KEY \\((.*)\\).*")
- rs := r.FindStringSubmatch(string(sqlFileData))
-
- return rs[1]
-}
-
-func getKeyColumns(sqlFile string) string {
- sqlFileData, err := os.ReadFile(sqlFile)
- if err != nil {
- log.Fatalf("reading sqlFile file %s: %s", sqlFile, err)
- }
-
- r, _ := regexp.Compile("[^PRIMARY] (KEY|UNIQUE KEY) .*\\((.*)\\).*")
- rs := r.FindStringSubmatch(string(sqlFileData))
- // replace all ` from column names if exists
- return strings.ReplaceAll(rs[2], "`", "")
-}
-
-func addTablesVschemaPatch(vSchemaFile []byte, schemaFileNames []string) ([]byte, map[string]string) {
- indexedColumns := ""
- primaryTableColumns := make(map[string]string)
- for _, fileName := range schemaFileNames {
- tableName := getTableName(tablesPath + fileName)
- indexedColumns = getPrimaryKey(tablesPath + fileName)
- firstColumnName := strings.Split(indexedColumns, ", ")[0]
- vSchemaFile = applyJsonInMemoryPatch(vSchemaFile, generatePrimaryVIndex(tableName, firstColumnName, "hash"))
- primaryTableColumns[tableName] = firstColumnName
- }
-
- return vSchemaFile, primaryTableColumns
-}
-
-func addLookupDataToVschema(
- vSchemaFile []byte,
- schemaFileNames []string,
- primaryTableColumns map[string]string,
- keyspace string,
-) []byte {
- for _, fileName := range schemaFileNames {
- tableName := fileName[7 : len(fileName)-4]
- lookupTableOwner := ""
-
- // Find owner of lookup table
- for primaryTableName := range primaryTableColumns {
- if strings.HasPrefix(tableName, primaryTableName) && len(primaryTableName) > len(lookupTableOwner) {
- lookupTableOwner = primaryTableName
- }
- }
-
- indexedColumns := getKeyColumns(tablesPath + fileName)
- firstColumnName := strings.Split(indexedColumns, ", ")[0]
-
- // Lookup patch under "tables"
- vSchemaFile = applyJsonInMemoryPatch(vSchemaFile, addToColumnVIndexes(lookupTableOwner, firstColumnName, tableName))
-
- // Generate Vschema lookup hash types
- lookupHash := generateVschemaLookupHash(tableName, keyspace, firstColumnName, primaryTableColumns[lookupTableOwner], lookupTableOwner)
- vSchemaFile = applyJsonInMemoryPatch(vSchemaFile, lookupHash)
- }
-
- return vSchemaFile
-}
-
-func writeVschemaFile(file []byte, fileName string) {
- // Format json file
- var buf bytes.Buffer
- err := json.Indent(&buf, file, "", "\t")
- handleError(err)
- file = buf.Bytes()
-
- writeFile(file, fileName)
-}
-
-func writeFile(file []byte, fileName string) {
- err := os.WriteFile(fileName, file, 0644)
- if err != nil {
- log.Fatalf("writing %s %s", fileName, err)
- }
-}
-
-func applyKeyspaceDependentPatches(
- dockerComposeFile []byte,
- keyspaceData keyspaceInfo,
- externalDbInfoMap map[string]externalDbInfo,
- opts vtOptions,
-) []byte {
- var externalDbInfo externalDbInfo
- if val, ok := externalDbInfoMap[keyspaceData.keyspace]; ok {
- externalDbInfo = val
- }
- tabAlias := 0 + tabletsUsed*100
- shard := "-"
- var primaryTablets []string
- if tabletsUsed == 0 {
- primaryTablets = append(primaryTablets, "101")
- } else {
- primaryTablets = append(primaryTablets, strconv.Itoa((tabletsUsed+1)*100+1))
- }
- interval := int(math.Floor(256 / float64(keyspaceData.shards)))
-
- for i := 1; i < keyspaceData.shards; i++ {
- primaryTablets = append(primaryTablets, strconv.Itoa((i+1)*100+1))
- }
-
- schemaLoad := generateSchemaload(primaryTablets, "", keyspaceData.keyspace, externalDbInfo, opts)
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, schemaLoad)
-
- // Append Primary and Replica Tablets
- if keyspaceData.shards < 2 {
- tabAlias = tabAlias + 100
- dockerComposeFile = applyTabletPatches(dockerComposeFile, tabAlias, shard, keyspaceData, externalDbInfoMap, opts)
- dockerComposeFile = applyShardPatches(dockerComposeFile, tabAlias, shard, keyspaceData, externalDbInfoMap, opts)
- } else {
- // Determine shard range
- for i := 0; i < keyspaceData.shards; i++ {
- if i == 0 {
- shard = fmt.Sprintf("-%x", interval)
- } else if i == (keyspaceData.shards - 1) {
- shard = fmt.Sprintf("%x-", interval*i)
- } else {
- shard = fmt.Sprintf("%x-%x", interval*(i), interval*(i+1))
- }
- tabAlias = tabAlias + 100
- dockerComposeFile = applyTabletPatches(dockerComposeFile, tabAlias, shard, keyspaceData, externalDbInfoMap, opts)
- dockerComposeFile = applyShardPatches(dockerComposeFile, tabAlias, shard, keyspaceData, externalDbInfoMap, opts)
- }
- }
-
- tabletsUsed += len(primaryTablets)
- return dockerComposeFile
-}
-
-func applyDefaultDockerPatches(
- dockerComposeFile []byte,
- keyspaceInfoMap map[string]keyspaceInfo,
- externalDbInfoMap map[string]externalDbInfo,
- opts vtOptions,
-) []byte {
-
- var dbInfo externalDbInfo
- // This is a workaround to check if there are any externalDBs defined
- for _, keyspaceData := range keyspaceInfoMap {
- if val, ok := externalDbInfoMap[keyspaceData.keyspace]; ok {
- dbInfo = val
- }
- }
-
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateVtctld(opts))
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateVtgate(opts))
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateVreplication(dbInfo, opts))
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateVTOrc(dbInfo, opts))
- return dockerComposeFile
-}
-
-func applyDockerComposePatches(
- dockerComposeFile []byte,
- keyspaceInfoMap map[string]keyspaceInfo,
- externalDbInfoMap map[string]externalDbInfo,
- vtOpts vtOptions,
-) []byte {
- // Vtctld, vtgate, vtwork patches.
- dockerComposeFile = applyDefaultDockerPatches(dockerComposeFile, keyspaceInfoMap, externalDbInfoMap, vtOpts)
- for _, keyspaceData := range keyspaceInfoMap {
- dockerComposeFile = applyKeyspaceDependentPatches(dockerComposeFile, keyspaceData, externalDbInfoMap, vtOpts)
- }
-
- return dockerComposeFile
-}
-
-func applyShardPatches(
- dockerComposeFile []byte,
- tabAlias int,
- shard string,
- keyspaceData keyspaceInfo,
- externalDbInfoMap map[string]externalDbInfo,
- opts vtOptions,
-) []byte {
- var dbInfo externalDbInfo
- if val, ok := externalDbInfoMap[keyspaceData.keyspace]; ok {
- dbInfo = val
- }
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateExternalPrimary(tabAlias, shard, keyspaceData, dbInfo, opts))
- return dockerComposeFile
-}
-
-func generateDefaultShard(tabAlias int, shard string, keyspaceData keyspaceInfo, opts vtOptions) string {
- aliases := []int{tabAlias + 1} // primary alias, e.g. 201
- for i := 0; i < keyspaceData.replicaTablets; i++ {
- aliases = append(aliases, tabAlias+2+i) // replica aliases, e.g. 202, 203, ...
- }
- tabletDepends := make([]string, len(aliases))
- for i, tabletId := range aliases {
- tabletDepends[i] = fmt.Sprintf("vttablet%d: {condition : service_healthy}", tabletId)
- }
- // Wait on all shard tablets to be healthy
- dependsOn := "depends_on: {" + strings.Join(tabletDepends, ", ") + "}"
-
- return fmt.Sprintf(`
-- op: add
- path: /services/init_shard_primary%[2]d
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- command: ["sh", "-c", "/vt/bin/vtctlclient %[5]s InitShardPrimary -force %[4]s/%[3]s %[6]s-%[2]d "]
- %[1]s
-`, dependsOn, aliases[0], shard, keyspaceData.keyspace, opts.topologyFlags, opts.cell)
-}
-
-func generateExternalPrimary(
- tabAlias int,
- shard string,
- keyspaceData keyspaceInfo,
- dbInfo externalDbInfo,
- opts vtOptions,
-) string {
-
- aliases := []int{tabAlias + 1} // primary alias, e.g. 201
- for i := 0; i < keyspaceData.replicaTablets; i++ {
- aliases = append(aliases, tabAlias+2+i) // replica aliases, e.g. 202, 203, ...
- }
-
- externalPrimaryTab := tabAlias
- externalDb := "0"
-
- if dbInfo.dbName != "" {
- externalDb = "1"
- } else {
- return fmt.Sprintf(``)
- }
-
- return fmt.Sprintf(`
-- op: add
- path: /services/vttablet%[1]d
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15%[1]d:%[3]d"
- - "%[4]d"
- - "3306"
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS=%[2]s
- - WEB_PORT=%[3]d
- - GRPC_PORT=%[4]d
- - CELL=%[5]s
- - SHARD=%[6]s
- - KEYSPACE=%[7]s
- - ROLE=primary
- - VTHOST=vttablet%[1]d
- - EXTERNAL_DB=%[8]s
- - DB_PORT=%[9]s
- - DB_HOST=%[10]s
- - DB_USER=%[11]s
- - DB_PASS=%[12]s
- - DB_CHARSET=%[13]s
- command: ["sh", "-c", "[ $$EXTERNAL_DB -eq 1 ] && /script/vttablet-up.sh %[1]d || exit 0"]
- depends_on:
- - vtctld
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:%[3]d/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-`, externalPrimaryTab, opts.topologyFlags, opts.webPort, opts.gRpcPort, opts.cell, shard, keyspaceData.keyspace, externalDb, dbInfo.dbPort, dbInfo.dbHost, dbInfo.dbUser, dbInfo.dbPass, dbInfo.dbCharset)
-}
-
-func applyTabletPatches(
- dockerComposeFile []byte,
- tabAlias int,
- shard string,
- keyspaceData keyspaceInfo,
- externalDbInfoMap map[string]externalDbInfo,
- opts vtOptions,
-) []byte {
- var dbInfo externalDbInfo
- if val, ok := externalDbInfoMap[keyspaceData.keyspace]; ok {
- dbInfo = val
- }
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateDefaultTablet(tabAlias+1, shard, "primary", keyspaceData.keyspace, dbInfo, opts))
- for i := 0; i < keyspaceData.replicaTablets; i++ {
- dockerComposeFile = applyInMemoryPatch(dockerComposeFile, generateDefaultTablet(tabAlias+2+i, shard, "replica", keyspaceData.keyspace, dbInfo, opts))
- }
- return dockerComposeFile
-}
-
-func generateDefaultTablet(tabAlias int, shard, role, keyspace string, dbInfo externalDbInfo, opts vtOptions) string {
- externalDb := "0"
- if dbInfo.dbName != "" {
- externalDb = "1"
- }
-
- return fmt.Sprintf(`
-- op: add
- path: /services/vttablet%[1]d
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15%[1]d:%[4]d"
- - "%[5]d"
- - "3306"
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS=%[7]s
- - WEB_PORT=%[4]d
- - GRPC_PORT=%[5]d
- - CELL=%[8]s
- - KEYSPACE=%[6]s
- - SHARD=%[2]s
- - ROLE=%[3]s
- - VTHOST=vttablet%[1]d
- - EXTERNAL_DB=%[9]s
- - DB_PORT=%[10]s
- - DB_HOST=%[11]s
- - DB_USER=%[12]s
- - DB_PASS=%[13]s
- - DB_CHARSET=%[14]s
- command: ["sh", "-c", "/script/vttablet-up.sh %[1]d"]
- depends_on:
- - vtctld
- healthcheck:
- test: ["CMD-SHELL","curl -s --fail --show-error localhost:%[4]d/debug/health"]
- interval: 30s
- timeout: 10s
- retries: 15
-`, tabAlias, shard, role, opts.webPort, opts.gRpcPort, keyspace, opts.topologyFlags, opts.cell, externalDb, dbInfo.dbPort, dbInfo.dbHost, dbInfo.dbUser, dbInfo.dbPass, dbInfo.dbCharset)
-}
-
-func generateVtctld(opts vtOptions) string {
- return fmt.Sprintf(`
-- op: add
- path: /services/vtctld
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15000:%[1]d"
- - "%[2]d"
- command: ["sh", "-c", " /vt/bin/vtctld \
- %[3]s \
- -cell %[4]s \
- -service_map 'grpc-vtctl' \
- -backup_storage_implementation file \
- -file_backup_storage_root /vt/vtdataroot/backups \
- -logtostderr=true \
- -port %[1]d \
- -grpc_port %[2]d \
- "]
- volumes:
- - .:/script
- depends_on:
- - consul1
- - consul2
- - consul3
- depends_on:
- external_db_host:
- condition: service_healthy
-`, opts.webPort, opts.gRpcPort, opts.topologyFlags, opts.cell)
-}
-
-func generateVtgate(opts vtOptions) string {
- return fmt.Sprintf(`
-- op: add
- path: /services/vtgate
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- ports:
- - "15099:%[1]d"
- - "%[2]d"
- - "15306:%[3]d"
- command: ["sh", "-c", "/script/run-forever.sh /vt/bin/vtgate \
- %[4]s \
- --logtostderr=true \
- --port %[1]d \
- --grpc_port %[2]d \
- --mysql_server_port %[3]d \
- --mysql_auth_server_impl none \
- --cell %[5]s \
- --cells_to_watch %[5]s \
- --tablet_types_to_wait PRIMARY,REPLICA,RDONLY \
- --service_map 'grpc-vtgateservice' \
- --normalize_queries=true \
- "]
- volumes:
- - .:/script
- depends_on:
- - vtctld
-`, opts.webPort, opts.gRpcPort, opts.mySqlPort, opts.topologyFlags, opts.cell)
-}
-
-func generateVTOrc(dbInfo externalDbInfo, opts vtOptions) string {
- externalDb := "0"
- if dbInfo.dbName != "" {
- externalDb = "1"
- }
- return fmt.Sprintf(`
-- op: add
- path: /services/vtorc
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS=%[1]s
- - EXTERNAL_DB=%[2]s
- - DB_USER=%[3]s
- - DB_PASS=%[4]s
- ports:
- - "13000:3000"
- command: ["sh", "-c", "/script/vtorc-up.sh"]
- depends_on:
- - vtctld
-`, opts.topologyFlags, externalDb, dbInfo.dbUser, dbInfo.dbPass)
-}
-
-func generateVreplication(dbInfo externalDbInfo, opts vtOptions) string {
- externalDb := "0"
- if dbInfo.dbName != "" {
- externalDb = "1"
- }
- return fmt.Sprintf(`
-- op: add
- path: /services/vreplication
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS=%[1]s
- - EXTERNAL_DB=%[2]s
- command: ["sh", "-c", "[ $$EXTERNAL_DB -eq 1 ] && /script/externaldb_vreplication.sh || exit 0"]
- depends_on:
- - vtctld
-`, opts.topologyFlags, externalDb)
-}
-
-func generateSchemaload(
- tabletAliases []string,
- postLoadFile string,
- keyspace string,
- dbInfo externalDbInfo,
- opts vtOptions,
-) string {
- targetTab := tabletAliases[0]
- schemaFileName := fmt.Sprintf("%s_schema_file.sql", keyspace)
- externalDb := "0"
-
- if dbInfo.dbName != "" {
- schemaFileName = ""
- externalDb = "1"
- }
-
- // Formatting for list in yaml
- for i, tabletId := range tabletAliases {
- tabletAliases[i] = "vttablet" + tabletId + ": " + "{condition : service_healthy}"
- }
- dependsOn := "depends_on: {" + strings.Join(tabletAliases, ", ") + "}"
-
- return fmt.Sprintf(`
-- op: add
- path: /services/schemaload_%[7]s
- value:
- image: vitess/lite:${VITESS_TAG:-latest}
- volumes:
- - ".:/script"
- environment:
- - TOPOLOGY_FLAGS=%[3]s
- - WEB_PORT=%[4]d
- - GRPC_PORT=%[5]d
- - CELL=%[6]s
- - KEYSPACE=%[7]s
- - TARGETTAB=%[6]s-0000000%[2]s
- - SLEEPTIME=15
- - VSCHEMA_FILE=%[7]s_vschema.json
- - SCHEMA_FILES=%[9]s
- - POST_LOAD_FILE=%[8]s
- - EXTERNAL_DB=%[10]s
- command: ["sh", "-c", "/script/schemaload.sh"]
- %[1]s
-`, dependsOn, targetTab, opts.topologyFlags, opts.webPort, opts.gRpcPort, opts.cell, keyspace, postLoadFile, schemaFileName, externalDb)
-}
-
-func generatePrimaryVIndex(tableName, column, name string) string {
- return fmt.Sprintf(`
-[{"op": "add",
-"path": "/tables/%[1]s",
-"value":
- {"column_vindexes": [
- {
- "column": "%[2]s",
- "name": "%[3]s"
- }
- ]}
-}]
-`, tableName, column, name)
-}
-
-func generateVschemaLookupHash(tableName, tableKeyspace, from, to, owner string) string {
- return fmt.Sprintf(`
-[{"op": "add",
-"path": "/vindexes/%[1]s",
-"value":
- {"type": "lookup_hash",
- "params": {
- "table": "%[2]s.%[1]s",
- "from": "%[3]s",
- "to": "%[4]s",
- "autocommit": "true"
- },
- "owner": "%[5]s"
- }
-}]
-`, tableName, tableKeyspace, from, to, owner)
-}
-
-func addToColumnVIndexes(tableName, column, referenceName string) string {
- return fmt.Sprintf(`
-[{"op": "add",
-"path": "/tables/%[1]s/column_vindexes/-",
-"value":
- {
- "column": "%[2]s",
- "name": "%[3]s"
- }
-}]
-`, tableName, column, referenceName)
-}
diff --git a/vitess-mixin/e2e/vtcompose/vtcompose_test.go b/vitess-mixin/e2e/vtcompose/vtcompose_test.go
deleted file mode 100644
index 8e5cfaa2b89..00000000000
--- a/vitess-mixin/e2e/vtcompose/vtcompose_test.go
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2019 The Vitess Authors.
-
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
-
- * http://www.apache.org/licenses/LICENSE-2.0
-
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
- "fmt"
- "strconv"
- "testing"
-
- "github.com/stretchr/testify/assert"
-)
-
-var (
- referenceYaml = string(readFile("./docker-compose.test.yml"))
- testComposeFile = readFile("./docker-compose.base.yml")
- testKeyspaceInfoMap = parseKeyspaceInfo(DefaultKeyspaceData)
- testExternalDbInfoMap = parseExternalDbData(DefaultExternalDbData)
-
- testVtOpts = vtOptions{
- webPort: DefaultWebPort,
- gRpcPort: DefaultGrpcPort,
- mySqlPort: DefaultMysqlPort,
- topologyFlags: DefaultTopologyFlags,
- cell: DefaultCell,
- }
-)
-
-func TestGenerateCorrectFileWithDefaultOpts(t *testing.T) {
- baseFile := testComposeFile
- finalFile := applyDockerComposePatches(baseFile, testKeyspaceInfoMap, testExternalDbInfoMap, testVtOpts)
-
- yamlString := string(finalFile)
- assert.YAMLEq(t, referenceYaml, yamlString)
-}
-
-func TestOptsAppliedThroughoutGeneratedFile(t *testing.T) {
- baseFile := testComposeFile
- options := vtOptions{
- webPort: 55_555,
- gRpcPort: 66_666,
- mySqlPort: 77_777,
- topologyFlags: "-custom -flags",
- cell: "custom cell",
- }
- finalFile := applyDockerComposePatches(baseFile, testKeyspaceInfoMap, testExternalDbInfoMap, options)
- yamlString := string(finalFile)
-
- // These asserts are not exhaustive, but should cover most cases.
- assert.NotContains(t, yamlString, strconv.Itoa(DefaultWebPort))
- assert.Contains(t, yamlString, strconv.Itoa(options.webPort))
-
- assert.NotContains(t, yamlString, strconv.Itoa(DefaultGrpcPort))
- assert.Contains(t, yamlString, strconv.Itoa(options.gRpcPort))
-
- assert.NotContains(t, yamlString, ":"+strconv.Itoa(DefaultMysqlPort))
- assert.Contains(t, yamlString, ":"+strconv.Itoa(options.webPort))
-
- assert.NotContains(t, yamlString, fmt.Sprintf("-cell %s", DefaultCell))
- assert.Contains(t, yamlString, fmt.Sprintf("-cell %s", options.cell))
-
- assert.Contains(t, yamlString, fmt.Sprintf("- TOPOLOGY_FLAGS=%s", options.topologyFlags))
- assert.NotContains(t, yamlString, DefaultTopologyFlags)
-}
diff --git a/vitess-mixin/e2e/vtorc-up.sh b/vitess-mixin/e2e/vtorc-up.sh
deleted file mode 100755
index 9d71831c3ea..00000000000
--- a/vitess-mixin/e2e/vtorc-up.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-# Copyright 2020 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -u
-
-external=${EXTERNAL_DB:-0}
-config=${VTORC_CONFIG:-/vt/vtorc/config.json}
-# Copy config directory
-cp -R /script/vtorc /vt
-# Update credentials
-if [ $external = 1 ] ; then
- # Terrible substitution but we don't have jq in this image
- # This can be overridden by passing VTORC_CONFIG env variable
- echo "Updating $config..."
- cp /vt/vtorc/default.json /vt/vtorc/tmp.json
- sed -i '/MySQLTopologyUser/c\ \"MySQLTopologyUser\" : \"'"$DB_USER"'\",' /vt/vtorc/tmp.json
- sed -i '/MySQLTopologyPassword/c\ \"MySQLTopologyPassword\" : \"'"$DB_PASS"'\",' /vt/vtorc/tmp.json
- sed -i '/MySQLReplicaUser/c\ \"MySQLReplicaUser\" : \"'"$DB_USER"'\",' /vt/vtorc/tmp.json
- sed -i '/MySQLReplicaPassword/c\ \"MySQLReplicaPassword\" : \"'"$DB_PASS"'\",' /vt/vtorc/tmp.json
- cat /vt/vtorc/tmp.json
- cp /vt/vtorc/tmp.json /vt/vtorc/config.json
-else
- cp /vt/vtorc/default.json /vt/vtorc/config.json
-fi
-
-echo "Starting vtorc..."
-exec /vt/bin/vtorc \
-$TOPOLOGY_FLAGS \
--logtostderr=true \
--config $config
diff --git a/vitess-mixin/e2e/vtorc/default.json b/vitess-mixin/e2e/vtorc/default.json
deleted file mode 100644
index e0a03884c99..00000000000
--- a/vitess-mixin/e2e/vtorc/default.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Debug": true,
- "EnableSyslog": false,
- "MySQLTopologyUser": "orc_client_user",
- "MySQLTopologyPassword": "orc_client_user_password",
- "MySQLReplicaUser": "vt_repl",
- "MySQLReplicaPassword": "",
- "BackendDB": "sqlite",
- "SQLite3DataFile": "/tmp/vtorc.sqlite3",
- "RecoverMasterClusterFilters": ["*"],
- "RecoveryPeriodBlockSeconds": 5,
- "DelayMasterPromotionIfSQLThreadNotUpToDate": true
-}
diff --git a/vitess-mixin/e2e/vttablet-up.sh b/vitess-mixin/e2e/vttablet-up.sh
deleted file mode 100755
index 0bc9d7a629d..00000000000
--- a/vitess-mixin/e2e/vttablet-up.sh
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/bash
-
-# Copyright 2020 The Vitess Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -u
-export VTROOT=/vt
-export VTDATAROOT=/vt/vtdataroot
-
-keyspace=${KEYSPACE:-'test_keyspace'}
-shard=${SHARD:-'0'}
-grpc_port=${GRPC_PORT:-'15999'}
-web_port=${WEB_PORT:-'8080'}
-role=${ROLE:-'replica'}
-vthost=${VTHOST:-`hostname -i`}
-sleeptime=${SLEEPTIME:-'0'}
-uid=$1
-external=${EXTERNAL_DB:-0}
-
-# If DB is not explicitly set, we default to behaviour of prefixing with vt_
-# If there is an external db, the db_nmae will always match the keyspace name
-[ $external = 0 ] && db_name=${DB:-"vt_$keyspace"} || db_name=${DB:-"$keyspace"}
-db_charset=${DB_CHARSET:-''}
-tablet_hostname=''
-
-# Use IPs to simplify connections when testing in docker.
-# Otherwise, blank hostname means the tablet auto-detects FQDN.
-# This is now set further up
-
-printf -v alias '%s-%010d' $CELL $uid
-printf -v tablet_dir 'vt_%010d' $uid
-
-tablet_role=$role
-tablet_type='replica'
-
-# Make every 3rd tablet rdonly
-if (( $uid % 100 % 3 == 0 )) ; then
- tablet_type='rdonly'
-fi
-
-# Consider every tablet with %d00 as external primary
-if [ $external = 1 ] && (( $uid % 100 == 0 )) ; then
- tablet_type='replica'
- tablet_role='externalprimary'
- keyspace="ext_$keyspace"
-fi
-
-# Copy config directory
-cp -R /script/config $VTROOT
-init_db_sql_file="$VTROOT/config/init_db.sql"
-# Clear in-place edits of init_db_sql_file if any exist
-sed -i '/##\[CUSTOM_SQL/{:a;N;/END\]##/!ba};//d' $init_db_sql_file
-
-echo "##[CUSTOM_SQL_START]##" >> $init_db_sql_file
-
-if [ "$external" = "1" ]; then
- # We need a common user for the unmanaged and managed tablets else tools like orchestrator will not function correctly
- echo "Creating matching user for managed tablets..."
- echo "CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PASS';" >> $init_db_sql_file
- echo "GRANT ALL ON *.* TO '$DB_USER'@'%';" >> $init_db_sql_file
-fi
-echo "##[CUSTOM_SQL_END]##" >> $init_db_sql_file
-
-echo "##[CUSTOM_SQL_END]##" >> $init_db_sql_file
-
-mkdir -p $VTDATAROOT/backups
-
-
-export KEYSPACE=$keyspace
-export SHARD=$shard
-export TABLET_ID=$alias
-export TABLET_DIR=$tablet_dir
-export MYSQL_PORT=3306
-export TABLET_ROLE=$tablet_role
-export DB_PORT=${DB_PORT:-3306}
-export DB_HOST=${DB_HOST:-""}
-export DB_NAME=$db_name
-
-# Delete socket files before running mysqlctld if exists.
-# This is the primary reason for unhealthy state on restart.
-# https://github.com/vitessio/vitess/pull/5115/files
-echo "Removing $VTDATAROOT/$tablet_dir/{mysql.sock,mysql.sock.lock}..."
-rm -rf $VTDATAROOT/$tablet_dir/{mysql.sock,mysql.sock.lock}
-
-# Create mysql instances
-# Do not create mysql instance for primary if connecting to external mysql database
-if [[ $tablet_role != "externalprimary" ]]; then
- echo "Initing mysql for tablet: $uid role: $role external: $external.. "
- $VTROOT/bin/mysqlctld \
- --init_db_sql_file=$init_db_sql_file \
- --logtostderr=true \
- --tablet_uid=$uid \
- &
-fi
-
-sleep $sleeptime
-
-# Create the cell
-# https://vitess.io/blog/2020-04-27-life-of-a-cluster/
-$VTROOT/bin/vtctlclient --server vtctld:$GRPC_PORT -- AddCellInfo --root vitess/$CELL --server_address consul1:8500 $CELL || true
-
-#Populate external db conditional args
-if [ $tablet_role = "externalprimary" ]; then
- echo "Setting external db args for primary: $DB_NAME"
- external_db_args="--db_host $DB_HOST \
- --db_port $DB_PORT \
- --init_db_name_override $DB_NAME \
- --init_tablet_type $tablet_type \
- --mycnf_server_id $uid \
- --db_app_user $DB_USER \
- --db_app_password $DB_PASS \
- --db_allprivs_user $DB_USER \
- --db_allprivs_password $DB_PASS \
- --db_appdebug_user $DB_USER \
- --db_appdebug_password $DB_PASS \
- --db_dba_user $DB_USER \
- --db_dba_password $DB_PASS \
- --db_filtered_user $DB_USER \
- --db_filtered_password $DB_PASS \
- --db_repl_user $DB_USER \
- --db_repl_password $DB_PASS \
- --enable_replication_reporter=false \
- --enforce_strict_trans_tables=false \
- --track_schema_versions=true \
- --watch_replication_stream=true"
-else
- external_db_args="--init_db_name_override $DB_NAME \
- --init_tablet_type $tablet_type \
- --enable_replication_reporter=true \
- --restore_from_backup"
-fi
-
-
-echo "Starting vttablet..."
-exec $VTROOT/bin/vttablet \
- $TOPOLOGY_FLAGS \
- --logtostderr=true \
- --tablet-path $alias \
- --tablet_hostname "$vthost" \
- --health_check_interval 5s \
- --disable_active_reparents=true \
- --port $web_port \
- --grpc_port $grpc_port \
- --service_map 'grpc-queryservice,grpc-tabletmanager,grpc-updatestream' \
- --init_keyspace $keyspace \
- --init_shard $shard \
- --backup_storage_implementation file \
- --file_backup_storage_root $VTDATAROOT/backups \
- --queryserver-config-schema-reload-time 60 \
- $external_db_args
diff --git a/vitess-mixin/go.mod b/vitess-mixin/go.mod
deleted file mode 100644
index 5659ed4be57..00000000000
--- a/vitess-mixin/go.mod
+++ /dev/null
@@ -1,132 +0,0 @@
-module vitess-mixin
-
-go 1.23.0
-
-require (
- github.com/evanphx/json-patch v5.9.0+incompatible
- github.com/google/go-jsonnet v0.16.0
- github.com/jsonnet-bundler/jsonnet-bundler v0.4.0
- github.com/krishicks/yaml-patch v0.0.10
- // Believe it or not, this is actually version 2.13.1
- // See https://github.com/prometheus/prometheus/issues/5590#issuecomment-546368944
- github.com/prometheus/prometheus v1.8.2-0.20191017095924-6f92ce560538
- github.com/stretchr/testify v1.9.0
- vitess.io/vitess v0.19.4
-)
-
-require (
- cloud.google.com/go/compute v1.25.0 // indirect
- cloud.google.com/go/compute/metadata v0.2.3 // indirect
- github.com/Azure/azure-sdk-for-go v23.2.0+incompatible // indirect
- github.com/Azure/go-autorest v14.2.0+incompatible // indirect
- github.com/Azure/go-autorest/autorest v0.11.1 // indirect
- github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect
- github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
- github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
- github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
- github.com/Azure/go-autorest/logger v0.2.1 // indirect
- github.com/Azure/go-autorest/tracing v0.6.0 // indirect
- github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
- github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
- github.com/armon/go-metrics v0.4.1 // indirect
- github.com/aws/aws-sdk-go v1.50.32 // indirect
- github.com/beorn7/perks v1.0.1 // indirect
- github.com/cespare/xxhash v1.1.0 // indirect
- github.com/cespare/xxhash/v2 v2.2.0 // indirect
- github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
- github.com/edsrzf/mmap-go v1.0.0 // indirect
- github.com/emicklei/go-restful/v3 v3.10.1 // indirect
- github.com/fatih/color v1.16.0 // indirect
- github.com/felixge/httpsnoop v1.0.4 // indirect
- github.com/go-kit/kit v0.9.0 // indirect
- github.com/go-logfmt/logfmt v0.5.1 // indirect
- github.com/go-logr/logr v1.4.1 // indirect
- github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-openapi/jsonpointer v0.19.6 // indirect
- github.com/go-openapi/jsonreference v0.20.2 // indirect
- github.com/go-openapi/swag v0.22.3 // indirect
- github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
- github.com/golang/glog v1.2.1 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.4 // indirect
- github.com/golang/snappy v0.0.4 // indirect
- github.com/google/gnostic v0.6.9 // indirect
- github.com/google/go-cmp v0.6.0 // indirect
- github.com/google/gofuzz v1.2.0 // indirect
- github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70 // indirect
- github.com/google/s2a-go v0.1.7 // indirect
- github.com/google/uuid v1.6.0 // indirect
- github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
- github.com/googleapis/gax-go/v2 v2.12.2 // indirect
- github.com/gophercloud/gophercloud v0.3.0 // indirect
- github.com/hashicorp/consul/api v1.28.2 // indirect
- github.com/hashicorp/errwrap v1.1.0 // indirect
- github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
- github.com/hashicorp/go-hclog v1.6.2 // indirect
- github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
- github.com/hashicorp/go-multierror v1.1.1 // indirect
- github.com/hashicorp/go-rootcerts v1.0.2 // indirect
- github.com/hashicorp/golang-lru v1.0.2 // indirect
- github.com/hashicorp/serf v0.10.1 // indirect
- github.com/jmespath/go-jmespath v0.4.0 // indirect
- github.com/josharian/intern v1.0.0 // indirect
- github.com/jpillora/backoff v1.0.0 // indirect
- github.com/json-iterator/go v1.1.12 // indirect
- github.com/mailru/easyjson v0.7.7 // indirect
- github.com/mattn/go-colorable v0.1.13 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/miekg/dns v1.1.41 // indirect
- github.com/mitchellh/go-homedir v1.1.0 // indirect
- github.com/mitchellh/mapstructure v1.5.0 // indirect
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
- github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
- github.com/nxadm/tail v1.4.11 // indirect
- github.com/oklog/ulid v1.3.1 // indirect
- github.com/opentracing/opentracing-go v1.2.0 // indirect
- github.com/pkg/errors v0.9.1 // indirect
- github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/prometheus/client_golang v1.19.0 // indirect
- github.com/prometheus/client_model v0.6.0 // indirect
- github.com/prometheus/common v0.49.0 // indirect
- github.com/prometheus/procfs v0.12.0 // indirect
- github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75 // indirect
- github.com/spf13/pflag v1.0.5 // indirect
- go.opencensus.io v0.24.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
- go.opentelemetry.io/otel v1.24.0 // indirect
- go.opentelemetry.io/otel/metric v1.24.0 // indirect
- go.opentelemetry.io/otel/trace v1.24.0 // indirect
- golang.org/x/crypto v0.23.0 // indirect
- golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect
- golang.org/x/net v0.25.0 // indirect
- golang.org/x/oauth2 v0.18.0 // indirect
- golang.org/x/sync v0.6.0 // indirect
- golang.org/x/sys v0.20.0 // indirect
- golang.org/x/term v0.20.0 // indirect
- golang.org/x/text v0.15.0 // indirect
- golang.org/x/time v0.5.0 // indirect
- google.golang.org/api v0.168.0 // indirect
- google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect
- google.golang.org/grpc v1.62.1 // indirect
- google.golang.org/protobuf v1.33.0 // indirect
- gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
- gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
- gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
- gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/api v0.26.1 // indirect
- k8s.io/apimachinery v0.26.1 // indirect
- k8s.io/client-go v0.26.1 // indirect
- k8s.io/klog/v2 v2.90.0 // indirect
- k8s.io/kube-openapi v0.0.0-20230202010329-39b3636cbaa3 // indirect
- k8s.io/utils v0.0.0-20230115233650-391b47cb4029 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
- sigs.k8s.io/yaml v1.4.0 // indirect
-)
-
-replace k8s.io/client-go v2.0.0-alpha.0.0.20181121191925-a47917edff34+incompatible => k8s.io/client-go v2.0.0-alpha.1+incompatible
diff --git a/vitess-mixin/go.sum b/vitess-mixin/go.sum
deleted file mode 100644
index 73171b17f6a..00000000000
--- a/vitess-mixin/go.sum
+++ /dev/null
@@ -1,908 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
-cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU=
-cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE=
-cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
-contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs=
-github.com/Azure/azure-sdk-for-go v23.2.0+incompatible h1:bch1RS060vGpHpY3zvQDV4rOiRw25J1zmR/B9a76aSA=
-github.com/Azure/azure-sdk-for-go v23.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
-github.com/Azure/go-autorest v11.1.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest v11.2.8+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
-github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.1 h1:eVvIXUKiTgv++6YnWb42DUA1YL7qDugnKP0HljexdnQ=
-github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
-github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
-github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8=
-github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c=
-github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
-github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
-github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
-github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
-github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac=
-github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E=
-github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
-github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
-github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
-github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
-github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
-github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/OneOfOne/xxhash v1.2.5 h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI=
-github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
-github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc=
-github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
-github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg=
-github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
-github.com/aws/aws-sdk-go v1.23.12/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go v1.50.32 h1:POt81DvegnpQKM4DMDLlHz1CO6OBnEoQ1gRhYFd7QRY=
-github.com/aws/aws-sdk-go v1.50.32/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
-github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8=
-github.com/cenkalti/backoff v0.0.0-20181003080854-62661b46c409/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash v0.0.0-20181017004759-096ff4a8a059/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
-github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
-github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
-github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgrijalva/jwt-go v0.0.0-20160705203006-01aeca54ebda/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgryski/go-sip13 v0.0.0-20190329191031-25c5027a8c7b/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
-github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
-github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
-github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
-github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
-github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
-github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
-github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
-github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
-github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
-github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
-github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
-github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
-github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
-github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
-github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
-github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
-github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
-github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
-github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.17.2/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
-github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
-github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
-github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.17.2/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
-github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
-github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
-github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.17.2/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
-github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
-github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
-github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
-github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.17.2/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
-github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
-github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
-github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.17.2/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
-github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
-github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
-github.com/go-openapi/runtime v0.18.0/go.mod h1:uI6pHuxWYTy94zZxgcwJkUWa9wbIlhteGfloI10GD4U=
-github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
-github.com/go-openapi/runtime v0.19.3/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
-github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
-github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.17.2/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
-github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
-github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.17.2/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
-github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
-github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
-github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
-github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.17.2/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
-github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.4/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
-github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-openapi/validate v0.17.2/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
-github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
-github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
-github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.2.2-0.20190730201129-28a6bbf47e48/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
-github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4=
-github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
-github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
-github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
-github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
-github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
-github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0=
-github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-jsonnet v0.16.0 h1:Nb4EEOp+rdeGGyB1rQ5eisgSAqrTnhf9ip+X6lzZbY0=
-github.com/google/go-jsonnet v0.16.0/go.mod h1:sOcuej3UW1vpPTZOr8L7RQimqai1a57bt5j22LzGZCw=
-github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
-github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
-github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
-github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70 h1:XTnP8fJpa4Kvpw2qARB4KS9izqxPS0Sd92cDlY3uk+w=
-github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
-github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
-github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
-github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
-github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
-github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
-github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA=
-github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc=
-github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
-github.com/gophercloud/gophercloud v0.0.0-20190126172459-c818fa66e4c8/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4=
-github.com/gophercloud/gophercloud v0.3.0 h1:6sjpKIpVwRIIwmcEGp+WwNovNsem+c+2vm6oxshRpL8=
-github.com/gophercloud/gophercloud v0.3.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
-github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
-github.com/grpc-ecosystem/grpc-gateway v1.9.4/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/api v1.28.2 h1:mXfkRHrpHN4YY3RqL09nXU1eHKLNiuAN4kHvDQ16k/8=
-github.com/hashicorp/consul/api v1.28.2/go.mod h1:KyzqzgMEya+IZPcD65YFoOVAgPpbfERu4I/tzG6/ueE=
-github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8=
-github.com/hashicorp/consul/sdk v0.16.0/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
-github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-hclog v1.6.2 h1:NOtoftovWkDheyUM/8JW3QMiXyxJK3uHRK7wV04nD2I=
-github.com/hashicorp/go-hclog v1.6.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
-github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI=
-github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
-github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
-github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
-github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
-github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc=
-github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
-github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
-github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
-github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
-github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM=
-github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/hashicorp/serf v0.8.3/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k=
-github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY=
-github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
-github.com/jessevdk/go-flags v0.0.0-20180331124232-1c38ed7ad0cc/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
-github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
-github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
-github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
-github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
-github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
-github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
-github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
-github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
-github.com/jsonnet-bundler/jsonnet-bundler v0.4.0 h1:4BKZ6LDqPc2wJDmaKnmYD/vDjUptJtnUpai802MibFc=
-github.com/jsonnet-bundler/jsonnet-bundler v0.4.0/go.mod h1:/by7P/OoohkI3q4CgSFqcoFsVY+IaNbzOVDknEsKDeU=
-github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
-github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/krishicks/yaml-patch v0.0.10 h1:H4FcHpnNwVmw8u0MjPRjWyIXtco6zM2F78t+57oNM3E=
-github.com/krishicks/yaml-patch v0.0.10/go.mod h1:Sm5TchwZS6sm7RJoyg87tzxm2ZcKzdRE4Q7TjNhPrME=
-github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
-github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
-github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
-github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.6/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
-github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
-github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY=
-github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
-github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
-github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
-github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
-github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
-github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
-github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
-github.com/oklog/ulid v0.0.0-20170117200651-66bb6560562f/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
-github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
-github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
-github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
-github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
-github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs=
-github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
-github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys=
-github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
-github.com/opentracing-contrib/go-stdlib v0.0.0-20190519235532-cf7a6c988dc9/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
-github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
-github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
-github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
-github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
-github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
-github.com/prometheus/alertmanager v0.18.0/go.mod h1:WcxHBl40VSPuOaqWae6l6HpnEOVRIycEJ7i9iYkadEE=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.2.0/go.mod h1:XMU6Z2MjaRKVu/dC1qupJI9SiNkDYzz3xecMgSW/F+U=
-github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
-github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
-github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
-github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/common v0.49.0 h1:ToNTdK4zSnPVJmh698mGFkDor9wBI/iGaJy5dbH1EgI=
-github.com/prometheus/common v0.49.0/go.mod h1:Kxm+EULxRbUkjGU6WFsQqo3ORzB4tyKvlWFOE9mB2sE=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
-github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
-github.com/prometheus/prometheus v0.0.0-20180315085919-58e2a31db8de/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s=
-github.com/prometheus/prometheus v1.8.2-0.20191017095924-6f92ce560538 h1:iyerK9/VU1F02ASqYyIXp60gKxo7ualRoEezXPqbQZE=
-github.com/prometheus/prometheus v1.8.2-0.20191017095924-6f92ce560538/go.mod h1:SgN99nHQ/tVJyAuyLKKz6i2j5cJx3eLy9MCRCPOXqUI=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
-github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
-github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
-github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
-github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75 h1:cA+Ubq9qEVIQhIWvP2kNuSZ2CmnfBJFSRq+kO1pu2cc=
-github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
-github.com/satori/go.uuid v0.0.0-20160603004225-b111a074d5ef/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
-github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
-github.com/shurcooL/vfsgen v0.0.0-20180825020608-02ddb050ef6b/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
-github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
-github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
-github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
-github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
-github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
-github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
-github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
-github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
-github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.mongodb.org/mongo-driver v1.0.4/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
-go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
-go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
-go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
-go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
-go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
-go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
-go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
-go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
-go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
-golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
-golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ=
-golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
-golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
-golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
-golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190310054646-10058d7d4faa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
-golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
-golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
-golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180805044716-cb6730876b98/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
-golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190918214516-5a1a30219888/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
-google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
-google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.168.0 h1:MBRe+Ki4mMN93jhDDbpuRLjRddooArz4FeSObvUMmjY=
-google.golang.org/api v0.168.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
-google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
-google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20240304212257-790db918fca8 h1:Fe8QycXyEd9mJgnwB9kmw00WgB43eQ/xYO5C6gceybQ=
-google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8 h1:8eadJkXbwDEMNwcB5O0s5Y5eCfyuCLdvaiOIaGTrWmQ=
-google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 h1:IR+hp6ypxjH24bkMfEJ0yHR21+gwPWdV+/IBrPQyn3k=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
-google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
-google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/fsnotify/fsnotify.v1 v1.4.7 h1:XNNYLJHt73EyYiCZi6+xjupS9CpvmiDgjPTAjrBlQbo=
-gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE=
-gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
-gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-k8s.io/api v0.0.0-20190620084959-7cf5895f2711/go.mod h1:TBhBqb1AWbBQbW3XRusr7n7E4v2+5ZY8r8sAMnyFC5A=
-k8s.io/api v0.0.0-20190813020757-36bff7324fb7/go.mod h1:3Iy+myeAORNCLgjd/Xu9ebwN7Vh59Bw0vh9jhoX+V58=
-k8s.io/api v0.26.1 h1:f+SWYiPd/GsiWwVRz+NbFyCgvv75Pk9NK6dlkZgpCRQ=
-k8s.io/api v0.26.1/go.mod h1:xd/GBNgR0f707+ATNyPmQ1oyKSgndzXij81FzWGsejg=
-k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719/go.mod h1:I4A+glKBHiTgiEjQiCCQfCAIcIMFGt291SmsvcrFzJA=
-k8s.io/apimachinery v0.0.0-20190809020650-423f5d784010/go.mod h1:Waf/xTS2FGRrgXCkO5FP3XxTOWh0qLf2QhL1qFZZ/R8=
-k8s.io/apimachinery v0.26.1 h1:8EZ/eGJL+hY/MYCNwhmDzVqq2lPl3N3Bo8rvweJwXUQ=
-k8s.io/apimachinery v0.26.1/go.mod h1:tnPmbONNJ7ByJNz9+n9kMjNP8ON+1qoAIIC70lztu74=
-k8s.io/client-go v0.0.0-20190620085101-78d2af792bab/go.mod h1:E95RaSlHr79aHaX0aGSwcPNfygDiPKOVXdmivCIZT0k=
-k8s.io/client-go v0.26.1 h1:87CXzYJnAMGaa/IDDfRdhTzxk/wzGZ+/HUQpqgVSZXU=
-k8s.io/client-go v0.26.1/go.mod h1:IWNSglg+rQ3OcvDkhY6+QLeasV4OYHDjdqeWkDQZwGE=
-k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
-k8s.io/klog v0.4.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
-k8s.io/klog/v2 v2.90.0 h1:VkTxIV/FjRXn1fgNNcKGM8cfmL1Z33ZjXRTVxKCoF5M=
-k8s.io/klog/v2 v2.90.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
-k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
-k8s.io/kube-openapi v0.0.0-20190722073852-5e22f3d471e6/go.mod h1:RZvgC8MSN6DjiMV6oIfEE9pDL9CYXokkfaCKZeHm3nc=
-k8s.io/kube-openapi v0.0.0-20230202010329-39b3636cbaa3 h1:vV3ZKAUX0nMjTflyfVea98dTfROpIxDaEsQws0FT2Ts=
-k8s.io/kube-openapi v0.0.0-20230202010329-39b3636cbaa3/go.mod h1:/BYxry62FuDzmI+i9B+X2pqfySRmSOW2ARmj5Zbqhj0=
-k8s.io/utils v0.0.0-20190221042446-c2654d5206da/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
-k8s.io/utils v0.0.0-20190809000727-6c36bc71fc4a/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
-k8s.io/utils v0.0.0-20230115233650-391b47cb4029 h1:L8zDtT4jrxj+TaQYD0k8KNlr556WaVQylDXswKmX+dE=
-k8s.io/utils v0.0.0-20230115233650-391b47cb4029/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
-sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
-sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
-sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
-vitess.io/vitess v0.19.4 h1:fJhZm5RknYbF7YUBXBmcvST/mvA4CeevlI9N0TLlYXA=
-vitess.io/vitess v0.19.4/go.mod h1:15uIi9x/Gu+BdDhUR80yP0M1v7aMG2mZQXSd56CE2t0=
diff --git a/vitess-mixin/jsonnetfile.json b/vitess-mixin/jsonnetfile.json
deleted file mode 100644
index 93f3316ec38..00000000000
--- a/vitess-mixin/jsonnetfile.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "version": 1,
- "dependencies": [
- {
- "source": {
- "git": {
- "remote": "https://github.com/grafana/grafonnet-lib.git",
- "subdir": "grafonnet"
- }
- },
- "version": "master"
- }
- ],
- "legacyImports": true
-}
diff --git a/vitess-mixin/lib/alerts.jsonnet b/vitess-mixin/lib/alerts.jsonnet
deleted file mode 100644
index d396a38cd71..00000000000
--- a/vitess-mixin/lib/alerts.jsonnet
+++ /dev/null
@@ -1 +0,0 @@
-std.manifestYamlDoc((import '../mixin.libsonnet').prometheusAlerts)
diff --git a/vitess-mixin/lib/dashboards.jsonnet b/vitess-mixin/lib/dashboards.jsonnet
deleted file mode 100644
index c260feb80e3..00000000000
--- a/vitess-mixin/lib/dashboards.jsonnet
+++ /dev/null
@@ -1,10 +0,0 @@
-local dashboards = (import '../mixin.libsonnet').grafanaDashboards;
-
-local config = (import '../config.libsonnet');
-local deploy_list = config._config.deploy_list;
-
-{
- [name]: dashboards[name]
- for name in std.objectFields(dashboards)
- if std.member(dashboards[name].environments, std.extVar('env'))
-}
diff --git a/vitess-mixin/lib/rules.jsonnet b/vitess-mixin/lib/rules.jsonnet
deleted file mode 100644
index 2d7fa91f7ca..00000000000
--- a/vitess-mixin/lib/rules.jsonnet
+++ /dev/null
@@ -1 +0,0 @@
-std.manifestYamlDoc((import '../mixin.libsonnet').prometheusRules)
diff --git a/vitess-mixin/mixin.libsonnet b/vitess-mixin/mixin.libsonnet
deleted file mode 100644
index b9831f9380b..00000000000
--- a/vitess-mixin/mixin.libsonnet
+++ /dev/null
@@ -1,4 +0,0 @@
-(import 'config.libsonnet') +
-(import 'alerts/alerts.libsonnet') +
-(import 'dashboards/dashboards.libsonnet') +
-(import 'rules/rules.libsonnet')
diff --git a/vitess-mixin/rules/rules.libsonnet b/vitess-mixin/rules/rules.libsonnet
deleted file mode 100644
index 903212ca351..00000000000
--- a/vitess-mixin/rules/rules.libsonnet
+++ /dev/null
@@ -1,221 +0,0 @@
-// Recording rules can be used to continually evaluate queries and
-// store their results as new timeseries. This is commonly used to
-// calculate expensive aggregates prior to querying them. You can have
-// any number of rules, split across any number of files.
-//
-// Reference: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/
-local config = import '../config.libsonnet';
-
-{
- prometheusRules+:: {
- groups: [
- {
- name: 'vitess_mixin_1',
- rules: [
- {
- record: 'vitess_mixin:vttablet_errors:rate1m',
- expr: 'sum (rate(vttablet_errors[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_2',
- rules: [
- {
- record: 'vitess_mixin:vttablet_query_counts:rate1m',
- expr: 'sum (rate(vttablet_query_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_3',
- rules: [
- {
- record: 'vitess_mixin:mysql_global_status_queries:rate1m',
- expr: 'sum (rate(mysql_global_status_queries[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_4',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_bucket:rate1m',
- expr: 'sum by(le)(rate(vtgate_api_bucket[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_5',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_bucket_by_keyspace:rate1m',
- expr: 'sum by(le,keyspace)(rate(vtgate_api_bucket[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_6',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_error_counts:rate1m',
- expr: 'sum (rate(vtgate_api_error_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_7',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_count:rate1m',
- expr: 'sum (rate(vtgate_api_count[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_8',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_error_counts_by_keyspace:rate1m',
- expr: 'sum by(keyspace)(rate(vtgate_api_error_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_9',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_count_by_keyspace:rate1m',
- expr: 'sum by(keyspace)(rate(vtgate_api_count[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_10',
- rules: [
- {
- record: 'vitess_mixin:vttablet_kills:rate1m',
- expr: 'sum by (keyspace,shard)(rate(vttablet_kills[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_11',
- rules: [
- {
- record: 'vitess_mixin:vtgate_vttablet_call_error_count_byinstance:rate1m',
- expr: 'sum by(instance)(rate(vtgate_vttablet_call_error_count[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_12',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_error_counts_by_db_type:rate1m',
- expr: 'sum by(db_type)(rate(vtgate_api_error_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_13',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_count_by_db_type:rate1m',
- expr: 'sum by(db_type)(rate(vtgate_api_count[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_14',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_bucket_by_db_type:rate1m',
- expr: 'sum by(le,db_type)(rate(vtgate_api_bucket[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_15',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_error_counts_by_operation:rate1m',
- expr: 'sum by(operation)(rate(vtgate_api_error_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_16',
- rules: [
- {
- record: 'vitess_mixin:vtgate_api_error_counts_by_code:rate1m',
- expr: 'sum by(code)(rate(vtgate_api_error_counts[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_17',
- rules: [
- {
- record: 'vitess_mixin:vttablet_queries_sum_by_keyspace_shard:rate1m',
- expr: 'sum by(keyspace,shard)(rate(vttablet_queries_sum[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_18',
- rules: [
- {
- record: 'vitess_mixin:vttablet_queries_count_by_keyspace_shard:rate1m',
- expr: 'sum by(keyspace,shard)(rate(vttablet_queries_count[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_19',
- rules: [
- {
- record: 'vitess_mixin:vttablet_transactions_bucket_by_keyspace_shard:rate1m',
- expr: 'sum by(keyspace,shard,le)(rate(vttablet_transactions_bucket[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_20',
- rules: [
- {
- record: 'vitess_mixin:process_start_time_seconds_by_instance_job:sum5m',
- expr: 'sum by (instance,job) (changes (process_start_time_seconds[5m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_21',
- rules: [
- {
- record: 'vitess_mixin:vttablet_kills_by_instance:rate1m',
- expr: 'sum by(instance)(rate(vttablet_kills[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_22',
- rules: [
- {
- record: 'vitess_mixin:vttablet_errors:rate1m',
- expr: 'sum by(keyspace,shard,instance,error_code)(rate(vttablet_errors[1m]))',
- },
- ],
- },
- {
- name: 'vitess_mixin_23',
- rules: [
- {
- record: 'vitess_mixin:vtgate_queries_processed_by_table:rate1m',
- expr: 'sum by(keyspace,plan,table) (rate(vtgate_queries_processed_by_table{plan!="Rollback"}[1m]))',
- },
- ],
- },
- ],
- },
-}
diff --git a/vitess-mixin/scripts/fmt.sh b/vitess-mixin/scripts/fmt.sh
deleted file mode 100755
index e1a5976ee8e..00000000000
--- a/vitess-mixin/scripts/fmt.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env bash
-#/ Usage: fmt [--check]
-#/ --check Fail if changed files need changes, do not format in place.
-
-set -eu
-
-usage() {
- grep '^#/' "$0" | cut -c'4-' >&2
- exit "$1"
-}
-
-if ! [ -x "$(command -v jsonnet)" ] && ! [ -x "$(command -v jsonnetfmt)" ]; then
- echo 'jsonnet or jsonnetfmt executable not found'
- exit 1
-fi
-
-if [ -x "$(command -v jsonnetfmt)" ]; then
- JSONNET_COMMAND='jsonnetfmt'
-else
- JSONNET_COMMAND='jsonnet fmt'
-fi
-
-CHECK="false"
-EXIT_STATUS=0
-FILES_CHANGED="$(git diff --name-only origin/main --diff-filter=d | grep -E '(jsonnet|TEMPLATE|libsonnet)$' || true)"
-
-while [ "$#" -gt 0 ]; do
- case "$1" in
- -c|--check) CHECK="true"; shift;;
- *) usage ;;
- esac
-done
-
-if [ "${CHECK}" == "true" ]; then
- if [ -n "${FILES_CHANGED}" ]; then
- for FILE in ${FILES_CHANGED}; do
- set +e
- echo -n "Checking $FILE: "
- ${JSONNET_COMMAND} --test "${FILE}"
- EC=$?
- if [ ${EC} -ne 0 ]; then
- echo "⚠️"
- EXIT_STATUS=1
- else
- echo "✅"
- fi
- set -e
- done
- echo ""
- fi
-
- echo -n "STATUS:"
- if [ "$EXIT_STATUS" -eq 0 ]; then
- echo "✅"
- else
- echo "❌"
- fi
-
- exit $EXIT_STATUS
-
-else
- for FILE in $FILES_CHANGED; do
- echo -n "Formatting $FILE: "
- $JSONNET_COMMAND -n 2 --max-blank-lines 2 --string-style s --comment-style s -i ../$FILE
- echo "✅"
- done
-fi
diff --git a/vitess-mixin/scripts/vitess-mixin-plan.sh b/vitess-mixin/scripts/vitess-mixin-plan.sh
deleted file mode 100755
index 8c305601956..00000000000
--- a/vitess-mixin/scripts/vitess-mixin-plan.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-if [[ -z "$ENV" || ("${ENV}" != 'dev' && "${ENV}" != 'prod') ]]; then
- echo -e "##ERROR\nPlease specify ENV (prod or dev)\nUsage: ENV='prod' ./vitess-mixin-plan.sh" 1>&2
- exit 1
-fi
-
-export ENVIRONMENT=$ENV
-
-EXIT_STATUS=0;
-
-echo "#### Building origin/main"
-REPODIR="$(pwd)"
-TEMPDIR="$(mktemp -d)"
-
-cd $TEMPDIR
-git clone git@github.com:vitessio/vitess.git > /dev/null 2>&1
-cd vitess/vitess-mixin
-jb install > /dev/null 2>&1
-make dashboards_out > /dev/null 2>&1
-make prometheus_rules.yaml > /dev/null 2>&1
-# TODO enalbe when alerts are not empty.
-# make prometheus_alerts.yaml > /dev/null 2>&1
-
-echo -e "\nDone!\n"
-
-cd $REPODIR
-make dashboards_out > /dev/null 2>&1
-make prometheus_rules.yaml > /dev/null 2>&1
-# TODO enalbe when alerts are not empty.
-# make prometheus_alerts.yaml > /dev/null 2>&1
-
-branch=$(git rev-parse --abbrev-ref HEAD)
-echo -e "#### Diff origin/main with $branch:\n"
-
-# TODO check prometheus_alerts.yaml
-
-t="# Checking prometheus_rules.yaml...";
-d=$(diff -urt --label origin/main/prometheus_rules.yaml "$TEMPDIR/vitess/vitess-mixin/prometheus_rules.yaml" --label $branch/prometheus_rules.yaml "prometheus_rules.yaml" 2>/dev/null)
-if [ "$?" = "0" ];
-then
- echo $t OK
-else
- echo $t NOK
- echo "$d"
- EXIT_STATUS=2
-fi
-
-DASHBOARDS=()
-for filename in $(ls dashboards_out)
-do
- t="# Checking $filename..."
- DASHBOARDS+=($filename)
- d=$(diff -urt --label origin/main/$filename "$TEMPDIR/vitess/vitess-mixin/dashboards_out/"$filename --label $branch/$filename "dashboards_out/"$filename 2>/dev/null)
- if [ "$?" = "0" ];
- then
- echo $t OK
- else
- if [ -e "$TEMPDIR/vitess-mixin/dashboards_out/"$filename ];
- then
- echo $t NOK
- echo "$d"
- else
- echo $t "This is a new dashboard not present in origin/main" NOK
- fi
- EXIT_STATUS=2
- fi
-done
-
-for filename in $(ls $TEMPDIR/vitess/vitess-mixin/dashboards_out)
-do
- t="# Checking $filename..."
- if [[ ! " ${DASHBOARDS[*]} " == *"$filename"* ]];
- then
- echo $t This dashboard has been removed NOK ;
- EXIT_STATUS=2
- fi
-done
-
-echo -e "\nEXIT STATUS:"
-if [ "$EXIT_STATUS" -eq 0 ]; then
- echo -e "✅ Your dashboards local version matches the origin/main version"
-elif [ "$EXIT_STATUS" -eq 2 ]; then
- echo -e "👀 If you are happy with your changes open a PR"
-else
- echo "❌"
- exit 1
-fi
-
-rm -rf $TEMPDIR
diff --git a/vitess-mixin/tools.go b/vitess-mixin/tools.go
deleted file mode 100644
index 63cc73e0bbb..00000000000
--- a/vitess-mixin/tools.go
+++ /dev/null
@@ -1,11 +0,0 @@
-//go:build tools
-// +build tools
-
-package main
-
-import (
- _ "github.com/google/go-jsonnet/cmd/jsonnet"
- _ "github.com/google/go-jsonnet/cmd/jsonnetfmt"
- _ "github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb"
- _ "github.com/prometheus/prometheus/cmd/promtool"
-)
diff --git a/vitess-mixin/vitess-mixin-quickstart.md b/vitess-mixin/vitess-mixin-quickstart.md
deleted file mode 100644
index e15e6126211..00000000000
--- a/vitess-mixin/vitess-mixin-quickstart.md
+++ /dev/null
@@ -1,323 +0,0 @@
-# Vitess Mixin QuickStart
-
-## Table of Contents
-
-- [Vitess Mixin QuickStart](#vitess-mixin-quickstart)
- - [Table of Contents](#table-of-contents)
- - [What is the Vitess Mixin](#what-is-the-vitess-mixin)
- - [Development](#development)
- - [Building](#building)
- - [1. Prometheus Recording Rules](#1-prometheus-recording-rules)
- - [2. Grafana Dashboards](#2-grafana-dashboards)
- - [Formatting](#formatting)
- - [Linting](#linting)
- - [Cleaning up](#cleaning-up)
- - [Define a new Dashboard](#define-a-new-dashboard)
- - [Update Existing Dashboards](#update-existing-dashboards)
- - [Edit existing resources](#edit-existing-resources)
- - [Adding new resources](#adding-new-resources)
- - [Test and Deploy](#test-and-deploy)
- - [Local Unit Tests with `make all`](#local-unit-tests-with-make-all)
- - [Local e2e tests using Cypress (Alpha)](#local-e2e-tests-using-cypress-alpha)
- - [Local e2e manual testing using compose (Alpha)](#local-e2e-manual-testing-using-compose-alpha)
-
-## What is the Vitess Mixin
-
-Vitess [mixin](https://en.wikipedia.org/wiki/Mixin) is a monitoring mixin defined using [jsonnet](https://jsonnet.org/) data templating language. The grafana `jsonnet` library for creating dashboards is [grafonnet](https://github.com/grafana/grafonnet-lib). While the package manager for easily reusing and extending the mixin is [jsonnet-bundler](https://github.com/jsonnet-bundler/jsonnet-bundler).
-
-## Development
-
-If you want to see all available targets run `make help`.
-
-Choose an IDE of your preference. We use VSCode with `heptio.jsonnet` plugin which includes some nice features like on mouse over documentation and (ctrl+space) autocomplete.
-
-### Building
-
-#### 1. Prometheus Recording Rules
-
- ```shell
- $ make prometheus_rules.yaml
- # Building 'prometheus_rules.yaml'...
-
- Done!
- ```
-
- Once generated the Vitess Mixin Prometheus recording rules are available at `prometheus_rules.yaml`.
-
- **Note:** The Vitess Mixin only includes recording rules for Prometheus Vitess metrics. Other metric like Prometheus Node are not currently included in the rules.
-
-#### 2. Grafana Dashboards
-
-The vitess mixin supports DEV/PROD configurations (Currently it is possible to enable/disable dashboards. And set different alert configurations for DEV/PROD).
-
- **Prod dashboards**:
-
- ```shell
- $ ENV='prod' make dashboards_out
- # Building Grafana dashboards...
-
- dashboards_out/cluster_overview.json
- dashboards_out/vtgate_host_view.json
- dashboards_out/vtgate_overview.json
- dashboards_out/vttablet_host_view.json
-
- Done!
- ```
-
- **Dev dashboards**:
-
- ```shell
- $ ENV=dev make dashboards_out
-
- # Building Grafana dashboards...
-
- dashboards_out/cluster_overview.json
- dashboards_out/vtgate_host_view.json
- dashboards_out/vtgate_overview.json
- dashboards_out/vttablet_host_view.json
-
- Done!
- ```
-
- Voila!! the generated dashboards definitions in `.json` format are now available under `/dashboards_out`. (**Note**: dev and prod dashboards have the same names and they are stored in the same output folder. It is a good practice to run `make clean` after each build to make sure we are working with a clean `/dashboards_out` folder).
-
-### Formatting
-
- ```shell
- $ make fmt
- # Formatting all .libsonnet and .jsonnet files...
-
- Formatting dashboards/alerts_memory_events.libsonnet: ✅
-
- Done!
- ```
-
-### Linting
-
- ```shell
- $ make lint
- # Linting all .libsonnet and .jsonnet files...
-
- Checking dashboards/alerts_memory_events.libsonnet: ✅
-
- STATUS:✅
-
- Done!
-
- # Linting 'prometheus_rules.yaml' and 'prometheus_alerts.yaml'...
- TO BE IMPLEMENTED
- Done!
- ```
-
-### Cleaning up
-
- ```shell
- $ make clean
- # Cleaning up all generated files...
-
- rm -rf dashboards_out prometheus_alerts.yaml prometheus_rules.yaml
-
- Done!
- ```
-
-## Define a new Dashboard
-
- Dashboards are defined in `.libsonnet` format under the `/dashboards` folder.
- **Note** Files designed for import by convention end with `.libsonnet`.
-
- 1. Update the Mixin config to include the new **dashboard metadata** `config.libsonnet`.
- The metadata needs to be added under `grafanaDashboardMetadata`. For example for `vtgate-overview dashboard` it looks like this:
-
- ```bash
- vtgateOverview: {
- environments: ['dev', 'prod'],
- uid: 'vitess-vtgate-overview',
- title: 'vtgate - overview %(dashboardNameSuffix)s' % $._config.grafanaDashboardMetadataDefault,
- description: 'General vtgate overview',
- dashboardTags: $._config.grafanaDashboardMetadataDefault.dashboardTags + ['overview', 'vtgate'],
- }
- ```
-
- **Note**: It is possible to add/remove a dashboard from specific environments using the `environments` array field.
-
- 2. Define the **dashboard layout**: Create a new `.libsonnet` file following _Naming Convention_ (**TODO** Define a naming convention) in the `/dashboards/layouts` folder.
- The dashboard skeleton should look something like this:
-
- ```js
- local helpers = import '../resources/helpers.libsonnet';
-
- local config = import '../../config.libsonnet';
-
- {
- grafanaDashboards+:: {
- 'DASHBOARD_NAME.json':
-
- helpers.dashboard.getDashboard(config._config.grafanaDashboardMetadata.DASHBOARD_NAME)
- .addTemplates(
- [
-
- ]
- ).addLink(helpers.default.getDashboardLink(config._config.dashborardLinks))
- .addPanels(
- [
-
- ],
- ),
- },
- }
- ```
-
- 3. Import the new dashboard in the `dashboard.libsonnet` library.
-
- 4. Add/Edit dashboard resources.
-
- **Note:** Some of the resources have been grouped in the following categories `vtgate`, `vttablet`, `vtorc`, `webapp`, `os` for convenience. The resources under this categories follow a helper/config pattern. The `.*_helper.libsonnet` libraries within `grafonnet` folder functions to retrieve resources such as `getPanel(panel_name_config)`, reading the configuration by name for the desired resource from the corresponding `.*_config.libsonnet` library .
-
- **Note:** To isolate **PROD** and **DEV** the configuration files have a section for each environment where we can define specific `notifications`(ex: pagerduty, vitess-alerts...) and `conditions` (alert thresholds).
-
- In this example the alert has a different notification config. For **PROD** it pages and **DEV** it doesn't:
-
- ```js
- alert: {
- name: 'vitess-mixin - # of tablets with MySQL replication lag > 300s',
- frequency: '1m',
- forDuration: '3m',
- noDataState: 'ok',
- executionErrorState: 'keep_state',
- message: |||
- The number of tablets with MySQL replication lag > 300s is above the threshold.
- This usually indicate that replicas are not able to keep up with the write loads on the primary. Please take a look.
- |||,
-
- prod+: {
- notifications: [
- { uid: 'alerts-vitess' },
- { uid: 'pagerduty-vitess' },
- ],
- conditions: [
- alert_condition.new(
- evaluatorParams=[1],
- evaluatorType='gt',
- operatorType='and',
- queryRefId='A',
- queryTimeStart='1m',
- reducerType='max'),
- ],
- },
- //override PROD notifications.
- dev+: self.prod {
- notifications: [
- { uid: 'alerts-vitess' },
- ],
- },
- },
- ```
-
- **Warning:** Editing existing resources can change other dashboards behavior. Since basic resources like `panels`, `rows`, `texts`... can be shared across dashboards. This can be easily checked running `make all` as explained bellow.
-
-## Update Existing Dashboards
-
- Same steps as **Define a new Dashboard** starting from step `.4`.
-
-### Edit existing resources
-
- 1. Look for the dashboard you want to edit in the `dashboards/layouts` folder.
- 2. Find the resource you want to update in the `dashboards/resources` folder.
-
-### Adding new resources
-
- 1. Create the resource in the corresponding location under `dashboards/resources` folder.
- 2. Add the resource to the desired layout in `dashboards/layouts`.
-
-## Test and Deploy
-
-### Local Unit Tests with `make all`
-
-These tests attempt to assert truth to the following:
-
-- Does this mixin generate valid dashboard JSON?
-- Does this mixin generate valid recording rules YAML?
-- Do the configured elements do what they are expected to do?
-
-This make target will format, lint, build all generated dashboards and recording rules using `origin/main` and diff with them your `local branch`. Printing a report to the `stdout`.
-
-```shell
- $ pwd
- /manfontan/vitess-mixin
- $ ENV='prod' make all
- #### Building origin/main
-
- Done!
-
- #### Diff origin/main with main:
-
- # Checking prometheus_rules.yaml... OK
- # Checking cluster_overview.json... OK
- # Checking vtgate_host_view.json... OK
- # Checking vtgate_overview.json... OK
- # Checking vttablet_host_view.json... OK
-
- EXIT STATUS:
- ✅ Your dashboards local version matches the origin/main version
-```
-
-The above execution shows the report for a `local branch` matching `origin/main`. Any changes will be reported as **NOK** along with the diff report. This doesn't mean something is wrong it just points that there are changes in your local branch compared to `origin/main` which is expected. Review the diff report and once you are happy with your changes create a PR.
-
-### Local e2e tests using Cypress (Alpha)
-
-These tests attempt to assert truth to the following:
-
-- Are dashboard elements displayed as expected?
-
-The spec for each dashboard can be found at `/e2e/cypress/integration`.
-
-`docker-compose` is used to run Cypress and Grafana. There are two targets in
-[Makefile](../Makefile) to help run it.
-
-- `make e2e`: runs tests headless and exits.
-
-- `make e2e-dev`: opens the [the test
-runner](https://docs.cypress.io/guides/core-concepts/test-runner.html#Overview)
-and exposes Grafana to the host machine - http://localhost:3030. This requires
-an X11 server to work. [This
-post](https://www.cypress.io/blog/2019/05/02/run-cypress-with-a-single-docker-command/#Interactive-mode)
-describes how to set this up with [XQuartz](https://www.xquartz.org/).
-
-**Note** The dummy Grafana server is not connected to a Prometheus Backend for this reason dashboards will not display any data, templates will fail to load etc... If you don't have a Dev Prometheus server. Replacing prometheus datasources(`Prometheus_Vitess`, `Prometheus_Node` ...) with an empty string in the generated JSON file will default to the dummy datasource displaying dummy data. This is useful when testing using interactive mode `make e2e-dev`.
-
-### Local e2e manual testing using compose (Alpha)
-
-**Note**: This targets have been tested using docker for Mac. You may need to change the IPs and configurations for your specific setup.
-
-Before we run the local environment using compose it is necessary to generate the dashboards and recording rules using `ENV=dev make all` (Note: choose the environment you want to test).
-
-Once our dashboards are available simply run:
-
-- `make e2e-compose-up`: spin up the cluster
-
-Changes to the dashboards are not dynamically loaded so you will need to bring down the cluster and initialized it again to load your changes.
-
-If you are done testing or the cluster gets in a bad state quit and clean up using:
-
-- `make e2e-compose-down`: cleanup compose resources
-
-In order to generate some metrics we can use the following commands:
-
-```shell
-## INSERT TEST DATA
-mysql --port=15306 --host=127.0.0.1 < load_test.sql
-## SIMULATED QUERIES
-mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=test_keyspace:80-@primary --query="SELECT * FROM messages;"
-mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=test_keyspace:80-@replica --query="SELECT * FROM messages;"
-mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=lookup_keyspace:-@primary --query="SELECT * FROM messages_message_lookup;"
-mysqlslap -c 5 --port=15306 --host=127.0.0.1 --iterations=1000 --create-schema=lookup_keyspace:-@replica --query="SELECT * FROM messages_message_lookup;"
-## SIMULATED ERRORS
-mysqlslap --port=15306 --host=127.0.0.1 --iterations=10000 --create-schema=test_keyspace:80-@primary --query="SELECT name FROM messages;"
-mysqlslap --port=15306 --host=127.0.0.1 --iterations=10000 --create-schema=lookup_keyspace:-@replica --query="SELECT name FROM messages_message_lookup;"
-```
-
-Once the cluster is up and running you should be able to access:
-
-- grafana (default credentials > admin/admin) http://localhost:3030/
-- prometheus http://localhost:9000/
-- vitess control panel http://localhost:15000/