From 0f2f25c5d9567c17258a4c37340a3e4e3c9aaae4 Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Fri, 8 Sep 2023 16:51:59 +0100 Subject: [PATCH] Chore: Move to Cypress 12 and decouple cypress from `@grafana/e2e` (#74084) * update drone to use cypress 12 image * upgrade cypress to 12 in core * cypress config actually valid * update @grafana/e2e imports and add lint rule * ignore grafana-e2e from betterer now it's deprecated * fix remaining type errors * fix failing tests * remove unnecessary tsconfig * remove unnecessary comment * update enterprise suite commands to work * add cypress config to CODEOWNERS * export setTimeRange in utils * remove @grafana/e2e from core deps * try running the command through yarn * move CMD to scripts * Update cloud-data-sources e2e image * Update paths --------- Co-authored-by: Andreas Christou --- .betterer.results | 122 +- .betterer.ts | 2 +- .drone.yml | 46 +- .eslintrc | 4 + .github/CODEOWNERS | 1 + cypress.config.js | 84 + e2e/benchmarks/live/4-20hz-panels.spec.ts | 2 +- e2e/benchmarks/tsconfig.json | 5 - e2e/cloud-plugins-suite/azure-monitor.spec.ts | 7 +- e2e/cypress/fixtures/example.json | 5 + .../fixtures/exemplars-query-response.json | 323 + e2e/cypress/fixtures/long-trace-response.json | 7592 +++++++++++++++++ .../prometheus-query-range-response.json | 81 + .../fixtures/prometheus-query-response.json | 4 + e2e/cypress/fixtures/tempo-response.json | 1181 +++ .../plugins/benchmark/CDPDataCollector.js | 120 + e2e/cypress/plugins/benchmark/formatting.js | 94 + e2e/cypress/plugins/benchmark/index.js | 90 + e2e/cypress/plugins/compareScreenshots.js | 49 + e2e/cypress/plugins/extendConfig.js | 79 + e2e/cypress/plugins/index.js | 73 + e2e/cypress/plugins/readProvisions.js | 14 + e2e/cypress/plugins/typescriptPreprocessor.js | 42 + e2e/cypress/support/commands.js | 36 + e2e/cypress/support/e2e.js | 45 + e2e/cypress/support/index.d.ts | 18 + .../Repeating_a_panel_horizontally.spec.ts | 8 +- .../Repeating_a_panel_vertically.spec.ts | 8 +- ...g_a_row_with_a_non_repeating_panel.spec.ts | 2 +- .../Repeating_an_empty_row.spec.ts | 2 +- .../dashboard-browse-nested.spec.ts | 3 +- e2e/dashboards-suite/dashboard-browse.spec.ts | 3 +- .../dashboard-public-create.spec.ts | 2 +- .../dashboard-public-templating.spec.ts | 2 +- .../dashboard-templating.spec.ts | 2 +- .../dashboard-time-zone.spec.ts | 12 +- .../dashboard-timepicker.spec.ts | 2 +- e2e/dashboards-suite/import-dashboard.spec.ts | 3 +- .../load-options-from-url.spec.ts | 2 +- .../new-constant-variable.spec.ts | 2 +- .../new-custom-variable.spec.ts | 2 +- .../new-datasource-variable.spec.ts | 2 +- .../new-interval-variable.spec.ts | 2 +- .../new-query-variable.spec.ts | 2 +- .../new-text-box-variable.spec.ts | 2 +- .../set-options-from-ui.spec.ts | 2 +- ...ting-dashboard-links-and-variables.spec.ts | 2 +- .../textbox-variables.spec.ts | 2 +- .../datagrid-data-change.spec.ts | 2 +- .../datagrid-editing-features.spec.ts | 2 +- .../00-panel-menu-extension.spec.ts | 2 +- e2e/geomap-suite/geomap-layer-types.spec.ts | 2 +- e2e/geomap-suite/geomap-map-controls.spec.ts | 2 +- ...eomap-spatial-operations-transform.spec.ts | 2 +- e2e/panels-suite/panelEdit_base.spec.ts | 2 +- e2e/panels-suite/panelEdit_queries.spec.ts | 9 +- e2e/panels-suite/panelEdit_transforms.spec.ts | 2 +- e2e/run-suite | 43 +- e2e/shared/smokeTestScenario.ts | 2 +- e2e/shared/tsconfig.json | 5 - e2e/smoke-tests-suite/1-smoketests.spec.ts | 3 +- .../panels_smokescreen.spec.ts | 3 +- e2e/sql-suite/mysql.spec.ts | 2 +- e2e/tsconfig.json | 2 +- e2e/utils/flows/addDashboard.ts | 303 + e2e/utils/flows/addDataSource.ts | 116 + e2e/utils/flows/addPanel.ts | 15 + e2e/utils/flows/assertSuccessNotification.ts | 9 + e2e/utils/flows/configurePanel.ts | 192 + e2e/utils/flows/deleteDashboard.ts | 51 + e2e/utils/flows/deleteDataSource.ts | 46 + e2e/utils/flows/editPanel.ts | 7 + e2e/utils/flows/importDashboard.ts | 70 + e2e/utils/flows/importDashboards.ts | 21 + e2e/utils/flows/index.ts | 36 + e2e/utils/flows/login.ts | 42 + e2e/utils/flows/openDashboard.ts | 36 + e2e/utils/flows/openPanelMenuItem.ts | 57 + e2e/utils/flows/revertAllChanges.ts | 12 + e2e/utils/flows/saveDashboard.ts | 9 + e2e/utils/flows/selectOption.ts | 43 + e2e/utils/flows/setDashboardTimeRange.ts | 5 + e2e/utils/flows/setTimeRange.ts | 40 + e2e/utils/flows/userPreferences.ts | 25 + e2e/utils/index.ts | 26 + e2e/utils/support/benchmark.ts | 79 + e2e/utils/support/index.ts | 4 + e2e/utils/support/localStorage.ts | 23 + e2e/utils/support/scenario.ts | 53 + e2e/utils/support/scenarioContext.ts | 61 + e2e/utils/support/selector.ts | 11 + e2e/utils/support/types.ts | 138 + e2e/utils/support/url.ts | 14 + e2e/utils/typings/index.ts | 1 + e2e/utils/typings/undo.ts | 19 + e2e/various-suite/bar-gauge.spec.ts | 3 +- e2e/various-suite/exemplars.spec.ts | 2 +- e2e/various-suite/explore.spec.ts | 2 +- e2e/various-suite/filter-annotations.spec.ts | 2 +- e2e/various-suite/gauge.spec.ts | 2 +- e2e/various-suite/graph-auto-migrate.spec.ts | 2 +- e2e/various-suite/inspect-drawer.spec.ts | 5 +- e2e/various-suite/loki-editor.spec.ts | 2 +- e2e/various-suite/loki-query-builder.spec.ts | 2 +- e2e/various-suite/pie-chart.spec.ts | 3 +- e2e/various-suite/query-editor.spec.ts | 2 +- e2e/various-suite/select-focus.spec.ts | 2 +- e2e/various-suite/solo-route.spec.ts | 2 +- .../trace-view-scrolling.spec.ts | 2 +- .../visualization-suggestions.spec.ts | 2 +- e2e/verify/specs/smoketests.spec.ts | 3 +- e2e/verify/tsconfig.json | 4 - package.json | 14 +- scripts/drone/steps/lib.star | 3 +- scripts/drone/utils/images.star | 2 +- yarn.lock | 72 +- 116 files changed, 11747 insertions(+), 223 deletions(-) create mode 100644 cypress.config.js delete mode 100644 e2e/benchmarks/tsconfig.json create mode 100644 e2e/cypress/fixtures/example.json create mode 100644 e2e/cypress/fixtures/exemplars-query-response.json create mode 100644 e2e/cypress/fixtures/long-trace-response.json create mode 100644 e2e/cypress/fixtures/prometheus-query-range-response.json create mode 100644 e2e/cypress/fixtures/prometheus-query-response.json create mode 100644 e2e/cypress/fixtures/tempo-response.json create mode 100644 e2e/cypress/plugins/benchmark/CDPDataCollector.js create mode 100644 e2e/cypress/plugins/benchmark/formatting.js create mode 100644 e2e/cypress/plugins/benchmark/index.js create mode 100644 e2e/cypress/plugins/compareScreenshots.js create mode 100644 e2e/cypress/plugins/extendConfig.js create mode 100644 e2e/cypress/plugins/index.js create mode 100644 e2e/cypress/plugins/readProvisions.js create mode 100644 e2e/cypress/plugins/typescriptPreprocessor.js create mode 100644 e2e/cypress/support/commands.js create mode 100644 e2e/cypress/support/e2e.js create mode 100644 e2e/cypress/support/index.d.ts delete mode 100644 e2e/shared/tsconfig.json create mode 100644 e2e/utils/flows/addDashboard.ts create mode 100644 e2e/utils/flows/addDataSource.ts create mode 100644 e2e/utils/flows/addPanel.ts create mode 100644 e2e/utils/flows/assertSuccessNotification.ts create mode 100644 e2e/utils/flows/configurePanel.ts create mode 100644 e2e/utils/flows/deleteDashboard.ts create mode 100644 e2e/utils/flows/deleteDataSource.ts create mode 100644 e2e/utils/flows/editPanel.ts create mode 100644 e2e/utils/flows/importDashboard.ts create mode 100644 e2e/utils/flows/importDashboards.ts create mode 100644 e2e/utils/flows/index.ts create mode 100644 e2e/utils/flows/login.ts create mode 100644 e2e/utils/flows/openDashboard.ts create mode 100644 e2e/utils/flows/openPanelMenuItem.ts create mode 100644 e2e/utils/flows/revertAllChanges.ts create mode 100644 e2e/utils/flows/saveDashboard.ts create mode 100644 e2e/utils/flows/selectOption.ts create mode 100644 e2e/utils/flows/setDashboardTimeRange.ts create mode 100644 e2e/utils/flows/setTimeRange.ts create mode 100644 e2e/utils/flows/userPreferences.ts create mode 100644 e2e/utils/index.ts create mode 100644 e2e/utils/support/benchmark.ts create mode 100644 e2e/utils/support/index.ts create mode 100644 e2e/utils/support/localStorage.ts create mode 100644 e2e/utils/support/scenario.ts create mode 100644 e2e/utils/support/scenarioContext.ts create mode 100644 e2e/utils/support/selector.ts create mode 100644 e2e/utils/support/types.ts create mode 100644 e2e/utils/support/url.ts create mode 100644 e2e/utils/typings/index.ts create mode 100644 e2e/utils/typings/undo.ts delete mode 100644 e2e/verify/tsconfig.json diff --git a/.betterer.results b/.betterer.results index f84dedb5989..86d7ad924b9 100644 --- a/.betterer.results +++ b/.betterer.results @@ -5,6 +5,61 @@ // exports[`better eslint`] = { value: `{ + "e2e/cypress/support/index.d.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/addDashboard.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Do not use any type assertions.", "1"] + ], + "e2e/utils/flows/addDataSource.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Do not use any type assertions.", "1"] + ], + "e2e/utils/flows/addPanel.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/configurePanel.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/deleteDashboard.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/deleteDataSource.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/openDashboard.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/flows/revertAllChanges.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Unexpected any. Specify a different type.", "1"] + ], + "e2e/utils/flows/selectOption.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Unexpected any. Specify a different type.", "1"] + ], + "e2e/utils/support/localStorage.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Unexpected any. Specify a different type.", "1"], + [0, 0, 0, "Unexpected any. Specify a different type.", "2"], + [0, 0, 0, "Unexpected any. Specify a different type.", "3"], + [0, 0, 0, "Unexpected any. Specify a different type.", "4"], + [0, 0, 0, "Do not use any type assertions.", "5"] + ], + "e2e/utils/support/scenarioContext.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"] + ], + "e2e/utils/support/types.ts:5381": [ + [0, 0, 0, "Unexpected any. Specify a different type.", "0"], + [0, 0, 0, "Unexpected any. Specify a different type.", "1"], + [0, 0, 0, "Unexpected any. Specify a different type.", "2"], + [0, 0, 0, "Do not use any type assertions.", "3"], + [0, 0, 0, "Do not use any type assertions.", "4"], + [0, 0, 0, "Do not use any type assertions.", "5"], + [0, 0, 0, "Do not use any type assertions.", "6"], + [0, 0, 0, "Do not use any type assertions.", "7"] + ], "packages/grafana-data/src/dataframe/ArrayDataFrame.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"], [0, 0, 0, "Unexpected any. Specify a different type.", "1"] @@ -718,73 +773,6 @@ exports[`better eslint`] = { "packages/grafana-data/test/__mocks__/pluginMocks.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], - "packages/grafana-e2e/cypress/plugins/benchmark/formatting.ts:5381": [ - [0, 0, 0, "Do not use any type assertions.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"], - [0, 0, 0, "Do not use any type assertions.", "3"], - [0, 0, 0, "Do not use any type assertions.", "4"], - [0, 0, 0, "Do not use any type assertions.", "5"], - [0, 0, 0, "Do not use any type assertions.", "6"] - ], - "packages/grafana-e2e/cypress/support/commands.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/cypress/support/index.d.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/addDashboard.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Do not use any type assertions.", "1"] - ], - "packages/grafana-e2e/src/flows/addDataSource.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Do not use any type assertions.", "1"] - ], - "packages/grafana-e2e/src/flows/addPanel.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/configurePanel.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/deleteDashboard.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/deleteDataSource.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/openDashboard.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/flows/revertAllChanges.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"] - ], - "packages/grafana-e2e/src/flows/selectOption.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"] - ], - "packages/grafana-e2e/src/support/localStorage.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"], - [0, 0, 0, "Unexpected any. Specify a different type.", "3"], - [0, 0, 0, "Unexpected any. Specify a different type.", "4"], - [0, 0, 0, "Do not use any type assertions.", "5"] - ], - "packages/grafana-e2e/src/support/scenarioContext.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"] - ], - "packages/grafana-e2e/src/support/types.ts:5381": [ - [0, 0, 0, "Unexpected any. Specify a different type.", "0"], - [0, 0, 0, "Unexpected any. Specify a different type.", "1"], - [0, 0, 0, "Unexpected any. Specify a different type.", "2"], - [0, 0, 0, "Do not use any type assertions.", "3"], - [0, 0, 0, "Do not use any type assertions.", "4"], - [0, 0, 0, "Do not use any type assertions.", "5"], - [0, 0, 0, "Do not use any type assertions.", "6"], - [0, 0, 0, "Do not use any type assertions.", "7"] - ], "packages/grafana-runtime/src/analytics/types.ts:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] ], diff --git a/.betterer.ts b/.betterer.ts index 94054862783..79e711ab36e 100644 --- a/.betterer.ts +++ b/.betterer.ts @@ -8,7 +8,7 @@ export default { 'better eslint': () => countEslintErrors() .include('**/*.{ts,tsx}') - .exclude(/public\/app\/angular/), + .exclude(/public\/app\/angular|packages\/grafana-e2e/), 'no undocumented stories': () => countUndocumentedStories().include('**/!(*.internal).story.tsx'), }; diff --git a/.drone.yml b/.drone.yml index e952be888cc..c21954a17b9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -627,40 +627,36 @@ steps: image: grafana/build-container:1.7.5 name: grafana-server - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite dashboards-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-dashboards-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite smoke-tests-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-smoke-tests-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite panels-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-panels-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite various-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-various-suite - commands: - cd / @@ -678,7 +674,7 @@ steps: GITHUB_TOKEN: from_secret: github_token HOST: grafana-server - image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:latest + image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:2.0.0 name: end-to-end-tests-cloud-plugins-suite-azure when: paths: @@ -1786,40 +1782,36 @@ steps: image: grafana/build-container:1.7.5 name: grafana-server - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite dashboards-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-dashboards-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite smoke-tests-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-smoke-tests-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite panels-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-panels-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite various-suite depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-various-suite - commands: - cd / @@ -1837,7 +1829,7 @@ steps: GITHUB_TOKEN: from_secret: github_token HOST: grafana-server - image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:latest + image: us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:2.0.0 name: end-to-end-tests-cloud-plugins-suite-azure when: paths: @@ -3387,40 +3379,36 @@ steps: image: grafana/build-container:1.7.5 name: grafana-server - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite dashboards-suite --tries 3 depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-dashboards-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite smoke-tests-suite --tries 3 depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-smoke-tests-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite panels-suite --tries 3 depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-panels-suite - commands: - - apt-get install -y netcat - ./bin/build e2e-tests --port 3001 --suite various-suite --tries 3 depends_on: - grafana-server environment: HOST: grafana-server - image: cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + image: cypress/included:12.15.0 name: end-to-end-tests-various-suite - commands: - apt-get update @@ -4456,7 +4444,7 @@ steps: - trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/drone-downstream - trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/docker-puppeteer:1.1.0 - trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/docs-base:dbd975af06 - - trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + - trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM cypress/included:12.15.0 depends_on: - authenticate-gcr image: aquasec/trivy:0.21.0 @@ -4484,7 +4472,7 @@ steps: - trivy --exit-code 1 --severity HIGH,CRITICAL grafana/drone-downstream - trivy --exit-code 1 --severity HIGH,CRITICAL grafana/docker-puppeteer:1.1.0 - trivy --exit-code 1 --severity HIGH,CRITICAL grafana/docs-base:dbd975af06 - - trivy --exit-code 1 --severity HIGH,CRITICAL cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97 + - trivy --exit-code 1 --severity HIGH,CRITICAL cypress/included:12.15.0 depends_on: - authenticate-gcr environment: @@ -4735,6 +4723,6 @@ kind: secret name: gcr_credentials --- kind: signature -hmac: fa64513236ee2677770f4e09ac6ddb06d1b85db22916efb44c1d332c92edf99b +hmac: e7a7b8ebee80baceff6c915e84e76f8f5e54565741f923e9e1e17f3f8880dce9 ... diff --git a/.eslintrc b/.eslintrc index f0aae1abab2..848b36da43d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -35,6 +35,10 @@ "name": "react-i18next", "importNames": ["Trans", "t"], "message": "Please import from app/core/internationalization instead" + }, + { + "name": "@grafana/e2e", + "message": "@grafana/e2e is deprecated. Please import from ./e2e/utils instead" } ] } diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 5bbf3ce2ab1..b783c76b76e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -353,6 +353,7 @@ lerna.json @grafana/frontend-ops /lefthook.yml @grafana/frontend-ops /lefthook.rc @grafana/frontend-ops .husky/pre-commit @grafana/frontend-ops +cypress.config.js @grafana/grafana-frontend-platform .levignore.js @grafana/plugins-platform-frontend diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 00000000000..7423588e46c --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,84 @@ +const { defineConfig } = require('cypress'); +const fs = require('fs'); +const path = require('path'); + +const benchmarkPlugin = require('./e2e/cypress/plugins/benchmark/index'); +const compareScreenshots = require('./e2e/cypress/plugins/compareScreenshots'); +const readProvisions = require('./e2e/cypress/plugins/readProvisions'); +const typescriptPreprocessor = require('./e2e/cypress/plugins/typescriptPreprocessor'); + +module.exports = defineConfig({ + projectId: 'zb7k1c', + videoCompression: 20, + viewportWidth: 1920, + viewportHeight: 1080, + + e2e: { + supportFile: './e2e/cypress/support/e2e.js', + setupNodeEvents(on, config) { + on('file:preprocessor', typescriptPreprocessor); + on('task', { + log({ message, optional }) { + optional ? console.log(message, optional) : console.log(message); + return null; + }, + }); + + if (config.env['BENCHMARK_PLUGIN_ENABLED'] === true) { + benchmarkPlugin.initialize(on, config); + } + + on('task', { + compareScreenshots, + readProvisions: (filePaths) => readProvisions({ CWD: process.cwd(), filePaths }), + }); + + on('task', { + getJSONFilesFromDir: async (relativePath) => { + // CWD is set for plugins in the cli but not for the main grafana repo: https://github.com/grafana/grafana/blob/main/packages/grafana-e2e/cli.js#L12 + const projectPath = config.env.CWD || config.fileServerFolder || process.cwd(); + const directoryPath = path.join(projectPath, relativePath); + const jsonFiles = fs.readdirSync(directoryPath); + return jsonFiles + .filter((fileName) => /.json$/i.test(fileName)) + .map((fileName) => { + const fileBuffer = fs.readFileSync(path.join(directoryPath, fileName)); + return JSON.parse(fileBuffer); + }); + }, + }); + + on('before:browser:launch', (browser = {}, launchOptions) => { + console.log('launching browser %s is headless? %s', browser.name, browser.isHeadless); + + // the browser width and height we want to get + // our screenshots and videos will be of that resolution + const width = 1920; + const height = 1080; + + console.log('setting the browser window size to %d x %d', width, height); + + if (browser.name === 'chrome' && browser.isHeadless) { + launchOptions.args.push(`--window-size=${width},${height}`); + + // force screen to be non-retina and just use our given resolution + launchOptions.args.push('--force-device-scale-factor=1'); + } + + if (browser.name === 'electron' && browser.isHeadless) { + // might not work on CI for some reason + launchOptions.preferences.width = width; + launchOptions.preferences.height = height; + } + + if (browser.name === 'firefox' && browser.isHeadless) { + launchOptions.args.push(`--width=${width}`); + launchOptions.args.push(`--height=${height}`); + } + + // IMPORTANT: return the updated browser launch options + return launchOptions; + }); + }, + }, +}); diff --git a/e2e/benchmarks/live/4-20hz-panels.spec.ts b/e2e/benchmarks/live/4-20hz-panels.spec.ts index 67fb90bd07c..8f719ed8ada 100644 --- a/e2e/benchmarks/live/4-20hz-panels.spec.ts +++ b/e2e/benchmarks/live/4-20hz-panels.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../../utils'; type WithGrafanaRuntime = T & { grafanaRuntime: { diff --git a/e2e/benchmarks/tsconfig.json b/e2e/benchmarks/tsconfig.json deleted file mode 100644 index 546c7ef03e2..00000000000 --- a/e2e/benchmarks/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["**/*.ts", "../../packages/grafana-e2e/cypress/support/index.d.ts"], - "resolveJsonModule": true -} diff --git a/e2e/cloud-plugins-suite/azure-monitor.spec.ts b/e2e/cloud-plugins-suite/azure-monitor.spec.ts index c0f31cfe758..61f3dcc97cd 100644 --- a/e2e/cloud-plugins-suite/azure-monitor.spec.ts +++ b/e2e/cloud-plugins-suite/azure-monitor.spec.ts @@ -2,16 +2,15 @@ import { Interception } from 'cypress/types/net-stubbing'; import { load } from 'js-yaml'; import { v4 as uuidv4 } from 'uuid'; -import { e2e } from '@grafana/e2e'; - import { selectors } from '../../public/app/plugins/datasource/azuremonitor/e2e/selectors'; import { AzureDataSourceJsonData, AzureDataSourceSecureJsonData, AzureQueryType, } from '../../public/app/plugins/datasource/azuremonitor/types'; +import { e2e } from '../utils'; -const provisioningPath = `../../provisioning/datasources/azmonitor-ds.yaml`; +const provisioningPath = `provisioning/datasources/azmonitor-ds.yaml`; const e2eSelectors = e2e.getSelectors(selectors.components); type AzureMonitorConfig = { @@ -166,7 +165,7 @@ e2e.scenario({ const CI = e2e.env('CI'); if (CI) { e2e() - .readFile('../../outputs.json') + .readFile('outputs.json') .then((outputs) => { provisionAzureMonitorDatasources([ { diff --git a/e2e/cypress/fixtures/example.json b/e2e/cypress/fixtures/example.json new file mode 100644 index 00000000000..02e4254378e --- /dev/null +++ b/e2e/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/e2e/cypress/fixtures/exemplars-query-response.json b/e2e/cypress/fixtures/exemplars-query-response.json new file mode 100644 index 00000000000..6c26a9fbf7d --- /dev/null +++ b/e2e/cypress/fixtures/exemplars-query-response.json @@ -0,0 +1,323 @@ +{ + "results": { + "A": { + "frames": [ + { + "schema": { + "name": "histogram_quantile(0.95, sum(rate(tns_request_duration_seconds_bucket[5m])) by (le))", + "refId": "A", + "meta": { "custom": { "resultType": "matrix" } }, + "fields": [ + { "name": "Time", "type": "time", "typeInfo": { "frame": "time.Time" } }, + { + "name": "Value", + "type": "number", + "typeInfo": { "frame": "float64" }, + "labels": {}, + "config": { + "displayNameFromDS": "histogram_quantile(0.95, sum(rate(tns_request_duration_seconds_bucket[5m])) by (le))" + } + } + ] + }, + "data": { + "values": [ + [ + 1633619595000, 1633619610000, 1633619625000, 1633619640000, 1633619655000, 1633619670000, 1633619685000, + 1633619700000, 1633619715000, 1633619730000, 1633619745000, 1633619760000, 1633619775000, 1633619790000, + 1633619805000, 1633619820000, 1633619835000, 1633619850000, 1633619865000, 1633619880000, 1633619895000 + ], + [ + 0.07245212135073513, 0.07253198890830721, 0.07247862573797707, 0.07238248338231042, 0.07221687487740913, + 0.07223291298743946, 0.07225427016727755, 0.024531677091864545, 0.02317081920915543, + 0.07548902139580993, 0.0777721702857508, 0.07768649905047344, 0.07782257603228229, 0.07788810213200052, + 0.07791835055437593, 0.07798387201529966, 0.07790826751849372, 0.07794858648610933, 0.07778729925797964, + 0.07769657495236215, 0.077550401329267 + ] + ] + } + }, + { + "schema": { + "name": "histogram_quantile(0.95, sum(rate(tns_request_duration_seconds_bucket[5m])) by (le))", + "refId": "A", + "meta": { "custom": { "resultType": "vector" } }, + "fields": [ + { "name": "Time", "type": "time", "typeInfo": { "frame": "time.Time" } }, + { + "name": "Value", + "type": "number", + "typeInfo": { "frame": "float64" }, + "labels": {}, + "config": { + "displayNameFromDS": "histogram_quantile(0.95, sum(rate(tns_request_duration_seconds_bucket[5m])) by (le))" + } + } + ] + }, + "data": { "values": [[1633619900000], [0.0775504013292671]] } + }, + { + "schema": { + "name": "exemplar", + "refId": "A", + "meta": { "custom": { "resultType": "exemplar" } }, + "fields": [ + { "name": "Time", "type": "time", "typeInfo": { "frame": "time.Time" } }, + { "name": "Value", "type": "number", "typeInfo": { "frame": "float64" } }, + { "name": "instance", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "__name__", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "job", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "status_code", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "method", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "traceID", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "route", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "ws", "type": "string", "typeInfo": { "frame": "string" } }, + { "name": "le", "type": "string", "typeInfo": { "frame": "string" } } + ] + }, + "data": { + "values": [ + [ + 1633619598000, 1633619622000, 1633619625000, 1633619646000, 1633619658000, 1633619682000, 1633619695000, + 1633619712000, 1633619712000, 1633619724000, 1633619717000, 1633619742000, 1633619757000, 1633619771000, + 1633619784000, 1633619801000, 1633619806000, 1633619833000, 1633619833000, 1633619845000, 1633619862000, + 1633619877000, 1633619889000 + ], + [ + 0.0146153, 0.0118506, 0.0473847, 0.026997, 0.0164318, 0.0113532, 0.0105197, 0.162789, 0.0556026, + 0.148856, 0.0433809, 0.0117758, 0.0114496, 0.0114099, 0.0421927, 0.0134148, 0.0152827, 0.6975967, + 0.0394788, 0.0137441, 0.0110939, 0.0104496, 0.0101284 + ], + [ + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "db:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80", + "app:80" + ], + [ + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket", + "tns_request_duration_seconds_bucket" + ], + [ + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/db", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app", + "tns/app" + ], + [ + "302", + "200", + "200", + "200", + "200", + "200", + "200", + "500", + "200", + "302", + "208", + "200", + "200", + "200", + "200", + "200", + "302", + "200", + "200", + "200", + "200", + "200", + "200" + ], + [ + "POST", + "GET", + "GET", + "GET", + "GET", + "GET", + "GET", + "GET", + "GET", + "POST", + "POST", + "GET", + "GET", + "GET", + "GET", + "GET", + "POST", + "GET", + "GET", + "GET", + "GET", + "GET", + "GET" + ], + [ + "6a3cf561ef6c32a0", + "396bcdf29601a149", + "57c04ef608f11158", + "77c757dab83c665f", + "3d1069567e873f5e", + "b337949f6213efd", + "21b20cbe533cf099", + "2c10b3aa30fabd66", + "42ac6088a757636b", + "2f81158008cd4dcc", + "320b803ad7323b37", + "7f15fd82aeb8b361", + "11c79266da8a74cd", + "5a8571bdcc04c990", + "3de3f4f42ccb93ae", + "23343ac91cc0638", + "5cea3aad17ab11c8", + "5d334e2843d3405a", + "3cf6834596d4b6b6", + "1ab6cff012959723", + "2f78bc2c398b8b20", + "6d5862a70c3abd42", + "f5421be4054f501" + ], + [ + "post", + "root", + "root", + "root", + "root", + "root", + "root", + "root", + "root", + "post", + "post", + "root", + "root", + "root", + "root", + "root", + "post", + "metrics", + "root", + "root", + "root", + "root", + "root" + ], + [ + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false", + "false" + ], + [ + "0.025", + "0.025", + "0.05", + "0.05", + "0.025", + "0.025", + "0.025", + "0.25", + "0.1", + "0.25", + "0.05", + "0.025", + "0.025", + "0.025", + "0.05", + "0.025", + "0.025", + "1.0", + "0.05", + "0.025", + "0.025", + "0.025", + "0.025" + ] + ] + } + } + ] + } + } +} diff --git a/e2e/cypress/fixtures/long-trace-response.json b/e2e/cypress/fixtures/long-trace-response.json new file mode 100644 index 00000000000..80955535638 --- /dev/null +++ b/e2e/cypress/fixtures/long-trace-response.json @@ -0,0 +1,7592 @@ +{ + "data": [ + { + "traceID": "3fa414edcef6ad90", + "spans": [ + { + "traceID": "3fa414edcef6ad90", + "spanID": "1b26effbab24e95a", + "operationName": "FindTraceByID", + "references": [], + "startTime": 1605873894680581, + "duration": 1820, + "tags": [ + { "key": "component", "type": "string", "value": "gRPC" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0f5c1808567e4403", + "operationName": "FindTraceByID", + "references": [], + "startTime": 1605873894680587, + "duration": 1847, + "tags": [ + { "key": "component", "type": "string", "value": "gRPC" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "59f093577238d61e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683862, + "duration": 10204, + "tags": [], + "logs": [ + { "timestamp": 1605873894683872, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894694063, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1cc731490b1da4c5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683858, + "duration": 10257, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "602204dc8b8fbc6d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683201, + "duration": 11185, + "tags": [], + "logs": [ + { "timestamp": 1605873894683207, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894694385, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "586e5e4c0400de11", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683196, + "duration": 11200, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "779ac3811ce65e40", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683844, + "duration": 10983, + "tags": [ + { "key": "blockID", "type": "string", "value": "20a16df1-a312-4b1a-a2e2-33b55e9f3c8b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894694822, + "fields": [ + { "key": "bytes", "type": "int64", "value": 315664 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "24203526fe09b1e2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682997, + "duration": 12453, + "tags": [], + "logs": [ + { "timestamp": 1605873894683002, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894695448, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0afe9ad5f5b01be7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682993, + "duration": 12466, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "51413d67348a4624", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682986, + "duration": 13059, + "tags": [ + { "key": "blockID", "type": "string", "value": "08b90b09-c56e-4b4a-b95f-3f0409dc9ce9" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894695963, + "fields": [ + { "key": "bytes", "type": "int64", "value": 239824 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "60007a76ffde4644", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682866, + "duration": 13279, + "tags": [], + "logs": [ + { "timestamp": 1605873894682872, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894696144, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "09d7a8c1faef5a84", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682861, + "duration": 13291, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2755efbbfb1b537b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682846, + "duration": 14054, + "tags": [ + { "key": "blockID", "type": "string", "value": "f78b0397-d3ad-4514-9bf4-87b6ea7e920e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894696898, + "fields": [ + { "key": "bytes", "type": "int64", "value": 218440 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "25223420e121413a", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683188, + "duration": 14278, + "tags": [ + { "key": "blockID", "type": "string", "value": "3ae22086-9266-481a-9725-c921471e4a94" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894697462, + "fields": [ + { "key": "bytes", "type": "int64", "value": 397880 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "17a3baf85848a727", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683030, + "duration": 14724, + "tags": [], + "logs": [ + { "timestamp": 1605873894683033, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894697752, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "46ebfa6c443776c4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683027, + "duration": 14734, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "19b1afe02cf639cf", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683883, + "duration": 14279, + "tags": [], + "logs": [ + { "timestamp": 1605873894683889, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894698160, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6e5a7dd55283f907", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683879, + "duration": 14289, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5085badf0c1dc842", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683657, + "duration": 14886, + "tags": [], + "logs": [ + { "timestamp": 1605873894683663, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894698542, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "71a0e94722b662ed", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683653, + "duration": 14897, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "57e69d8f17b39563", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683388, + "duration": 15548, + "tags": [], + "logs": [ + { "timestamp": 1605873894683394, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894698936, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6fe636103f47e1fc", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683384, + "duration": 15558, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "52146a5c1b2c0030", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683284, + "duration": 15701, + "tags": [], + "logs": [ + { "timestamp": 1605873894683290, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894698984, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "160fb4c8329a2ea0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683280, + "duration": 15712, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1e283fe0dd8cc773", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683024, + "duration": 16029, + "tags": [ + { "key": "blockID", "type": "string", "value": "9e102b4e-115a-4bda-abd6-aa6221f9e4b7" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894699050, + "fields": [ + { "key": "bytes", "type": "int64", "value": 395808 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bae5c35dd7187ba", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683644, + "duration": 15612, + "tags": [ + { "key": "blockID", "type": "string", "value": "b2f5a951-19a0-473d-8830-e1120ab7bf25" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894699255, + "fields": [ + { "key": "bytes", "type": "int64", "value": 345992 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5af2c497b60703d9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683842, + "duration": 15628, + "tags": [], + "logs": [ + { "timestamp": 1605873894683848, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894699469, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6a64d382dd0239a7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683837, + "duration": 15639, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "04652166eaec115c", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683378, + "duration": 16179, + "tags": [ + { "key": "blockID", "type": "string", "value": "30903640-5e8c-4cf6-9dc8-f84e0e2541c8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894699555, + "fields": [ + { "key": "bytes", "type": "int64", "value": 291056 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "650c7f5ec8cc53a5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683871, + "duration": 15807, + "tags": [ + { "key": "blockID", "type": "string", "value": "19b49abb-e17a-4632-a4b9-3ce95208e3cf" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894699675, + "fields": [ + { "key": "bytes", "type": "int64", "value": 424248 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1b30323ce39314b9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684553, + "duration": 15144, + "tags": [], + "logs": [ + { "timestamp": 1605873894684559, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894699696, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "288816ad36c9020c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684549, + "duration": 15154, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "26e83a54365218ad", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683881, + "duration": 16602, + "tags": [], + "logs": [ + { "timestamp": 1605873894683888, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894700482, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5e6a2e62081720fd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683878, + "duration": 16613, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "63332243ceed106c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683893, + "duration": 16666, + "tags": [], + "logs": [ + { "timestamp": 1605873894683900, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894700557, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7dbbbda52a6d32ce", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683888, + "duration": 16678, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "195ed27075e44238", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683828, + "duration": 16766, + "tags": [ + { "key": "blockID", "type": "string", "value": "6c5d1290-2b4b-4f33-9798-63b6654e16b4" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894700591, + "fields": [ + { "key": "bytes", "type": "int64", "value": 367848 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "35e5a12a53c6088a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682748, + "duration": 17901, + "tags": [], + "logs": [ + { "timestamp": 1605873894682751, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894700647, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "690fcd8c8dc87ae8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683273, + "duration": 17376, + "tags": [ + { "key": "blockID", "type": "string", "value": "f1db0c64-befe-4790-af19-7b48e57a9558" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894700646, + "fields": [ + { "key": "bytes", "type": "int64", "value": 386448 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "113befce4abfecb2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682745, + "duration": 17911, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "277870fa55872b13", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683865, + "duration": 17440, + "tags": [ + { "key": "blockID", "type": "string", "value": "f05f1d13-0250-492a-abc8-bca24ccf3a15" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894701291, + "fields": [ + { "key": "bytes", "type": "int64", "value": 211672 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "022b6c95374f166d", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683879, + "duration": 17471, + "tags": [ + { "key": "blockID", "type": "string", "value": "0cba7eaf-2546-41ac-99d7-673ef23d6e98" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894701347, + "fields": [ + { "key": "bytes", "type": "int64", "value": 406456 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6cee3530fc730d34", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684631, + "duration": 16733, + "tags": [], + "logs": [ + { "timestamp": 1605873894684639, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894701363, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "674b435291a256c4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684627, + "duration": 16745, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1de85b574e5d906c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683373, + "duration": 18328, + "tags": [], + "logs": [ + { "timestamp": 1605873894683380, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894701701, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4c5ac8757f9888b7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683369, + "duration": 18338, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3e5ab83b57207c74", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683042, + "duration": 18823, + "tags": [], + "logs": [ + { "timestamp": 1605873894683045, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894701863, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7d9927e5c258d511", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682730, + "duration": 19136, + "tags": [ + { "key": "blockID", "type": "string", "value": "794e2adc-701e-4c2d-907a-66221b4455d3" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894701864, + "fields": [ + { "key": "bytes", "type": "int64", "value": 289928 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6c9178ed1e68f858", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683039, + "duration": 18834, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "445d4f3f2dc4d0ad", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684214, + "duration": 17919, + "tags": [], + "logs": [ + { "timestamp": 1605873894684221, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702132, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "30dd998b2082f2b9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684210, + "duration": 17958, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2ff9bbb6c991a0ea", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683877, + "duration": 18301, + "tags": [], + "logs": [ + { "timestamp": 1605873894683883, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702177, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "310a2399bb07e8bd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683873, + "duration": 18311, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "19021bbbe6310785", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683360, + "duration": 18978, + "tags": [ + { "key": "blockID", "type": "string", "value": "d2212e62-5b1a-41e2-ae43-c0a596125f1b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894702335, + "fields": [ + { "key": "bytes", "type": "int64", "value": 199208 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "021f72c9979124b5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684621, + "duration": 17816, + "tags": [ + { "key": "blockID", "type": "string", "value": "06ebaf3b-4501-4cda-91fb-c48a9d33a99c" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894702434, + "fields": [ + { "key": "bytes", "type": "int64", "value": 384696 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "68a1e78424019eb9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683657, + "duration": 18900, + "tags": [], + "logs": [ + { "timestamp": 1605873894683663, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702556, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "244e73561d0c691d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683653, + "duration": 18910, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5c1d1b2d38dddcfb", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683518, + "duration": 19222, + "tags": [], + "logs": [ + { "timestamp": 1605873894683526, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702739, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "364583eecf36b543", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683513, + "duration": 19232, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "22e42286de359dc4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683843, + "duration": 18969, + "tags": [], + "logs": [ + { "timestamp": 1605873894683849, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702812, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7b936283fac4d0ac", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683838, + "duration": 18981, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "660886869edd36cf", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684202, + "duration": 18627, + "tags": [ + { "key": "blockID", "type": "string", "value": "f07137b8-7a0b-4199-b1a7-6b7d5b230723" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894702824, + "fields": [ + { "key": "bytes", "type": "int64", "value": 293936 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "57ed8902af3a60b5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683549, + "duration": 19426, + "tags": [], + "logs": [ + { "timestamp": 1605873894683554, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894702972, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "64cadcdb4f18b2f7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683544, + "duration": 19437, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "25f434fb5960aaef", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683933, + "duration": 19303, + "tags": [], + "logs": [ + { "timestamp": 1605873894683939, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894703235, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62afac560d435620", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683929, + "duration": 19314, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "58435ec74d79cc93", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683865, + "duration": 19469, + "tags": [ + { "key": "blockID", "type": "string", "value": "f2a53e6e-e261-4ec2-92bd-97c5a4c4b760" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894703331, + "fields": [ + { "key": "bytes", "type": "int64", "value": 390648 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "578849d0d44400b5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684004, + "duration": 19335, + "tags": [], + "logs": [ + { "timestamp": 1605873894684012, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894703337, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1f5faebfb90378ad", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683999, + "duration": 19346, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "41f1eb48b61ef185", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683035, + "duration": 20463, + "tags": [ + { "key": "blockID", "type": "string", "value": "941a63d4-2739-4ba2-9a15-08256b5c9eae" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894703490, + "fields": [ + { "key": "bytes", "type": "int64", "value": 438128 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "71ee8c7b83046da0", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683645, + "duration": 19895, + "tags": [ + { "key": "blockID", "type": "string", "value": "151c489c-a86a-49b7-9fa9-31d1714d59ee" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894703538, + "fields": [ + { "key": "bytes", "type": "int64", "value": 325344 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bf030a07aaceb80", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683218, + "duration": 20692, + "tags": [], + "logs": [ + { "timestamp": 1605873894683225, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894703909, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "54b34afd73af12d1", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683215, + "duration": 21011, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6a7ba0261825c53c", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683505, + "duration": 20615, + "tags": [ + { "key": "blockID", "type": "string", "value": "db0fa030-4607-40e5-998b-47029aa3430e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894704118, + "fields": [ + { "key": "bytes", "type": "int64", "value": 411272 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2a597269b23b1bcb", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683426, + "duration": 20720, + "tags": [], + "logs": [ + { "timestamp": 1605873894683431, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894704146, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "66d886579510b6fd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683422, + "duration": 20841, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1ef8e63340342174", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683990, + "duration": 20334, + "tags": [ + { "key": "blockID", "type": "string", "value": "a10ec85d-9fd2-403e-abcd-6f4ec49b0396" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894704322, + "fields": [ + { "key": "bytes", "type": "int64", "value": 442360 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "46c6de90778460b1", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683830, + "duration": 20675, + "tags": [ + { "key": "blockID", "type": "string", "value": "7e9e0142-15ff-461e-8e05-6c62d920603a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894704502, + "fields": [ + { "key": "bytes", "type": "int64", "value": 465744 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "686f3e58fe28940f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696113, + "duration": 8480, + "tags": [], + "logs": [ + { "timestamp": 1605873894696126, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894704591, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5960c1f5750b1cde", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696104, + "duration": 8495, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6aa5ddd42d96f825", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683921, + "duration": 20886, + "tags": [ + { "key": "blockID", "type": "string", "value": "43e5ad4f-11d6-4f25-9925-652cb801fd58" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894704804, + "fields": [ + { "key": "bytes", "type": "int64", "value": 405344 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "166377800e8e82a7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683214, + "duration": 21686, + "tags": [], + "logs": [ + { "timestamp": 1605873894683221, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894704899, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5e84f8676ef1efad", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683209, + "duration": 21696, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "713c834576a0d9b0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683037, + "duration": 22197, + "tags": [], + "logs": [ + { "timestamp": 1605873894683045, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894705234, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "209c0e336c71e932", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683033, + "duration": 22209, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bd34d50efadb568", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683414, + "duration": 21894, + "tags": [ + { "key": "blockID", "type": "string", "value": "b432160f-347c-41ad-882e-f1786e4b42b1" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894705305, + "fields": [ + { "key": "bytes", "type": "int64", "value": 409104 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "58cee6c544e69e4f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683206, + "duration": 22173, + "tags": [ + { "key": "blockID", "type": "string", "value": "b12afd19-298a-443f-97ce-b5b2e5bc9d79" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894705375, + "fields": [ + { "key": "bytes", "type": "int64", "value": 376872 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4e48e93f70e06522", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696061, + "duration": 9466, + "tags": [ + { "key": "blockID", "type": "string", "value": "45701f45-c93a-4c35-9fed-9cce2c316a19" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894705524, + "fields": [ + { "key": "bytes", "type": "int64", "value": 453296 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2422bf6c2ed108c2", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683536, + "duration": 20571, + "tags": [ + { "key": "blockID", "type": "string", "value": "51945006-c165-40af-baea-769b3199bf46" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894704104, + "fields": [ + { "key": "bytes", "type": "int64", "value": 342200 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "42fac7c66e0ca970", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683200, + "duration": 22685, + "tags": [ + { "key": "blockID", "type": "string", "value": "8772aa40-3489-4b12-b685-9f708ae4de75" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894705882, + "fields": [ + { "key": "bytes", "type": "int64", "value": 407152 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2a86d93e70a1720c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684627, + "duration": 21313, + "tags": [], + "logs": [ + { "timestamp": 1605873894684633, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894705939, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "72991150a8c3cf08", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684622, + "duration": 21322, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3ceac51ce73f994e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683627, + "duration": 22375, + "tags": [], + "logs": [ + { "timestamp": 1605873894683633, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706001, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "704707012227a4f1", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683623, + "duration": 22386, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "26cf501f6dcbb968", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683959, + "duration": 22090, + "tags": [], + "logs": [ + { "timestamp": 1605873894683965, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706048, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7ebb1c9d8a55ac56", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683952, + "duration": 22104, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bd01ea1e13ac6fd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683733, + "duration": 22571, + "tags": [], + "logs": [ + { "timestamp": 1605873894683739, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706303, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4f94f7e28081e1af", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683728, + "duration": 22582, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "60fd2b3931676856", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684310, + "duration": 22119, + "tags": [], + "logs": [ + { "timestamp": 1605873894684317, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706428, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "432bc11447588912", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684305, + "duration": 22131, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1e1aa88072a7cefc", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683026, + "duration": 23483, + "tags": [ + { "key": "blockID", "type": "string", "value": "9064347a-7c49-48d8-b348-8d734f7fd542" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894706506, + "fields": [ + { "key": "bytes", "type": "int64", "value": 365672 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1fb49823a6f803bf", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682930, + "duration": 23695, + "tags": [], + "logs": [ + { "timestamp": 1605873894682935, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706622, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7db786f0da6d756d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682926, + "duration": 23705, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "01cb21bacc3933da", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894697497, + "duration": 9150, + "tags": [], + "logs": [ + { "timestamp": 1605873894697507, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706646, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "260399c49430577a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894697488, + "duration": 9166, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5ba9d86263fc6da1", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684614, + "duration": 22250, + "tags": [ + { "key": "blockID", "type": "string", "value": "ca346cf4-8162-49e5-a0d0-0619d3813794" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894706862, + "fields": [ + { "key": "bytes", "type": "int64", "value": 416472 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "77f27a840cd8b75b", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685061, + "duration": 21838, + "tags": [], + "logs": [ + { "timestamp": 1605873894685068, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706897, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4a48a86f95e117f9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685057, + "duration": 21850, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7d1f782957acfe32", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682777, + "duration": 24168, + "tags": [], + "logs": [ + { "timestamp": 1605873894682783, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894706944, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "77f8165c15176536", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682773, + "duration": 24206, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7f20dbc684de78c8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683615, + "duration": 23703, + "tags": [ + { "key": "blockID", "type": "string", "value": "f518974f-2e1e-41c8-b70c-cd2088f5a081" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894707316, + "fields": [ + { "key": "bytes", "type": "int64", "value": 278728 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "70a453eeff8ec687", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684828, + "duration": 22510, + "tags": [], + "logs": [ + { "timestamp": 1605873894684835, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894707337, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0c7d975a67c6d7bc", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684823, + "duration": 22520, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7ccb153793c6afd9", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683720, + "duration": 23911, + "tags": [ + { "key": "blockID", "type": "string", "value": "6f72b73b-c5fe-4761-b91f-b92f447441fa" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894707629, + "fields": [ + { "key": "bytes", "type": "int64", "value": 451984 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5bf10b9afef405a9", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894697476, + "duration": 10175, + "tags": [ + { "key": "blockID", "type": "string", "value": "61e0a11e-5e88-49c4-ad1d-81636670e642" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894707648, + "fields": [ + { "key": "bytes", "type": "int64", "value": 296328 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1aae38562e2b6a1f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683945, + "duration": 23883, + "tags": [ + { "key": "blockID", "type": "string", "value": "7dda9580-666b-42f9-b8a1-1680a0de352f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894707823, + "fields": [ + { "key": "bytes", "type": "int64", "value": 402936 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1dc5a0697b5d6161", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682764, + "duration": 25091, + "tags": [ + { "key": "blockID", "type": "string", "value": "bf101e70-4a86-4d88-890c-e976330ba857" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894707853, + "fields": [ + { "key": "bytes", "type": "int64", "value": 385288 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3df0c4e2de834172", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684425, + "duration": 23557, + "tags": [], + "logs": [ + { "timestamp": 1605873894684432, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894707980, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "50f5d53109a047da", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684421, + "duration": 23568, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "64e62db2206bdda3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682595, + "duration": 25553, + "tags": [], + "logs": [ + { "timestamp": 1605873894682603, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894708147, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "40f0742ab8be92ab", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682589, + "duration": 25564, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6b89efb6b9fb16fc", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684815, + "duration": 23341, + "tags": [ + { "key": "blockID", "type": "string", "value": "84b0a7ea-895d-49f9-892c-11f689f0c13f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894708154, + "fields": [ + { "key": "bytes", "type": "int64", "value": 424816 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "33c05fda4c7d3921", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684414, + "duration": 23815, + "tags": [], + "logs": [ + { "timestamp": 1605873894684420, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894708228, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "742995638b3636e6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684409, + "duration": 23825, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1cf9294062a5780b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682920, + "duration": 25427, + "tags": [ + { "key": "blockID", "type": "string", "value": "e43ee3db-63c9-4d2b-a791-99a5a9203e4e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894708341, + "fields": [ + { "key": "bytes", "type": "int64", "value": 396312 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6852631d2c6d1586", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683843, + "duration": 24695, + "tags": [], + "logs": [ + { "timestamp": 1605873894683850, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894708538, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1691ee4e1f907b39", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683839, + "duration": 24706, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bcd55e85df0601a", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684400, + "duration": 24493, + "tags": [ + { "key": "blockID", "type": "string", "value": "211313f2-7284-43eb-b9dc-134b5b344524" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894708891, + "fields": [ + { "key": "bytes", "type": "int64", "value": 249032 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7757c670662153b5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682578, + "duration": 26605, + "tags": [ + { "key": "blockID", "type": "string", "value": "99a8b127-bef6-4718-997b-18e5cb6bee81" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894709180, + "fields": [ + { "key": "bytes", "type": "int64", "value": 443904 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "033e809d9deb02fb", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683129, + "duration": 26149, + "tags": [], + "logs": [ + { "timestamp": 1605873894683139, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709277, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0701e7633d141024", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683124, + "duration": 26160, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5a1fcbfa2c2e077e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682990, + "duration": 26296, + "tags": [], + "logs": [ + { "timestamp": 1605873894682993, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709285, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2639318a16168a94", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682987, + "duration": 26304, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "573267e2aab9eb37", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683831, + "duration": 25627, + "tags": [ + { "key": "blockID", "type": "string", "value": "9a5df823-d980-4671-b33f-ef92e485232f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894709455, + "fields": [ + { "key": "bytes", "type": "int64", "value": 357872 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3705123c90491605", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683886, + "duration": 25575, + "tags": [], + "logs": [ + { "timestamp": 1605873894683890, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709460, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "46138581a74be710", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683883, + "duration": 25585, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "369cd4694f877602", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684325, + "duration": 25173, + "tags": [], + "logs": [ + { "timestamp": 1605873894684385, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709498, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7aab906468c79c5b", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894703359, + "duration": 6145, + "tags": [], + "logs": [ + { "timestamp": 1605873894703375, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709503, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "57f0ffddbcc40049", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684321, + "duration": 25185, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0c27a77ad2f6bbb3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894703354, + "duration": 6155, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "27f360a42e423410", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696933, + "duration": 12666, + "tags": [], + "logs": [ + { "timestamp": 1605873894696942, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709598, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7e5086a8bb3eb3b3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696926, + "duration": 12678, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "42f4a2e45bc6b552", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683602, + "duration": 26169, + "tags": [], + "logs": [ + { "timestamp": 1605873894683608, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709771, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "693c3e7a4e085ce6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683598, + "duration": 26180, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7645427b1d8ca012", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894694874, + "duration": 15023, + "tags": [], + "logs": [ + { "timestamp": 1605873894694896, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894709897, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2e6e130f1e7bf5ca", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894694866, + "duration": 15038, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2155087a44565c8a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894700685, + "duration": 9446, + "tags": [], + "logs": [ + { "timestamp": 1605873894700698, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894710131, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "66ed873b2793ee77", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894700678, + "duration": 9459, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "69654d80ac69ec92", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702020, + "duration": 8202, + "tags": [], + "logs": [ + { "timestamp": 1605873894702031, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894710221, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3a0447242878ba00", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894701338, + "duration": 8890, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2e73b563bfa4df76", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683106, + "duration": 27358, + "tags": [ + { "key": "blockID", "type": "string", "value": "b89a056f-d8cd-41e9-84ad-445e68d0a0d5" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894710462, + "fields": [ + { "key": "bytes", "type": "int64", "value": 337664 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2e958ff5d95860cf", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683591, + "duration": 27357, + "tags": [ + { "key": "blockID", "type": "string", "value": "4767ecb2-01d3-450b-b005-6b9219fdfd71" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894710945, + "fields": [ + { "key": "bytes", "type": "int64", "value": 421576 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4854f2803a2439d0", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684313, + "duration": 26669, + "tags": [ + { "key": "blockID", "type": "string", "value": "ec9c982f-485f-47b2-be74-a7f203368ede" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894710972, + "fields": [ + { "key": "bytes", "type": "int64", "value": 409016 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62aa1124fbaafe29", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684107, + "duration": 26934, + "tags": [], + "logs": [ + { "timestamp": 1605873894684113, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894711040, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "67ee705c301e7e2a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684102, + "duration": 26945, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "417798c3fbab4244", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894696911, + "duration": 14252, + "tags": [ + { "key": "blockID", "type": "string", "value": "6a346739-04b1-4e86-8f87-e182b01cf5cd" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894711160, + "fields": [ + { "key": "bytes", "type": "int64", "value": 407144 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "17faaf92fbea2ed9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683730, + "duration": 27707, + "tags": [], + "logs": [ + { "timestamp": 1605873894683736, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894711435, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "29d4e2aa59eae59e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683726, + "duration": 27719, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3b9a85f6cd6075b8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894701327, + "duration": 10230, + "tags": [ + { "key": "blockID", "type": "string", "value": "ece056d3-aa27-464b-81a8-643b3ae208e4" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894711554, + "fields": [ + { "key": "bytes", "type": "int64", "value": 359960 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0da2897c85659567", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683377, + "duration": 28594, + "tags": [], + "logs": [ + { "timestamp": 1605873894683384, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894711971, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4407d391acba81fc", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683373, + "duration": 28605, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1987773829521f8f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699105, + "duration": 12885, + "tags": [], + "logs": [ + { "timestamp": 1605873894699119, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894711989, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1c9553a6471269c6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699099, + "duration": 12896, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3dedf220c1f51d38", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704853, + "duration": 7356, + "tags": [], + "logs": [ + { "timestamp": 1605873894704879, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894712209, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "25820f0eebf05ab3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704846, + "duration": 7370, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7027388faf7e1bf1", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684937, + "duration": 27418, + "tags": [], + "logs": [ + { "timestamp": 1605873894684943, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894712354, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "44c6d6c7e1afb67d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684933, + "duration": 27429, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3f654e75b41629f5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683718, + "duration": 28677, + "tags": [ + { "key": "blockID", "type": "string", "value": "0e5b1fbb-ab10-44b7-89a0-f8932ee26dcf" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894712392, + "fields": [ + { "key": "bytes", "type": "int64", "value": 369000 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4fa1d1a031112ab0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682996, + "duration": 29565, + "tags": [], + "logs": [ + { "timestamp": 1605873894683006, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894712560, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2e0985a0b4168ff2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682988, + "duration": 29577, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7a7bf32e81f4317e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682984, + "duration": 29753, + "tags": [ + { "key": "blockID", "type": "string", "value": "c56f4809-bc48-4f81-9656-a3bbb96ba87e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894712734, + "fields": [ + { "key": "bytes", "type": "int64", "value": 406296 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "66d4f363dfa46bdb", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684041, + "duration": 28730, + "tags": [], + "logs": [ + { "timestamp": 1605873894684111, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894712771, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "616b800031f78e5f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684037, + "duration": 28741, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5b0d3da4dac0a4ab", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683364, + "duration": 29595, + "tags": [ + { "key": "blockID", "type": "string", "value": "10e42379-1c35-419e-a26c-2630b9d2cdd2" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894712956, + "fields": [ + { "key": "bytes", "type": "int64", "value": 354744 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1571e420dca57b9f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683878, + "duration": 29122, + "tags": [ + { "key": "blockID", "type": "string", "value": "adb287c7-69e4-4ed8-8604-c3302c766db2" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894712996, + "fields": [ + { "key": "bytes", "type": "int64", "value": 300104 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3120fb610c52c9a6", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684415, + "duration": 28590, + "tags": [ + { "key": "blockID", "type": "string", "value": "faebcb3d-444a-4675-8e55-2f46dbcaa1d7" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713002, + "fields": [ + { "key": "bytes", "type": "int64", "value": 410672 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "46feff0edeabb674", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683135, + "duration": 29700, + "tags": [], + "logs": [ + { "timestamp": 1605873894683141, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894712834, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "32df737f09cd2bf9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683131, + "duration": 29904, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "604de25c9811a395", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699064, + "duration": 14141, + "tags": [ + { "key": "blockID", "type": "string", "value": "7df8ef23-0902-4b4b-92aa-b6c1aeb3c9c2" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713203, + "fields": [ + { "key": "bytes", "type": "int64", "value": 436328 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7867c14538ff0c61", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684923, + "duration": 28333, + "tags": [ + { "key": "blockID", "type": "string", "value": "a94e5162-7e01-4bd6-b5c8-1bc3b50c67c6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713253, + "fields": [ + { "key": "bytes", "type": "int64", "value": 433064 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "04e793f4b075b20f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684557, + "duration": 28822, + "tags": [], + "logs": [ + { "timestamp": 1605873894684565, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713378, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3084a10a11a62355", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684553, + "duration": 28832, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0a0b86e5738d630b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685048, + "duration": 28355, + "tags": [ + { "key": "blockID", "type": "string", "value": "36ce4c95-0cb6-4803-bdfd-b316b3c0cc4c" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713400, + "fields": [ + { "key": "bytes", "type": "int64", "value": 293136 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62ea00c2c871a91e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704821, + "duration": 8702, + "tags": [ + { "key": "blockID", "type": "string", "value": "b9c0dc2b-ee12-4876-a517-2902c6fe655e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713521, + "fields": [ + { "key": "bytes", "type": "int64", "value": 415912 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0f54c2d4ac7df141", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683769, + "duration": 29774, + "tags": [], + "logs": [ + { "timestamp": 1605873894683775, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713542, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5e650633f1c4cb45", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683764, + "duration": 29784, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4cff4ebd296d36f0", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684028, + "duration": 29524, + "tags": [ + { "key": "blockID", "type": "string", "value": "e6200492-f24a-40ef-946a-e89170d1ac54" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894713549, + "fields": [ + { "key": "bytes", "type": "int64", "value": 447592 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0da82a874696fec5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684230, + "duration": 29351, + "tags": [], + "logs": [ + { "timestamp": 1605873894684236, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713581, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "20334815e0eb1b97", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684226, + "duration": 29362, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "20de4a897b30c066", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683315, + "duration": 30412, + "tags": [], + "logs": [ + { "timestamp": 1605873894683323, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713726, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6edcc31aa4c96617", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683309, + "duration": 30424, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3594272577366bc9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684491, + "duration": 29257, + "tags": [], + "logs": [ + { "timestamp": 1605873894684498, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713747, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "01e9f897c4145c38", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684485, + "duration": 29270, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "53e0bef2bbb77bea", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684901, + "duration": 28911, + "tags": [], + "logs": [ + { "timestamp": 1605873894684908, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713812, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3df7804d8e682193", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684897, + "duration": 28919, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5664530667612f1f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682860, + "duration": 31015, + "tags": [], + "logs": [ + { "timestamp": 1605873894682871, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894713875, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4b6340b15001f8c8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682855, + "duration": 31026, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6b3d3f0643735e5f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894694842, + "duration": 19190, + "tags": [ + { "key": "blockID", "type": "string", "value": "f0b87e56-00a6-4270-8ce0-b47affb9113e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894714027, + "fields": [ + { "key": "bytes", "type": "int64", "value": 310320 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4a4b3e0d2f115bcf", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683987, + "duration": 30363, + "tags": [], + "logs": [ + { "timestamp": 1605873894683994, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894714350, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1e0da3179b38449d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683983, + "duration": 30374, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "318fcd8e3bfc42c7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684209, + "duration": 30152, + "tags": [], + "logs": [ + { "timestamp": 1605873894684215, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894714360, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "37e82ddc44e6bf60", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684205, + "duration": 30162, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0271272ae09aac5f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684542, + "duration": 29977, + "tags": [ + { "key": "blockID", "type": "string", "value": "bfbb9652-84f8-4145-8091-8197ea922ad3" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894714514, + "fields": [ + { "key": "bytes", "type": "int64", "value": 432848 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2d80feb23cbbb7cd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684508, + "duration": 30161, + "tags": [], + "logs": [ + { "timestamp": 1605873894684515, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894714668, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "01ad9e5d3837c5b6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684503, + "duration": 30172, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "42698e68a26de8cf", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683756, + "duration": 30942, + "tags": [ + { "key": "blockID", "type": "string", "value": "55f71d63-05b0-4c3a-b79f-a2563307bf40" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894714695, + "fields": [ + { "key": "bytes", "type": "int64", "value": 402624 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6ea302c343fec88f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683645, + "duration": 31247, + "tags": [], + "logs": [ + { "timestamp": 1605873894683652, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894714891, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "279e17d93d4978da", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683641, + "duration": 31258, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "59b29ac1ab225873", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683001, + "duration": 31930, + "tags": [], + "logs": [ + { "timestamp": 1605873894683006, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894714930, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4196b1f250632b3e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682998, + "duration": 31938, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "224b550ee6ad2bf2", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684889, + "duration": 30088, + "tags": [ + { "key": "blockID", "type": "string", "value": "07baec6a-187a-493b-b160-772936b5a3f0" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894714974, + "fields": [ + { "key": "bytes", "type": "int64", "value": 429360 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "368bcd97b5e9dde0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684678, + "duration": 30934, + "tags": [], + "logs": [ + { "timestamp": 1605873894684685, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894715611, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3d88bddf112b8ae2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684672, + "duration": 30946, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "718a103bd19501b2", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684196, + "duration": 31424, + "tags": [ + { "key": "blockID", "type": "string", "value": "a85669d8-148b-4d61-a359-8f97c036b880" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894715617, + "fields": [ + { "key": "bytes", "type": "int64", "value": 401280 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2b56997697dd91c0", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684472, + "duration": 31151, + "tags": [ + { "key": "blockID", "type": "string", "value": "75911f2c-fc5e-4ef1-bcff-9abad2120f23" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894715621, + "fields": [ + { "key": "bytes", "type": "int64", "value": 397808 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1c049cad7edf280e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683630, + "duration": 32119, + "tags": [ + { "key": "blockID", "type": "string", "value": "fdcc5380-c15f-41c2-9a34-623d6cdd2d5a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894715733, + "fields": [ + { "key": "bytes", "type": "int64", "value": 397464 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6e3d16e8ed14d90c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702877, + "duration": 12975, + "tags": [], + "logs": [ + { "timestamp": 1605873894702894, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894715852, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7bd595782cdb70c3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699700, + "duration": 16154, + "tags": [], + "logs": [ + { "timestamp": 1605873894699708, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894715853, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "08a9d074d520a512", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702864, + "duration": 12993, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "083316368540b811", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699695, + "duration": 16164, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7f067cadc2b4569d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684535, + "duration": 31520, + "tags": [], + "logs": [ + { "timestamp": 1605873894684540, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894716053, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5061bd596bc8a7e7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684531, + "duration": 31530, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4b9772650994e725", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682990, + "duration": 33209, + "tags": [ + { "key": "blockID", "type": "string", "value": "61022db6-4401-40b6-a3a2-1f4cd5ccb430" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894716196, + "fields": [ + { "key": "bytes", "type": "int64", "value": 380504 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0e9c6b89215308ba", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683975, + "duration": 32340, + "tags": [ + { "key": "blockID", "type": "string", "value": "f17c848f-2f99-4215-a5e9-1f55d8e15c1e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894716311, + "fields": [ + { "key": "bytes", "type": "int64", "value": 447736 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "030573bc0520e3c2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683061, + "duration": 33348, + "tags": [], + "logs": [ + { "timestamp": 1605873894683067, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894716409, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0d2e16a8cf201e5a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683057, + "duration": 33357, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0361f359be22f9c8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702474, + "duration": 14135, + "tags": [], + "logs": [ + { "timestamp": 1605873894702483, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894716607, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5310c5c355550cad", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702463, + "duration": 14156, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "16870d24920c25b8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699686, + "duration": 17072, + "tags": [ + { "key": "blockID", "type": "string", "value": "320a9ecd-a9fd-4c88-8aeb-e8a312dcce0c" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894716753, + "fields": [ + { "key": "bytes", "type": "int64", "value": 424544 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62090e9e1c22bb56", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707676, + "duration": 9095, + "tags": [], + "logs": [ + { "timestamp": 1605873894707691, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894716771, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "02d91deb1ff0ea76", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707670, + "duration": 9107, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0cc47cc1eb5deb29", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702844, + "duration": 13991, + "tags": [ + { "key": "blockID", "type": "string", "value": "04e21143-53ef-4083-948e-3bbe502c2d44" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894716832, + "fields": [ + { "key": "bytes", "type": "int64", "value": 401728 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1b27a749f4d1b557", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684297, + "duration": 32550, + "tags": [ + { "key": "blockID", "type": "string", "value": "d1ffbf86-0e11-4b6e-b9ae-8466e7c42a90" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894716844, + "fields": [ + { "key": "bytes", "type": "int64", "value": 193992 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3c5f2282a3e7c658", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683345, + "duration": 33584, + "tags": [], + "logs": [ + { "timestamp": 1605873894683352, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894716927, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6fc62f7a1ae1a6e9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683340, + "duration": 33596, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "524a9c941765266a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684584, + "duration": 32449, + "tags": [], + "logs": [ + { "timestamp": 1605873894684592, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894717030, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5bcaa6a4a1c06160", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684579, + "duration": 32460, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2d4e045a72c17ff2", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684465, + "duration": 32666, + "tags": [ + { "key": "blockID", "type": "string", "value": "4c9f58b7-b944-4692-9d5b-14270bd1b8d6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894717127, + "fields": [ + { "key": "bytes", "type": "int64", "value": 436224 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "25548a46750dfecb", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684652, + "duration": 32684, + "tags": [ + { "key": "blockID", "type": "string", "value": "ffd8fb66-db97-4451-9a97-bfb6631b82a5" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894717332, + "fields": [ + { "key": "bytes", "type": "int64", "value": 434536 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5f4913a50dcd37c8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683050, + "duration": 34487, + "tags": [ + { "key": "blockID", "type": "string", "value": "0255db6b-061e-4ceb-9ae9-598588995be8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894717533, + "fields": [ + { "key": "bytes", "type": "int64", "value": 392520 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6750f7ac4a5b50e8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684648, + "duration": 32974, + "tags": [], + "logs": [ + { "timestamp": 1605873894684654, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894717621, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "41f4b72bd0a14291", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684644, + "duration": 32984, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "03fac2f4c91b31b6", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702448, + "duration": 15285, + "tags": [ + { "key": "blockID", "type": "string", "value": "f7da9248-f02e-44df-b243-c1f5f69e0f67" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894717730, + "fields": [ + { "key": "bytes", "type": "int64", "value": 366872 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4934a16eeec96b0d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684005, + "duration": 33827, + "tags": [], + "logs": [ + { "timestamp": 1605873894684010, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894717831, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0ebf8034f9944320", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684001, + "duration": 33836, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0cc1f6dfcc153616", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683672, + "duration": 34388, + "tags": [], + "logs": [ + { "timestamp": 1605873894683679, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894718059, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "501e4211325ef503", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683667, + "duration": 34399, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7bcf0390730028ef", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683332, + "duration": 34943, + "tags": [ + { "key": "blockID", "type": "string", "value": "cbeb7cd1-c8b1-4290-be74-4caf7b3f2d69" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894718272, + "fields": [ + { "key": "bytes", "type": "int64", "value": 432424 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1b30f12cd1728ebf", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683995, + "duration": 34418, + "tags": [ + { "key": "blockID", "type": "string", "value": "2dd90b29-ffb5-4a27-bcd7-0950ca151c14" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894718411, + "fields": [ + { "key": "bytes", "type": "int64", "value": 210280 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "22a3f914c23d3456", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684570, + "duration": 34106, + "tags": [ + { "key": "blockID", "type": "string", "value": "4fca87b1-ceb1-4290-a3cb-c0a970a7c5a6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894718671, + "fields": [ + { "key": "bytes", "type": "int64", "value": 422528 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "169359b95c501fae", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683035, + "duration": 35830, + "tags": [], + "logs": [ + { "timestamp": 1605873894683041, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894718864, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "71541fab4a38308f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683031, + "duration": 35841, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3a7fc15a2fb60753", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707659, + "duration": 11315, + "tags": [ + { "key": "blockID", "type": "string", "value": "57b3be9d-2234-4b8b-a380-424f30717e5b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894718970, + "fields": [ + { "key": "bytes", "type": "int64", "value": 437088 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "10e57e001b6c6127", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683210, + "duration": 35772, + "tags": [], + "logs": [ + { "timestamp": 1605873894683220, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894718980, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2c3fb8ad983d67fc", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683206, + "duration": 35784, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3fca8d21c0827061", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684366, + "duration": 34674, + "tags": [], + "logs": [ + { "timestamp": 1605873894684372, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894719039, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "25a226515c2f9150", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684362, + "duration": 34687, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5fb9111ac6a5d18d", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683274, + "duration": 35965, + "tags": [], + "logs": [ + { "timestamp": 1605873894683286, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894719238, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6945097dfeae216a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683268, + "duration": 35979, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6dd256468dea419f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684628, + "duration": 34986, + "tags": [ + { "key": "blockID", "type": "string", "value": "0a5b8e26-05d5-4df2-97c1-a57ccb631b5e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894719610, + "fields": [ + { "key": "bytes", "type": "int64", "value": 368392 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "22c3bb99916b1cf9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684954, + "duration": 34724, + "tags": [], + "logs": [ + { "timestamp": 1605873894684961, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894719678, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7786d37aacb34302", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684949, + "duration": 34735, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0b4489a19011e658", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702395, + "duration": 17621, + "tags": [], + "logs": [ + { "timestamp": 1605873894702404, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720015, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5fe309dbb10a8aa0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702385, + "duration": 17639, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "28a88c33b44009c0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684502, + "duration": 35545, + "tags": [], + "logs": [ + { "timestamp": 1605873894684508, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720047, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6d20c9fb0d7d023a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683045, + "duration": 37003, + "tags": [], + "logs": [ + { "timestamp": 1605873894683057, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720047, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7aed634e79451eff", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684353, + "duration": 35695, + "tags": [ + { "key": "blockID", "type": "string", "value": "c4b4a484-2704-49e8-926b-e7bb7a13c520" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720046, + "fields": [ + { "key": "bytes", "type": "int64", "value": 394640 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2361a627270177b2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684498, + "duration": 35556, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6365c636dea9cf69", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683040, + "duration": 37014, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7fd1af0b8e4b13e5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704467, + "duration": 15587, + "tags": [], + "logs": [ + { "timestamp": 1605873894704477, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720054, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4d0b05c2fe988374", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704458, + "duration": 15600, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "45d91fa92cb81841", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683191, + "duration": 36908, + "tags": [ + { "key": "blockID", "type": "string", "value": "abec5c1e-02b5-4165-8b3d-2940d3adb991" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720066, + "fields": [ + { "key": "bytes", "type": "int64", "value": 352392 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4287af315802d4cd", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704355, + "duration": 15863, + "tags": [], + "logs": [ + { "timestamp": 1605873894704369, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720218, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62b352c305041dcc", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704348, + "duration": 15876, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6ec165f264482f57", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683346, + "duration": 37139, + "tags": [], + "logs": [ + { "timestamp": 1605873894683351, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720484, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7400527184eeef19", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683342, + "duration": 37152, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": ["invalid parent span IDs=4ff7c150586c7e6f; skipping clock skew adjustment"] + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1561e391ecd756d5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684939, + "duration": 35696, + "tags": [ + { "key": "blockID", "type": "string", "value": "7dbea947-c624-454c-a99a-b2aa0c96c19f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720631, + "fields": [ + { "key": "bytes", "type": "int64", "value": 328592 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "57f916fcf19f117f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682643, + "duration": 38011, + "tags": [], + "logs": [ + { "timestamp": 1605873894682653, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720650, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1d4458304925bc0f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682638, + "duration": 38028, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": ["invalid parent span IDs=3ff0fd3a1cdb9b5e; skipping clock skew adjustment"] + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6f251bfe2c45ae12", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894709481, + "duration": 11241, + "tags": [], + "logs": [ + { "timestamp": 1605873894709489, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720722, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5365877f5f1070a3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894709476, + "duration": 11253, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": ["invalid parent span IDs=5d1a0e533881c649; skipping clock skew adjustment"] + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5472390246aac5c4", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683265, + "duration": 37540, + "tags": [ + { "key": "blockID", "type": "string", "value": "31cd1597-b435-467c-8726-9fd43cb8f75a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720802, + "fields": [ + { "key": "bytes", "type": "int64", "value": 263520 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "38b14977915ca22c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683471, + "duration": 37385, + "tags": [], + "logs": [ + { "timestamp": 1605873894683477, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894720855, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "08ecb88049158355", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683466, + "duration": 37394, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": ["invalid parent span IDs=241c721a4337e64b; skipping clock skew adjustment"] + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4cb042697154defa", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684490, + "duration": 36497, + "tags": [ + { "key": "blockID", "type": "string", "value": "37430ec1-eb84-4ad4-9bea-64b05bc05f0b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720984, + "fields": [ + { "key": "bytes", "type": "int64", "value": 329440 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "01afdbfe975f8d6d", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704258, + "duration": 16738, + "tags": [ + { "key": "blockID", "type": "string", "value": "52136585-3c3c-418c-85bb-079c46f30ee8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894720994, + "fields": [ + { "key": "bytes", "type": "int64", "value": 271408 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1c881037e38b18ad", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894704334, + "duration": 16710, + "tags": [ + { "key": "blockID", "type": "string", "value": "293f4ca9-60cf-4dce-84f9-90d7a8903467" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894721042, + "fields": [ + { "key": "bytes", "type": "int64", "value": 448208 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "727cf2a7b14f8891", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683209, + "duration": 37913, + "tags": [], + "logs": [ + { "timestamp": 1605873894683217, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894721121, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "72a3d0dd535ed714", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683196, + "duration": 37928, + "tags": [], + "logs": [ + { "timestamp": 1605873894683202, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894721124, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6e28aae41ed950a0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683204, + "duration": 37923, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1034cca4b87566b9", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683192, + "duration": 37937, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5477c4334a555c1a", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894702369, + "duration": 18817, + "tags": [ + { "key": "blockID", "type": "string", "value": "65c35f00-7bf4-4d7c-884e-57e1f4f386f1" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894721184, + "fields": [ + { "key": "bytes", "type": "int64", "value": 343160 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "156254fce90fef6d", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683261, + "duration": 38071, + "tags": [ + { "key": "blockID", "type": "string", "value": "5f6da848-1f43-4327-b791-c8607c834469" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894721329, + "fields": [ + { "key": "bytes", "type": "int64", "value": 425008 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "18174ee576735b69", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683380, + "duration": 38087, + "tags": [], + "logs": [ + { "timestamp": 1605873894683386, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894721466, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3c984a418432da06", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683376, + "duration": 38097, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2cb4a90ec9e7ed56", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684207, + "duration": 37304, + "tags": [ + { "key": "blockID", "type": "string", "value": "da15aeab-47f3-4150-a3a0-0b899f5728e0" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894721505, + "fields": [ + { "key": "bytes", "type": "int64", "value": 435448 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "31a678641a0daa14", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683185, + "duration": 38722, + "tags": [ + { "key": "blockID", "type": "string", "value": "7f859498-9292-4be9-9902-9cc0cc94db7f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894721902, + "fields": [ + { "key": "bytes", "type": "int64", "value": 382184 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "27ca437dde2b9612", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683192, + "duration": 38914, + "tags": [ + { "key": "blockID", "type": "string", "value": "723cdf42-e4bc-48dc-bda5-6173eb15dee4" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894722104, + "fields": [ + { "key": "bytes", "type": "int64", "value": 374272 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "777ba94dbf7e2679", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894703342, + "duration": 18950, + "tags": [ + { "key": "blockID", "type": "string", "value": "9ffb7568-b253-46bf-ae30-275a5370abdd" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894722288, + "fields": [ + { "key": "bytes", "type": "int64", "value": 296800 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "447a1de4607678e0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894716862, + "duration": 5567, + "tags": [], + "logs": [ + { "timestamp": 1605873894716881, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894722428, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4a1cb35fb165238f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894716854, + "duration": 5582, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "263d88ba7760646a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707662, + "duration": 14938, + "tags": [], + "logs": [ + { "timestamp": 1605873894707677, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894722599, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7cb0a9332c646221", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707654, + "duration": 14951, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "178dbf7349f30deb", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682835, + "duration": 39846, + "tags": [ + { "key": "blockID", "type": "string", "value": "ae4b5b30-d87d-459f-8bfe-d05f4f169ced" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894722679, + "fields": [ + { "key": "bytes", "type": "int64", "value": 384344 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "150994409f1cb25a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894700618, + "duration": 22118, + "tags": [], + "logs": [ + { "timestamp": 1605873894700633, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894722736, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "585e5d65d550b215", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894700613, + "duration": 22129, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "27511615066e34db", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684102, + "duration": 38879, + "tags": [], + "logs": [ + { "timestamp": 1605873894684108, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894722980, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "79b947d9ed7866a6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684097, + "duration": 38891, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6f2e6507fe12975c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894717161, + "duration": 5887, + "tags": [], + "logs": [ + { "timestamp": 1605873894717174, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723047, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "00cdeb6a7479c53f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894717155, + "duration": 5899, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "24bddd4ea3487e35", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683371, + "duration": 39804, + "tags": [ + { "key": "blockID", "type": "string", "value": "d7601ebc-c33c-492c-a1da-4aa053533084" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894723171, + "fields": [ + { "key": "bytes", "type": "int64", "value": 365144 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "53d7bccf2fc103c5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894716842, + "duration": 6390, + "tags": [ + { "key": "blockID", "type": "string", "value": "ca64f28a-77dc-4745-abdc-44054c1e5e40" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894723228, + "fields": [ + { "key": "bytes", "type": "int64", "value": 289352 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "552db884462abcc8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683762, + "duration": 39518, + "tags": [], + "logs": [ + { "timestamp": 1605873894683768, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723279, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "66bfd77009ceabee", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683756, + "duration": 39531, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "39ecc86ead7ef908", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684607, + "duration": 38759, + "tags": [], + "logs": [ + { "timestamp": 1605873894684613, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723365, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "23e63f9ee6638cc5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684602, + "duration": 38769, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3995f8a937161d18", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685603, + "duration": 37861, + "tags": [], + "logs": [ + { "timestamp": 1605873894685611, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723463, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7d8cbf547f13bab8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685598, + "duration": 37871, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "50ea9bcb501f096f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707639, + "duration": 15983, + "tags": [ + { "key": "blockID", "type": "string", "value": "7ba16a23-7c29-4c4e-a0a6-f5a35697f61e" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894723607, + "fields": [ + { "key": "bytes", "type": "int64", "value": 283976 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "36174ad72177e7e0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683065, + "duration": 40713, + "tags": [], + "logs": [ + { "timestamp": 1605873894683103, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723777, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6eb33f7265438984", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683062, + "duration": 40722, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0d173415b42b54df", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684351, + "duration": 39618, + "tags": [], + "logs": [ + { "timestamp": 1605873894684357, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894723968, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0353b10977450cf7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684346, + "duration": 39628, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7b094f4ebdce31c3", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894717141, + "duration": 6985, + "tags": [ + { "key": "blockID", "type": "string", "value": "f1a4a13f-5e5d-484e-8b53-1f4f8e1bad37" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894724124, + "fields": [ + { "key": "bytes", "type": "int64", "value": 448472 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4bf98f62683b0e8e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894700602, + "duration": 23557, + "tags": [ + { "key": "blockID", "type": "string", "value": "2c8d9e08-28c9-43e0-a38e-48e205e70c0a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894724156, + "fields": [ + { "key": "bytes", "type": "int64", "value": 454976 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3d32ea43a7ace6a3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685122, + "duration": 39094, + "tags": [], + "logs": [ + { "timestamp": 1605873894685153, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894724214, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "42780d9e0c2beb80", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685114, + "duration": 39108, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6d4dfd6622f9d4e5", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684594, + "duration": 39780, + "tags": [ + { "key": "blockID", "type": "string", "value": "6926ecb7-efff-41c5-ae95-85e0b8e75bed" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894724372, + "fields": [ + { "key": "bytes", "type": "int64", "value": 364000 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "462c7cc77e9bde26", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684089, + "duration": 40384, + "tags": [ + { "key": "blockID", "type": "string", "value": "eacc5319-5c66-4ef0-bdc7-61ebcd665770" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894724469, + "fields": [ + { "key": "bytes", "type": "int64", "value": 375312 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "64c5e8cb8a8c9c87", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684553, + "duration": 40087, + "tags": [], + "logs": [ + { "timestamp": 1605873894684559, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894724639, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6a2abf3fa1e44a02", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684548, + "duration": 40098, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5185d47ca37c94b2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684289, + "duration": 40372, + "tags": [], + "logs": [ + { "timestamp": 1605873894684296, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894724661, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "63f3f66dc1b96cb5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684283, + "duration": 40383, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "09dfedf04619fd00", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683527, + "duration": 41169, + "tags": [], + "logs": [ + { "timestamp": 1605873894683532, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894724695, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4fcf6b895ba07eb1", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683524, + "duration": 41178, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1d3e7eff78cb43af", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684135, + "duration": 40664, + "tags": [], + "logs": [ + { "timestamp": 1605873894684142, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894724800, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "43860f9f193430f0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684131, + "duration": 40675, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7ea1f5a8b4dab8a7", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684338, + "duration": 40775, + "tags": [ + { "key": "blockID", "type": "string", "value": "2906f33b-d748-4827-8eb7-de90927a65dd" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725108, + "fields": [ + { "key": "bytes", "type": "int64", "value": 431856 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "512c60978bd2eac4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721019, + "duration": 4095, + "tags": [], + "logs": [ + { "timestamp": 1605873894721028, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894725112, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7e897df0e96d32b5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721010, + "duration": 4112, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "787b23c8fa301dd7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894706900, + "duration": 18234, + "tags": [], + "logs": [ + { "timestamp": 1605873894706927, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894725133, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3ffd9ecc1161334a", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683055, + "duration": 42085, + "tags": [ + { "key": "blockID", "type": "string", "value": "26f1bad8-cd58-4801-8785-d52b8d833a90" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725137, + "fields": [ + { "key": "bytes", "type": "int64", "value": 414056 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2f86e3ff470976d3", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894706887, + "duration": 18254, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1a42c28bcd21acc8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685104, + "duration": 40144, + "tags": [ + { "key": "blockID", "type": "string", "value": "777d1eb8-cd33-44d5-8e34-2d253bd948a6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725246, + "fields": [ + { "key": "bytes", "type": "int64", "value": 407792 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "445f67ce7c86e918", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684540, + "duration": 40905, + "tags": [ + { "key": "blockID", "type": "string", "value": "d4b28adc-eb54-4e54-8639-40acbe82196a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725443, + "fields": [ + { "key": "bytes", "type": "int64", "value": 312232 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4dc9df94476d41ef", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713432, + "duration": 12062, + "tags": [], + "logs": [ + { "timestamp": 1605873894713448, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894725366, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1f47248f05173a34", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713423, + "duration": 12078, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6ab47177b7f5e532", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684151, + "duration": 41357, + "tags": [], + "logs": [ + { "timestamp": 1605873894684157, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894725507, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62088478a235ead5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684146, + "duration": 41368, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "021658e91c35b26e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683518, + "duration": 42121, + "tags": [ + { "key": "blockID", "type": "string", "value": "6deff928-b65a-437a-8d56-64d2397d9d1f" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725636, + "fields": [ + { "key": "bytes", "type": "int64", "value": 238936 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "48401abd95ffa153", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894712421, + "duration": 13359, + "tags": [], + "logs": [ + { "timestamp": 1605873894712431, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894725779, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6a6bcedc4fc18a61", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894712416, + "duration": 13371, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "551f266c080ab0c6", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684122, + "duration": 41711, + "tags": [ + { "key": "blockID", "type": "string", "value": "5180765b-50b6-4de3-abab-ceea6086afb8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725830, + "fields": [ + { "key": "bytes", "type": "int64", "value": 393392 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "72970316c65770af", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894706872, + "duration": 18990, + "tags": [ + { "key": "blockID", "type": "string", "value": "541a6a31-d25a-4275-9688-228355c81085" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725860, + "fields": [ + { "key": "bytes", "type": "int64", "value": 280296 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "635a7471f4256c0b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684275, + "duration": 41695, + "tags": [ + { "key": "blockID", "type": "string", "value": "6bf57585-a03d-44e1-bd18-081b679d3e4a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894725967, + "fields": [ + { "key": "bytes", "type": "int64", "value": 434432 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7607fc837fc26251", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683802, + "duration": 42223, + "tags": [], + "logs": [ + { "timestamp": 1605873894683808, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894726025, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "01269c3f9d50434a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683798, + "duration": 42233, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "70114fe92b16120e", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721062, + "duration": 5033, + "tags": [], + "logs": [ + { "timestamp": 1605873894721068, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894726093, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "37a69429cff69860", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721058, + "duration": 5043, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5262951e45efa67d", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894720997, + "duration": 5110, + "tags": [ + { "key": "blockID", "type": "string", "value": "5c09e7bd-2f9c-42d3-8d2f-863e93eaa939" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894726103, + "fields": [ + { "key": "bytes", "type": "int64", "value": 246840 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1d6a76dd2ca6c3e6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894711590, + "duration": 14746, + "tags": [], + "logs": [ + { "timestamp": 1605873894711600, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894726335, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7c75cd286737359f", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894711582, + "duration": 14759, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "78415d3812916d77", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707879, + "duration": 18497, + "tags": [], + "logs": [ + { "timestamp": 1605873894707887, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894726375, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5f7ac8c4fd5c680a", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707874, + "duration": 18513, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6b4bc2ee6a63726e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713413, + "duration": 13261, + "tags": [ + { "key": "blockID", "type": "string", "value": "b654e510-386a-470a-98c4-fb9833d21728" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894726671, + "fields": [ + { "key": "bytes", "type": "int64", "value": 384056 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5f55f469fc2d6d29", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894712403, + "duration": 14367, + "tags": [ + { "key": "blockID", "type": "string", "value": "3fca3f89-a174-460d-9a87-92ed03555497" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894726767, + "fields": [ + { "key": "bytes", "type": "int64", "value": 334896 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "19235cb1f2dccb32", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894711567, + "duration": 15276, + "tags": [ + { "key": "blockID", "type": "string", "value": "de228107-4ff6-449e-9f1f-6ab34765ab68" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894726841, + "fields": [ + { "key": "bytes", "type": "int64", "value": 225832 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "29b186beff361524", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699284, + "duration": 27562, + "tags": [], + "logs": [ + { "timestamp": 1605873894699298, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894726845, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0acce3e2af327bae", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699278, + "duration": 27578, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6b343c544d82bb3b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721050, + "duration": 5994, + "tags": [ + { "key": "blockID", "type": "string", "value": "459be32f-b91d-491b-aa61-5389b239eed8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894727041, + "fields": [ + { "key": "bytes", "type": "int64", "value": 429792 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "62e3ccbe325de3d1", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683746, + "duration": 43412, + "tags": [ + { "key": "blockID", "type": "string", "value": "a1b8740a-6430-4113-93f4-ad9c52e42d62" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894727155, + "fields": [ + { "key": "bytes", "type": "int64", "value": 366096 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "310178852fbf88e0", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682731, + "duration": 44481, + "tags": [], + "logs": [ + { "timestamp": 1605873894682741, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894727211, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "42bb5e9919ea40f4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682726, + "duration": 44493, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "150c8cfeedab6a38", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894708915, + "duration": 18374, + "tags": [], + "logs": [ + { "timestamp": 1605873894708922, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894727288, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1dda89d441503741", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894708910, + "duration": 18384, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6c1c11a742626433", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707863, + "duration": 19558, + "tags": [ + { "key": "blockID", "type": "string", "value": "ef68962f-224d-4b6c-9dcd-ef9be8607c72" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894727419, + "fields": [ + { "key": "bytes", "type": "int64", "value": 423912 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4393a9fa65c8ceae", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707853, + "duration": 19639, + "tags": [], + "logs": [ + { "timestamp": 1605873894707866, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894727491, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1392dcdbb07bc781", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707848, + "duration": 19650, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0804f1e82c8828e2", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713028, + "duration": 14650, + "tags": [], + "logs": [ + { "timestamp": 1605873894713040, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894727677, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4e9e2ce15a6e596c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713023, + "duration": 14661, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0c763a5ef614a2f4", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685588, + "duration": 42409, + "tags": [ + { "key": "blockID", "type": "string", "value": "65fbe578-d535-4032-a12f-f249e7405363" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894727993, + "fields": [ + { "key": "bytes", "type": "int64", "value": 441088 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "31c1f2fd1bde2d49", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682863, + "duration": 45441, + "tags": [], + "logs": [ + { "timestamp": 1605873894682870, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728303, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2a694924a7a45244", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682710, + "duration": 45639, + "tags": [ + { "key": "blockID", "type": "string", "value": "06a1301e-5b48-425e-a506-a4350afe3d0d" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894728346, + "fields": [ + { "key": "bytes", "type": "int64", "value": 418168 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "73f7696fdccac589", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682859, + "duration": 45516, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4b52acf382a86008", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684137, + "duration": 44241, + "tags": [ + { "key": "blockID", "type": "string", "value": "57df43b4-8552-49e3-a1cd-f442609deaf2" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894728373, + "fields": [ + { "key": "bytes", "type": "int64", "value": 425104 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "18688fac379c4a9e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894707836, + "duration": 20550, + "tags": [ + { "key": "blockID", "type": "string", "value": "c53e7db4-34cd-43d0-9383-de5e40936182" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894728383, + "fields": [ + { "key": "bytes", "type": "int64", "value": 389928 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5fccf30d8fc010b8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894726139, + "duration": 2327, + "tags": [], + "logs": [ + { "timestamp": 1605873894726153, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728465, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1c2bf57fc386ac18", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894726130, + "duration": 2343, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7cfea87d3c8d06ca", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685457, + "duration": 43096, + "tags": [], + "logs": [ + { "timestamp": 1605873894685465, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728552, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "12a80c97c2a42f05", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685452, + "duration": 43107, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "08122694d5e37cb7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894723200, + "duration": 5455, + "tags": [], + "logs": [ + { "timestamp": 1605873894723209, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728654, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "313e6147867246d6", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894723194, + "duration": 5466, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2e4f73b3315eb612", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894715649, + "duration": 13049, + "tags": [], + "logs": [ + { "timestamp": 1605873894715658, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728698, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7e0457958022516b", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894715644, + "duration": 13060, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "04db9d1320bc1720", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683309, + "duration": 45454, + "tags": [], + "logs": [ + { "timestamp": 1605873894683316, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894728762, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4702ca2057b120a0", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894726116, + "duration": 2652, + "tags": [ + { "key": "blockID", "type": "string", "value": "ec5b73d8-61f8-4210-8838-e6cfd253294b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894728766, + "fields": [ + { "key": "bytes", "type": "int64", "value": 173264 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5e2c536cf48b42a8", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683305, + "duration": 45464, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "69bd1c5d5184626b", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894708900, + "duration": 19981, + "tags": [ + { "key": "blockID", "type": "string", "value": "de324468-b889-4f4c-af77-907353a719cd" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894728878, + "fields": [ + { "key": "bytes", "type": "int64", "value": 307032 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6849c669006c2759", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894714727, + "duration": 14480, + "tags": [], + "logs": [ + { "timestamp": 1605873894714736, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894729206, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6836249c56ca87ae", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894714722, + "duration": 14490, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4614a3c3374430a7", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894682850, + "duration": 46413, + "tags": [ + { "key": "blockID", "type": "string", "value": "ea416fc3-eedc-413e-9cc1-d8fd3548cfe6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729260, + "fields": [ + { "key": "bytes", "type": "int64", "value": 392160 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "33a5b0766e98269c", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894685441, + "duration": 44269, + "tags": [ + { "key": "blockID", "type": "string", "value": "b50c3305-8d80-42fc-88a4-97a8604c7066" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729705, + "fields": [ + { "key": "bytes", "type": "int64", "value": 346072 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "38da2ce44e352b40", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894722577, + "duration": 7233, + "tags": [], + "logs": [ + { "timestamp": 1605873894722588, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894729809, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2a0fc54146d07c21", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894722569, + "duration": 7247, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "398ed8e3573cf781", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894715632, + "duration": 14249, + "tags": [ + { "key": "blockID", "type": "string", "value": "2d9f964a-aac5-42e1-b410-866ad1706d7a" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729879, + "fields": [ + { "key": "bytes", "type": "int64", "value": 441600 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "47c93569ac9ecd04", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713013, + "duration": 16911, + "tags": [ + { "key": "blockID", "type": "string", "value": "96c1b791-af15-4554-a1bb-b0f200625856" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729919, + "fields": [ + { "key": "bytes", "type": "int64", "value": 446504 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3d61171be03f3db4", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894714709, + "duration": 15261, + "tags": [ + { "key": "blockID", "type": "string", "value": "ae957436-40cc-4d15-a3c3-26d10613aaf6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729967, + "fields": [ + { "key": "bytes", "type": "int64", "value": 287976 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3de17f2475734d79", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894723182, + "duration": 6796, + "tags": [ + { "key": "blockID", "type": "string", "value": "eb218dd8-99fa-4de7-87cd-8998b89e0778" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894729976, + "fields": [ + { "key": "bytes", "type": "int64", "value": 403400 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "712c995480f17232", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713402, + "duration": 16771, + "tags": [], + "logs": [ + { "timestamp": 1605873894713412, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894730172, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "26950bc4bf84c34b", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713392, + "duration": 16787, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "1bd3c2e5acbea9c4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894701374, + "duration": 29019, + "tags": [], + "logs": [ + { "timestamp": 1605873894701383, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894730393, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "2106e0853647ac08", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894701369, + "duration": 29030, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6e59a327558a7329", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894699265, + "duration": 31183, + "tags": [ + { "key": "blockID", "type": "string", "value": "d8b5fee2-e2b3-445c-8ea9-243519a5c104" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894730443, + "fields": [ + { "key": "bytes", "type": "int64", "value": 400224 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "037acce8385b1858", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721017, + "duration": 9605, + "tags": [], + "logs": [ + { "timestamp": 1605873894721028, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894730621, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3547a2504168d8c7", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721012, + "duration": 9617, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "0dc60016513590c8", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894722299, + "duration": 8583, + "tags": [ + { "key": "blockID", "type": "string", "value": "69120461-fbd8-4ca0-a5fb-957d745a22a8" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894730879, + "fields": [ + { "key": "bytes", "type": "int64", "value": 370472 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5d18bf1b78bd4e75", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684396, + "duration": 46590, + "tags": [], + "logs": [ + { "timestamp": 1605873894684402, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894730985, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3bdc5547104db28c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894684392, + "duration": 46600, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "682e6d017ce71dad", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894713268, + "duration": 17796, + "tags": [ + { "key": "blockID", "type": "string", "value": "84644a06-da08-4c3a-936f-70a634d8052d" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894731057, + "fields": [ + { "key": "bytes", "type": "int64", "value": 353808 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3bbbdf937ccb2ccb", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721935, + "duration": 9258, + "tags": [], + "logs": [ + { "timestamp": 1605873894721944, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894731193, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7c40bff5b749a532", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721928, + "duration": 9272, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "31f86900e7598e55", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894701358, + "duration": 29885, + "tags": [ + { "key": "blockID", "type": "string", "value": "186f31e1-409b-4c9c-95b5-abc662389d3b" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894731240, + "fields": [ + { "key": "bytes", "type": "int64", "value": 434496 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "7471b3c5a188e8da", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894729995, + "duration": 1327, + "tags": [], + "logs": [ + { "timestamp": 1605873894730003, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894731321, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "33cb5e55876f584c", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894729989, + "duration": 1338, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "58b7d0b41550e88f", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894729978, + "duration": 1396, + "tags": [ + { "key": "blockID", "type": "string", "value": "e0d8f1ac-a48f-4dea-868f-183e1a124fb5" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894731373, + "fields": [ + { "key": "bytes", "type": "int64", "value": 16488 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "70405f4198f01d16", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721544, + "duration": 9893, + "tags": [], + "logs": [ + { "timestamp": 1605873894721555, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894731436, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "56f0f0d7120ea5a5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894721540, + "duration": 9903, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "69bb9bf8c37d9faf", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894683022, + "duration": 48646, + "tags": [ + { "key": "blockID", "type": "string", "value": "cf7747f5-68f9-490b-840d-9975c057c7e6" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894731663, + "fields": [ + { "key": "bytes", "type": "int64", "value": 425640 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "4ef61721dfd7f61b", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894720840, + "duration": 10841, + "tags": [], + "logs": [ + { "timestamp": 1605873894720869, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894731680, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "70e8aa6d13e56007", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894720827, + "duration": 10860, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "297ff96c736c18f4", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894705333, + "duration": 26573, + "tags": [], + "logs": [ + { "timestamp": 1605873894705342, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894731904, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6a80209f067be4f5", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894705328, + "duration": 26585, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "5b3db530e83db855", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894731272, + "duration": 796, + "tags": [], + "logs": [ + { "timestamp": 1605873894731284, "fields": [{ "key": "keys requested", "type": "int64", "value": 1 }] }, + { "timestamp": 1605873894732067, "fields": [{ "key": "keys found", "type": "int64", "value": 1 }] } + ], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "6b2458a9486a4298", + "operationName": "Memcache.GetMulti", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894731265, + "duration": 886, + "tags": [ + { "key": "organization", "type": "string", "value": "1" }, + { "key": "span.kind", "type": "string", "value": "client" } + ], + "logs": [], + "processID": "p1", + "warnings": null + }, + { + "traceID": "3fa414edcef6ad90", + "spanID": "3139145bb422702e", + "operationName": "block.Find", + "references": [{ "refType": "CHILD_OF", "traceID": "3fa414edcef6ad90", "spanID": "1b26effbab24e95a" }], + "startTime": 1605873894731251, + "duration": 941, + "tags": [ + { "key": "blockID", "type": "string", "value": "f9fd03ba-91a8-476b-b809-d2b11bfa790d" }, + { "key": "shardKey", "type": "int64", "value": 5 } + ], + "logs": [ + { + "timestamp": 1605873894732190, + "fields": [ + { "key": "bytes", "type": "int64", "value": 8680 }, + { "key": "msg", "type": "string", "value": "bloom" } + ] + } + ], + "processID": "p1", + "warnings": null + } + ], + "processes": { + "p1": { + "serviceName": "s1" + } + }, + "warnings": null + } + ], + "total": 0, + "limit": 0, + "offset": 0, + "errors": null +} diff --git a/e2e/cypress/fixtures/prometheus-query-range-response.json b/e2e/cypress/fixtures/prometheus-query-range-response.json new file mode 100644 index 00000000000..6a2501a45df --- /dev/null +++ b/e2e/cypress/fixtures/prometheus-query-range-response.json @@ -0,0 +1,81 @@ +{ + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": {}, + "values": [ + [1620758235, "0.07554431352019486"], + [1620758250, "0.0756695553961457"], + [1620758265, "0.0757369945411682"], + [1620758280, "0.07560212035898113"], + [1620758295, "0.07556358506832812"], + [1620758310, "0.07558766859344893"], + [1620758325, "0.07552022996976834"], + [1620758340, "0.07553949807996531"], + [1620758355, "0.07554913414209416"], + [1620758370, "0.07539017545449077"], + [1620758385, "0.07524566527721041"], + [1620758400, "0.06631294924007665"], + [1620758415, "0.020769530989205368"], + [1620758430, "0.05720168751283235"], + [1620758445, "0.07271760187022697"], + [1620758460, "0.07282398348834057"], + [1620758475, "0.07272243619599422"], + [1620758490, "0.0727659581600079"], + [1620758505, "0.07290135207155769"], + [1620758520, "0.07293036876672591"], + [1620758535, "0.0727901374111541"], + [1620758550, "0.07272727333735175"], + [1620758565, "0.07264506733699574"], + [1620758580, "0.07272243607717656"], + [1620758595, "0.0728288184987238"], + [1620758610, "0.07298839709448537"], + [1620758625, "0.07301257421338406"], + [1620758640, "0.07304158515671498"], + [1620758655, "0.07311895518980911"], + [1620758670, "0.07325918868870857"], + [1620758685, "0.07340909025275498"], + [1620758700, "0.06640878600261439"], + [1620758715, "0.016943481796378928"], + [1620758730, "0.009846410786372045"], + [1620758745, "0.009846533933076818"], + [1620758760, "0.009865643995544734"], + [1620758775, "0.009877495333796778"], + [1620758790, "0.009894557340703772"], + [1620758805, "0.0098843910341446"], + [1620758820, "0.00990408341969324"], + [1620758835, "0.00989844441243741"], + [1620758850, "0.009889907575638773"], + [1620758865, "0.009918898761738633"], + [1620758880, "0.009937127911002756"], + [1620758895, "0.009940908363410796"], + [1620758910, "0.00998103477604732"], + [1620758925, "0.009972785096318881"], + [1620758940, "0.012851280416358784"], + [1620758955, "0.016073228821362785"], + [1620758970, "0.020414802032173343"], + [1620761580, "0.007599075245347286"], + [1620761595, "0.008931710803442608"], + [1620761610, "0.008726716914241494"], + [1620761625, "0.008200081743024097"], + [1620761640, "0.00855242238708798"], + [1620761655, "0.008286349295644651"], + [1620761670, "0.008226278261449314"], + [1620761685, "0.008195191146355274"], + [1620761700, "0.008187372718523614"], + [1620761715, "0.008513095070485845"], + [1620761730, "0.08239661322810221"], + [1620761745, "0.0859446307478243"], + [1620761760, "0.08307358128715034"], + [1620761775, "0.08068720480328369"], + [1620761790, "0.07619009806120529"], + [1620761805, "0.0750613052160521"], + [1620761820, "0.07146092807229597"], + [1620761835, "0.06898128960085806"] + ] + } + ] + } +} diff --git a/e2e/cypress/fixtures/prometheus-query-response.json b/e2e/cypress/fixtures/prometheus-query-response.json new file mode 100644 index 00000000000..56df1d882b5 --- /dev/null +++ b/e2e/cypress/fixtures/prometheus-query-response.json @@ -0,0 +1,4 @@ +{ + "status": "success", + "data": { "resultType": "vector", "result": [{ "metric": {}, "value": [1620761849, "0.06765848222986065"] }] } +} diff --git a/e2e/cypress/fixtures/tempo-response.json b/e2e/cypress/fixtures/tempo-response.json new file mode 100644 index 00000000000..30136a226a5 --- /dev/null +++ b/e2e/cypress/fixtures/tempo-response.json @@ -0,0 +1,1181 @@ +{ + "results": { + "A": { + "frames": [ + { + "schema": { + "name": "Trace", + "refId": "A", + "meta": { + "preferredVisualisationType": "trace" + }, + "fields": [ + { + "name": "traceID", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "spanID", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "parentSpanID", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "operationName", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "serviceName", + "type": "string", + "typeInfo": { + "frame": "string" + } + }, + { + "name": "serviceTags", + "type": "other", + "typeInfo": { + "frame": "other" + } + }, + { + "name": "startTime", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "duration", + "type": "number", + "typeInfo": { + "frame": "float64" + } + }, + { + "name": "logs", + "type": "other", + "typeInfo": { + "frame": "other" + } + }, + { + "name": "tags", + "type": "other", + "typeInfo": { + "frame": "other" + } + } + ] + }, + "data": { + "values": [ + [ + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599", + "04829080550953998599" + ], + [ + "4829080550953998599", + "2017565205134657253", + "8342878680821632593", + "1224460974534844837", + "275963539390240345", + "8319197348330196958", + "6652870949263121722", + "607757742690372462", + "4351457163250103362", + "6171925700166476032", + "7554371986156978275" + ], + [ + null, + "4829080550953998599", + "2017565205134657253", + "8342878680821632593", + "1224460974534844837", + "275963539390240345", + "4829080550953998599", + "6652870949263121722", + "607757742690372462", + "4351457163250103362", + "6171925700166476032" + ], + [ + "HTTP Client", + "HTTP POST", + "HTTP POST - post", + "HTTP Client", + "HTTP POST", + "HTTP POST - post", + "HTTP GET", + "HTTP GET - root", + "HTTP Client", + "HTTP GET", + "HTTP GET - root" + ], + ["lb", "lb", "app", "app", "app", "db", "lb", "app", "app", "app", "db"], + [ + [ + { + "value": "lb", + "key": "service.name" + }, + { + "value": "tns/loadgen", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "f55ab7e317a6", + "key": "host.name" + }, + { + "value": "172.24.0.8", + "key": "ip" + }, + { + "value": "36042b5ca9f81d60", + "key": "client-uuid" + } + ], + [ + { + "value": "lb", + "key": "service.name" + }, + { + "value": "tns/loadgen", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "f55ab7e317a6", + "key": "host.name" + }, + { + "value": "172.24.0.8", + "key": "ip" + }, + { + "value": "36042b5ca9f81d60", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "db", + "key": "service.name" + }, + { + "value": "tns/db", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "aae464791221", + "key": "host.name" + }, + { + "value": "172.24.0.2", + "key": "ip" + }, + { + "value": "18b1a6b5278dd643", + "key": "client-uuid" + } + ], + [ + { + "value": "lb", + "key": "service.name" + }, + { + "value": "tns/loadgen", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "f55ab7e317a6", + "key": "host.name" + }, + { + "value": "172.24.0.8", + "key": "ip" + }, + { + "value": "36042b5ca9f81d60", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "app", + "key": "service.name" + }, + { + "value": "tns/app", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "7945a05e75db", + "key": "host.name" + }, + { + "value": "172.24.0.7", + "key": "ip" + }, + { + "value": "78f645af1e60163d", + "key": "client-uuid" + } + ], + [ + { + "value": "db", + "key": "service.name" + }, + { + "value": "tns/db", + "key": "job" + }, + { + "value": "Jaeger-Go-2.22.1", + "key": "opencensus.exporterversion" + }, + { + "value": "aae464791221", + "key": "host.name" + }, + { + "value": "172.24.0.2", + "key": "ip" + }, + { + "value": "18b1a6b5278dd643", + "key": "client-uuid" + } + ] + ], + [ + 1620761543730.354, 1620761543730.3628, 1620761543732.044, 1620761543732.163, 1620761543732.191, + 1620761543733.925, 1620761543735.194, 1620761543738.197, 1620761543738.394, 1620761543738.398, + 1620761543744.6929 + ], + [17.826, 4.824, 2.588, 2.403, 2.401, 0.142, 13.266, 11.281, 8.593, 10.87, 0.136], + [ + null, + [ + { + "timestamp": 1620761543730.414, + "fields": [ + { + "value": "GetConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543730.475, + "fields": [ + { + "value": "DNSStart", + "key": "event" + }, + { + "value": "app", + "key": "host" + } + ] + }, + { + "timestamp": 1620761543731.1738, + "fields": [ + { + "value": "DNSDone", + "key": "event" + }, + { + "value": "172.24.0.7", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543731.184, + "fields": [ + { + "value": "ConnectStart", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.7: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543731.6228, + "fields": [ + { + "value": "ConnectDone", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.7: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543731.678, + "fields": [ + { + "value": "GotConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543731.737, + "fields": [ + { + "value": "WroteHeaders", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543731.742, + "fields": [ + { + "value": "WroteRequest", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543735.001, + "fields": [ + { + "value": "GotFirstResponseByte", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543735.186, + "fields": [ + { + "value": "ClosedBody", + "key": "event" + } + ] + } + ], + null, + null, + [ + { + "timestamp": 1620761543732.209, + "fields": [ + { + "value": "GetConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543732.236, + "fields": [ + { + "value": "DNSStart", + "key": "event" + }, + { + "value": "db", + "key": "host" + } + ] + }, + { + "timestamp": 1620761543733.196, + "fields": [ + { + "value": "DNSDone", + "key": "event" + }, + { + "value": "172.24.0.2", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543733.203, + "fields": [ + { + "value": "ConnectStart", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.2: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543733.459, + "fields": [ + { + "value": "ConnectDone", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.2: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543733.549, + "fields": [ + { + "value": "GotConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543733.613, + "fields": [ + { + "value": "WroteHeaders", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543733.618, + "fields": [ + { + "value": "WroteRequest", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543734.241, + "fields": [ + { + "value": "GotFirstResponseByte", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543734.592, + "fields": [ + { + "value": "ClosedBody", + "key": "event" + } + ] + } + ], + null, + [ + { + "timestamp": 1620761543735.23, + "fields": [ + { + "value": "GetConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543735.277, + "fields": [ + { + "value": "DNSStart", + "key": "event" + }, + { + "value": "app", + "key": "host" + } + ] + }, + { + "timestamp": 1620761543736.9658, + "fields": [ + { + "value": "DNSDone", + "key": "event" + }, + { + "value": "172.24.0.7", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543736.9758, + "fields": [ + { + "value": "ConnectStart", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.7: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543737.705, + "fields": [ + { + "value": "ConnectDone", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.7: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543737.773, + "fields": [ + { + "value": "GotConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543737.8098, + "fields": [ + { + "value": "WroteHeaders", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543737.811, + "fields": [ + { + "value": "WroteRequest", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543747.939, + "fields": [ + { + "value": "GotFirstResponseByte", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543748.46, + "fields": [ + { + "value": "ClosedBody", + "key": "event" + } + ] + } + ], + null, + null, + [ + { + "timestamp": 1620761543738.446, + "fields": [ + { + "value": "GetConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543738.502, + "fields": [ + { + "value": "DNSStart", + "key": "event" + }, + { + "value": "db", + "key": "host" + } + ] + }, + { + "timestamp": 1620761543743.861, + "fields": [ + { + "value": "DNSDone", + "key": "event" + }, + { + "value": "172.24.0.2", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543743.918, + "fields": [ + { + "value": "ConnectStart", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.2: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543744.228, + "fields": [ + { + "value": "ConnectDone", + "key": "event" + }, + { + "value": "tcp", + "key": "network" + }, + { + "value": "172.24.0.2: 80", + "key": "addr" + } + ] + }, + { + "timestamp": 1620761543744.345, + "fields": [ + { + "value": "GotConn", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543744.414, + "fields": [ + { + "value": "WroteHeaders", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543744.416, + "fields": [ + { + "value": "WroteRequest", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543746.825, + "fields": [ + { + "value": "GotFirstResponseByte", + "key": "event" + } + ] + }, + { + "timestamp": 1620761543749.2668, + "fields": [ + { + "value": "ClosedBody", + "key": "event" + } + ] + } + ], + null + ], + [ + [ + { + "value": "const", + "key": "sampler.type" + }, + { + "value": true, + "key": "sampler.param" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 302, + "key": "http.status_code" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "POST", + "key": "http.method" + }, + { + "value": "app: 80", + "key": "http.url" + }, + { + "value": false, + "key": "net/http.reused" + }, + { + "value": false, + "key": "net/http.was_idle" + }, + { + "value": "client", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 302, + "key": "http.status_code" + }, + { + "value": "POST", + "key": "http.method" + }, + { + "value": "/post", + "key": "http.url" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "server", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 204, + "key": "http.status_code" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "POST", + "key": "http.method" + }, + { + "value": "db: 80", + "key": "http.url" + }, + { + "value": false, + "key": "net/http.reused" + }, + { + "value": false, + "key": "net/http.was_idle" + }, + { + "value": "client", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 204, + "key": "http.status_code" + }, + { + "value": "POST", + "key": "http.method" + }, + { + "value": "/post", + "key": "http.url" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "server", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 200, + "key": "http.status_code" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "GET", + "key": "http.method" + }, + { + "value": "app: 80", + "key": "http.url" + }, + { + "value": false, + "key": "net/http.reused" + }, + { + "value": false, + "key": "net/http.was_idle" + }, + { + "value": "client", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 200, + "key": "http.status_code" + }, + { + "value": "GET", + "key": "http.method" + }, + { + "value": "/", + "key": "http.url" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "server", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 200, + "key": "http.status_code" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "GET", + "key": "http.method" + }, + { + "value": "db: 80", + "key": "http.url" + }, + { + "value": false, + "key": "net/http.reused" + }, + { + "value": false, + "key": "net/http.was_idle" + }, + { + "value": "client", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ], + [ + { + "value": 200, + "key": "http.status_code" + }, + { + "value": "GET", + "key": "http.method" + }, + { + "value": "/", + "key": "http.url" + }, + { + "value": "net/http", + "key": "component" + }, + { + "value": "server", + "key": "span.kind" + }, + { + "value": 0, + "key": "status.code" + } + ] + ] + ] + } + } + ] + } + } +} diff --git a/e2e/cypress/plugins/benchmark/CDPDataCollector.js b/e2e/cypress/plugins/benchmark/CDPDataCollector.js new file mode 100644 index 00000000000..6b361a999b8 --- /dev/null +++ b/e2e/cypress/plugins/benchmark/CDPDataCollector.js @@ -0,0 +1,120 @@ +const CDP = require('chrome-remote-interface'); +const { countBy, mean } = require('lodash'); +const Tracelib = require('tracelib'); + +class CDPDataCollector { + tracingCategories; + state; + + constructor(deps) { + this.state = this.getDefaultState(); + this.tracingCategories = [ + 'disabled-by-default-v8.cpu_profile', + 'disabled-by-default-v8.cpu_profiler', + 'disabled-by-default-v8.cpu_profiler.hires', + 'disabled-by-default-devtools.timeline.frame', + 'disabled-by-default-devtools.timeline', + 'disabled-by-default-devtools.timeline.inputs', + 'disabled-by-default-devtools.timeline.stack', + 'disabled-by-default-devtools.timeline.invalidationTracking', + 'disabled-by-default-layout_shift.debug', + 'disabled-by-default-cc.debug.scheduler.frames', + 'disabled-by-default-blink.debug.display_lock', + ]; + } + + getName = () => DataCollectorName.CDP; + + resetState = async () => { + if (this.state.client) { + await this.state.client.close(); + } + this.state = this.getDefaultState(); + }; + + getDefaultState = () => ({ + traceEvents: [], + }); + + // workaround for type declaration issues in cdp lib + asApis = (client) => client; + + getClientApis = async () => this.asApis(await this.getClient()); + + getClient = async () => { + if (this.state.client) { + return this.state.client; + } + + const client = await CDP({ port: this.deps.port }); + + const { Profiler, Page } = this.asApis(client); + await Promise.all([Page.enable(), Profiler.enable(), Profiler.setSamplingInterval({ interval: 100 })]); + + this.state.client = client; + + return client; + }; + + start = async ({ id }) => { + if (this.state.tracingPromise) { + throw new Error(`collection in progress - can't start another one! ${id}`); + } + + const { Tracing, Profiler } = await this.getClientApis(); + + await Promise.all([ + Tracing.start({ + bufferUsageReportingInterval: 1000, + traceConfig: { + includedCategories: this.tracingCategories, + }, + }), + Profiler.start(), + ]); + + Tracing.on('dataCollected', ({ value: events }) => { + this.state.traceEvents.push(...events); + }); + + let resolveFn; + this.state.tracingPromise = new Promise((resolve) => { + resolveFn = resolve; + }); + Tracing.on('tracingComplete', ({ dataLossOccurred }) => { + const t = new Tracelib(this.state.traceEvents); + + const eventCounts = countBy(this.state.traceEvents, (ev) => ev.name); + + const fps = t.getFPS(); + + resolveFn({ + eventCounts, + fps: mean(fps.values), + tracingDataLoss: dataLossOccurred ? 1 : 0, + warnings: t.getWarningCounts(), + }); + }); + }; + + stop = async (req) => { + if (!this.state.tracingPromise) { + throw new Error(`collection was never started - there is nothing to stop!`); + } + + const { Tracing, Profiler } = await this.getClientApis(); + + // TODO: capture profiler data + const [, , traceData] = await Promise.all([Profiler.stop(), Tracing.end(), this.state.tracingPromise]); + + await this.resetState(); + + return traceData; + }; + + close = async () => { + await this.resetState(); + }; +} + +exports.CDPDataCollector = CDPDataCollector; diff --git a/e2e/cypress/plugins/benchmark/formatting.js b/e2e/cypress/plugins/benchmark/formatting.js new file mode 100644 index 00000000000..0a1e604db08 --- /dev/null +++ b/e2e/cypress/plugins/benchmark/formatting.js @@ -0,0 +1,94 @@ +const { fromPairs } = require('lodash'); + +const isLivePerformanceAppStats = (data) => + data.some((st) => { + const stat = st?.[MeasurementName.DataRenderDelay]; + return Array.isArray(stat) && Boolean(stat?.length); + }); + +const formatAppStats = (allStats) => { + if (!isLivePerformanceAppStats(allStats)) { + return {}; + } + + const names = Object.keys(MeasurementName); + + return fromPairs( + names.map((name) => { + const statsForMeasurement = allStats.map((s) => s[name]); + const res = { + total: { + count: [], + avg: [], + }, + lastInterval: { + avg: [], + min: [], + max: [], + count: [], + }, + }; + + statsForMeasurement.forEach((s) => { + const total = s.reduce( + (prev, next) => { + prev.count += next.count; + prev.avg += next.avg; + return prev; + }, + { count: 0, avg: 0 } + ); + res.total.count.push(Math.round(total.count)); + res.total.avg.push(Math.round(total.avg / s.length)); + + const lastInterval = s[s.length - 1]; + + res.lastInterval.avg.push(Math.round(lastInterval?.avg)); + res.lastInterval.min.push(Math.round(lastInterval?.min)); + res.lastInterval.max.push(Math.round(lastInterval?.max)); + res.lastInterval.count.push(Math.round(lastInterval?.count)); + }); + + return [name, res]; + }) + ); +}; + +const emptyFormattedCDPData = () => ({ + minorGC: [], + majorGC: [], + droppedFrames: [], + fps: [], + tracingDataLossOccurred: false, + longTaskWarnings: [], +}); + +const isCDPData = (data) => data.every((d) => typeof d.eventCounts === 'object'); + +const formatCDPData = (data) => { + if (!isCDPData(data)) { + return emptyFormattedCDPData(); + } + + return data.reduce((acc, next) => { + acc.majorGC.push(next.eventCounts.MajorGC ?? 0); + acc.minorGC.push(next.eventCounts.MinorGC ?? 0); + acc.fps.push(Math.round(next.fps) ?? 0); + acc.tracingDataLossOccurred = acc.tracingDataLossOccurred || Boolean(next.tracingDataLoss); + acc.droppedFrames.push(next.eventCounts.DroppedFrame ?? 0); + acc.longTaskWarnings.push(next.warnings.LongTask ?? 0); + return acc; + }, emptyFormattedCDPData()); +}; + +const formatResults = (results) => { + return { + ...formatAppStats(results.map(({ appStats }) => appStats)), + ...formatCDPData(results.map(({ collectorsData }) => collectorsData[DataCollectorName.CDP])), + + __raw: results, + }; +}; + +exports.formatResults = formatResults; +exports.formatAppStats = formatAppStats; diff --git a/e2e/cypress/plugins/benchmark/index.js b/e2e/cypress/plugins/benchmark/index.js new file mode 100644 index 00000000000..922a6e5c026 --- /dev/null +++ b/e2e/cypress/plugins/benchmark/index.js @@ -0,0 +1,90 @@ +const fs = require('fs'); +const { fromPairs } = require('lodash'); + +const { CDPDataCollector } = require('./CDPDataCollector'); +const { formatResults } = require('./formatting'); + +const remoteDebuggingPortOptionPrefix = '--remote-debugging-port='; + +const getOrAddRemoteDebuggingPort = (args) => { + const existing = args.find((arg) => arg.startsWith(remoteDebuggingPortOptionPrefix)); + + if (existing) { + return Number(existing.substring(remoteDebuggingPortOptionPrefix.length)); + } + + const port = 40000 + Math.round(Math.random() * 25000); + args.push(`${remoteDebuggingPortOptionPrefix}${port}`); + return port; +}; + +let collectors = []; +let results = []; + +const startBenchmarking = async ({ testName }) => { + await Promise.all(collectors.map((coll) => coll.start({ id: testName }))); + + return true; +}; + +const stopBenchmarking = async ({ testName, appStats }) => { + const data = await Promise.all(collectors.map(async (coll) => [coll.getName(), await coll.stop({ id: testName })])); + + results.push({ + collectorsData: fromPairs(data), + appStats: appStats, + }); + + return true; +}; +const afterRun = async () => { + await Promise.all(collectors.map((coll) => coll.close())); + collectors = []; + results = []; +}; + +const afterSpec = (resultsFolder) => async (spec) => { + fs.writeFileSync(`${resultsFolder}/${spec.name}-${Date.now()}.json`, JSON.stringify(formatResults(results), null, 2)); + + results = []; +}; + +const initialize = (on, config) => { + const resultsFolder = config.env['BENCHMARK_PLUGIN_RESULTS_FOLDER']; + + if (!fs.existsSync(resultsFolder)) { + fs.mkdirSync(resultsFolder, { recursive: true }); + console.log(`Created folder for benchmark results ${resultsFolder}`); + } + + on('before:browser:launch', async (browser, options) => { + if (browser.family !== 'chromium' || browser.name === 'electron') { + throw new Error('benchmarking plugin requires chrome'); + } + + const { args } = options; + + const port = getOrAddRemoteDebuggingPort(args); + collectors.push(new CDPDataCollector({ port })); + + args.push('--start-fullscreen'); + + console.log( + `initialized benchmarking plugin with ${collectors.length} collectors: ${collectors + .map((col) => col.getName()) + .join(', ')}` + ); + + return options; + }); + + on('task', { + startBenchmarking, + stopBenchmarking, + }); + + on('after:run', afterRun); + on('after:spec', afterSpec(resultsFolder)); +}; + +exports.initialize = initialize; diff --git a/e2e/cypress/plugins/compareScreenshots.js b/e2e/cypress/plugins/compareScreenshots.js new file mode 100644 index 00000000000..426d12adac5 --- /dev/null +++ b/e2e/cypress/plugins/compareScreenshots.js @@ -0,0 +1,49 @@ +'use strict'; +const BlinkDiff = require('blink-diff'); +const { resolve } = require('path'); + +// @todo use npmjs.com/pixelmatch or an available cypress plugin +const compareScreenshots = async ({ config, screenshotsFolder, specName }) => { + const name = config.name || config; // @todo use `??` + const threshold = config.threshold || 0.001; // @todo use `??` + + const imageAPath = `${screenshotsFolder}/${specName}/${name}.png`; + const imageBPath = resolve(`${screenshotsFolder}/../expected/${specName}/${name}.png`); + + const imageOutputPath = screenshotsFolder.endsWith('actual') ? imageAPath.replace('.png', '.diff.png') : undefined; + + const { code } = await new Promise((resolve, reject) => { + new BlinkDiff({ + imageAPath, + imageBPath, + imageOutputPath, + threshold, + thresholdType: BlinkDiff.THRESHOLD_PERCENT, + }).run((error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + }); + + if (code <= 1) { + let msg = `\nThe screenshot [${imageAPath}] differs from [${imageBPath}]`; + msg += '\n'; + msg += '\nCheck the Artifacts tab in the CircleCi build output for the actual screenshots.'; + msg += '\n'; + msg += '\n If the difference between expected and outcome is NOT acceptable then do the following:'; + msg += '\n - Check the code for changes that causes this difference, fix that and retry.'; + msg += '\n'; + msg += '\n If the difference between expected and outcome is acceptable then do the following:'; + msg += '\n - Replace the expected image with the outcome and retry.'; + msg += '\n'; + throw new Error(msg); + } else { + // Must return a value + return true; + } +}; + +module.exports = compareScreenshots; diff --git a/e2e/cypress/plugins/extendConfig.js b/e2e/cypress/plugins/extendConfig.js new file mode 100644 index 00000000000..85b9088cd98 --- /dev/null +++ b/e2e/cypress/plugins/extendConfig.js @@ -0,0 +1,79 @@ +'use strict'; +const { + promises: { readFile }, +} = require('fs'); +const { resolve } = require('path'); + +// @todo use https://github.com/bahmutov/cypress-extends when possible +module.exports = async (baseConfig) => { + // From CLI + const { + env: { CWD, UPDATE_SCREENSHOTS }, + } = baseConfig; + + if (CWD) { + // @todo: https://github.com/cypress-io/cypress/issues/6406 + const jsonReporter = require.resolve('@mochajs/json-file-reporter'); + + // @todo `baseUrl: env.CYPRESS_BASEURL` + const projectConfig = { + fixturesFolder: `${CWD}/cypress/fixtures`, + integrationFolder: `${CWD}/cypress/integration`, + reporter: jsonReporter, + reporterOptions: { + output: `${CWD}/cypress/report.json`, + }, + screenshotsFolder: `${CWD}/cypress/screenshots/${UPDATE_SCREENSHOTS ? 'expected' : 'actual'}`, + videosFolder: `${CWD}/cypress/videos`, + }; + + const customProjectConfig = await readFile(`${CWD}/cypress.json`, 'utf8') + .then(JSON.parse) + .then((config) => { + const pathKeys = [ + 'fileServerFolder', + 'fixturesFolder', + 'ignoreTestFiles', + 'integrationFolder', + 'pluginsFile', + 'screenshotsFolder', + 'supportFile', + 'testFiles', + 'videosFolder', + ]; + + return Object.fromEntries( + Object.entries(config).map(([key, value]) => { + if (pathKeys.includes(key)) { + return [key, resolve(CWD, value)]; + } else { + return [key, value]; + } + }) + ); + }) + .catch((error) => { + if (error.code === 'ENOENT') { + // File is optional + return {}; + } else { + // Unexpected error + throw error; + } + }); + + return { + ...baseConfig, + ...projectConfig, + ...customProjectConfig, + reporterOptions: { + ...baseConfig.reporterOptions, + ...projectConfig.reporterOptions, + ...customProjectConfig.reporterOptions, + }, + }; + } else { + // Temporary legacy support for Grafana core (using `yarn start`) + return baseConfig; + } +}; diff --git a/e2e/cypress/plugins/index.js b/e2e/cypress/plugins/index.js new file mode 100644 index 00000000000..7ec85fecae1 --- /dev/null +++ b/e2e/cypress/plugins/index.js @@ -0,0 +1,73 @@ +const fs = require('fs'); +const path = require('path'); + +const benchmarkPlugin = require('./benchmark'); +const compareScreenshots = require('./compareScreenshots'); +const extendConfig = require('./extendConfig'); +const readProvisions = require('./readProvisions'); +const typescriptPreprocessor = require('./typescriptPreprocessor'); + +module.exports = (on, config) => { + if (config.env['BENCHMARK_PLUGIN_ENABLED'] === true) { + benchmarkPlugin.initialize(on, config); + } + + on('file:preprocessor', typescriptPreprocessor); + on('task', { compareScreenshots, readProvisions }); + on('task', { + log({ message, optional }) { + optional ? console.log(message, optional) : console.log(message); + return null; + }, + }); + on('task', { + getJSONFilesFromDir: async ({ projectPath, relativePath }) => { + const directoryPath = path.join(projectPath, relativePath); + const jsonFiles = fs.readdirSync(directoryPath); + return jsonFiles + .filter((fileName) => /.json$/i.test(fileName)) + .map((fileName) => { + const fileBuffer = fs.readFileSync(path.join(directoryPath, fileName)); + return JSON.parse(fileBuffer); + }); + }, + }); + + // Make recordings higher resolution + // https://www.cypress.io/blog/2021/03/01/generate-high-resolution-videos-and-screenshots/ + on('before:browser:launch', (browser = {}, launchOptions) => { + console.log('launching browser %s is headless? %s', browser.name, browser.isHeadless); + + // the browser width and height we want to get + // our screenshots and videos will be of that resolution + const width = 1920; + const height = 1080; + + console.log('setting the browser window size to %d x %d', width, height); + + if (browser.name === 'chrome' && browser.isHeadless) { + launchOptions.args.push(`--window-size=${width},${height}`); + + // force screen to be non-retina and just use our given resolution + launchOptions.args.push('--force-device-scale-factor=1'); + } + + if (browser.name === 'electron' && browser.isHeadless) { + // might not work on CI for some reason + launchOptions.preferences.width = width; + launchOptions.preferences.height = height; + } + + if (browser.name === 'firefox' && browser.isHeadless) { + launchOptions.args.push(`--width=${width}`); + launchOptions.args.push(`--height=${height}`); + } + + // IMPORTANT: return the updated browser launch options + return launchOptions; + }); + + // Always extend with this library's config and return for diffing + // @todo remove this when possible: https://github.com/cypress-io/cypress/issues/5674 + return extendConfig(config); +}; diff --git a/e2e/cypress/plugins/readProvisions.js b/e2e/cypress/plugins/readProvisions.js new file mode 100644 index 00000000000..f82542d2070 --- /dev/null +++ b/e2e/cypress/plugins/readProvisions.js @@ -0,0 +1,14 @@ +'use strict'; +const { + promises: { readFile }, +} = require('fs'); +const { resolve: resolvePath } = require('path'); +const { parse: parseYml } = require('yaml'); + +const readProvision = (filePath) => readFile(filePath, 'utf8').then((contents) => parseYml(contents)); + +const readProvisions = (filePaths) => Promise.all(filePaths.map(readProvision)); + +// Paths are relative to /provisioning +module.exports = ({ CWD, filePaths }) => + readProvisions(filePaths.map((filePath) => resolvePath(CWD, 'provisioning', filePath))); diff --git a/e2e/cypress/plugins/typescriptPreprocessor.js b/e2e/cypress/plugins/typescriptPreprocessor.js new file mode 100644 index 00000000000..be506578188 --- /dev/null +++ b/e2e/cypress/plugins/typescriptPreprocessor.js @@ -0,0 +1,42 @@ +const wp = require('@cypress/webpack-preprocessor'); +const { resolve } = require('path'); + +const anyNodeModules = /node_modules/; +const packageRoot = resolve(`${__dirname}/../../`); +const packageModules = `${packageRoot}/node_modules`; + +const webpackOptions = { + module: { + rules: [ + { + include: (modulePath) => { + if (!anyNodeModules.test(modulePath)) { + // Is a file within the project + return true; + } else { + // Is a file within this package + return modulePath.startsWith(packageRoot) && !modulePath.startsWith(packageModules); + } + }, + test: /\.ts$/, + use: [ + { + loader: 'ts-loader', + options: { + transpileOnly: true, + }, + }, + ], + }, + ], + }, + resolve: { + extensions: ['.ts', '.js'], + }, +}; + +const options = { + webpackOptions, +}; + +module.exports = wp(options); diff --git a/e2e/cypress/support/commands.js b/e2e/cypress/support/commands.js new file mode 100644 index 00000000000..27f72b24890 --- /dev/null +++ b/e2e/cypress/support/commands.js @@ -0,0 +1,36 @@ +import 'cypress-file-upload'; + +Cypress.Commands.add('compareScreenshots', (config) => { + cy.task('compareScreenshots', { + config, + screenshotsFolder: Cypress.config('screenshotsFolder'), + specName: Cypress.spec.name, + }); +}); + +Cypress.Commands.add('logToConsole', (message, optional) => { + cy.task('log', { message: '(' + new Date().toISOString() + ') ' + message, optional }); +}); + +Cypress.Commands.add('readProvisions', (filePaths) => { + cy.task('readProvisions', { + CWD: Cypress.env('CWD'), + filePaths, + }); +}); + +Cypress.Commands.add('getJSONFilesFromDir', (dirPath) => { + return cy.task('getJSONFilesFromDir', { + // CWD is set for plugins in the cli but not for the main grafana repo: https://github.com/grafana/grafana/blob/main/packages/grafana-e2e/cli.js#L12 + projectPath: Cypress.env('CWD') || Cypress.config().parentTestsFolder, + relativePath: dirPath, + }); +}); + +Cypress.Commands.add('startBenchmarking', (testName) => { + return cy.task('startBenchmarking', { testName }); +}); + +Cypress.Commands.add('stopBenchmarking', (testName, appStats) => { + return cy.task('stopBenchmarking', { testName, appStats }); +}); diff --git a/e2e/cypress/support/e2e.js b/e2e/cypress/support/e2e.js new file mode 100644 index 00000000000..695c15704cb --- /dev/null +++ b/e2e/cypress/support/e2e.js @@ -0,0 +1,45 @@ +require('./commands'); + +Cypress.Screenshot.defaults({ + screenshotOnRunFailure: false, +}); + +const COMMAND_DELAY = 1000; + +if (Cypress.env('SLOWMO')) { + const commandsToModify = ['clear', 'click', 'contains', 'reload', 'then', 'trigger', 'type', 'visit']; + + commandsToModify.forEach((command) => { + // @ts-ignore -- https://github.com/cypress-io/cypress/issues/7807 + Cypress.Commands.overwrite(command, (originalFn, ...args) => { + const origVal = originalFn(...args); + + return new Promise((resolve) => { + setTimeout(() => resolve(origVal), COMMAND_DELAY); + }); + }); + }); +} + +// @todo remove when possible: https://github.com/cypress-io/cypress/issues/95 +Cypress.on('window:before:load', (win) => { + // @ts-ignore + delete win.fetch; +}); + +// See https://github.com/quasarframework/quasar/issues/2233 for details +const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/; +Cypress.on('uncaught:exception', (err) => { + /* returning false here prevents Cypress from failing the test */ + if (resizeObserverLoopErrRe.test(err.message)) { + return false; + } + return true; +}); + +// uncomment below to prevent Cypress from failing tests when unhandled errors are thrown +// Cypress.on('uncaught:exception', (err, runnable) => { +// // returning false here prevents Cypress from +// // failing the test +// return false; +// }); diff --git a/e2e/cypress/support/index.d.ts b/e2e/cypress/support/index.d.ts new file mode 100644 index 00000000000..d01547041ff --- /dev/null +++ b/e2e/cypress/support/index.d.ts @@ -0,0 +1,18 @@ +/// + +interface CompareScreenshotsConfig { + name: string; + threshold?: number; +} + +declare namespace Cypress { + interface Chainable { + compareScreenshots(config: CompareScreenshotsConfig | string): Chainable; + logToConsole(message: string, optional?: any): void; + readProvisions(filePaths: string[]): Chainable; + getJSONFilesFromDir(dirPath: string): Chainable; + startBenchmarking(testName: string): void; + stopBenchmarking(testName: string, appStats: Record): void; + checkHealthRetryable(fn: Function, retryCount: number): Chainable; + } +} diff --git a/e2e/dashboards-suite/Repeating_a_panel_horizontally.spec.ts b/e2e/dashboards-suite/Repeating_a_panel_horizontally.spec.ts index 57f52646f52..a88349f27a1 100644 --- a/e2e/dashboards-suite/Repeating_a_panel_horizontally.spec.ts +++ b/e2e/dashboards-suite/Repeating_a_panel_horizontally.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'WVpf2jp7z/repeating-a-panel-horizontally'; describe('Repeating a panel horizontally', () => { @@ -9,7 +9,7 @@ describe('Repeating a panel horizontally', () => { it('should be able to repeat a panel horizontally', () => { e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST }); let prevLeft = Number.NEGATIVE_INFINITY; - let prevTop = null; + let prevTop: number | null = null; const panelTitles = ['Panel Title 1', 'Panel Title 2', 'Panel Title 3']; panelTitles.forEach((title) => { e2e.components.Panels.Panel.title(title) @@ -30,7 +30,7 @@ describe('Repeating a panel horizontally', () => { it('responds to changes to the variables', () => { e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST }); let prevLeft = Number.NEGATIVE_INFINITY; - let prevTop = null; + let prevTop: number | null = null; const panelTitles = ['Panel Title 1', 'Panel Title 2', 'Panel Title 3']; panelTitles.forEach((title) => { e2e.components.Panels.Panel.title(title).should('be.visible'); @@ -68,7 +68,7 @@ describe('Repeating a panel horizontally', () => { // Have to manually add the queryParams to the url because they have the same name e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?var-horizontal=1&var-horizontal=3` }); let prevLeft = Number.NEGATIVE_INFINITY; - let prevTop = null; + let prevTop: number | null = null; const panelsShown = ['Panel Title 1', 'Panel Title 3']; const panelsNotShown = ['Panel Title 2']; // Check correct panels are displayed diff --git a/e2e/dashboards-suite/Repeating_a_panel_vertically.spec.ts b/e2e/dashboards-suite/Repeating_a_panel_vertically.spec.ts index 2c07c8beb2e..5a2cecb1608 100644 --- a/e2e/dashboards-suite/Repeating_a_panel_vertically.spec.ts +++ b/e2e/dashboards-suite/Repeating_a_panel_vertically.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'OY8Ghjt7k/repeating-a-panel-vertically'; describe('Repeating a panel vertically', () => { @@ -10,7 +10,7 @@ describe('Repeating a panel vertically', () => { e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST }); let prevTop = Number.NEGATIVE_INFINITY; - let prevLeft = null; + let prevLeft: number | null = null; const panelTitles = ['Panel Title 1', 'Panel Title 2', 'Panel Title 3']; panelTitles.forEach((title) => { e2e.components.Panels.Panel.title(title) @@ -31,7 +31,7 @@ describe('Repeating a panel vertically', () => { e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST }); let prevTop = Number.NEGATIVE_INFINITY; - let prevLeft = null; + let prevLeft: number | null = null; const panelTitles = ['Panel Title 1', 'Panel Title 2', 'Panel Title 3']; panelTitles.forEach((title) => { e2e.components.Panels.Panel.title(title).should('be.visible'); @@ -69,7 +69,7 @@ describe('Repeating a panel vertically', () => { e2e.flows.openDashboard({ uid: `${PAGE_UNDER_TEST}?var-vertical=1&var-vertical=3` }); let prevTop = Number.NEGATIVE_INFINITY; - let prevLeft = null; + let prevLeft: number | null = null; const panelsShown = ['Panel Title 1', 'Panel Title 3']; const panelsNotShown = ['Panel Title 2']; panelsShown.forEach((title) => { diff --git a/e2e/dashboards-suite/Repeating_a_row_with_a_non_repeating_panel.spec.ts b/e2e/dashboards-suite/Repeating_a_row_with_a_non_repeating_panel.spec.ts index 0b44c94cf85..d07b4e609a6 100644 --- a/e2e/dashboards-suite/Repeating_a_row_with_a_non_repeating_panel.spec.ts +++ b/e2e/dashboards-suite/Repeating_a_row_with_a_non_repeating_panel.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'k3PEoCpnk/repeating-a-row-with-a-non-repeating-panel-and-horizontal-repeating-panel'; const DASHBOARD_NAME = 'Repeating a row with a non-repeating panel and horizontal repeating panel'; diff --git a/e2e/dashboards-suite/Repeating_an_empty_row.spec.ts b/e2e/dashboards-suite/Repeating_an_empty_row.spec.ts index b9756c2ce5a..abc38cf3456 100644 --- a/e2e/dashboards-suite/Repeating_an_empty_row.spec.ts +++ b/e2e/dashboards-suite/Repeating_an_empty_row.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'dtpl2Ctnk/repeating-an-empty-row'; describe('Repeating empty rows', () => { diff --git a/e2e/dashboards-suite/dashboard-browse-nested.spec.ts b/e2e/dashboards-suite/dashboard-browse-nested.spec.ts index 19dae811c13..4be74e53836 100644 --- a/e2e/dashboards-suite/dashboard-browse-nested.spec.ts +++ b/e2e/dashboards-suite/dashboard-browse-nested.spec.ts @@ -1,6 +1,7 @@ -import { e2e } from '@grafana/e2e'; import { selectors } from '@grafana/e2e-selectors'; +import { e2e } from '../utils'; + import { makeNewDashboardRequestBody } from './utils/makeDashboard'; const NUM_ROOT_FOLDERS = 60; diff --git a/e2e/dashboards-suite/dashboard-browse.spec.ts b/e2e/dashboards-suite/dashboard-browse.spec.ts index 2c14f9cbc18..175874607ee 100644 --- a/e2e/dashboards-suite/dashboard-browse.spec.ts +++ b/e2e/dashboards-suite/dashboard-browse.spec.ts @@ -1,6 +1,5 @@ -import { e2e } from '@grafana/e2e'; - import testDashboard from '../dashboards/TestDashboard.json'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Dashboard browse', diff --git a/e2e/dashboards-suite/dashboard-public-create.spec.ts b/e2e/dashboards-suite/dashboard-public-create.spec.ts index 6fcb58141a9..c4a1d624981 100644 --- a/e2e/dashboards-suite/dashboard-public-create.spec.ts +++ b/e2e/dashboards-suite/dashboard-public-create.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Create a public dashboard', diff --git a/e2e/dashboards-suite/dashboard-public-templating.spec.ts b/e2e/dashboards-suite/dashboard-public-templating.spec.ts index 0c527562732..fbe3c7f5b48 100644 --- a/e2e/dashboards-suite/dashboard-public-templating.spec.ts +++ b/e2e/dashboards-suite/dashboard-public-templating.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Create a public dashboard with template variables shows a template variable warning', diff --git a/e2e/dashboards-suite/dashboard-templating.spec.ts b/e2e/dashboards-suite/dashboard-templating.spec.ts index 019fdf28113..5a67b827bba 100644 --- a/e2e/dashboards-suite/dashboard-templating.spec.ts +++ b/e2e/dashboards-suite/dashboard-templating.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Dashboard templating', diff --git a/e2e/dashboards-suite/dashboard-time-zone.spec.ts b/e2e/dashboards-suite/dashboard-time-zone.spec.ts index accdeb5991d..12926fcac72 100644 --- a/e2e/dashboards-suite/dashboard-time-zone.spec.ts +++ b/e2e/dashboards-suite/dashboard-time-zone.spec.ts @@ -9,7 +9,7 @@ import { toDate, } from 'date-fns'; -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Dashboard time zone support', @@ -36,7 +36,7 @@ e2e.scenario({ const timesInUtc: Record = {}; for (const title of panelsToCheck) { - e2e.components.Panels.Panel.containerByTitle(title) + e2e.components.Panels.Panel.title(title) .should('be.visible') .within(() => e2e.components.Panels.Visualization.Graph.xAxis @@ -61,11 +61,11 @@ e2e.scenario({ e2e.components.Select.option().should('be.visible').contains(toTimeZone).click(); // click to go back to the dashboard. - e2e.components.BackButton.backArrow().click({ force: true }); + e2e.pages.Dashboard.Settings.Actions.close().click(); e2e.components.RefreshPicker.runButtonV2().should('be.visible').click(); for (const title of panelsToCheck) { - e2e.components.Panels.Panel.containerByTitle(title) + e2e.components.Panels.Panel.title(title) .should('be.visible') .within(() => e2e.components.Panels.Visualization.Graph.xAxis @@ -76,9 +76,7 @@ e2e.scenario({ const inUtc = timesInUtc[title]; const inTz = element.text(); const isCorrect = isTimeCorrect(inUtc, inTz, offset); - expect(isCorrect, `Expect the panel "${title}" to have the new timezone applied but isn't`).to.be.equal( - true - ); + expect(isCorrect).to.be.equal(true); }) ); } diff --git a/e2e/dashboards-suite/dashboard-timepicker.spec.ts b/e2e/dashboards-suite/dashboard-timepicker.spec.ts index d419b2b16fb..99a0f903e4d 100644 --- a/e2e/dashboards-suite/dashboard-timepicker.spec.ts +++ b/e2e/dashboards-suite/dashboard-timepicker.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Dashboard timepicker', diff --git a/e2e/dashboards-suite/import-dashboard.spec.ts b/e2e/dashboards-suite/import-dashboard.spec.ts index 4a781314cec..bcd2622448b 100644 --- a/e2e/dashboards-suite/import-dashboard.spec.ts +++ b/e2e/dashboards-suite/import-dashboard.spec.ts @@ -1,6 +1,5 @@ -import { e2e } from '@grafana/e2e'; - import testDashboard from '../dashboards/TestDashboard.json'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Import Dashboards Test', diff --git a/e2e/dashboards-suite/load-options-from-url.spec.ts b/e2e/dashboards-suite/load-options-from-url.spec.ts index e42a55d7056..5ed7c17614e 100644 --- a/e2e/dashboards-suite/load-options-from-url.spec.ts +++ b/e2e/dashboards-suite/load-options-from-url.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = '-Y-tnEDWk/templating-nested-template-variables'; diff --git a/e2e/dashboards-suite/new-constant-variable.spec.ts b/e2e/dashboards-suite/new-constant-variable.spec.ts index 69ac02bff28..c8c725aa5ae 100644 --- a/e2e/dashboards-suite/new-constant-variable.spec.ts +++ b/e2e/dashboards-suite/new-constant-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; const DASHBOARD_NAME = 'Test variable output'; diff --git a/e2e/dashboards-suite/new-custom-variable.spec.ts b/e2e/dashboards-suite/new-custom-variable.spec.ts index 91873ce27f8..361466f820d 100644 --- a/e2e/dashboards-suite/new-custom-variable.spec.ts +++ b/e2e/dashboards-suite/new-custom-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; const DASHBOARD_NAME = 'Test variable output'; diff --git a/e2e/dashboards-suite/new-datasource-variable.spec.ts b/e2e/dashboards-suite/new-datasource-variable.spec.ts index 1bc784b3213..8190662973d 100644 --- a/e2e/dashboards-suite/new-datasource-variable.spec.ts +++ b/e2e/dashboards-suite/new-datasource-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; const DASHBOARD_NAME = 'Test variable output'; diff --git a/e2e/dashboards-suite/new-interval-variable.spec.ts b/e2e/dashboards-suite/new-interval-variable.spec.ts index d091d62a010..aa6086fa6f0 100644 --- a/e2e/dashboards-suite/new-interval-variable.spec.ts +++ b/e2e/dashboards-suite/new-interval-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; const DASHBOARD_NAME = 'Test variable output'; diff --git a/e2e/dashboards-suite/new-query-variable.spec.ts b/e2e/dashboards-suite/new-query-variable.spec.ts index 3a1a4712d78..42d6b4b7823 100644 --- a/e2e/dashboards-suite/new-query-variable.spec.ts +++ b/e2e/dashboards-suite/new-query-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = '-Y-tnEDWk/templating-nested-template-variables'; const DASHBOARD_NAME = 'Templating - Nested Template Variables'; diff --git a/e2e/dashboards-suite/new-text-box-variable.spec.ts b/e2e/dashboards-suite/new-text-box-variable.spec.ts index 20df50bec16..39387dc14c4 100644 --- a/e2e/dashboards-suite/new-text-box-variable.spec.ts +++ b/e2e/dashboards-suite/new-text-box-variable.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'kVi2Gex7z/test-variable-output'; const DASHBOARD_NAME = 'Test variable output'; diff --git a/e2e/dashboards-suite/set-options-from-ui.spec.ts b/e2e/dashboards-suite/set-options-from-ui.spec.ts index f9333cd2837..c8aca8eaec0 100644 --- a/e2e/dashboards-suite/set-options-from-ui.spec.ts +++ b/e2e/dashboards-suite/set-options-from-ui.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = '-Y-tnEDWk/templating-nested-template-variables'; diff --git a/e2e/dashboards-suite/templating-dashboard-links-and-variables.spec.ts b/e2e/dashboards-suite/templating-dashboard-links-and-variables.spec.ts index 19757379ef2..455fbec9204 100644 --- a/e2e/dashboards-suite/templating-dashboard-links-and-variables.spec.ts +++ b/e2e/dashboards-suite/templating-dashboard-links-and-variables.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Templating', diff --git a/e2e/dashboards-suite/textbox-variables.spec.ts b/e2e/dashboards-suite/textbox-variables.spec.ts index 9c18b5327f9..b911b3dfb66 100644 --- a/e2e/dashboards-suite/textbox-variables.spec.ts +++ b/e2e/dashboards-suite/textbox-variables.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PAGE_UNDER_TEST = 'AejrN1AMz'; diff --git a/e2e/datagrid-suite/datagrid-data-change.spec.ts b/e2e/datagrid-suite/datagrid-data-change.spec.ts index 0938b5ebe91..e5bfba9dc82 100644 --- a/e2e/datagrid-suite/datagrid-data-change.spec.ts +++ b/e2e/datagrid-suite/datagrid-data-change.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'c01bf42b-b783-4447-a304-8554cee1843b'; const DATAGRID_SELECT_SERIES = 'Datagrid Select series'; diff --git a/e2e/datagrid-suite/datagrid-editing-features.spec.ts b/e2e/datagrid-suite/datagrid-editing-features.spec.ts index c9bd5d6720b..f5508a2e424 100644 --- a/e2e/datagrid-suite/datagrid-editing-features.spec.ts +++ b/e2e/datagrid-suite/datagrid-editing-features.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'c01bf42b-b783-4447-a304-8554cee1843b'; const DATAGRID_CANVAS = 'data-grid-canvas'; diff --git a/e2e/e2e-flow-suite/00-panel-menu-extension.spec.ts b/e2e/e2e-flow-suite/00-panel-menu-extension.spec.ts index 426e16b2616..f9aefed5283 100644 --- a/e2e/e2e-flow-suite/00-panel-menu-extension.spec.ts +++ b/e2e/e2e-flow-suite/00-panel-menu-extension.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Panel menu ui extension flow', diff --git a/e2e/geomap-suite/geomap-layer-types.spec.ts b/e2e/geomap-suite/geomap-layer-types.spec.ts index e39cf195163..b401d206ab7 100644 --- a/e2e/geomap-suite/geomap-layer-types.spec.ts +++ b/e2e/geomap-suite/geomap-layer-types.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'P2jR04WVk'; diff --git a/e2e/geomap-suite/geomap-map-controls.spec.ts b/e2e/geomap-suite/geomap-map-controls.spec.ts index f41c272e94a..d2dd8cc7a93 100644 --- a/e2e/geomap-suite/geomap-map-controls.spec.ts +++ b/e2e/geomap-suite/geomap-map-controls.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'P2jR04WVk'; e2e.scenario({ diff --git a/e2e/geomap-suite/geomap-spatial-operations-transform.spec.ts b/e2e/geomap-suite/geomap-spatial-operations-transform.spec.ts index 54ba2ae4526..238fecc207d 100644 --- a/e2e/geomap-suite/geomap-spatial-operations-transform.spec.ts +++ b/e2e/geomap-suite/geomap-spatial-operations-transform.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'P2jR04WVk'; diff --git a/e2e/panels-suite/panelEdit_base.spec.ts b/e2e/panels-suite/panelEdit_base.spec.ts index d24a2fe5dac..033bd51d269 100644 --- a/e2e/panels-suite/panelEdit_base.spec.ts +++ b/e2e/panels-suite/panelEdit_base.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PANEL_UNDER_TEST = 'Lines 500 data points'; diff --git a/e2e/panels-suite/panelEdit_queries.spec.ts b/e2e/panels-suite/panelEdit_queries.spec.ts index 5f80d931f05..41684f4c604 100644 --- a/e2e/panels-suite/panelEdit_queries.spec.ts +++ b/e2e/panels-suite/panelEdit_queries.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const flakyTimeout = 10000; @@ -39,12 +39,11 @@ e2e.scenario({ e2e.components.QueryEditorRow.actionButton('Duplicate query').eq(0).should('be.visible').click(); // We expect row with refId Band and A to exist and be visible - e2e.components.QueryEditorRows.rows().within((rows) => { - expect(rows.length).equals(2); - }); + e2e.components.QueryEditorRows.rows().should('have.length', 2); // Change to CSV Metric Values scenario for A e2e.components.DataSource.TestData.QueryTab.scenarioSelectContainer() + .first() .should('be.visible') .within(() => { e2e().get('input[id*="test-data-scenario-select-"]').eq(0).should('be.visible').click(); @@ -95,7 +94,7 @@ const expectInspectorResultAndClose = (expectCallBack: (keys: JQuery expectCallBack(keys)); + .should((keys) => expectCallBack(keys)); e2e.components.Drawer.General.close().should('be.visible').click(); }; diff --git a/e2e/panels-suite/panelEdit_transforms.spec.ts b/e2e/panels-suite/panelEdit_transforms.spec.ts index 6f12a438c73..fa0a43d21b8 100644 --- a/e2e/panels-suite/panelEdit_transforms.spec.ts +++ b/e2e/panels-suite/panelEdit_transforms.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Panel edit tests - transformations', diff --git a/e2e/run-suite b/e2e/run-suite index 407752c1eb7..ce1401a3e6e 100755 --- a/e2e/run-suite +++ b/e2e/run-suite @@ -16,7 +16,7 @@ echo -e "Starting Cypress scenarios" args=("$@") -CMD="start" +CMD="cy:run" PARAMS="" CLEANUP="" @@ -26,25 +26,24 @@ declare -A env=( ) testFilesForSingleSuite="*.spec.ts" -rootForEnterpriseSuite="extensions-suite" +rootForEnterpriseSuite="./e2e/extensions-suite" declare -A cypressConfig=( - [integrationFolder]=../../e2e - [screenshotsFolder]=../../e2e/"${args[0]}"/screenshots - [videosFolder]=../../e2e/"${args[0]}"/videos - [fileServerFolder]=./cypress - [testFiles]=*-suite/*spec.ts + [screenshotsFolder]=./e2e/"${args[0]}"/screenshots + [fixturesFolder]=./e2e/cypress/fixtures + [videosFolder]=./e2e/"${args[0]}"/videos + [downloadsFolder]=./e2e/cypress/downloads + [fileServerFolder]=./e2e/cypress + [specPattern]=./e2e/*-suite/*spec.ts [defaultCommandTimeout]=30000 [viewportWidth]=1920 [viewportHeight]=1080 [trashAssetsBeforeRuns]=false [videoUploadOnPasses]=false - [reporter]=../../e2e/log-reporter.js + [reporter]=./e2e/log-reporter.js + [baseUrl]=${BASE_URL:-"http://$HOST:$PORT"} ) - -cd packages/grafana-e2e - case "$1" in "debug") echo -e "Debug mode" @@ -53,23 +52,22 @@ case "$1" in ;; "dev") echo "Dev mode" - CMD="open" + CMD="cy:open" ;; "benchmark") echo "Benchmark" PARAMS="--headed" - CMD="start-benchmark" + CMD="cy:benchmark" env[BENCHMARK_PLUGIN_ENABLED]=true - env[BENCHMARK_PLUGIN_RESULTS_FOLDER]=../../e2e/benchmarks/"${args[1]}"/results + env[BENCHMARK_PLUGIN_RESULTS_FOLDER]=./e2e/benchmarks/"${args[1]}"/results cypressConfig[video]=false - cypressConfig[integrationFolder]=../../e2e/benchmarks/"${args[1]}" - cypressConfig[screenshotsFolder]=../../e2e/benchmarks/"${args[1]}"/screenshots - cypressConfig[testFiles]=$testFilesForSingleSuite + cypressConfig[screenshotsFolder]=./e2e/benchmarks/"${args[1]}"/screenshots + cypressConfig[specPattern]=./e2e/benchmarks/"${args[1]}"/$testFilesForSingleSuite ;; "enterprise") echo "Enterprise" - CLEANUP="rm -rf ../../e2e/extensions-suite" - SETUP="cp -Lr ../../e2e/extensions ../../e2e/extensions-suite" + CLEANUP="rm -rf ./e2e/extensions-suite" + SETUP="cp -Lr ./e2e/extensions ./e2e/extensions-suite" enterpriseSuite=$(basename "${args[1]}") case "$2" in "debug") @@ -80,18 +78,17 @@ case "$1" in ;; "dev") echo "Dev mode" - CMD="open" + CMD="cy:open" enterpriseSuite=$(basename "${args[2]}") ;; esac - cypressConfig[testFiles]=$rootForEnterpriseSuite/$enterpriseSuite/*-suite/*.spec.ts + cypressConfig[specPattern]=$rootForEnterpriseSuite/$enterpriseSuite/*-suite/*.spec.ts $CLEANUP && $SETUP ;; "") ;; *) - cypressConfig[integrationFolder]=../../e2e/"${args[0]}" - cypressConfig[testFiles]=$testFilesForSingleSuite + cypressConfig[specPattern]=./e2e/"${args[0]}"/$testFilesForSingleSuite cypressConfig[video]=${args[1]} ;; esac diff --git a/e2e/shared/smokeTestScenario.ts b/e2e/shared/smokeTestScenario.ts index d5ee30ed4e9..c7c6c8acefe 100644 --- a/e2e/shared/smokeTestScenario.ts +++ b/e2e/shared/smokeTestScenario.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; export const smokeTestScenario = { describeName: 'Smoke tests', diff --git a/e2e/shared/tsconfig.json b/e2e/shared/tsconfig.json deleted file mode 100644 index 546c7ef03e2..00000000000 --- a/e2e/shared/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["**/*.ts", "../../packages/grafana-e2e/cypress/support/index.d.ts"], - "resolveJsonModule": true -} diff --git a/e2e/smoke-tests-suite/1-smoketests.spec.ts b/e2e/smoke-tests-suite/1-smoketests.spec.ts index 6f2b7a19311..5d6d2f08ebb 100644 --- a/e2e/smoke-tests-suite/1-smoketests.spec.ts +++ b/e2e/smoke-tests-suite/1-smoketests.spec.ts @@ -1,5 +1,4 @@ -import { e2e } from '@grafana/e2e'; - import { smokeTestScenario } from '../shared/smokeTestScenario'; +import { e2e } from '../utils'; e2e.scenario(smokeTestScenario); diff --git a/e2e/smoke-tests-suite/panels_smokescreen.spec.ts b/e2e/smoke-tests-suite/panels_smokescreen.spec.ts index 139e4e9502b..dbb87b06aa1 100644 --- a/e2e/smoke-tests-suite/panels_smokescreen.spec.ts +++ b/e2e/smoke-tests-suite/panels_smokescreen.spec.ts @@ -1,6 +1,7 @@ -import { e2e } from '@grafana/e2e'; import { GrafanaBootConfig } from '@grafana/runtime'; +import { e2e } from '../utils'; + e2e.scenario({ describeName: 'Panels smokescreen', itName: 'Tests each panel type in the panel edit view to ensure no crash', diff --git a/e2e/sql-suite/mysql.spec.ts b/e2e/sql-suite/mysql.spec.ts index 91ab9d7379a..93cecab8af3 100644 --- a/e2e/sql-suite/mysql.spec.ts +++ b/e2e/sql-suite/mysql.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; import datasetResponse from './datasets-response.json'; import fieldsResponse from './fields-response.json'; diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json index af417debce9..2123311d889 100644 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.json @@ -4,5 +4,5 @@ "resolveJsonModule": true }, "extends": "@grafana/tsconfig/base.json", - "include": ["**/*.ts"] + "include": ["**/*.ts", "cypress/support/e2e.js", "cypress/support/index.d.ts"] } diff --git a/e2e/utils/flows/addDashboard.ts b/e2e/utils/flows/addDashboard.ts new file mode 100644 index 00000000000..2526a03422e --- /dev/null +++ b/e2e/utils/flows/addDashboard.ts @@ -0,0 +1,303 @@ +import { v4 as uuidv4 } from 'uuid'; + +import { e2e } from '../index'; +import { getDashboardUid } from '../support/url'; + +import { DeleteDashboardConfig } from './deleteDashboard'; +import { selectOption } from './selectOption'; +import { setDashboardTimeRange, TimeRangeConfig } from './setDashboardTimeRange'; + +export interface AddAnnotationConfig { + dataSource: string; + dataSourceForm?: () => void; + name: string; +} + +export interface AddDashboardConfig { + annotations: AddAnnotationConfig[]; + timeRange: TimeRangeConfig; + title: string; + variables: PartialAddVariableConfig[]; +} + +interface AddVariableDefault { + hide: string; + type: string; +} + +interface AddVariableOptional { + constantValue?: string; + dataSource?: string; + label?: string; + query?: string; + regex?: string; + variableQueryForm?: (config: AddVariableConfig) => void; +} + +interface AddVariableRequired { + name: string; +} + +export type PartialAddVariableConfig = Partial & AddVariableOptional & AddVariableRequired; +export type AddVariableConfig = AddVariableDefault & AddVariableOptional & AddVariableRequired; + +/** + * This flow is used to add a dashboard with whatever configuration specified. + * @param config Configuration object. Currently supports configuring dashboard time range, annotations, and variables (support dependant on type). + * @see{@link AddDashboardConfig} + * + * @example + * ``` + * // Configuring a simple dashboard + * addDashboard({ + * timeRange: { + * from: '2022-10-03 00:00:00', + * to: '2022-10-03 23:59:59', + * zone: 'Coordinated Universal Time', + * }, + * title: 'Test Dashboard', + * }) + * ``` + * + * @example + * ``` + * // Configuring a dashboard with annotations + * addDashboard({ + * title: 'Test Dashboard', + * annotations: [ + * { + * // This should match the datasource name + * dataSource: 'azure-monitor', + * name: 'Test Annotation', + * dataSourceForm: () => { + * // Insert steps to create annotation using datasource form + * } + * } + * ] + * }) + * ``` + * + * @see{@link AddAnnotationConfig} + * + * @example + * ``` + * // Configuring a dashboard with variables + * addDashboard({ + * title: 'Test Dashboard', + * variables: [ + * { + * name: 'test-query-variable', + * label: 'Testing Query', + * hide: '', + * type: e2e.flows.VARIABLE_TYPE_QUERY, + * dataSource: 'azure-monitor', + * variableQueryForm: () => { + * // Insert steps to create variable using datasource form + * }, + * }, + * { + * name: 'test-constant-variable', + * label: 'Testing Constant', + * type: e2e.flows.VARIABLE_TYPE_CONSTANT, + * constantValue: 'constant', + * } + * ] + * }) + * ``` + * + * @see{@link AddVariableConfig} + * + * @see{@link https://github.com/grafana/grafana/blob/main/e2e/cloud-plugins-suite/azure-monitor.spec.ts Azure Monitor Tests for full examples} + */ +export const addDashboard = (config?: Partial) => { + const fullConfig: AddDashboardConfig = { + annotations: [], + title: `e2e-${uuidv4()}`, + variables: [], + ...config, + timeRange: { + from: '2020-01-01 00:00:00', + to: '2020-01-01 06:00:00', + zone: 'Coordinated Universal Time', + ...config?.timeRange, + }, + }; + + const { annotations, timeRange, title, variables } = fullConfig; + + e2e().logToConsole('Adding dashboard with title:', title); + + e2e.pages.AddDashboard.visit(); + + if (annotations.length > 0 || variables.length > 0) { + e2e.components.PageToolbar.item('Dashboard settings').click(); + addAnnotations(annotations); + + fullConfig.variables = addVariables(variables); + + e2e.components.BackButton.backArrow().should('be.visible').click({ force: true }); + } + + setDashboardTimeRange(timeRange); + + e2e.components.PageToolbar.item('Save dashboard').click(); + e2e.pages.SaveDashboardAsModal.newName().clear().type(title, { force: true }); + e2e.pages.SaveDashboardAsModal.save().click(); + e2e.flows.assertSuccessNotification(); + e2e.pages.AddDashboard.itemButton('Create new panel button').should('be.visible'); + + e2e().logToConsole('Added dashboard with title:', title); + + return e2e() + .url() + .should('contain', '/d/') + .then((url: string) => { + const uid = getDashboardUid(url); + + e2e.getScenarioContext().then(({ addedDashboards }: any) => { + e2e.setScenarioContext({ + addedDashboards: [...addedDashboards, { title, uid } as DeleteDashboardConfig], + }); + }); + + // @todo remove `wrap` when possible + return e2e().wrap( + { + config: fullConfig, + uid, + }, + { log: false } + ); + }); +}; + +const addAnnotation = (config: AddAnnotationConfig, isFirst: boolean) => { + if (isFirst) { + if (e2e.pages.Dashboard.Settings.Annotations.List.addAnnotationCTAV2) { + e2e.pages.Dashboard.Settings.Annotations.List.addAnnotationCTAV2().click(); + } else { + e2e.pages.Dashboard.Settings.Annotations.List.addAnnotationCTA().click(); + } + } else { + cy.contains('New query').click(); + } + + const { dataSource, dataSourceForm, name } = config; + + selectOption({ + container: e2e.components.DataSourcePicker.container(), + optionText: dataSource, + }); + + e2e.pages.Dashboard.Settings.Annotations.Settings.name().clear().type(name); + + if (dataSourceForm) { + dataSourceForm(); + } +}; + +const addAnnotations = (configs: AddAnnotationConfig[]) => { + if (configs.length > 0) { + e2e.pages.Dashboard.Settings.General.sectionItems('Annotations').click(); + } + + return configs.forEach((config, i) => addAnnotation(config, i === 0)); +}; + +export const VARIABLE_HIDE_LABEL = 'Label'; +export const VARIABLE_HIDE_NOTHING = ''; +export const VARIABLE_HIDE_VARIABLE = 'Variable'; + +export const VARIABLE_TYPE_AD_HOC_FILTERS = 'Ad hoc filters'; +export const VARIABLE_TYPE_CONSTANT = 'Constant'; +export const VARIABLE_TYPE_DATASOURCE = 'Datasource'; +export const VARIABLE_TYPE_QUERY = 'Query'; + +const addVariable = (config: PartialAddVariableConfig, isFirst: boolean): AddVariableConfig => { + const fullConfig = { + hide: VARIABLE_HIDE_NOTHING, + type: VARIABLE_TYPE_QUERY, + ...config, + }; + + if (isFirst) { + if (e2e.pages.Dashboard.Settings.Variables.List.addVariableCTAV2) { + e2e.pages.Dashboard.Settings.Variables.List.addVariableCTAV2().click(); + } else { + e2e.pages.Dashboard.Settings.Variables.List.addVariableCTA().click(); + } + } else { + e2e.pages.Dashboard.Settings.Variables.List.newButton().click(); + } + + const { constantValue, dataSource, label, name, query, regex, type, variableQueryForm } = fullConfig; + + // This field is key to many reactive changes + if (type !== VARIABLE_TYPE_QUERY) { + e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelectV2() + .should('be.visible') + .within(() => { + e2e.components.Select.singleValue().should('have.text', 'Query').parent().click(); + }); + e2e.pages.Dashboard.Settings.Variables.Edit.General.generalTypeSelectV2().find('input').type(`${type}{enter}`); + } + + if (label) { + e2e.pages.Dashboard.Settings.Variables.Edit.General.generalLabelInputV2().type(label); + } + + e2e.pages.Dashboard.Settings.Variables.Edit.General.generalNameInputV2().clear().type(name); + + if ( + dataSource && + (type === VARIABLE_TYPE_AD_HOC_FILTERS || type === VARIABLE_TYPE_DATASOURCE || type === VARIABLE_TYPE_QUERY) + ) { + e2e.pages.Dashboard.Settings.Variables.Edit.QueryVariable.queryOptionsDataSourceSelect() + .should('be.visible') + .within(() => { + e2e.components.DataSourcePicker.inputV2().type(`${dataSource}{enter}`); + }); + } + + if (constantValue && type === VARIABLE_TYPE_CONSTANT) { + e2e.pages.Dashboard.Settings.Variables.Edit.ConstantVariable.constantOptionsQueryInputV2().type(constantValue); + } + + if (type === VARIABLE_TYPE_QUERY) { + if (query) { + e2e.pages.Dashboard.Settings.Variables.Edit.QueryVariable.queryOptionsQueryInput().type(query); + } + + if (regex) { + e2e.pages.Dashboard.Settings.Variables.Edit.QueryVariable.queryOptionsRegExInputV2().type(regex); + } + + if (variableQueryForm) { + variableQueryForm(fullConfig); + } + } + + // Avoid flakiness + e2e().focused().blur(); + + e2e.pages.Dashboard.Settings.Variables.Edit.General.previewOfValuesOption() + .should('exist') + .within((previewOfValues) => { + if (type === VARIABLE_TYPE_CONSTANT) { + expect(previewOfValues.text()).equals(constantValue); + } + }); + + e2e.pages.Dashboard.Settings.Variables.Edit.General.submitButton().click(); + e2e.pages.Dashboard.Settings.Variables.Edit.General.applyButton().click(); + + return fullConfig; +}; + +const addVariables = (configs: PartialAddVariableConfig[]): AddVariableConfig[] => { + if (configs.length > 0) { + e2e.components.Tab.title('Variables').click(); + } + + return configs.map((config, i) => addVariable(config, i === 0)); +}; diff --git a/e2e/utils/flows/addDataSource.ts b/e2e/utils/flows/addDataSource.ts new file mode 100644 index 00000000000..38779572bd4 --- /dev/null +++ b/e2e/utils/flows/addDataSource.ts @@ -0,0 +1,116 @@ +import { v4 as uuidv4 } from 'uuid'; + +import { e2e } from '../index'; + +import { DeleteDataSourceConfig } from './deleteDataSource'; + +export interface AddDataSourceConfig { + basicAuth: boolean; + basicAuthPassword: string; + basicAuthUser: string; + expectedAlertMessage: string | RegExp; + form: () => void; + name: string; + skipTlsVerify: boolean; + type: string; + timeout?: number; + awaitHealth?: boolean; +} + +// @todo this actually returns type `Cypress.Chainable` +export const addDataSource = (config?: Partial) => { + const fullConfig: AddDataSourceConfig = { + basicAuth: false, + basicAuthPassword: '', + basicAuthUser: '', + expectedAlertMessage: 'Data source is working', + form: () => {}, + name: `e2e-${uuidv4()}`, + skipTlsVerify: false, + type: 'TestData', + ...config, + }; + + const { + basicAuth, + basicAuthPassword, + basicAuthUser, + expectedAlertMessage, + form, + name, + skipTlsVerify, + type, + timeout, + awaitHealth, + } = fullConfig; + + if (awaitHealth) { + e2e() + .intercept(/health/) + .as('health'); + } + + e2e().logToConsole('Adding data source with name:', name); + e2e.pages.AddDataSource.visit(); + e2e.pages.AddDataSource.dataSourcePluginsV2(type) + .scrollIntoView() + .should('be.visible') // prevents flakiness + .click(); + + e2e.pages.DataSource.name().clear(); + e2e.pages.DataSource.name().type(name); + + if (basicAuth) { + e2e().contains('label', 'Basic auth').scrollIntoView().click(); + e2e() + .contains('.gf-form-group', 'Basic Auth Details') + .should('be.visible') + .scrollIntoView() + .within(() => { + if (basicAuthUser) { + e2e().get('[placeholder=user]').type(basicAuthUser); + } + if (basicAuthPassword) { + e2e().get('[placeholder=Password]').type(basicAuthPassword); + } + }); + } + + if (skipTlsVerify) { + e2e().contains('label', 'Skip TLS Verify').scrollIntoView().click(); + } + + form(); + + e2e.pages.DataSource.saveAndTest().click(); + + if (awaitHealth) { + e2e().wait('@health', { timeout: timeout ?? e2e.config().defaultCommandTimeout }); + } + + // use the timeout passed in if it exists, otherwise, continue to use the default + e2e.pages.DataSource.alert() + .should('exist') + .contains(expectedAlertMessage, { + timeout: timeout ?? e2e.config().defaultCommandTimeout, + }); + e2e().logToConsole('Added data source with name:', name); + + return e2e() + .url() + .then(() => { + e2e.getScenarioContext().then(({ addedDataSources }: any) => { + e2e.setScenarioContext({ + addedDataSources: [...addedDataSources, { name } as DeleteDataSourceConfig], + }); + }); + + // @todo remove `wrap` when possible + return e2e().wrap( + { + config: fullConfig, + }, + { log: false } + ); + }); +}; diff --git a/e2e/utils/flows/addPanel.ts b/e2e/utils/flows/addPanel.ts new file mode 100644 index 00000000000..0f214e51835 --- /dev/null +++ b/e2e/utils/flows/addPanel.ts @@ -0,0 +1,15 @@ +import { v4 as uuidv4 } from 'uuid'; + +import { getScenarioContext } from '../support/scenarioContext'; + +import { configurePanel, PartialAddPanelConfig } from './configurePanel'; + +export const addPanel = (config?: Partial) => + getScenarioContext().then(({ lastAddedDataSource }: any) => + configurePanel({ + dataSourceName: lastAddedDataSource, + panelTitle: `e2e-${uuidv4()}`, + ...config, + isEdit: false, + }) + ); diff --git a/e2e/utils/flows/assertSuccessNotification.ts b/e2e/utils/flows/assertSuccessNotification.ts new file mode 100644 index 00000000000..25f9228683c --- /dev/null +++ b/e2e/utils/flows/assertSuccessNotification.ts @@ -0,0 +1,9 @@ +import { e2e } from '../index'; + +export const assertSuccessNotification = () => { + if (e2e.components.Alert.alertV2) { + e2e.components.Alert.alertV2('success').should('exist'); + } else { + e2e.components.Alert.alert('success').should('exist'); + } +}; diff --git a/e2e/utils/flows/configurePanel.ts b/e2e/utils/flows/configurePanel.ts new file mode 100644 index 00000000000..59bc72216db --- /dev/null +++ b/e2e/utils/flows/configurePanel.ts @@ -0,0 +1,192 @@ +import { e2e } from '..'; +import { getScenarioContext } from '../support/scenarioContext'; + +import { setDashboardTimeRange } from './setDashboardTimeRange'; +import { TimeRangeConfig } from './setTimeRange'; + +interface AddPanelOverrides { + dataSourceName: string; + queriesForm: (config: AddPanelConfig) => void; + panelTitle: string; +} + +interface EditPanelOverrides { + queriesForm?: (config: EditPanelConfig) => void; + panelTitle: string; +} + +interface ConfigurePanelDefault { + chartData: { + method: string; + route: string | RegExp; + }; + dashboardUid: string; + matchScreenshot: boolean; + saveDashboard: boolean; + screenshotName: string; + visitDashboardAtStart: boolean; // @todo remove when possible +} + +interface ConfigurePanelOptional { + dataSourceName?: string; + queriesForm?: (config: ConfigurePanelConfig) => void; + panelTitle?: string; + timeRange?: TimeRangeConfig; + visualizationName?: string; + timeout?: number; +} + +interface ConfigurePanelRequired { + isEdit: boolean; +} + +export type PartialConfigurePanelConfig = Partial & + ConfigurePanelOptional & + ConfigurePanelRequired; + +export type ConfigurePanelConfig = ConfigurePanelDefault & ConfigurePanelOptional & ConfigurePanelRequired; + +export type PartialAddPanelConfig = PartialConfigurePanelConfig & AddPanelOverrides; +export type AddPanelConfig = ConfigurePanelConfig & AddPanelOverrides; + +export type PartialEditPanelConfig = PartialConfigurePanelConfig & EditPanelOverrides; +export type EditPanelConfig = ConfigurePanelConfig & EditPanelOverrides; + +// @todo this actually returns type `Cypress.Chainable` +export const configurePanel = (config: PartialAddPanelConfig | PartialEditPanelConfig | PartialConfigurePanelConfig) => + getScenarioContext().then(({ lastAddedDashboardUid }: any) => { + const fullConfig: AddPanelConfig | EditPanelConfig | ConfigurePanelConfig = { + chartData: { + method: 'POST', + route: '/api/ds/query', + }, + dashboardUid: lastAddedDashboardUid, + matchScreenshot: false, + saveDashboard: true, + screenshotName: 'panel-visualization', + visitDashboardAtStart: true, + ...config, + }; + + const { + chartData, + dashboardUid, + dataSourceName, + isEdit, + matchScreenshot, + panelTitle, + queriesForm, + screenshotName, + timeRange, + visitDashboardAtStart, + visualizationName, + timeout, + } = fullConfig; + + if (visitDashboardAtStart) { + e2e.flows.openDashboard({ uid: dashboardUid }); + } + + if (isEdit) { + e2e.components.Panels.Panel.title(panelTitle).click(); + e2e.components.Panels.Panel.headerItems('Edit').click(); + } else { + try { + e2e.components.PageToolbar.itemButton('Add button').should('be.visible'); + e2e.components.PageToolbar.itemButton('Add button').click(); + } catch (e) { + // Depending on the screen size, the "Add" button might be hidden + e2e.components.PageToolbar.item('Show more items').click(); + e2e.components.PageToolbar.item('Add button').last().click(); + } + e2e.pages.AddDashboard.itemButton('Add new visualization menu item').should('be.visible'); + e2e.pages.AddDashboard.itemButton('Add new visualization menu item').click(); + } + + if (timeRange) { + setDashboardTimeRange(timeRange); + } + + // @todo alias '/**/*.js*' as '@pluginModule' when possible: https://github.com/cypress-io/cypress/issues/1296 + + e2e().intercept(chartData.method, chartData.route).as('chartData'); + + if (dataSourceName) { + e2e.components.DataSourcePicker.container().click().type(`${dataSourceName}{downArrow}{enter}`); + } + + // @todo instead wait for '@pluginModule' if not already loaded + e2e().wait(2000); + + // `panelTitle` is needed to edit the panel, and unlikely to have its value changed at that point + const changeTitle = panelTitle && !isEdit; + + if (changeTitle || visualizationName) { + if (changeTitle && panelTitle) { + e2e.components.PanelEditor.OptionsPane.fieldLabel('Panel options Title').type(`{selectall}${panelTitle}`); + } + + if (visualizationName) { + e2e.components.PluginVisualization.item(visualizationName).scrollIntoView().click(); + + // @todo wait for '@pluginModule' if not a core visualization and not already loaded + e2e().wait(2000); + } + } else { + // Consistently closed + closeOptions(); + } + + if (queriesForm) { + queriesForm(fullConfig); + + // Wait for a possible complex visualization to render (or something related, as this isn't necessary on the dashboard page) + // Can't assert that its HTML changed because a new query could produce the same results + e2e().wait(1000); + } + + // @todo enable when plugins have this implemented + //e2e.components.QueryEditorRow.actionButton('Disable/enable query').click(); + //e2e().wait('@chartData'); + //e2e.components.Panels.Panel.containerByTitle(panelTitle).find('.panel-content').contains('No data'); + //e2e.components.QueryEditorRow.actionButton('Disable/enable query').click(); + //e2e().wait('@chartData'); + + // Avoid annotations flakiness + e2e.components.RefreshPicker.runButtonV2().first().click({ force: true }); + + // Wait for RxJS + e2e().wait(timeout ?? e2e.config().defaultCommandTimeout); + + if (matchScreenshot) { + let visualization; + + visualization = e2e.components.Panels.Panel.containerByTitle(panelTitle).find('.panel-content'); + + visualization.scrollIntoView().screenshot(screenshotName); + e2e().compareScreenshots(screenshotName); + } + + // @todo remove `wrap` when possible + return e2e().wrap({ config: fullConfig }, { log: false }); + }); + +// @todo this actually returns type `Cypress.Chainable` +const closeOptions = () => e2e.components.PanelEditor.toggleVizOptions().click(); + +export const VISUALIZATION_ALERT_LIST = 'Alert list'; +export const VISUALIZATION_BAR_GAUGE = 'Bar gauge'; +export const VISUALIZATION_CLOCK = 'Clock'; +export const VISUALIZATION_DASHBOARD_LIST = 'Dashboard list'; +export const VISUALIZATION_GAUGE = 'Gauge'; +export const VISUALIZATION_GRAPH = 'Graph'; +export const VISUALIZATION_HEAT_MAP = 'Heatmap'; +export const VISUALIZATION_LOGS = 'Logs'; +export const VISUALIZATION_NEWS = 'News'; +export const VISUALIZATION_PIE_CHART = 'Pie Chart'; +export const VISUALIZATION_PLUGIN_LIST = 'Plugin list'; +export const VISUALIZATION_POLYSTAT = 'Polystat'; +export const VISUALIZATION_STAT = 'Stat'; +export const VISUALIZATION_TABLE = 'Table'; +export const VISUALIZATION_TEXT = 'Text'; +export const VISUALIZATION_WORLD_MAP = 'Worldmap Panel'; diff --git a/e2e/utils/flows/deleteDashboard.ts b/e2e/utils/flows/deleteDashboard.ts new file mode 100644 index 00000000000..d69c3da7146 --- /dev/null +++ b/e2e/utils/flows/deleteDashboard.ts @@ -0,0 +1,51 @@ +import { e2e } from '../index'; +import { fromBaseUrl } from '../support/url'; + +export interface DeleteDashboardConfig { + quick?: boolean; + title: string; + uid: string; +} + +export const deleteDashboard = ({ quick = false, title, uid }: DeleteDashboardConfig) => { + e2e().logToConsole('Deleting dashboard with uid:', uid); + + if (quick) { + quickDelete(uid); + } else { + uiDelete(uid, title); + } + + e2e().logToConsole('Deleted dashboard with uid:', uid); + + e2e.getScenarioContext().then(({ addedDashboards }: any) => { + e2e.setScenarioContext({ + addedDashboards: addedDashboards.filter((dashboard: DeleteDashboardConfig) => { + return dashboard.title !== title && dashboard.uid !== uid; + }), + }); + }); +}; + +const quickDelete = (uid: string) => { + e2e().request('DELETE', fromBaseUrl(`/api/dashboards/uid/${uid}`)); +}; + +const uiDelete = (uid: string, title: string) => { + e2e.pages.Dashboard.visit(uid); + e2e.components.PageToolbar.item('Dashboard settings').click(); + e2e.pages.Dashboard.Settings.General.deleteDashBoard().click(); + e2e.pages.ConfirmModal.delete().click(); + e2e.flows.assertSuccessNotification(); + + e2e.pages.Dashboards.visit(); + + // @todo replace `e2e.pages.Dashboards.dashboards` with this when argument is empty + if (e2e.components.Search.dashboardItems) { + e2e.components.Search.dashboardItems().each((item) => e2e().wrap(item).should('not.contain', title)); + } else { + e2e() + .get('[aria-label^="Dashboard search item "]') + .each((item) => e2e().wrap(item).should('not.contain', title)); + } +}; diff --git a/e2e/utils/flows/deleteDataSource.ts b/e2e/utils/flows/deleteDataSource.ts new file mode 100644 index 00000000000..f68b38f3a79 --- /dev/null +++ b/e2e/utils/flows/deleteDataSource.ts @@ -0,0 +1,46 @@ +import { e2e } from '../index'; +import { fromBaseUrl } from '../support/url'; + +export interface DeleteDataSourceConfig { + id: string; + name: string; + quick?: boolean; +} + +export const deleteDataSource = ({ id, name, quick = false }: DeleteDataSourceConfig) => { + e2e().logToConsole('Deleting data source with name:', name); + + if (quick) { + quickDelete(name); + } else { + uiDelete(name); + } + + e2e().logToConsole('Deleted data source with name:', name); + + e2e.getScenarioContext().then(({ addedDataSources }: any) => { + e2e.setScenarioContext({ + addedDataSources: addedDataSources.filter((dataSource: DeleteDataSourceConfig) => { + return dataSource.id !== id && dataSource.name !== name; + }), + }); + }); +}; + +const quickDelete = (name: string) => { + e2e().request('DELETE', fromBaseUrl(`/api/datasources/name/${name}`)); +}; + +const uiDelete = (name: string) => { + e2e.pages.DataSources.visit(); + e2e.pages.DataSources.dataSources(name).click(); + e2e.pages.DataSource.delete().click(); + e2e.pages.ConfirmModal.delete().click(); + + e2e.pages.DataSources.visit(); + + // @todo replace `e2e.pages.DataSources.dataSources` with this when argument is empty + e2e() + .get('[aria-label^="Data source list item "]') + .each((item) => e2e().wrap(item).should('not.contain', name)); +}; diff --git a/e2e/utils/flows/editPanel.ts b/e2e/utils/flows/editPanel.ts new file mode 100644 index 00000000000..c213465902a --- /dev/null +++ b/e2e/utils/flows/editPanel.ts @@ -0,0 +1,7 @@ +import { configurePanel, PartialEditPanelConfig } from './configurePanel'; + +export const editPanel = (config: Partial) => + configurePanel({ + ...config, + isEdit: true, + }); diff --git a/e2e/utils/flows/importDashboard.ts b/e2e/utils/flows/importDashboard.ts new file mode 100644 index 00000000000..2d9edeee690 --- /dev/null +++ b/e2e/utils/flows/importDashboard.ts @@ -0,0 +1,70 @@ +import { e2e } from '../index'; +import { fromBaseUrl, getDashboardUid } from '../support/url'; + +import { DeleteDashboardConfig } from '.'; + +type Panel = { + title: string; + [key: string]: unknown; +}; + +export type Dashboard = { title: string; panels: Panel[]; uid: string; [key: string]: unknown }; + +/** + * Smoke test a particular dashboard by quickly importing a json file and validate that all the panels finish loading + * @param dashboardToImport a sample dashboard + * @param queryTimeout a number of ms to wait for the imported dashboard to finish loading + * @param skipPanelValidation skip panel validation + */ +export const importDashboard = (dashboardToImport: Dashboard, queryTimeout?: number, skipPanelValidation?: boolean) => { + e2e().visit(fromBaseUrl('/dashboard/import')); + + // Note: normally we'd use 'click' and then 'type' here, but the json object is so big that using 'val' is much faster + e2e.components.DashboardImportPage.textarea().should('be.visible'); + e2e.components.DashboardImportPage.textarea().click(); + e2e.components.DashboardImportPage.textarea().invoke('val', JSON.stringify(dashboardToImport)); + e2e.components.DashboardImportPage.submit().should('be.visible').click(); + e2e.components.ImportDashboardForm.name().should('be.visible').click().clear().type(dashboardToImport.title); + e2e.components.ImportDashboardForm.submit().should('be.visible').click(); + + // wait for dashboard to load + e2e().wait(queryTimeout || 6000); + + // save the newly imported dashboard to context so it'll get properly deleted later + e2e() + .url() + .should('contain', '/d/') + .then((url: string) => { + const uid = getDashboardUid(url); + + e2e.getScenarioContext().then(({ addedDashboards }: { addedDashboards: DeleteDashboardConfig[] }) => { + e2e.setScenarioContext({ + addedDashboards: [...addedDashboards, { title: dashboardToImport.title, uid }], + }); + }); + + expect(dashboardToImport.uid).to.equal(uid); + }); + + if (!skipPanelValidation) { + dashboardToImport.panels.forEach((panel) => { + // Look at the json data + e2e.components.Panels.Panel.menu(panel.title).click({ force: true }); // force click because menu is hidden and show on hover + e2e.components.Panels.Panel.menuItems('Inspect').should('be.visible').click(); + e2e.components.Tab.title('JSON').should('be.visible').click(); + e2e.components.PanelInspector.Json.content().should('be.visible').contains('Panel JSON').click({ force: true }); + e2e.components.Select.option().should('be.visible').contains('Panel data').click(); + + // ensures that panel has loaded without knowingly hitting an error + // note: this does not prove that data came back as we expected it, + // it could get `state: Done` for no data for example + // but it ensures we didn't hit a 401 or 500 or something like that + e2e.components.CodeEditor.container() + .should('be.visible') + .contains(/"state": "(Done|Streaming)"/); + + // need to close panel + e2e.components.Drawer.General.close().click(); + }); + } +}; diff --git a/e2e/utils/flows/importDashboards.ts b/e2e/utils/flows/importDashboards.ts new file mode 100644 index 00000000000..90a126b947a --- /dev/null +++ b/e2e/utils/flows/importDashboards.ts @@ -0,0 +1,21 @@ +import { e2e } from '../index'; + +import { importDashboard, Dashboard } from './importDashboard'; + +/** + * Smoke test several dashboard json files from a test directory + * and validate that all the panels in each import finish loading their queries + * @param dirPath the relative path to a directory which contains json files representing dashboards, + * for example if your dashboards live in `cypress/testDashboards` you can pass `/testDashboards` + * @param queryTimeout a number of ms to wait for the imported dashboard to finish loading + * @param skipPanelValidation skips panel validation + */ +export const importDashboards = async (dirPath: string, queryTimeout?: number, skipPanelValidation?: boolean) => { + e2e() + .getJSONFilesFromDir(dirPath) + .then((jsonFiles: Dashboard[]) => { + jsonFiles.forEach((file) => { + importDashboard(file, queryTimeout || 6000, skipPanelValidation); + }); + }); +}; diff --git a/e2e/utils/flows/index.ts b/e2e/utils/flows/index.ts new file mode 100644 index 00000000000..e7fbfb3ce82 --- /dev/null +++ b/e2e/utils/flows/index.ts @@ -0,0 +1,36 @@ +export * from './addDashboard'; +export * from './addDataSource'; +export * from './addPanel'; +export * from './assertSuccessNotification'; +export * from './deleteDashboard'; +export * from './deleteDataSource'; +export * from './editPanel'; +export * from './login'; +export * from './openDashboard'; +export * from './openPanelMenuItem'; +export * from './revertAllChanges'; +export * from './saveDashboard'; +export * from './selectOption'; +export * from './setTimeRange'; +export * from './importDashboard'; +export * from './importDashboards'; +export * from './userPreferences'; + +export { + VISUALIZATION_ALERT_LIST, + VISUALIZATION_BAR_GAUGE, + VISUALIZATION_CLOCK, + VISUALIZATION_DASHBOARD_LIST, + VISUALIZATION_GAUGE, + VISUALIZATION_GRAPH, + VISUALIZATION_HEAT_MAP, + VISUALIZATION_LOGS, + VISUALIZATION_NEWS, + VISUALIZATION_PIE_CHART, + VISUALIZATION_PLUGIN_LIST, + VISUALIZATION_POLYSTAT, + VISUALIZATION_STAT, + VISUALIZATION_TABLE, + VISUALIZATION_TEXT, + VISUALIZATION_WORLD_MAP, +} from './configurePanel'; diff --git a/e2e/utils/flows/login.ts b/e2e/utils/flows/login.ts new file mode 100644 index 00000000000..744e4332754 --- /dev/null +++ b/e2e/utils/flows/login.ts @@ -0,0 +1,42 @@ +import { e2e } from '../index'; +import { fromBaseUrl } from '../support/url'; + +const DEFAULT_USERNAME = 'admin'; +const DEFAULT_PASSWORD = 'admin'; + +const loginApi = (username: string, password: string) => { + cy.request({ + method: 'POST', + url: fromBaseUrl('/login'), + body: { + user: username, + password, + }, + }); +}; + +const loginUi = (username: string, password: string) => { + e2e().logToConsole('Logging in with username:', username); + e2e.pages.Login.visit(); + e2e.pages.Login.username() + .should('be.visible') // prevents flakiness + .type(username); + e2e.pages.Login.password().type(password); + e2e.pages.Login.submit().click(); + + // Local tests will have insecure credentials + if (password === DEFAULT_PASSWORD) { + e2e.pages.Login.skip().should('be.visible').click(); + } + + e2e().get('.login-page').should('not.exist'); +}; + +export const login = (username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD, loginViaApi = true) => { + if (loginViaApi) { + loginApi(username, password); + } else { + loginUi(username, password); + } + e2e().logToConsole('Logged in with username:', username); +}; diff --git a/e2e/utils/flows/openDashboard.ts b/e2e/utils/flows/openDashboard.ts new file mode 100644 index 00000000000..c535099e63a --- /dev/null +++ b/e2e/utils/flows/openDashboard.ts @@ -0,0 +1,36 @@ +import { e2e } from '../index'; +import { getScenarioContext } from '../support/scenarioContext'; + +import { setDashboardTimeRange, TimeRangeConfig } from './setDashboardTimeRange'; + +interface OpenDashboardDefault { + uid: string; +} + +interface OpenDashboardOptional { + timeRange?: TimeRangeConfig; + queryParams?: object; +} + +export type PartialOpenDashboardConfig = Partial & OpenDashboardOptional; +export type OpenDashboardConfig = OpenDashboardDefault & OpenDashboardOptional; + +// @todo this actually returns type `Cypress.Chainable` +export const openDashboard = (config?: PartialOpenDashboardConfig) => + getScenarioContext().then(({ lastAddedDashboardUid }: any) => { + const fullConfig: OpenDashboardConfig = { + uid: lastAddedDashboardUid, + ...config, + }; + + const { timeRange, uid, queryParams } = fullConfig; + + e2e.pages.Dashboard.visit(uid, queryParams); + + if (timeRange) { + setDashboardTimeRange(timeRange); + } + + // @todo remove `wrap` when possible + return e2e().wrap({ config: fullConfig }, { log: false }); + }); diff --git a/e2e/utils/flows/openPanelMenuItem.ts b/e2e/utils/flows/openPanelMenuItem.ts new file mode 100644 index 00000000000..1ccd5206826 --- /dev/null +++ b/e2e/utils/flows/openPanelMenuItem.ts @@ -0,0 +1,57 @@ +import { e2e } from '../index'; + +export enum PanelMenuItems { + Edit = 'Edit', + Inspect = 'Inspect', + More = 'More...', + Extensions = 'Extensions', +} + +export const openPanelMenuItem = (menu: PanelMenuItems, panelTitle = 'Panel Title') => { + // we changed the way we open the panel menu in react panels with the new panel header + detectPanelType(panelTitle, (isAngularPanel) => { + if (isAngularPanel) { + e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); + e2e.components.Panels.Panel.headerItems(menu).should('be.visible').click(); + } else { + e2e.components.Panels.Panel.menu(panelTitle).click({ force: true }); // force click because menu is hidden and show on hover + e2e.components.Panels.Panel.menuItems(menu).should('be.visible').click(); + } + }); +}; + +export const openPanelMenuExtension = (extensionTitle: string, panelTitle = 'Panel Title') => { + const menuItem = PanelMenuItems.Extensions; + // we changed the way we open the panel menu in react panels with the new panel header + detectPanelType(panelTitle, (isAngularPanel) => { + if (isAngularPanel) { + e2e.components.Panels.Panel.title(panelTitle).should('be.visible').click(); + e2e.components.Panels.Panel.headerItems(menuItem) + .should('be.visible') + .parent() + .parent() + .invoke('addClass', 'open'); + e2e.components.Panels.Panel.headerItems(extensionTitle).should('be.visible').click(); + } else { + e2e.components.Panels.Panel.menu(panelTitle).click({ force: true }); // force click because menu is hidden and show on hover + e2e.components.Panels.Panel.menuItems(menuItem).trigger('mouseover', { force: true }); + e2e.components.Panels.Panel.menuItems(extensionTitle).click({ force: true }); + } + }); +}; + +function detectPanelType(panelTitle: string, detected: (isAngularPanel: boolean) => void) { + e2e.components.Panels.Panel.title(panelTitle).then((el) => { + const isAngularPanel = el.find('plugin-component.ng-scope').length > 0; + + if (isAngularPanel) { + Cypress.log({ + name: 'detectPanelType', + displayName: 'detector', + message: 'Angular panel detected, will use legacy selectors.', + }); + } + + detected(isAngularPanel); + }); +} diff --git a/e2e/utils/flows/revertAllChanges.ts b/e2e/utils/flows/revertAllChanges.ts new file mode 100644 index 00000000000..94b2e966bd6 --- /dev/null +++ b/e2e/utils/flows/revertAllChanges.ts @@ -0,0 +1,12 @@ +import { e2e } from '../index'; + +export const revertAllChanges = () => { + e2e.getScenarioContext().then(({ addedDashboards, addedDataSources, hasChangedUserPreferences }) => { + addedDashboards.forEach((dashboard: any) => e2e.flows.deleteDashboard({ ...dashboard, quick: true })); + addedDataSources.forEach((dataSource: any) => e2e.flows.deleteDataSource({ ...dataSource, quick: true })); + + if (hasChangedUserPreferences) { + e2e.flows.setDefaultUserPreferences(); + } + }); +}; diff --git a/e2e/utils/flows/saveDashboard.ts b/e2e/utils/flows/saveDashboard.ts new file mode 100644 index 00000000000..37d5238f431 --- /dev/null +++ b/e2e/utils/flows/saveDashboard.ts @@ -0,0 +1,9 @@ +import { e2e } from '../index'; + +export const saveDashboard = () => { + e2e.components.PageToolbar.item('Save dashboard').click(); + + e2e.pages.SaveDashboardModal.save().click(); + + e2e.flows.assertSuccessNotification(); +}; diff --git a/e2e/utils/flows/selectOption.ts b/e2e/utils/flows/selectOption.ts new file mode 100644 index 00000000000..d47918c9fb5 --- /dev/null +++ b/e2e/utils/flows/selectOption.ts @@ -0,0 +1,43 @@ +import { e2e } from '../index'; + +export interface SelectOptionConfig { + clickToOpen?: boolean; + container: any; + forceClickOption?: boolean; + optionText: string | RegExp; +} + +// @todo this actually returns type `Cypress.Chainable` +export const selectOption = (config: SelectOptionConfig): any => { + const fullConfig: SelectOptionConfig = { + clickToOpen: true, + forceClickOption: false, + ...config, + }; + + const { clickToOpen, container, forceClickOption, optionText } = fullConfig; + + container.within(() => { + if (clickToOpen) { + e2e() + .get('[class$="-input-suffix"]', { timeout: 1000 }) + .then((element) => { + expect(Cypress.dom.isAttached(element)).to.eq(true); + e2e().get('[class$="-input-suffix"]', { timeout: 1000 }).click({ force: true }); + }); + } + }); + + return e2e.components.Select.option() + .filter((_, { textContent }) => { + if (textContent === null) { + return false; + } else if (typeof optionText === 'string') { + return textContent.includes(optionText); + } else { + return optionText.test(textContent); + } + }) + .scrollIntoView() + .click({ force: forceClickOption }); +}; diff --git a/e2e/utils/flows/setDashboardTimeRange.ts b/e2e/utils/flows/setDashboardTimeRange.ts new file mode 100644 index 00000000000..566934c24e7 --- /dev/null +++ b/e2e/utils/flows/setDashboardTimeRange.ts @@ -0,0 +1,5 @@ +import { setTimeRange, TimeRangeConfig } from './setTimeRange'; + +export type { TimeRangeConfig }; + +export const setDashboardTimeRange = (config: TimeRangeConfig) => setTimeRange(config); diff --git a/e2e/utils/flows/setTimeRange.ts b/e2e/utils/flows/setTimeRange.ts new file mode 100644 index 00000000000..fe3528fea19 --- /dev/null +++ b/e2e/utils/flows/setTimeRange.ts @@ -0,0 +1,40 @@ +import { e2e } from '../index'; + +import { selectOption } from './selectOption'; + +export interface TimeRangeConfig { + from: string; + to: string; + zone?: string; +} + +export const setTimeRange = ({ from, to, zone }: TimeRangeConfig) => { + e2e.components.TimePicker.openButton().click(); + + if (zone) { + e2e().contains('button', 'Change time settings').click(); + e2e().log('setting time zone to ' + zone); + + if (e2e.components.TimeZonePicker.containerV2) { + selectOption({ + clickToOpen: true, + container: e2e.components.TimeZonePicker.containerV2(), + optionText: zone, + }); + } else { + selectOption({ + clickToOpen: true, + container: e2e.components.TimeZonePicker.container(), + optionText: zone, + }); + } + } + + // For smaller screens + e2e.components.TimePicker.absoluteTimeRangeTitle().click(); + + e2e.components.TimePicker.fromField().clear().type(from); + e2e.components.TimePicker.toField().clear().type(to); + + e2e.components.TimePicker.applyTimeRange().click(); +}; diff --git a/e2e/utils/flows/userPreferences.ts b/e2e/utils/flows/userPreferences.ts new file mode 100644 index 00000000000..621bff04ce6 --- /dev/null +++ b/e2e/utils/flows/userPreferences.ts @@ -0,0 +1,25 @@ +import { Preferences as UserPreferencesDTO } from '@grafana/schema/src/raw/preferences/x/preferences_types.gen'; + +import { e2e } from '..'; +import { fromBaseUrl } from '../support/url'; + +const defaultUserPreferences = { + timezone: '', // "Default" option +} as const; // TODO: when we update typescript >4.9 change to `as const satisfies UserPreferencesDTO` + +// Only accept preferences we have defaults for as arguments. To allow a new preference to be set, add a default for it +type UserPreferences = Pick; + +export function setUserPreferences(prefs: UserPreferences) { + e2e.setScenarioContext({ hasChangedUserPreferences: prefs !== defaultUserPreferences }); + + return cy.request({ + method: 'PUT', + url: fromBaseUrl('/api/user/preferences'), + body: prefs, + }); +} + +export function setDefaultUserPreferences() { + return setUserPreferences(defaultUserPreferences); +} diff --git a/e2e/utils/index.ts b/e2e/utils/index.ts new file mode 100644 index 00000000000..b7020e0832b --- /dev/null +++ b/e2e/utils/index.ts @@ -0,0 +1,26 @@ +import { E2ESelectors, Selectors, selectors } from '@grafana/e2e-selectors'; + +import * as flows from './flows'; +import { e2eFactory } from './support'; +import { benchmark } from './support/benchmark'; +import { e2eScenario, ScenarioArguments } from './support/scenario'; +import { getScenarioContext, setScenarioContext } from './support/scenarioContext'; +import * as typings from './typings'; + +const e2eObject = { + env: (args: string) => Cypress.env(args), + config: () => Cypress.config(), + blobToBase64String: (blob: Blob) => Cypress.Blob.blobToBase64String(blob), + imgSrcToBlob: (url: string) => Cypress.Blob.imgSrcToBlob(url), + scenario: (args: ScenarioArguments) => e2eScenario(args), + benchmark, + pages: e2eFactory({ selectors: selectors.pages }), + typings, + components: e2eFactory({ selectors: selectors.components }), + flows, + getScenarioContext, + setScenarioContext, + getSelectors: (selectors: E2ESelectors) => e2eFactory({ selectors }), +}; + +export const e2e: (() => Cypress.cy) & typeof e2eObject = Object.assign(() => cy, e2eObject); diff --git a/e2e/utils/support/benchmark.ts b/e2e/utils/support/benchmark.ts new file mode 100644 index 00000000000..ff3e14c5f6a --- /dev/null +++ b/e2e/utils/support/benchmark.ts @@ -0,0 +1,79 @@ +import { e2e } from '../'; + +export interface BenchmarkArguments { + name: string; + dashboard: { + folder: string; + delayAfterOpening: number; + skipPanelValidation: boolean; + }; + repeat: number; + duration: number; + appStats?: { + startCollecting?: (window: Window) => void; + collect: (window: Window) => Record; + }; + skipScenario?: boolean; +} + +export const benchmark = ({ + name, + skipScenario = false, + repeat, + duration, + appStats, + dashboard, +}: BenchmarkArguments) => { + if (skipScenario) { + describe(name, () => { + it.skip(name, () => {}); + }); + } else { + describe(name, () => { + before(() => { + cy.session('login', () => e2e.flows.login(e2e.env('USERNAME'), e2e.env('PASSWORD'), true), { + cacheAcrossSpecs: true, + }); + }); + + beforeEach(() => { + e2e.flows.importDashboards(dashboard.folder, 1000, dashboard.skipPanelValidation); + }); + + afterEach(() => e2e.flows.revertAllChanges()); + + Array(repeat) + .fill(0) + .map((_, i) => { + const testName = `${name}-${i}`; + return it(testName, () => { + e2e.flows.openDashboard(); + + e2e().wait(dashboard.delayAfterOpening); + + if (appStats) { + const startCollecting = appStats.startCollecting; + if (startCollecting) { + e2e() + .window() + .then((win) => startCollecting(win)); + } + + e2e().startBenchmarking(testName); + e2e().wait(duration); + + e2e() + .window() + .then((win) => { + e2e().stopBenchmarking(testName, appStats.collect(win)); + }); + } else { + e2e().startBenchmarking(testName); + e2e().wait(duration); + e2e().stopBenchmarking(testName, {}); + } + }); + }); + }); + } +}; diff --git a/e2e/utils/support/index.ts b/e2e/utils/support/index.ts new file mode 100644 index 00000000000..1ebbc3f881e --- /dev/null +++ b/e2e/utils/support/index.ts @@ -0,0 +1,4 @@ +export * from './localStorage'; +export * from './scenarioContext'; +export * from './selector'; +export * from './types'; diff --git a/e2e/utils/support/localStorage.ts b/e2e/utils/support/localStorage.ts new file mode 100644 index 00000000000..eec99559ef6 --- /dev/null +++ b/e2e/utils/support/localStorage.ts @@ -0,0 +1,23 @@ +import { e2e } from '../index'; + +// @todo this actually returns type `Cypress.Chainable` +const get = (key: string): any => + e2e() + .wrap({ getLocalStorage: () => localStorage.getItem(key) }, { log: false }) + .invoke('getLocalStorage'); + +// @todo this actually returns type `Cypress.Chainable` +export const getLocalStorage = (key: string): any => + get(key).then((value: any) => { + if (value === null) { + return value; + } else { + return JSON.parse(value); + } + }); + +// @todo this actually returns type `Cypress.Chainable` +export const requireLocalStorage = (key: string): any => + get(key) // `getLocalStorage()` would turn 'null' into `null` + .should('not.equal', null) + .then((value: any) => JSON.parse(value as string)); diff --git a/e2e/utils/support/scenario.ts b/e2e/utils/support/scenario.ts new file mode 100644 index 00000000000..df84b006d4d --- /dev/null +++ b/e2e/utils/support/scenario.ts @@ -0,0 +1,53 @@ +import { e2e } from '../'; + +export interface ScenarioArguments { + describeName: string; + itName: string; + scenario: Function; + skipScenario?: boolean; + addScenarioDataSource?: boolean; + addScenarioDashBoard?: boolean; + loginViaApi?: boolean; +} + +export const e2eScenario = ({ + describeName, + itName, + scenario, + skipScenario = false, + addScenarioDataSource = false, + addScenarioDashBoard = false, + loginViaApi = true, +}: ScenarioArguments) => { + describe(describeName, () => { + if (skipScenario) { + it.skip(itName, () => scenario()); + } else { + before(() => { + cy.session( + 'login', + () => { + e2e.flows.login(e2e.env('USERNAME'), e2e.env('PASSWORD'), loginViaApi); + }, + { + cacheAcrossSpecs: true, + } + ); + e2e.flows.setDefaultUserPreferences(); + }); + + beforeEach(() => { + if (addScenarioDataSource) { + e2e.flows.addDataSource(); + } + if (addScenarioDashBoard) { + e2e.flows.addDashboard(); + } + }); + + afterEach(() => e2e.flows.revertAllChanges()); + + it(itName, () => scenario()); + } + }); +}; diff --git a/e2e/utils/support/scenarioContext.ts b/e2e/utils/support/scenarioContext.ts new file mode 100644 index 00000000000..741588da523 --- /dev/null +++ b/e2e/utils/support/scenarioContext.ts @@ -0,0 +1,61 @@ +import { DeleteDashboardConfig } from '../flows/deleteDashboard'; +import { DeleteDataSourceConfig } from '../flows/deleteDataSource'; +import { e2e } from '../index'; + +export interface ScenarioContext { + addedDashboards: DeleteDashboardConfig[]; + addedDataSources: DeleteDataSourceConfig[]; + lastAddedDashboard: string; // @todo rename to `lastAddedDashboardTitle` + lastAddedDashboardUid: string; + lastAddedDataSource: string; // @todo rename to `lastAddedDataSourceName` + lastAddedDataSourceId: string; + hasChangedUserPreferences: boolean; + [key: string]: any; +} + +const scenarioContext: ScenarioContext = { + addedDashboards: [], + addedDataSources: [], + hasChangedUserPreferences: false, + get lastAddedDashboard() { + return lastProperty(this.addedDashboards, 'title'); + }, + get lastAddedDashboardUid() { + return lastProperty(this.addedDashboards, 'uid'); + }, + get lastAddedDataSource() { + return lastProperty(this.addedDataSources, 'name'); + }, + get lastAddedDataSourceId() { + return lastProperty(this.addedDataSources, 'id'); + }, +}; + +const lastProperty = ( + items: T[], + key: K +) => items[items.length - 1]?.[key] ?? ''; + +export const getScenarioContext = (): Cypress.Chainable => + e2e() + .wrap( + { + getScenarioContext: (): ScenarioContext => ({ ...scenarioContext }), + }, + { log: false } + ) + .invoke({ log: false }, 'getScenarioContext'); + +export const setScenarioContext = (newContext: Partial): Cypress.Chainable => + e2e() + .wrap( + { + setScenarioContext: () => { + Object.entries(newContext).forEach(([key, value]) => { + scenarioContext[key] = value; + }); + }, + }, + { log: false } + ) + .invoke({ log: false }, 'setScenarioContext'); diff --git a/e2e/utils/support/selector.ts b/e2e/utils/support/selector.ts new file mode 100644 index 00000000000..8e49d54afa1 --- /dev/null +++ b/e2e/utils/support/selector.ts @@ -0,0 +1,11 @@ +export interface SelectorApi { + fromAriaLabel: (selector: string) => string; + fromDataTestId: (selector: string) => string; + fromSelector: (selector: string) => string; +} + +export const Selector: SelectorApi = { + fromAriaLabel: (selector: string) => `[aria-label="${selector}"]`, + fromDataTestId: (selector: string) => `[data-testid="${selector}"]`, + fromSelector: (selector: string) => selector, +}; diff --git a/e2e/utils/support/types.ts b/e2e/utils/support/types.ts new file mode 100644 index 00000000000..e44a978194c --- /dev/null +++ b/e2e/utils/support/types.ts @@ -0,0 +1,138 @@ +import { CssSelector, FunctionSelector, Selectors, StringSelector, UrlSelector } from '@grafana/e2e-selectors'; + +import { e2e } from '../index'; + +import { Selector } from './selector'; +import { fromBaseUrl } from './url'; + +export type VisitFunction = (args?: string, queryParams?: object) => Cypress.Chainable; +export type E2EVisit = { visit: VisitFunction }; +export type E2EFunction = ((text?: string, options?: CypressOptions) => Cypress.Chainable>) & + E2EFunctionWithOnlyOptions; +export type E2EFunctionWithOnlyOptions = (options?: CypressOptions) => Cypress.Chainable>; + +export type TypeSelectors = S extends StringSelector + ? E2EFunctionWithOnlyOptions + : S extends FunctionSelector + ? E2EFunction + : S extends CssSelector + ? E2EFunction + : S extends UrlSelector + ? E2EVisit & Omit, 'url'> + : S extends Record + ? E2EFunctions + : S; + +export type E2EFunctions = { + [P in keyof S]: TypeSelectors; +}; + +export type E2EObjects = E2EFunctions; + +export type E2EFactoryArgs = { selectors: S }; + +export type CypressOptions = Partial; + +const processSelectors = (e2eObjects: E2EFunctions, selectors: S): E2EFunctions => { + const logOutput = (data: any) => e2e().logToConsole('Retrieving Selector:', data); + const keys = Object.keys(selectors); + for (let index = 0; index < keys.length; index++) { + const key = keys[index]; + const value = selectors[key]; + + if (key === 'url') { + // @ts-ignore + e2eObjects['visit'] = (args?: string, queryParams?: object) => { + let parsedUrl = ''; + if (typeof value === 'string') { + parsedUrl = fromBaseUrl(value); + } + + if (typeof value === 'function' && args) { + parsedUrl = fromBaseUrl(value(args)); + } + + e2e().logToConsole('Visiting', parsedUrl); + if (queryParams) { + return e2e().visit({ url: parsedUrl, qs: queryParams }); + } else { + return e2e().visit(parsedUrl); + } + }; + + continue; + } + + if (typeof value === 'string') { + // @ts-ignore + e2eObjects[key] = (options?: CypressOptions) => { + logOutput(value); + const selector = value.startsWith('data-testid') + ? Selector.fromDataTestId(value) + : Selector.fromAriaLabel(value); + + return e2e().get(selector, options); + }; + + continue; + } + + if (typeof value === 'function') { + // @ts-ignore + e2eObjects[key] = function (textOrOptions?: string | CypressOptions, options?: CypressOptions) { + // the input can only be () + if (arguments.length === 0) { + const selector = value(undefined as unknown as string); + + logOutput(selector); + return e2e().get(selector); + } + + // the input can be (text) or (options) + if (arguments.length === 1) { + if (typeof textOrOptions === 'string') { + const selectorText = value(textOrOptions); + const selector = selectorText.startsWith('data-testid') + ? Selector.fromDataTestId(selectorText) + : Selector.fromAriaLabel(selectorText); + + logOutput(selector); + return e2e().get(selector); + } + const selector = value(undefined as unknown as string); + + logOutput(selector); + return e2e().get(selector, textOrOptions); + } + + // the input can only be (text, options) + if (arguments.length === 2 && typeof textOrOptions === 'string') { + const text = textOrOptions; + const selectorText = value(text); + const selector = text.startsWith('data-testid') + ? Selector.fromDataTestId(selectorText) + : Selector.fromAriaLabel(selectorText); + + logOutput(selector); + return e2e().get(selector, options); + } + }; + + continue; + } + + if (typeof value === 'object') { + // @ts-ignore + e2eObjects[key] = processSelectors({}, value); + } + } + + return e2eObjects; +}; + +export const e2eFactory = ({ selectors }: E2EFactoryArgs): E2EObjects => { + const e2eObjects: E2EFunctions = {} as E2EFunctions; + processSelectors(e2eObjects, selectors); + + return { ...e2eObjects }; +}; diff --git a/e2e/utils/support/url.ts b/e2e/utils/support/url.ts new file mode 100644 index 00000000000..7af06d000ac --- /dev/null +++ b/e2e/utils/support/url.ts @@ -0,0 +1,14 @@ +import { e2e } from '../index'; + +const getBaseUrl = () => e2e.env('BASE_URL') || e2e.config().baseUrl || 'http://localhost:3000'; + +export const fromBaseUrl = (url = '') => new URL(url, getBaseUrl()).href; + +export const getDashboardUid = (url: string): string => { + const matches = new URL(url).pathname.match(/\/d\/([^/]+)/); + if (!matches) { + throw new Error(`Couldn't parse uid from ${url}`); + } else { + return matches[1]; + } +}; diff --git a/e2e/utils/typings/index.ts b/e2e/utils/typings/index.ts new file mode 100644 index 00000000000..d4a4805a21f --- /dev/null +++ b/e2e/utils/typings/index.ts @@ -0,0 +1 @@ +export { undo } from './undo'; diff --git a/e2e/utils/typings/undo.ts b/e2e/utils/typings/undo.ts new file mode 100644 index 00000000000..9ee3c1cda40 --- /dev/null +++ b/e2e/utils/typings/undo.ts @@ -0,0 +1,19 @@ +// https://nodejs.org/api/os.html#os_os_platform +enum Platform { + osx = 'darwin', + windows = 'win32', + linux = 'linux', + aix = 'aix', + freebsd = 'freebsd', + openbsd = 'openbsd', + sunos = 'sunos', +} + +export const undo = () => { + switch (Cypress.platform) { + case Platform.osx: + return '{cmd}z'; + default: + return '{ctrl}z'; + } +}; diff --git a/e2e/various-suite/bar-gauge.spec.ts b/e2e/various-suite/bar-gauge.spec.ts index 8881dde4e17..ed917d3b415 100644 --- a/e2e/various-suite/bar-gauge.spec.ts +++ b/e2e/various-suite/bar-gauge.spec.ts @@ -1,6 +1,7 @@ -import { e2e } from '@grafana/e2e'; import { selectors } from '@grafana/e2e-selectors'; +import { e2e } from '../utils'; + e2e.scenario({ describeName: 'Bar Gauge Panel', itName: 'Bar Gauge rendering e2e tests', diff --git a/e2e/various-suite/exemplars.spec.ts b/e2e/various-suite/exemplars.spec.ts index af990cb2d61..49235ac1406 100644 --- a/e2e/various-suite/exemplars.spec.ts +++ b/e2e/various-suite/exemplars.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const dataSourceName = 'PromExemplar'; const addDataSource = () => { diff --git a/e2e/various-suite/explore.spec.ts b/e2e/various-suite/explore.spec.ts index 09125575e37..f87920d750d 100644 --- a/e2e/various-suite/explore.spec.ts +++ b/e2e/various-suite/explore.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Explore', diff --git a/e2e/various-suite/filter-annotations.spec.ts b/e2e/various-suite/filter-annotations.spec.ts index 4233ba2cb66..7d44a9f88df 100644 --- a/e2e/various-suite/filter-annotations.spec.ts +++ b/e2e/various-suite/filter-annotations.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'ed155665'; e2e.scenario({ diff --git a/e2e/various-suite/gauge.spec.ts b/e2e/various-suite/gauge.spec.ts index 4fb1552cb2a..fdd25e44f2e 100644 --- a/e2e/various-suite/gauge.spec.ts +++ b/e2e/various-suite/gauge.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Gauge Panel', diff --git a/e2e/various-suite/graph-auto-migrate.spec.ts b/e2e/various-suite/graph-auto-migrate.spec.ts index 8f21a338501..764a8c21404 100644 --- a/e2e/various-suite/graph-auto-migrate.spec.ts +++ b/e2e/various-suite/graph-auto-migrate.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const DASHBOARD_ID = 'XMjIZPmik'; const DASHBOARD_NAME = 'Panel Tests - Graph Time Regions'; diff --git a/e2e/various-suite/inspect-drawer.spec.ts b/e2e/various-suite/inspect-drawer.spec.ts index 7d19f3686b4..be8161ebf1e 100644 --- a/e2e/various-suite/inspect-drawer.spec.ts +++ b/e2e/various-suite/inspect-drawer.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const PANEL_UNDER_TEST = 'Value reducers 1'; @@ -33,7 +33,6 @@ e2e.scenario({ return true; }); - const viewPortWidth = e2e.config().viewportWidth; e2e.flows.openDashboard({ uid: 'wfTJJL5Wz' }); // testing opening inspect drawer directly by clicking on Inspect in header menu @@ -108,7 +107,7 @@ const expectDrawerClose = () => { const expectSubMenuScenario = (subMenu: string, tabTitle?: string) => { tabTitle = tabTitle ?? subMenu; // testing opening inspect drawer from sub menus under Inspect in header menu - e2e.components.Panels.Panel.title(PANEL_UNDER_TEST).scrollIntoView().should('be.visible').click(); + e2e.components.Panels.Panel.title(PANEL_UNDER_TEST).scrollIntoView().should('be.visible'); e2e.components.Panels.Panel.menu(PANEL_UNDER_TEST).click({ force: true }); // force click because menu is hidden and show on hover // sub menus are in the DOM but not visible and because there is no hover support in Cypress force click // https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/testing-dom__hover-hidden-elements/cypress/integration/hover-hidden-elements-spec.js diff --git a/e2e/various-suite/loki-editor.spec.ts b/e2e/various-suite/loki-editor.spec.ts index eaf4da660d9..b8831f306fd 100644 --- a/e2e/various-suite/loki-editor.spec.ts +++ b/e2e/various-suite/loki-editor.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const dataSourceName = 'LokiEditor'; const addDataSource = () => { diff --git a/e2e/various-suite/loki-query-builder.spec.ts b/e2e/various-suite/loki-query-builder.spec.ts index 8691c7dda35..3d79a1c3c52 100644 --- a/e2e/various-suite/loki-query-builder.spec.ts +++ b/e2e/various-suite/loki-query-builder.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; const MISSING_LABEL_FILTER_ERROR_MESSAGE = 'Select at least 1 label filter (label and value)'; const dataSourceName = 'LokiBuilder'; diff --git a/e2e/various-suite/pie-chart.spec.ts b/e2e/various-suite/pie-chart.spec.ts index 1d3339e8ec1..e5c942df282 100644 --- a/e2e/various-suite/pie-chart.spec.ts +++ b/e2e/various-suite/pie-chart.spec.ts @@ -1,6 +1,7 @@ -import { e2e } from '@grafana/e2e'; import { selectors } from '@grafana/e2e-selectors'; +import { e2e } from '../utils'; + e2e.scenario({ describeName: 'Pie Chart Panel', itName: 'Pie Chart rendering e2e tests', diff --git a/e2e/various-suite/query-editor.spec.ts b/e2e/various-suite/query-editor.spec.ts index 0f1ab90e98d..6a534d1330d 100644 --- a/e2e/various-suite/query-editor.spec.ts +++ b/e2e/various-suite/query-editor.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Query editor', diff --git a/e2e/various-suite/select-focus.spec.ts b/e2e/various-suite/select-focus.spec.ts index 1a83d956c5c..ba569db8ed9 100644 --- a/e2e/various-suite/select-focus.spec.ts +++ b/e2e/various-suite/select-focus.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Select focus/unfocus tests', diff --git a/e2e/various-suite/solo-route.spec.ts b/e2e/various-suite/solo-route.spec.ts index 52c74efdc6c..bc351f3057c 100644 --- a/e2e/various-suite/solo-route.spec.ts +++ b/e2e/various-suite/solo-route.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Solo Route', diff --git a/e2e/various-suite/trace-view-scrolling.spec.ts b/e2e/various-suite/trace-view-scrolling.spec.ts index 4828849d0a7..5961267a39f 100644 --- a/e2e/various-suite/trace-view-scrolling.spec.ts +++ b/e2e/various-suite/trace-view-scrolling.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; describe('Trace view', () => { it('Can lazy load big traces', () => { diff --git a/e2e/various-suite/visualization-suggestions.spec.ts b/e2e/various-suite/visualization-suggestions.spec.ts index 6de162cd24d..b73bfcd4d46 100644 --- a/e2e/various-suite/visualization-suggestions.spec.ts +++ b/e2e/various-suite/visualization-suggestions.spec.ts @@ -1,4 +1,4 @@ -import { e2e } from '@grafana/e2e'; +import { e2e } from '../utils'; e2e.scenario({ describeName: 'Visualization suggestions', diff --git a/e2e/verify/specs/smoketests.spec.ts b/e2e/verify/specs/smoketests.spec.ts index d3c99b62166..84e63bc5a4f 100644 --- a/e2e/verify/specs/smoketests.spec.ts +++ b/e2e/verify/specs/smoketests.spec.ts @@ -1,5 +1,4 @@ -import { e2e } from '@grafana/e2e'; - import { smokeTestScenario } from '../../shared/smokeTestScenario'; +import { e2e } from '../../utils'; e2e.scenario(smokeTestScenario); diff --git a/e2e/verify/tsconfig.json b/e2e/verify/tsconfig.json deleted file mode 100644 index f44f7b6e078..00000000000 --- a/e2e/verify/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["**/*.ts", "../../packages/grafana-e2e/cypress/support/index.d.ts"] -} diff --git a/package.json b/package.json index 33b7fac2f8f..edfed010391 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,10 @@ "betterer": "betterer", "betterer:merge": "betterer merge", "betterer:stats": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/reportBettererStats.ts", - "betterer:issues": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/generateBettererIssues.ts" + "betterer:issues": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/generateBettererIssues.ts", + "cy:run": "cypress run --browser=chrome", + "cy:open": "cypress open", + "cy:benchmark": "CYPRESS_NO_COMMAND_LOG=1 cypress run --browser=chrome" }, "grafana": { "whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v10-1/", @@ -76,8 +79,8 @@ "@betterer/cli": "5.4.0", "@betterer/eslint": "5.4.0", "@betterer/regexp": "5.4.0", + "@cypress/webpack-preprocessor": "5.17.1", "@emotion/eslint-plugin": "11.11.0", - "@grafana/e2e": "workspace:*", "@grafana/eslint-config": "6.0.1", "@grafana/eslint-plugin": "link:./packages/grafana-eslint-rules", "@grafana/tsconfig": "^1.3.0-rc1", @@ -153,14 +156,17 @@ "babel-loader": "9.1.3", "babel-plugin-angularjs-annotate": "0.10.0", "babel-plugin-macros": "3.1.0", + "blink-diff": "1.0.13", "blob-polyfill": "7.0.20220408", "browserslist": "^4.21.4", "chance": "^1.0.10", + "chrome-remote-interface": "0.32.2", "codeowners": "^5.1.1", "copy-webpack-plugin": "11.0.0", "css-loader": "6.8.1", "css-minimizer-webpack-plugin": "5.0.1", - "cypress": "9.5.1", + "cypress": "12.15.0", + "cypress-file-upload": "5.0.8", "esbuild": "0.18.12", "esbuild-loader": "3.0.1", "esbuild-plugin-browserslist": "^0.8.0", @@ -215,6 +221,7 @@ "stylelint-config-sass-guidelines": "10.0.0", "terser-webpack-plugin": "5.3.9", "testing-library-selector": "0.2.1", + "tracelib": "1.0.1", "ts-jest": "29.1.1", "ts-loader": "9.3.1", "ts-node": "10.9.1", @@ -226,6 +233,7 @@ "webpack-dev-server": "4.15.1", "webpack-manifest-plugin": "5.0.0", "webpack-merge": "5.9.0", + "yaml": "^2.0.0", "yargs": "^17.5.1" }, "dependencies": { diff --git a/scripts/drone/steps/lib.star b/scripts/drone/steps/lib.star index 2e018e4a108..d200564ec0b 100644 --- a/scripts/drone/steps/lib.star +++ b/scripts/drone/steps/lib.star @@ -848,7 +848,6 @@ def e2e_tests_step(suite, port = 3001, tries = None): "HOST": "grafana-server", }, "commands": [ - "apt-get install -y netcat", cmd, ], } @@ -892,7 +891,7 @@ def cloud_plugins_e2e_tests_step(suite, cloud, trigger = None): branch = "${DRONE_SOURCE_BRANCH}".replace("/", "-") step = { "name": "end-to-end-tests-{}-{}".format(suite, cloud), - "image": "us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:latest", + "image": "us-docker.pkg.dev/grafanalabs-dev/cloud-data-sources/e2e:2.0.0", "depends_on": [ "grafana-server", ], diff --git a/scripts/drone/utils/images.star b/scripts/drone/utils/images.star index 7b4347462da..5cec9c9b006 100644 --- a/scripts/drone/utils/images.star +++ b/scripts/drone/utils/images.star @@ -20,5 +20,5 @@ images = { "drone_downstream_image": "grafana/drone-downstream", "docker_puppeteer_image": "grafana/docker-puppeteer:1.1.0", "docs_image": "grafana/docs-base:dbd975af06", - "cypress_image": "cypress/included:9.5.1-node16.14.0-slim-chrome99-ff97", + "cypress_image": "cypress/included:12.15.0", } diff --git a/yarn.lock b/yarn.lock index 711df17b8e5..81acbeeda27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3720,7 +3720,7 @@ __metadata: languageName: node linkType: hard -"@grafana/e2e@workspace:*, @grafana/e2e@workspace:packages/grafana-e2e": +"@grafana/e2e@workspace:packages/grafana-e2e": version: 0.0.0-use.local resolution: "@grafana/e2e@workspace:packages/grafana-e2e" dependencies: @@ -15208,6 +15208,58 @@ __metadata: languageName: node linkType: hard +"cypress@npm:12.15.0": + version: 12.15.0 + resolution: "cypress@npm:12.15.0" + dependencies: + "@cypress/request": ^2.88.10 + "@cypress/xvfb": ^1.2.4 + "@types/node": ^14.14.31 + "@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 + proxy-from-env: 1.0.0 + request-progress: ^3.0.0 + semver: ^7.3.2 + supports-color: ^8.1.1 + tmp: ~0.2.1 + untildify: ^4.0.0 + yauzl: ^2.10.0 + bin: + cypress: bin/cypress + checksum: a1989386bc0843377526c71d60a7c2d64593fbf3209cd5986cb684653d1092007add9d83910906b85e1801637206dd5fa5ce9627c6ada3a20a3a82ec5c2f4d7a + languageName: node + linkType: hard + "cypress@npm:9.5.1": version: 9.5.1 resolution: "cypress@npm:9.5.1" @@ -17627,6 +17679,13 @@ __metadata: languageName: node linkType: hard +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66 + languageName: node + linkType: hard + "eventemitter2@npm:^6.4.3": version: 6.4.9 resolution: "eventemitter2@npm:6.4.9" @@ -19209,6 +19268,7 @@ __metadata: "@betterer/cli": 5.4.0 "@betterer/eslint": 5.4.0 "@betterer/regexp": 5.4.0 + "@cypress/webpack-preprocessor": 5.17.1 "@daybrush/utils": 1.13.0 "@emotion/css": 11.11.2 "@emotion/eslint-plugin": 11.11.0 @@ -19217,7 +19277,6 @@ __metadata: "@glideapps/glide-data-grid": ^5.2.1 "@grafana/aws-sdk": 0.1.3 "@grafana/data": "workspace:*" - "@grafana/e2e": "workspace:*" "@grafana/e2e-selectors": "workspace:*" "@grafana/eslint-config": 6.0.1 "@grafana/eslint-plugin": "link:./packages/grafana-eslint-rules" @@ -19348,12 +19407,14 @@ __metadata: babel-plugin-angularjs-annotate: 0.10.0 babel-plugin-macros: 3.1.0 baron: 3.0.3 + blink-diff: 1.0.13 blob-polyfill: 7.0.20220408 brace: 0.11.1 browserslist: ^4.21.4 calculate-size: 1.1.1 centrifuge: 4.0.1 chance: ^1.0.10 + chrome-remote-interface: 0.32.2 classnames: 2.3.2 codeowners: ^5.1.1 combokeys: ^3.0.0 @@ -19363,7 +19424,8 @@ __metadata: core-js: 3.31.1 css-loader: 6.8.1 css-minimizer-webpack-plugin: 5.0.1 - cypress: 9.5.1 + cypress: 12.15.0 + cypress-file-upload: 5.0.8 d3: 7.8.5 d3-force: 3.0.0 d3-scale-chromatic: 3.0.0 @@ -19517,6 +19579,7 @@ __metadata: testing-library-selector: 0.2.1 tether-drop: "https://github.com/torkelo/drop" tinycolor2: 1.6.0 + tracelib: 1.0.1 ts-jest: 29.1.1 ts-loader: 9.3.1 ts-node: 10.9.1 @@ -19536,6 +19599,7 @@ __metadata: webpack-merge: 5.9.0 whatwg-fetch: 3.6.2 xlsx: "https://cdn.sheetjs.com/xlsx-0.19.1/xlsx-0.19.1.tgz" + yaml: ^2.0.0 yargs: ^17.5.1 dependenciesMeta: prettier@3.0.0: @@ -23672,7 +23736,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.7": +"minimist@npm:^1.2.7, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0