refactor: complete clickhouse->datastore debrand — zero 'clickhouse' in .go (packages/dirs/types/aliases renamed to datastore); datastore-go/v2 driver; sentry intact; hanzoai/sqlite. (3 deploy/integration dirs reference the real upstream ClickHouse server engine — flagged, not our API)
This commit is contained in:
+4
-4
@@ -54,8 +54,8 @@ ee/query-service/tests/test-deploy/data/
|
||||
*.db-shm
|
||||
*.db-wal
|
||||
**/db
|
||||
/deploy/docker/clickhouse-setup/data/
|
||||
/deploy/docker-swarm/clickhouse-setup/data/
|
||||
/deploy/docker/datastore-setup/data/
|
||||
/deploy/docker-swarm/datastore-setup/data/
|
||||
bin/
|
||||
.local/
|
||||
*/query-service/queries.active
|
||||
@@ -78,8 +78,8 @@ __debug_bin**
|
||||
# goreleaser
|
||||
dist/
|
||||
|
||||
# ignore user_scripts that is fetched by init-clickhouse
|
||||
deploy/common/clickhouse/user_scripts/
|
||||
# ignore user_scripts that is fetched by the datastore init container
|
||||
deploy/common/datastore/user_scripts/
|
||||
|
||||
queries.active
|
||||
|
||||
|
||||
@@ -51,9 +51,9 @@ help: ## Displays help.
|
||||
##############################################################
|
||||
# devenv commands
|
||||
##############################################################
|
||||
.PHONY: devenv-clickhouse
|
||||
devenv-clickhouse: ## Run clickhouse in devenv
|
||||
@cd .devenv/docker/clickhouse; \
|
||||
.PHONY: devenv-datastore
|
||||
devenv-datastore: ## Run datastore in devenv
|
||||
@cd .devenv/docker/datastore; \
|
||||
docker compose -f compose.yaml up -d
|
||||
|
||||
.PHONY: devenv-postgres
|
||||
@@ -67,16 +67,16 @@ devenv-otel-collector: ## Run otel-collector in devenv (requires datastore to be
|
||||
docker compose -f compose.yaml up -d
|
||||
|
||||
.PHONY: devenv-up
|
||||
devenv-up: devenv-clickhouse devenv-otel-collector ## Start both datastore and otel-collector for local development
|
||||
devenv-up: devenv-datastore devenv-otel-collector ## Start both datastore and otel-collector for local development
|
||||
@echo "Development environment is ready!"
|
||||
@echo " - Datastore: http://localhost:8123"
|
||||
@echo " - OTEL Collector: grpc://localhost:4317, http://localhost:4318"
|
||||
|
||||
.PHONY: devenv-clickhouse-clean
|
||||
devenv-clickhouse-clean: ## Clean all ClickHouse data from filesystem
|
||||
@echo "Removing ClickHouse data..."
|
||||
@rm -rf .devenv/docker/clickhouse/fs/tmp/*
|
||||
@echo "ClickHouse data cleaned!"
|
||||
.PHONY: devenv-datastore-clean
|
||||
devenv-datastore-clean: ## Clean all Datastore data from filesystem
|
||||
@echo "Removing Datastore data..."
|
||||
@rm -rf .devenv/docker/datastore/fs/tmp/*
|
||||
@echo "Datastore data cleaned!"
|
||||
|
||||
##############################################################
|
||||
# go commands
|
||||
|
||||
+1
-1
@@ -154,7 +154,7 @@ Außerdem hat Hanzo O11y noch mehr spezielle Funktionen im Vergleich zu Jaeger:
|
||||
|
||||
### Hanzo O11y vs Elastic
|
||||
|
||||
- Die Verwaltung von Hanzo O11y-Protokollen basiert auf 'ClickHouse', einem spaltenbasierten OLAP-Datenspeicher, der aggregierte Protokollanalyseabfragen wesentlich effizienter macht.
|
||||
- Die Verwaltung von Hanzo O11y-Protokollen basiert auf einem spaltenbasierten OLAP-Datenspeicher, der aggregierte Protokollanalyseabfragen wesentlich effizienter macht.
|
||||
- 50 % geringerer Ressourcenbedarf im Vergleich zu Elastic während der Aufnahme.
|
||||
|
||||
Wir haben Benchmarks veröffentlicht, die Elastic mit SignNoz vergleichen. Schauen Sie es sich [hier](https://o11y.hanzo.ai/blog/logs-performance-benchmark/?utm_source=github-readme&utm_medium=logs-benchmark)
|
||||
|
||||
@@ -80,7 +80,7 @@ You can [instrument](https://o11y.hanzo.ai/docs/instrumentation/) your applicati
|
||||
|
||||
### Logs Management
|
||||
|
||||
Hanzo O11y can be used as a centralized log management solution. We use ClickHouse (used by likes of Uber & Cloudflare) as a datastore, ⎯ an extremely fast and highly optimized storage for logs data. Instantly search through all your logs using quick filters and a powerful query builder.
|
||||
Hanzo O11y can be used as a centralized log management solution. We use a high-performance columnar datastore ⎯ an extremely fast and highly optimized storage for logs data. Instantly search through all your logs using quick filters and a powerful query builder.
|
||||
|
||||
You can also create charts on your logs and monitor them with customized dashboards. Read [more](https://o11y.hanzo.ai/log-management/).
|
||||
|
||||
@@ -154,9 +154,9 @@ Hanzo O11y is a single tool for all your monitoring and observability needs. Her
|
||||
|
||||
- Correlated logs, metrics and traces for much richer context while debugging
|
||||
|
||||
- Uses ClickHouse (used by likes of Uber & Cloudflare) as datastore - an extremely fast and highly optimized storage for observability data
|
||||
- Uses a high-performance columnar datastore - an extremely fast and highly optimized storage for observability data
|
||||
|
||||
- DIY Query builder, PromQL, and ClickHouse queries to fulfill all your use-cases around querying observability data
|
||||
- DIY Query builder, PromQL, and Datastore SQL queries to fulfill all your use-cases around querying observability data
|
||||
|
||||
- Open-Source - you can use open-source, our [cloud service](https://o11y.hanzo.ai/teams/) or a mix of both based on your use case
|
||||
|
||||
@@ -240,7 +240,7 @@ Moreover, Hanzo O11y has few more advanced features wrt Jaeger:
|
||||
|
||||
### Hanzo O11y vs Elastic
|
||||
|
||||
- Hanzo O11y Logs management are based on ClickHouse, a columnar OLAP datastore which makes aggregate log analytics queries much more efficient
|
||||
- Hanzo O11y Logs management is based on a columnar OLAP datastore which makes aggregate log analytics queries much more efficient
|
||||
- 50% lower resource requirement compared to Elastic during ingestion
|
||||
|
||||
We have published benchmarks comparing Elastic with Hanzo O11y. Check it out [here](https://o11y.hanzo.ai/blog/logs-performance-benchmark/?utm_source=github-readme&utm_medium=logs-benchmark)
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ Jaeger 仅仅是一个分布式追踪系统。 但是 Hanzo O11y 可以提供 me
|
||||
|
||||
### Hanzo O11y vs Elastic
|
||||
|
||||
- Hanzo O11y 的日志管理是基于 ClickHouse 实现的,可以使日志的聚合更加高效,因为它是基于 OLAP 的数据仓储。
|
||||
- Hanzo O11y 的日志管理基于列式 OLAP 数据仓储实现,可以使日志的聚合更加高效。
|
||||
|
||||
- 与 Elastic 相比,可以节省 50% 的资源成本
|
||||
|
||||
|
||||
+2
-2
@@ -128,7 +128,7 @@ querier:
|
||||
|
||||
##################### TelemetryStore #####################
|
||||
# Uses Hanzo Datastore (hanzoai/datastore) as the telemetry storage backend.
|
||||
# The datastore is a high-performance columnar database (ClickHouse-compatible).
|
||||
# The datastore is a high-performance columnar OLAP database.
|
||||
telemetrystore:
|
||||
# Maximum number of idle connections in the connection pool.
|
||||
max_idle_conns: 50
|
||||
@@ -137,7 +137,7 @@ telemetrystore:
|
||||
# Maximum time to wait for a connection to be established.
|
||||
dial_timeout: 5s
|
||||
# Specifies the telemetrystore provider to use.
|
||||
provider: clickhouse
|
||||
provider: datastore
|
||||
datastore:
|
||||
# The DSN for Hanzo Datastore. Canonical env override: O11Y_DATASTORE_DSN
|
||||
# (e.g. tcp://datastore.hanzo.svc:9000/?database=o11y).
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ query-time SQL aliases (`signoz_input_idx__`, `signoz_log_id__`).
|
||||
| component | change | artifact |
|
||||
|---|---|---|
|
||||
| writer | schema-migrator + ClickHouse exporters emit `o11y_*` | `ghcr.io/hanzoai/otel-collector` **v0.144.8** (+ `o11y-schema-migrator`) |
|
||||
| migration | data-preserving `RENAME DATABASE`/`RENAME TABLE` | `deploy/clickhouse/migrations/0001_rename_signoz_to_o11y.sql` |
|
||||
| migration | data-preserving `RENAME DATABASE`/`RENAME TABLE` | `deploy/datastore/migrations/0001_rename_signoz_to_o11y.sql` |
|
||||
| reader (o11y) | querier reads `o11y_*` | hanzoai/o11y#28 @ collector v0.144.8 |
|
||||
| reader (cloud) | direct ClickHouse reads `o11y_*` | hanzoai/cloud#202 @ collector v0.144.8 |
|
||||
|
||||
@@ -81,7 +81,7 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
zookeeper-1:
|
||||
!!merge <<: *zookeeper-defaults
|
||||
# ports:
|
||||
@@ -89,7 +89,7 @@ services:
|
||||
# - "2888:2888"
|
||||
# - "3888:3888"
|
||||
volumes:
|
||||
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||
- ./datastore-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||
environment:
|
||||
- ZOO_SERVER_ID=1
|
||||
- ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
||||
@@ -104,7 +104,7 @@ services:
|
||||
# - "2889:2888"
|
||||
# - "3889:3888"
|
||||
volumes:
|
||||
- ./clickhouse-setup/data/zookeeper-2:/bitnami/zookeeper
|
||||
- ./datastore-setup/data/zookeeper-2:/bitnami/zookeeper
|
||||
environment:
|
||||
- ZOO_SERVER_ID=2
|
||||
- ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
||||
@@ -119,7 +119,7 @@ services:
|
||||
# - "2890:2888"
|
||||
# - "3890:3888"
|
||||
volumes:
|
||||
- ./clickhouse-setup/data/zookeeper-3:/bitnami/zookeeper
|
||||
- ./datastore-setup/data/zookeeper-3:/bitnami/zookeeper
|
||||
environment:
|
||||
- ZOO_SERVER_ID=3
|
||||
- ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
||||
@@ -145,9 +145,9 @@ services:
|
||||
- source: clickhouse-cluster
|
||||
target: /etc/clickhouse-server/config.d/cluster.ha.xml
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./datastore-setup/data/datastore/:/var/lib/clickhouse/
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
clickhouse-2:
|
||||
!!merge <<: *clickhouse-defaults
|
||||
hostname: clickhouse-2
|
||||
@@ -165,9 +165,9 @@ services:
|
||||
- source: clickhouse-cluster
|
||||
target: /etc/clickhouse-server/config.d/cluster.ha.xml
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./clickhouse-setup/data/clickhouse-2/:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./datastore-setup/data/datastore-2/:/var/lib/clickhouse/
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
clickhouse-3:
|
||||
!!merge <<: *clickhouse-defaults
|
||||
hostname: clickhouse-3
|
||||
@@ -185,9 +185,9 @@ services:
|
||||
- source: clickhouse-cluster
|
||||
target: /etc/clickhouse-server/config.d/cluster.ha.xml
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./clickhouse-setup/data/clickhouse-3/:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./datastore-setup/data/datastore-3/:/var/lib/clickhouse/
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
observe:
|
||||
!!merge <<: *db-depend
|
||||
image: ghcr.io/hanzoai/o11y:v0.115.0
|
||||
@@ -195,7 +195,7 @@ services:
|
||||
- "8080:8080" # observe port
|
||||
# - "6060:6060" # pprof port
|
||||
volumes:
|
||||
- ./clickhouse-setup/data/observe/:/var/lib/observe/
|
||||
- ./datastore-setup/data/observe/:/var/lib/observe/
|
||||
environment:
|
||||
- O11Y_ALERTMANAGER_PROVIDER=observe
|
||||
- O11Y_DATASTORE_DSN=tcp://clickhouse:9000
|
||||
@@ -275,13 +275,13 @@ volumes:
|
||||
name: o11y-zookeeper-3
|
||||
configs:
|
||||
clickhouse-config:
|
||||
file: ../common/clickhouse/config.xml
|
||||
file: ../common/datastore/config.xml
|
||||
clickhouse-users:
|
||||
file: ../common/clickhouse/users.xml
|
||||
file: ../common/datastore/users.xml
|
||||
clickhouse-custom-function:
|
||||
file: ../common/clickhouse/custom-function.xml
|
||||
file: ../common/datastore/custom-function.xml
|
||||
clickhouse-cluster:
|
||||
file: ../common/clickhouse/cluster.ha.xml
|
||||
file: ../common/datastore/cluster.ha.xml
|
||||
otel-collector-config:
|
||||
file: ./otel-collector-config.yaml
|
||||
otel-manager-config:
|
||||
|
||||
@@ -78,7 +78,7 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
zookeeper-1:
|
||||
!!merge <<: *zookeeper-defaults
|
||||
# ports:
|
||||
@@ -113,8 +113,8 @@ services:
|
||||
target: /etc/clickhouse-server/config.d/cluster.xml
|
||||
volumes:
|
||||
- clickhouse:/var/lib/clickhouse/
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
observe:
|
||||
!!merge <<: *db-depend
|
||||
image: ghcr.io/hanzoai/o11y:v0.115.0
|
||||
@@ -193,13 +193,13 @@ volumes:
|
||||
name: o11y-zookeeper-1
|
||||
configs:
|
||||
clickhouse-config:
|
||||
file: ../common/clickhouse/config.xml
|
||||
file: ../common/datastore/config.xml
|
||||
clickhouse-users:
|
||||
file: ../common/clickhouse/users.xml
|
||||
file: ../common/datastore/users.xml
|
||||
clickhouse-custom-function:
|
||||
file: ../common/clickhouse/custom-function.xml
|
||||
file: ../common/datastore/custom-function.xml
|
||||
clickhouse-cluster:
|
||||
file: ../common/clickhouse/cluster.xml
|
||||
file: ../common/datastore/cluster.xml
|
||||
otel-collector-config:
|
||||
file: ./otel-collector-config.yaml
|
||||
otel-manager-config:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
This directory is deprecated and will be removed in the future.
|
||||
Please use the new directory for Clickhouse setup scripts: `scripts/clickhouse` instead.
|
||||
@@ -0,0 +1,2 @@
|
||||
This directory is deprecated and will be removed in the future.
|
||||
Please use the new directory for Datastore setup scripts: `scripts/datastore` instead.
|
||||
@@ -85,7 +85,7 @@ services:
|
||||
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
zookeeper-1:
|
||||
!!merge <<: *zookeeper-defaults
|
||||
container_name: o11y-zookeeper-1
|
||||
@@ -142,13 +142,13 @@ services:
|
||||
# - "8123:8123"
|
||||
# - "9181:9181"
|
||||
volumes:
|
||||
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- ../common/datastore/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/datastore/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/datastore/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- clickhouse:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
clickhouse-2:
|
||||
!!merge <<: *clickhouse-defaults
|
||||
container_name: o11y-datastore-2
|
||||
@@ -157,13 +157,13 @@ services:
|
||||
# - "8124:8123"
|
||||
# - "9182:9181"
|
||||
volumes:
|
||||
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- ../common/datastore/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/datastore/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/datastore/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- clickhouse-2:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
clickhouse-3:
|
||||
!!merge <<: *clickhouse-defaults
|
||||
container_name: o11y-datastore-3
|
||||
@@ -172,13 +172,13 @@ services:
|
||||
# - "8125:8123"
|
||||
# - "9183:9181"
|
||||
volumes:
|
||||
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- ../common/datastore/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/datastore/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/datastore/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- clickhouse-3:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
observe:
|
||||
!!merge <<: *db-depend
|
||||
image: ghcr.io/hanzoai/o11y:${VERSION:-v0.115.0}
|
||||
|
||||
@@ -76,7 +76,7 @@ services:
|
||||
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
zookeeper-1:
|
||||
!!merge <<: *zookeeper-defaults
|
||||
container_name: o11y-zookeeper-1
|
||||
@@ -100,13 +100,13 @@ services:
|
||||
# - "8123:8123"
|
||||
# - "9181:9181"
|
||||
volumes:
|
||||
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- ../common/datastore/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../common/datastore/users.xml:/etc/clickhouse-server/users.xml
|
||||
- ../common/datastore/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||
- ../common/datastore/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../common/datastore/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- clickhouse:/var/lib/clickhouse/
|
||||
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
# - ../common/datastore/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||
observe:
|
||||
!!merge <<: *db-depend
|
||||
image: ghcr.io/hanzoai/o11y:${VERSION:-v0.115.0}
|
||||
|
||||
+22
-22
@@ -2920,7 +2920,7 @@ components:
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5CompositeQuery'
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5QueryBuilderFormula'
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5PromQuery'
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQuery'
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQuery'
|
||||
- $ref: '#/components/schemas/DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5QueryBuilderTraceOperator'
|
||||
DashboardtypesQueryPluginKind:
|
||||
enum:
|
||||
@@ -2928,7 +2928,7 @@ components:
|
||||
- o11y/CompositeQuery
|
||||
- o11y/Formula
|
||||
- o11y/PromQLQuery
|
||||
- o11y/ClickHouseSQL
|
||||
- o11y/DatastoreSQL
|
||||
- o11y/TraceOperator
|
||||
type: string
|
||||
DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesDashboardtypesBuilderQuerySpec:
|
||||
@@ -2943,14 +2943,14 @@ components:
|
||||
- kind
|
||||
- spec
|
||||
type: object
|
||||
DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQuery:
|
||||
DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQuery:
|
||||
properties:
|
||||
kind:
|
||||
enum:
|
||||
- o11y/ClickHouseSQL
|
||||
- o11y/DatastoreSQL
|
||||
type: string
|
||||
spec:
|
||||
$ref: '#/components/schemas/Querybuildertypesv5ClickHouseQuery'
|
||||
$ref: '#/components/schemas/Querybuildertypesv5DatastoreQuery'
|
||||
required:
|
||||
- kind
|
||||
- spec
|
||||
@@ -5095,7 +5095,7 @@ components:
|
||||
format: double
|
||||
type: number
|
||||
type: object
|
||||
Querybuildertypesv5ClickHouseQuery:
|
||||
Querybuildertypesv5DatastoreQuery:
|
||||
properties:
|
||||
disabled:
|
||||
type: boolean
|
||||
@@ -5561,7 +5561,7 @@ components:
|
||||
- $ref: '#/components/schemas/Querybuildertypesv5QueryEnvelopeFormula'
|
||||
- $ref: '#/components/schemas/Querybuildertypesv5QueryEnvelopeTraceOperator'
|
||||
- $ref: '#/components/schemas/Querybuildertypesv5QueryEnvelopePromQL'
|
||||
- $ref: '#/components/schemas/Querybuildertypesv5QueryEnvelopeClickHouseSQL'
|
||||
- $ref: '#/components/schemas/Querybuildertypesv5QueryEnvelopeDatastoreSQL'
|
||||
properties:
|
||||
spec: {}
|
||||
type:
|
||||
@@ -5588,10 +5588,10 @@ components:
|
||||
type:
|
||||
$ref: '#/components/schemas/Querybuildertypesv5QueryType'
|
||||
type: object
|
||||
Querybuildertypesv5QueryEnvelopeClickHouseSQL:
|
||||
Querybuildertypesv5QueryEnvelopeDatastoreSQL:
|
||||
properties:
|
||||
spec:
|
||||
$ref: '#/components/schemas/Querybuildertypesv5ClickHouseQuery'
|
||||
$ref: '#/components/schemas/Querybuildertypesv5DatastoreQuery'
|
||||
type:
|
||||
$ref: '#/components/schemas/Querybuildertypesv5QueryType'
|
||||
type: object
|
||||
@@ -5619,7 +5619,7 @@ components:
|
||||
Querybuildertypesv5QueryRangeRequest:
|
||||
description: Request body for the v5 query range endpoint. Supports builder
|
||||
queries (traces, logs, metrics), formulas, joins, trace operators, PromQL,
|
||||
and ClickHouse SQL queries.
|
||||
and Datastore SQL queries.
|
||||
properties:
|
||||
compositeQuery:
|
||||
$ref: '#/components/schemas/Querybuildertypesv5CompositeQuery'
|
||||
@@ -5661,7 +5661,7 @@ components:
|
||||
- builder_query
|
||||
- builder_formula
|
||||
- builder_trace_operator
|
||||
- clickhouse_sql
|
||||
- datastore_sql
|
||||
- promql
|
||||
type: string
|
||||
Querybuildertypesv5QueryWarnData:
|
||||
@@ -6186,7 +6186,7 @@ components:
|
||||
RuletypesQueryType:
|
||||
enum:
|
||||
- builder
|
||||
- clickhouse_sql
|
||||
- datastore_sql
|
||||
- promql
|
||||
type: string
|
||||
RuletypesRenotify:
|
||||
@@ -20171,15 +20171,15 @@ paths:
|
||||
post:
|
||||
deprecated: false
|
||||
description: Execute a composite query over a time range. Supports builder queries
|
||||
(traces, logs, metrics), formulas, trace operators, PromQL, and ClickHouse
|
||||
(traces, logs, metrics), formulas, trace operators, PromQL, and Datastore
|
||||
SQL.
|
||||
operationId: QueryRangeV5
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
examples:
|
||||
clickhouse_sql_logs_raw:
|
||||
summary: 'ClickHouse SQL: raw logs with resource filter'
|
||||
datastore_sql_logs_raw:
|
||||
summary: 'Datastore SQL: raw logs with resource filter'
|
||||
value:
|
||||
compositeQuery:
|
||||
queries:
|
||||
@@ -20195,13 +20195,13 @@ paths:
|
||||
>= $start_timestamp - 1800 AND ts_bucket_start <= $end_timestamp
|
||||
AND severity_text = 'ERROR' ORDER BY timestamp DESC LIMIT
|
||||
100
|
||||
type: clickhouse_sql
|
||||
type: datastore_sql
|
||||
end: 1640998800000
|
||||
requestType: raw
|
||||
schemaVersion: v1
|
||||
start: 1640995200000
|
||||
clickhouse_sql_traces_scalar:
|
||||
summary: 'ClickHouse SQL: scalar aggregate with resource filter'
|
||||
datastore_sql_traces_scalar:
|
||||
summary: 'Datastore SQL: scalar aggregate with resource filter'
|
||||
value:
|
||||
compositeQuery:
|
||||
queries:
|
||||
@@ -20215,13 +20215,13 @@ paths:
|
||||
FROM __resource_filter) AND timestamp >= $start_datetime
|
||||
AND timestamp <= $end_datetime AND ts_bucket_start >= $start_timestamp
|
||||
- 1800 AND ts_bucket_start <= $end_timestamp
|
||||
type: clickhouse_sql
|
||||
type: datastore_sql
|
||||
end: 1640998800000
|
||||
requestType: scalar
|
||||
schemaVersion: v1
|
||||
start: 1640995200000
|
||||
clickhouse_sql_traces_time_series:
|
||||
summary: 'ClickHouse SQL: traces time series with resource filter'
|
||||
datastore_sql_traces_time_series:
|
||||
summary: 'Datastore SQL: traces time series with resource filter'
|
||||
value:
|
||||
compositeQuery:
|
||||
queries:
|
||||
@@ -20237,7 +20237,7 @@ paths:
|
||||
AND timestamp <= $end_datetime AND ts_bucket_start >= $start_timestamp
|
||||
- 1800 AND ts_bucket_start <= $end_timestamp GROUP BY ts
|
||||
ORDER BY ts
|
||||
type: clickhouse_sql
|
||||
type: datastore_sql
|
||||
end: 1640998800000
|
||||
requestType: time_series
|
||||
schemaVersion: v1
|
||||
|
||||
@@ -20,7 +20,7 @@ Before diving in, make sure you have these tools installed:
|
||||
- **Pnpm** - Our frontend package manager
|
||||
- Follow the [installation guide](https://pnpm.io/installation)
|
||||
|
||||
- **Docker** - For running Clickhouse and Postgres locally
|
||||
- **Docker** - For running Datastore and Postgres locally
|
||||
- Get it from [docs.docker.com/get-docker](https://docs.docker.com/get-docker/)
|
||||
|
||||
> 💡 **Tip**: Run `make help` to see all available commands with descriptions
|
||||
@@ -39,18 +39,18 @@ Before diving in, make sure you have these tools installed:
|
||||
|
||||
## How do I run it locally?
|
||||
|
||||
Hanzo O11y has three main components: Clickhouse, Backend, and Frontend. Let's set them up one by one.
|
||||
Hanzo O11y has three main components: Datastore, Backend, and Frontend. Let's set them up one by one.
|
||||
|
||||
### 1. Setting up ClickHouse
|
||||
### 1. Setting up Datastore
|
||||
|
||||
First, we need to get ClickHouse running:
|
||||
First, we need to get Datastore running:
|
||||
|
||||
```bash
|
||||
make devenv-clickhouse
|
||||
make devenv-datastore
|
||||
```
|
||||
|
||||
This command:
|
||||
- Starts ClickHouse in a single-shard, single-replica cluster
|
||||
- Starts Datastore in a single-shard, single-replica cluster
|
||||
- Sets up Zookeeper
|
||||
- Runs the latest schema migrations
|
||||
|
||||
@@ -65,9 +65,9 @@ make devenv-otel-collector
|
||||
This command:
|
||||
- Starts the Hanzo O11y OpenTelemetry Collector
|
||||
- Listens on port 4317 (gRPC) and 4318 (HTTP) for incoming telemetry data
|
||||
- Forwards data to ClickHouse for storage
|
||||
- Forwards data to Datastore for storage
|
||||
|
||||
> 💡 **Quick Setup**: Use `make devenv-up` to start both ClickHouse and OTel Collector together
|
||||
> 💡 **Quick Setup**: Use `make devenv-up` to start both Datastore and OTel Collector together
|
||||
|
||||
### 3. Starting the Backend
|
||||
|
||||
@@ -114,7 +114,7 @@ Now you're all set to start developing! Happy coding! 🎉
|
||||
## Verifying Your Setup
|
||||
To verify everything is working correctly:
|
||||
|
||||
1. **Check ClickHouse**: `curl http://localhost:8123/ping` (should return "Ok.")
|
||||
1. **Check Datastore**: `curl http://localhost:8123/ping` (should return "Ok.")
|
||||
2. **Check OTel Collector**: `curl http://localhost:13133` (should return health status)
|
||||
3. **Check Backend**: `curl http://localhost:8080/api/v1/health` (should return `{"status":"ok"}`)
|
||||
4. **Check Frontend**: Open `http://localhost:3301` in your browser
|
||||
|
||||
@@ -17,7 +17,7 @@ For example, the [prometheus](/pkg/prometheus) provider delivers a prometheus en
|
||||
|
||||
- `pkg/prometheus/prometheus.go` - Interface definition
|
||||
- `pkg/prometheus/config.go` - Configuration
|
||||
- `pkg/prometheus/clickhouseprometheus/provider.go` - Clickhouse-powered implementation
|
||||
- `pkg/prometheus/datastoreprometheus/provider.go` - Datastore-powered implementation
|
||||
- `pkg/prometheus/prometheustest/provider.go` - Mock implementation
|
||||
|
||||
## How to wire it up?
|
||||
|
||||
@@ -8,9 +8,9 @@ This document defines the design principles, invariants, and architectural contr
|
||||
|
||||
## Core Architectural Principle
|
||||
|
||||
**The user speaks OpenTelemetry. The storage speaks ClickHouse. The system translates between them. These two worlds must never leak into each other.**
|
||||
**The user speaks OpenTelemetry. The storage speaks Datastore. The system translates between them. These two worlds must never leak into each other.**
|
||||
|
||||
Every design choice in Query Range flows from this separation. The user-facing API surface deals exclusively in `TelemetryFieldKey`: a representation of fields as they exist in the OpenTelemetry data model. The storage layer deals in ClickHouse column expressions, table names, and SQL fragments. The translation between them is mediated by a small set of composable abstractions with strict boundaries.
|
||||
Every design choice in Query Range flows from this separation. The user-facing API surface deals exclusively in `TelemetryFieldKey`: a representation of fields as they exist in the OpenTelemetry data model. The storage layer deals in Datastore column expressions, table names, and SQL fragments. The translation between them is mediated by a small set of composable abstractions with strict boundaries.
|
||||
|
||||
---
|
||||
|
||||
@@ -60,16 +60,16 @@ The query pipeline is built from four interfaces that compose vertically. Each l
|
||||
StatementBuilder <- Orchestrates everything into executable SQL
|
||||
├── AggExprRewriter <- Rewrites aggregation expressions (maps field refs to columns)
|
||||
├── ConditionBuilder <- Builds WHERE predicates (field + operator + value -> SQL)
|
||||
└── FieldMapper <- Maps TelemetryFieldKey -> ClickHouse column expression
|
||||
└── FieldMapper <- Maps TelemetryFieldKey -> Datastore column expression
|
||||
```
|
||||
|
||||
### FieldMapper
|
||||
|
||||
**Contract:** Given a `TelemetryFieldKey`, return a ClickHouse column expression that yields the value for that field when used in a SELECT.
|
||||
**Contract:** Given a `TelemetryFieldKey`, return a Datastore column expression that yields the value for that field when used in a SELECT.
|
||||
|
||||
**Principle:** This is the *only* place where field-to-column translation happens. No other layer should contain knowledge of how fields map to storage. If you need a column expression, go through the FieldMapper.
|
||||
|
||||
**Why:** The user says `http.request.method`. ClickHouse might store it as `attributes_string['http.request.method']`, or as a materialized column `` `attribute_string_http$$request$$method` ``, or via a JSON access path in a body column. This variation is entirely contained within the FieldMapper. Everything above it is storage-agnostic.
|
||||
**Why:** The user says `http.request.method`. Datastore might store it as `attributes_string['http.request.method']`, or as a materialized column `` `attribute_string_http$$request$$method` ``, or via a JSON access path in a body column. This variation is entirely contained within the FieldMapper. Everything above it is storage-agnostic.
|
||||
|
||||
### ConditionBuilder
|
||||
|
||||
@@ -81,7 +81,7 @@ StatementBuilder <- Orchestrates everything into executable SQL
|
||||
|
||||
### AggExprRewriter
|
||||
|
||||
**Contract:** Given a user-facing aggregation expression like `sum(duration_nano)`, resolve field references within it and produce valid ClickHouse SQL.
|
||||
**Contract:** Given a user-facing aggregation expression like `sum(duration_nano)`, resolve field references within it and produce valid Datastore SQL.
|
||||
|
||||
**Dependency:** Uses FieldMapper to resolve field names within expressions.
|
||||
|
||||
@@ -103,11 +103,11 @@ The StatementBuilder must not call FieldMapper directly to build conditions, it
|
||||
|
||||
## Design Decisions as Constraints
|
||||
|
||||
### Constraint: Formula evaluation happens in Go, not in ClickHouse
|
||||
### Constraint: Formula evaluation happens in Go, not in Datastore
|
||||
|
||||
Formulas (`A + B`, `A / B`, `sqrt(A*A + B*B)`) are evaluated application-side by `FormulaEvaluator`, not via ClickHouse JOINs.
|
||||
Formulas (`A + B`, `A / B`, `sqrt(A*A + B*B)`) are evaluated application-side by `FormulaEvaluator`, not via Datastore JOINs.
|
||||
|
||||
**Why this is a constraint, not just an implementation choice:** The original JOIN-based approach was abandoned because ClickHouse evaluates joins right-to-left, serializing execution unnecessarily. Running queries independently allows parallelism and caching of intermediate results. Any future optimization must not reintroduce the JOIN pattern without solving the serialization problem.
|
||||
**Why this is a constraint, not just an implementation choice:** The original JOIN-based approach was abandoned because Datastore evaluates joins right-to-left, serializing execution unnecessarily. Running queries independently allows parallelism and caching of intermediate results. Any future optimization must not reintroduce the JOIN pattern without solving the serialization problem.
|
||||
|
||||
**Consequence:** Individual query results must be independently cacheable. Formula evaluation must handle label matching, timestamp alignment, and missing values without requiring the queries to coordinate at the SQL level.
|
||||
|
||||
@@ -130,7 +130,7 @@ Only additive/counting aggregations (`count`, `count_distinct`, `sum`, `rate`) d
|
||||
|
||||
### Constraint: Post-processing functions operate on result sets, not in SQL
|
||||
|
||||
Functions like `cutOffMin`, `ewma`, `median`, `timeShift`, `fillZero`, `runningDiff`, and `cumulativeSum` are applied in Go on the returned time series, not pushed into ClickHouse SQL.
|
||||
Functions like `cutOffMin`, `ewma`, `median`, `timeShift`, `fillZero`, `runningDiff`, and `cumulativeSum` are applied in Go on the returned time series, not pushed into Datastore SQL.
|
||||
|
||||
**Why:** These are sequential time-series transformations that require complete, ordered result sets. Pushing them into SQL would complicate query generation, prevent caching of raw results, and make the functions harder to test. They are applied via `ApplyFunctions` after query execution.
|
||||
|
||||
@@ -202,11 +202,11 @@ Fields inside JSON body columns (`body.response.errors[].code`) need pre-compute
|
||||
|
||||
## Summary of Inviolable Rules
|
||||
|
||||
1. **User-facing types never contain ClickHouse column names or SQL fragments.**
|
||||
1. **User-facing types never contain Datastore column names or SQL fragments.**
|
||||
2. **Field-to-column translation only happens in FieldMapper.**
|
||||
3. **Normalization happens once at the API boundary, never deeper.**
|
||||
4. **Historical aliases in fieldContexts and fieldDataTypes must not be removed.**
|
||||
5. **Formula evaluation stays in Go — do not push it into ClickHouse JOINs.**
|
||||
5. **Formula evaluation stays in Go — do not push it into Datastore JOINs.**
|
||||
6. **Zero-defaulting is aggregation-type-dependent — do not universally default to zero.**
|
||||
7. **Positive operators imply existence, negative operators do not.**
|
||||
8. **Post-processing functions operate on Go result sets, not in SQL.**
|
||||
|
||||
@@ -30,7 +30,7 @@ yarn install:browsers # one-time Playwright browser install
|
||||
|
||||
### Starting the Test Environment
|
||||
|
||||
To spin up the backend stack (O11y, ClickHouse, Postgres, Zookeeper, Zeus mock, gateway mock, seeder, migrator-with-web) and keep it running:
|
||||
To spin up the backend stack (O11y, Datastore, Postgres, Zookeeper, Zeus mock, gateway mock, seeder, migrator-with-web) and keep it running:
|
||||
|
||||
```bash
|
||||
cd tests
|
||||
@@ -64,7 +64,7 @@ Playwright drives a real browser (Chromium / Firefox / WebKit) against the runni
|
||||
|
||||
- **Why Playwright?** First-class TypeScript support, network interception, automatic wait-for-visibility, built-in trace viewer that captures every request/response the UI triggers — so specs rarely need separate API probes alongside UI clicks.
|
||||
- **Why pytest for lifecycle?** The integration suite already owns container bring-up. Reusing it keeps the E2E stack exactly in sync with the integration stack and avoids a parallel lifecycle framework.
|
||||
- **Why a separate seeder container?** Per-spec telemetry seeding (traces / logs / metrics) needs a thin HTTP wrapper around the ClickHouse insert helpers so a browser spec can POST from inside the test. The seeder lives at `tests/seeder/`, is built from `tests/Dockerfile.seeder`, and reuses the same `fixtures/{traces,logs,metrics}.py` as integration tests.
|
||||
- **Why a separate seeder container?** Per-spec telemetry seeding (traces / logs / metrics) needs a thin HTTP wrapper around the Datastore insert helpers so a browser spec can POST from inside the test. The seeder lives at `tests/seeder/`, is built from `tests/Dockerfile.seeder`, and reuses the same `fixtures/{traces,logs,metrics}.py` as integration tests.
|
||||
|
||||
```
|
||||
tests/
|
||||
@@ -283,7 +283,7 @@ The same pytest flags integration tests expose work here, since E2E reuses the s
|
||||
- `--reuse` — keep containers warm between runs (required for all iteration).
|
||||
- `--teardown` — tear everything down.
|
||||
- `--with-web` — build the frontend into the O11y container. **Required for E2E**; integration tests don't need it.
|
||||
- `--sqlstore-provider`, `--postgres-version`, `--clickhouse-version`, etc. — see `docs/contributing/integration.md`.
|
||||
- `--sqlstore-provider`, `--postgres-version`, `--datastore-version`, etc. — see `docs/contributing/integration.md`.
|
||||
|
||||
## What should I remember?
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Integration Tests
|
||||
|
||||
O11y uses integration tests to verify that different components work together correctly in a real environment. These tests run against actual services (ClickHouse, PostgreSQL, O11y, Zeus mock, Keycloak, etc.) spun up as containers, so suites exercise the same code paths production does.
|
||||
O11y uses integration tests to verify that different components work together correctly in a real environment. These tests run against actual services (Datastore, PostgreSQL, O11y, Zeus mock, Keycloak, etc.) spun up as containers, so suites exercise the same code paths production does.
|
||||
|
||||
## How to set up the integration test environment?
|
||||
|
||||
@@ -41,7 +41,7 @@ uv run pytest --basetemp=./tmp/ -vv --reuse integration/bootstrap/setup.py::test
|
||||
```
|
||||
|
||||
This command will:
|
||||
- Start all required services (ClickHouse, PostgreSQL, Zookeeper, O11y, Zeus mock, gateway mock)
|
||||
- Start all required services (Datastore, PostgreSQL, Zookeeper, O11y, Zeus mock, gateway mock)
|
||||
- Register an admin user
|
||||
- Keep containers running via the `--reuse` flag
|
||||
|
||||
@@ -77,7 +77,7 @@ tests/
|
||||
├── fixtures/ # shared fixture library (flat package)
|
||||
│ ├── __init__.py
|
||||
│ ├── auth.py # admin/editor/viewer users, tokens, license
|
||||
│ ├── clickhouse.py
|
||||
│ ├── datastore.py
|
||||
│ ├── http.py # WireMock helpers
|
||||
│ ├── keycloak.py # IdP container
|
||||
│ ├── postgres.py
|
||||
@@ -224,7 +224,7 @@ Tests can be configured using pytest options:
|
||||
- `--sqlstore-provider` — Choose the SQL store provider (default: `postgres`)
|
||||
- `--sqlite-mode` — SQLite journal mode: `delete` or `wal` (default: `delete`). Only relevant when `--sqlstore-provider=sqlite`.
|
||||
- `--postgres-version` — PostgreSQL version (default: `15`)
|
||||
- `--clickhouse-version` — ClickHouse version (default: `25.5.6`)
|
||||
- `--datastore-version` — Datastore version (default: `25.5.6`)
|
||||
- `--zookeeper-version` — Zookeeper version (default: `3.7.1`)
|
||||
- `--schema-migrator-version` — O11y schema migrator version (default: `v0.144.2`)
|
||||
|
||||
|
||||
@@ -4080,7 +4080,7 @@ export enum Querybuildertypesv5QueryTypeDTO {
|
||||
builder_query = 'builder_query',
|
||||
builder_formula = 'builder_formula',
|
||||
builder_trace_operator = 'builder_trace_operator',
|
||||
clickhouse_sql = 'clickhouse_sql',
|
||||
datastore_sql = 'datastore_sql',
|
||||
promql = 'promql',
|
||||
}
|
||||
export interface Querybuildertypesv5QueryEnvelopeBuilderTraceDTO {
|
||||
@@ -4227,7 +4227,7 @@ export interface Querybuildertypesv5QueryEnvelopePromQLDTO {
|
||||
type?: Querybuildertypesv5QueryTypeDTO;
|
||||
}
|
||||
|
||||
export interface Querybuildertypesv5ClickHouseQueryDTO {
|
||||
export interface Querybuildertypesv5DatastoreQueryDTO {
|
||||
/**
|
||||
* @type boolean
|
||||
*/
|
||||
@@ -4246,8 +4246,8 @@ export interface Querybuildertypesv5ClickHouseQueryDTO {
|
||||
query?: string;
|
||||
}
|
||||
|
||||
export interface Querybuildertypesv5QueryEnvelopeClickHouseSQLDTO {
|
||||
spec?: Querybuildertypesv5ClickHouseQueryDTO;
|
||||
export interface Querybuildertypesv5QueryEnvelopeDatastoreSQLDTO {
|
||||
spec?: Querybuildertypesv5DatastoreQueryDTO;
|
||||
type?: Querybuildertypesv5QueryTypeDTO;
|
||||
}
|
||||
|
||||
@@ -4276,7 +4276,7 @@ export type Querybuildertypesv5QueryEnvelopeDTO =
|
||||
spec?: unknown;
|
||||
type?: Querybuildertypesv5QueryTypeDTO;
|
||||
})
|
||||
| (Querybuildertypesv5QueryEnvelopeClickHouseSQLDTO & {
|
||||
| (Querybuildertypesv5QueryEnvelopeDatastoreSQLDTO & {
|
||||
spec?: unknown;
|
||||
type?: Querybuildertypesv5QueryTypeDTO;
|
||||
});
|
||||
@@ -4324,16 +4324,16 @@ export interface DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQueryb
|
||||
spec: Querybuildertypesv5PromQueryDTO;
|
||||
}
|
||||
|
||||
export enum DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQueryDTOKind {
|
||||
'o11y/ClickHouseSQL' = 'o11y/ClickHouseSQL',
|
||||
export enum DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQueryDTOKind {
|
||||
'o11y/DatastoreSQL' = 'o11y/DatastoreSQL',
|
||||
}
|
||||
export interface DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQueryDTO {
|
||||
export interface DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQueryDTO {
|
||||
/**
|
||||
* @enum o11y/ClickHouseSQL
|
||||
* @enum o11y/DatastoreSQL
|
||||
* @type string
|
||||
*/
|
||||
kind: DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQueryDTOKind;
|
||||
spec: Querybuildertypesv5ClickHouseQueryDTO;
|
||||
kind: DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQueryDTOKind;
|
||||
spec: Querybuildertypesv5DatastoreQueryDTO;
|
||||
}
|
||||
|
||||
export enum DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5QueryBuilderTraceOperatorDTOKind {
|
||||
@@ -4353,7 +4353,7 @@ export type DashboardtypesQueryPluginDTO =
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5CompositeQueryDTO
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5QueryBuilderFormulaDTO
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5PromQueryDTO
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5ClickHouseQueryDTO
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5DatastoreQueryDTO
|
||||
| DashboardtypesQueryPluginVariantGithubComO11yO11yPkgTypesQuerybuildertypesQuerybuildertypesv5QueryBuilderTraceOperatorDTO;
|
||||
|
||||
export interface DashboardtypesQuerySpecDTO {
|
||||
@@ -4702,7 +4702,7 @@ export enum DashboardtypesQueryPluginKindDTO {
|
||||
'o11y/CompositeQuery' = 'o11y/CompositeQuery',
|
||||
'o11y/Formula' = 'o11y/Formula',
|
||||
'o11y/PromQLQuery' = 'o11y/PromQLQuery',
|
||||
'o11y/ClickHouseSQL' = 'o11y/ClickHouseSQL',
|
||||
'o11y/DatastoreSQL' = 'o11y/DatastoreSQL',
|
||||
'o11y/TraceOperator' = 'o11y/TraceOperator',
|
||||
}
|
||||
export interface DashboardtypesUpdatablePublicDashboardDTO {
|
||||
@@ -6890,7 +6890,7 @@ export enum Querybuildertypesv5RequestTypeDTO {
|
||||
trace = 'trace',
|
||||
}
|
||||
/**
|
||||
* Request body for the v5 query range endpoint. Supports builder queries (traces, logs, metrics), formulas, joins, trace operators, PromQL, and ClickHouse SQL queries.
|
||||
* Request body for the v5 query range endpoint. Supports builder queries (traces, logs, metrics), formulas, joins, trace operators, PromQL, and Datastore SQL queries.
|
||||
*/
|
||||
export interface Querybuildertypesv5QueryRangeRequestDTO {
|
||||
compositeQuery?: Querybuildertypesv5CompositeQueryDTO;
|
||||
@@ -7075,7 +7075,7 @@ export enum RuletypesPanelTypeDTO {
|
||||
}
|
||||
export enum RuletypesQueryTypeDTO {
|
||||
builder = 'builder',
|
||||
clickhouse_sql = 'clickhouse_sql',
|
||||
datastore_sql = 'datastore_sql',
|
||||
promql = 'promql',
|
||||
}
|
||||
export interface RuletypesAlertCompositeQueryDTO {
|
||||
|
||||
@@ -22,7 +22,7 @@ import { GeneratedAPIInstance } from '../../../generatedAPIInstance';
|
||||
import type { ErrorType, BodyType } from '../../../generatedAPIInstance';
|
||||
|
||||
/**
|
||||
* Execute a composite query over a time range. Supports builder queries (traces, logs, metrics), formulas, trace operators, PromQL, and ClickHouse SQL.
|
||||
* Execute a composite query over a time range. Supports builder queries (traces, logs, metrics), formulas, trace operators, PromQL, and Datastore SQL.
|
||||
* @summary Query range
|
||||
*/
|
||||
export const queryRangeV5 = (
|
||||
|
||||
@@ -200,7 +200,7 @@ function toUrlCompositeQuery(
|
||||
return {
|
||||
queryType: actionQuery.queryType ?? 'builder',
|
||||
promql: actionQuery.promql ?? [],
|
||||
clickhouse_sql: actionQuery.clickhouse_sql ?? [],
|
||||
datastore_sql: actionQuery.datastore_sql ?? [],
|
||||
id: uuidv4(),
|
||||
unit: actionQuery.unit ?? '',
|
||||
...actionQuery,
|
||||
|
||||
@@ -24,7 +24,7 @@ import { FormContainer, StepHeading } from './styles';
|
||||
|
||||
import './QuerySection.styles.scss';
|
||||
|
||||
const ANOMALY_QUERY_SUPPORT_CLICKHOUSE_ISSUE =
|
||||
const ANOMALY_QUERY_SUPPORT_DATASTORE_ISSUE =
|
||||
'https://github.com/SigNoz/signoz/issues/11034';
|
||||
|
||||
const ANOMALY_QUERY_SUPPORT_PROMQL_ISSUE =
|
||||
|
||||
@@ -683,8 +683,8 @@ function NewWidget({
|
||||
isNewPanel,
|
||||
dataSource: currentQuery?.builder?.queryData?.[0]?.dataSource,
|
||||
...(currentQuery.queryType === EQueryType.DATASTORE && {
|
||||
clickhouseQueryCount: currentQuery.datastore_sql.length,
|
||||
clickhouseQueries: currentQuery.datastore_sql.map((q) => ({
|
||||
datastoreQueryCount: currentQuery.datastore_sql.length,
|
||||
datastoreQueries: currentQuery.datastore_sql.map((q) => ({
|
||||
name: q.name,
|
||||
query: (q.query ?? '')
|
||||
.replace(/--[^\n]*/g, '') // strip line comments
|
||||
|
||||
@@ -78,7 +78,7 @@ const buildWidget = (queryType: EQueryType | undefined): Widgets =>
|
||||
query: {
|
||||
queryType,
|
||||
builder: { queryData: [], queryFormulas: [] },
|
||||
clickhouse_sql: [],
|
||||
datastore_sql: [],
|
||||
promql: [],
|
||||
id: 'q-1',
|
||||
},
|
||||
|
||||
@@ -120,7 +120,7 @@ function toEQueryType(queryType: RuletypesQueryTypeDTO): EQueryType {
|
||||
switch (queryType) {
|
||||
case RuletypesQueryTypeDTO.builder:
|
||||
return EQueryType.QUERY_BUILDER;
|
||||
case RuletypesQueryTypeDTO.clickhouse_sql:
|
||||
case RuletypesQueryTypeDTO.datastore_sql:
|
||||
return EQueryType.DATASTORE;
|
||||
case RuletypesQueryTypeDTO.promql:
|
||||
return EQueryType.PROM;
|
||||
|
||||
@@ -4,7 +4,6 @@ go 1.26.4
|
||||
|
||||
require (
|
||||
dario.cat/mergo v1.0.2
|
||||
github.com/AfterShip/clickhouse-sql-parser v0.4.16
|
||||
github.com/DATA-DOG/go-sqlmock v1.5.2
|
||||
github.com/antlr4-go/antlr/v4 v4.13.1
|
||||
github.com/antonmedv/expr v1.15.3
|
||||
@@ -27,11 +26,12 @@ require (
|
||||
github.com/gorilla/handlers v1.5.1
|
||||
github.com/gorilla/mux v1.8.1
|
||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
|
||||
github.com/hanzoai/clickhouse-go-mock v0.14.2
|
||||
github.com/hanzoai/datastore-go-mock v0.14.3
|
||||
github.com/hanzoai/datastore-sql-parser v0.4.17
|
||||
github.com/hanzoai/govaluate v0.1.0
|
||||
github.com/hanzoai/otel-collector v0.144.8
|
||||
github.com/hanzoai/otel-collector v0.144.9
|
||||
github.com/hanzoai/sqlbuilder v1.39.2
|
||||
github.com/hanzoai/sqlite v0.2.3
|
||||
github.com/huandu/go-sqlbuilder v1.39.1
|
||||
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12
|
||||
github.com/knadh/koanf v1.5.0
|
||||
github.com/knadh/koanf/v2 v2.3.3
|
||||
@@ -213,9 +213,7 @@ require (
|
||||
github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 // indirect
|
||||
github.com/gorilla/rpc v1.2.1 // indirect
|
||||
github.com/grandcat/zeroconf v1.0.0 // indirect
|
||||
github.com/hanzo-ds/go v1.0.0 // indirect
|
||||
github.com/hanzo-ds/native v0.72.0 // indirect
|
||||
github.com/hanzoai/ai v1.806.3 // indirect
|
||||
github.com/hanzoai/ai v1.806.6 // indirect
|
||||
github.com/hanzoai/beego/v2 v2.4.1 // indirect
|
||||
github.com/hanzoai/dashscope-go-sdk v0.0.2 // indirect
|
||||
github.com/hanzoai/dashscopego v0.6.0 // indirect
|
||||
@@ -379,7 +377,7 @@ require (
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 // indirect
|
||||
github.com/AzureAD/microsoft-authentication-library-for-go v1.7.0 // indirect
|
||||
github.com/ClickHouse/ch-go v0.72.0
|
||||
github.com/ClickHouse/ch-go v0.72.0 // indirect
|
||||
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b
|
||||
github.com/andybalholm/brotli v1.2.1 // indirect
|
||||
github.com/armon/go-metrics v0.4.1 // indirect
|
||||
@@ -499,7 +497,6 @@ require (
|
||||
github.com/tklauser/numcpus v0.11.0 // indirect
|
||||
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect
|
||||
github.com/valyala/fastjson v1.6.7 // indirect
|
||||
github.com/vjeantet/grok v1.0.1 // indirect
|
||||
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
|
||||
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||
|
||||
@@ -70,8 +70,6 @@ filippo.io/hpke v0.4.0 h1:p575VVQ6ted4pL+it6M00V/f2qTZITO0zgmdKCkd5+A=
|
||||
filippo.io/hpke v0.4.0/go.mod h1:EmAN849/P3qdeK+PCMkDpDm83vRHM5cDipBJ8xbQLVY=
|
||||
github.com/ALTree/bigfloat v0.2.0 h1:AwNzawrpFuw55/YDVlcPw0F0cmmXrmngBHhVrvdXPvM=
|
||||
github.com/ALTree/bigfloat v0.2.0/go.mod h1:+NaH2gLeY6RPBPPQf4aRotPPStg+eXc8f9ZaE4vRfD4=
|
||||
github.com/AfterShip/clickhouse-sql-parser v0.4.16 h1:gpl+wXclYUKT0p4+gBq22XeRYWwEoZ9f35vogqMvkLQ=
|
||||
github.com/AfterShip/clickhouse-sql-parser v0.4.16/go.mod h1:W0Z82wJWkJxz2RVun/RMwxue3g7ut47Xxl+SFqdJGus=
|
||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 h1:fou+2+WFTib47nS+nz/ozhEBnvU96bKHy6LjRsY4E28=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0/go.mod h1:t76Ruy8AHvUAC8GfMWJMa0ElSbuIcO03NLpynfbgsPA=
|
||||
@@ -901,22 +899,20 @@ github.com/h2non/gock v1.2.0 h1:K6ol8rfrRkUOefooBC8elXoaNGYkpp7y2qcxGG6BzUE=
|
||||
github.com/h2non/gock v1.2.0/go.mod h1:tNhoxHYW2W42cYkYb1WqzdbYIieALC99kpYr7rH/BQk=
|
||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
||||
github.com/hanzo-ds/go v1.0.0 h1:KYG5w1unGOal/G0eK6XrcGY1K5G3z4+x+PgpS+yj1SI=
|
||||
github.com/hanzo-ds/go v1.0.0/go.mod h1:CNQfHeWrtKwsiKqoX8quhGCvj2mp5JOB1ZHIhi+J268=
|
||||
github.com/hanzo-ds/native v0.72.0 h1:lQhH2dza3foJCHN6scIVsEpqdj/xzI1N0QlI94vtWh8=
|
||||
github.com/hanzo-ds/native v0.72.0/go.mod h1:11FZtFdtfXMnmpybDEW6+uPRWFeC3TOT59YaV+lED+E=
|
||||
github.com/hanzoai/ai v1.806.3 h1:7YqJYi2jGrAKbhm5UeRcCigS/wJ+Diyo9mksstFgt4U=
|
||||
github.com/hanzoai/ai v1.806.3/go.mod h1:uwBc0wWvvf5wyvON8ixAi+p7zzN0WW4oNLvNKamB/+o=
|
||||
github.com/hanzoai/ai v1.806.6 h1:G5aZ6oGr6ODRGjUI3AEJzcmjgJTeQNsS371L/Lk3aN4=
|
||||
github.com/hanzoai/ai v1.806.6/go.mod h1:YpAU6oEoxfhOyN5ezVtwy1pw+xb9wcjmsgY8zuiAdiI=
|
||||
github.com/hanzoai/beego/v2 v2.4.1 h1:rChSPaueQtzriNxmt4jonobe6ujeqho0WTcPVYaH8Ac=
|
||||
github.com/hanzoai/beego/v2 v2.4.1/go.mod h1:eDGRL/NJSqjoYHtWa5eMb2ze0gnlEabs1UO/naIfuX0=
|
||||
github.com/hanzoai/clickhouse-go-mock v0.14.2 h1:5lyelmVRG2NMPpKO2NFSS8awrWTD2ZkBQwt3lmwmjz8=
|
||||
github.com/hanzoai/clickhouse-go-mock v0.14.2/go.mod h1:sIk044xw0lcG9yZkPwAhQIhxPU74bLZgAFjPVCM6hyA=
|
||||
github.com/hanzoai/dashscope-go-sdk v0.0.2 h1:L/FlStjXeehrNSBqU8y/ecSG/MnaAJqfyfjmLYmY344=
|
||||
github.com/hanzoai/dashscope-go-sdk v0.0.2/go.mod h1:DSUNMIR7RvSoO8B/VOQLGTqsMAnE6boJm9MjeodsVF4=
|
||||
github.com/hanzoai/dashscopego v0.6.0 h1:sLUepwcnVajaDgzlgfuJWkZblBg9UIalkpFUjXHx0Fg=
|
||||
github.com/hanzoai/dashscopego v0.6.0/go.mod h1:ciV938pktk0Tw6ssGYzEdxwS8OaHgv3xCWiy7W5664E=
|
||||
github.com/hanzoai/datastore-go-mock v0.14.3 h1:n3fsY8yr9h9ewzgmtb38qugT2UqhjIML7N9NiYmcroU=
|
||||
github.com/hanzoai/datastore-go-mock v0.14.3/go.mod h1:bWEdo98i6P0K2Z/0CIabxh/ML0BvqY8bocm6bsO7N7U=
|
||||
github.com/hanzoai/datastore-go/v2 v2.47.0 h1:3mTf0jZy4XAdr8+SbKU6ePWuSEAZq4VMzbk4RdNfgPY=
|
||||
github.com/hanzoai/datastore-go/v2 v2.47.0/go.mod h1:WJOH+9PH/4qHRccZOwPR3DjHS0mRN0GI6aGT62+bH1U=
|
||||
github.com/hanzoai/datastore-sql-parser v0.4.17 h1:I12ZticgPs6dz0lrI44dwCC3hvzdemIOShOUukAqMwk=
|
||||
github.com/hanzoai/datastore-sql-parser v0.4.17/go.mod h1:r5c3YMxBZzeuAlWJ0uAn8AHReHDtZYb3NYyt0jVLUMU=
|
||||
github.com/hanzoai/dbx v1.16.0 h1:C8wsb9BIiit4nYnXizpcB4SyzVaepPkQFwq5i9fxAV0=
|
||||
github.com/hanzoai/dbx v1.16.0/go.mod h1:ynP6HSiDDoFZ8M3DC+XvSglBPFRygfTd/gjTWabh4yA=
|
||||
github.com/hanzoai/expr v1.17.8 h1:qDKAhoS5DOU9gjPR/tBmucQhI0W9ysZM1l5hrdlhgAY=
|
||||
@@ -929,12 +925,14 @@ github.com/hanzoai/govaluate v0.1.0 h1:8Ajg4pNw2zFssXO2Ixj3fa73HawZUQiMwcP2NakUj
|
||||
github.com/hanzoai/govaluate v0.1.0/go.mod h1:0kZEEPJJmWLx67swZ7wAbE7xahX+CQzm9u/O4dNF5u4=
|
||||
github.com/hanzoai/iam v1.31.22 h1:v4nER78fO/+mHswmmqGJIhDutB4eYOmG1T8dOnS6aF4=
|
||||
github.com/hanzoai/iam v1.31.22/go.mod h1:Pc6N6JQUoaYZumoc4sj9ql07zvanonb7Bc5WukKegio=
|
||||
github.com/hanzoai/otel-collector v0.144.8 h1:XLwlYN7KT7+v8rIgPFXLmnV2p2PjdvnKjILK9tb4EsY=
|
||||
github.com/hanzoai/otel-collector v0.144.8/go.mod h1:gwndrsYoywY/nKRNNlIAAxCzJZk9hWeC+2xDUePBjt8=
|
||||
github.com/hanzoai/otel-collector v0.144.9 h1:bXZa7g9ZKWHzIqmPMdOx2gyxlt/ICYgad0XBmjlOEvI=
|
||||
github.com/hanzoai/otel-collector v0.144.9/go.mod h1:3I1FL2NAju9UeuYTZV34We5n5Nz36MgrKrWcKag314w=
|
||||
github.com/hanzoai/pdf v1.2.0 h1:3/zYs4estaf6hpa3Ug/NgfYEQpmkmMClmRcREAP8KUo=
|
||||
github.com/hanzoai/pdf v1.2.0/go.mod h1:Lb5LhbMY7QvrxxMeKbI22Kvoz4XQhHgJV7Erq0U8zHU=
|
||||
github.com/hanzoai/search-go v0.36.0 h1:bQfbAs/bc/s3qZDCtSqEAxp48koHkb0Z4ezUknt2AQc=
|
||||
github.com/hanzoai/search-go v0.36.0/go.mod h1:jdcYUdG6exMfRfJvilWhaNdAR8XWQRPvZtuRxQBzn34=
|
||||
github.com/hanzoai/sqlbuilder v1.39.2 h1:YDfZlCfgwRYSYag5LjeuclbQ5CRvqLehOmeDdTnzA6M=
|
||||
github.com/hanzoai/sqlbuilder v1.39.2/go.mod h1:XlCgRiiXt/5PWeXG7OValozMoZN+ywY1T0hOwqZvnxo=
|
||||
github.com/hanzoai/sqlite v0.2.3 h1:X9AmaAro1hCsYY/ykI/nD5wiTCPpHhtBkUqe+PfSzuM=
|
||||
github.com/hanzoai/sqlite v0.2.3/go.mod h1:jhU6OMiNmNmjFHOgfIskse/RImYEe7rUTm6+rMKMRzg=
|
||||
github.com/hanzoai/tasks v1.51.0 h1:Mf1dyL8Y2EQ/m8cIc5+i8BdYvob6fZek9bj8O8sHJ3Y=
|
||||
@@ -1050,8 +1048,6 @@ github.com/huandu/go-assert v1.1.6 h1:oaAfYxq9KNDi9qswn/6aE0EydfxSa+tWZC1KabNitY
|
||||
github.com/huandu/go-assert v1.1.6/go.mod h1:JuIfbmYG9ykwvuxoJ3V8TB5QP+3+ajIA54Y44TmkMxs=
|
||||
github.com/huandu/go-clone v1.7.3 h1:rtQODA+ABThEn6J5LBTppJfKmZy/FwfpMUWa8d01TTQ=
|
||||
github.com/huandu/go-clone v1.7.3/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE=
|
||||
github.com/huandu/go-sqlbuilder v1.39.1 h1:uUaj41yLNTQBe7ojNF6Im1RPbHCN4zCjMRySTEC2ooI=
|
||||
github.com/huandu/go-sqlbuilder v1.39.1/go.mod h1:zdONH67liL+/TvoUMwnZP/sUYGSSvHh9psLe/HpXn8E=
|
||||
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
|
||||
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||
github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo=
|
||||
@@ -1769,8 +1765,6 @@ github.com/valyala/fasthttp v1.70.0 h1:LAhMGcWk13QZWm85+eg8ZBNbrq5mnkWFGbHMUJHId
|
||||
github.com/valyala/fasthttp v1.70.0/go.mod h1:oDZEHHkJ/Buyklg6uURmYs19442zFSnCIfX3j1FY3pE=
|
||||
github.com/valyala/fastjson v1.6.7 h1:ZE4tRy0CIkh+qDc5McjatheGX2czdn8slQjomexVpBM=
|
||||
github.com/valyala/fastjson v1.6.7/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
|
||||
github.com/vjeantet/grok v1.0.1 h1:2rhIR7J4gThTgcZ1m2JY4TrJZNgjn985U28kT2wQrJ4=
|
||||
github.com/vjeantet/grok v1.0.1/go.mod h1:ax1aAchzC6/QMXMcyzHQGZWaW1l195+uMYIkCWPCNIo=
|
||||
github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8=
|
||||
github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
|
||||
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
|
||||
|
||||
@@ -14,7 +14,7 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
ID: "QueryRangeV5",
|
||||
Tags: []string{"querier"},
|
||||
Summary: "Query range",
|
||||
Description: "Execute a composite query over a time range. Supports builder queries (traces, logs, metrics), formulas, trace operators, PromQL, and ClickHouse SQL.",
|
||||
Description: "Execute a composite query over a time range. Supports builder queries (traces, logs, metrics), formulas, trace operators, PromQL, and Datastore SQL.",
|
||||
Request: new(qbtypes.QueryRangeRequest),
|
||||
RequestContentType: "application/json",
|
||||
RequestExamples: []handler.OpenAPIExample{
|
||||
@@ -355,8 +355,8 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "clickhouse_sql_traces_time_series",
|
||||
Summary: "ClickHouse SQL: traces time series with resource filter",
|
||||
Name: "datastore_sql_traces_time_series",
|
||||
Summary: "Datastore SQL: traces time series with resource filter",
|
||||
Value: map[string]any{
|
||||
"schemaVersion": "v1",
|
||||
"start": 1640995200000,
|
||||
@@ -365,7 +365,7 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
"compositeQuery": map[string]any{
|
||||
"queries": []any{
|
||||
map[string]any{
|
||||
"type": "clickhouse_sql",
|
||||
"type": "datastore_sql",
|
||||
"spec": map[string]any{
|
||||
"name": "span_rate",
|
||||
"query": "WITH __resource_filter AS (" +
|
||||
@@ -384,8 +384,8 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "clickhouse_sql_logs_raw",
|
||||
Summary: "ClickHouse SQL: raw logs with resource filter",
|
||||
Name: "datastore_sql_logs_raw",
|
||||
Summary: "Datastore SQL: raw logs with resource filter",
|
||||
Value: map[string]any{
|
||||
"schemaVersion": "v1",
|
||||
"start": 1640995200000,
|
||||
@@ -394,7 +394,7 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
"compositeQuery": map[string]any{
|
||||
"queries": []any{
|
||||
map[string]any{
|
||||
"type": "clickhouse_sql",
|
||||
"type": "datastore_sql",
|
||||
"spec": map[string]any{
|
||||
"name": "recent_errors",
|
||||
"query": "WITH __resource_filter AS (" +
|
||||
@@ -414,8 +414,8 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "clickhouse_sql_traces_scalar",
|
||||
Summary: "ClickHouse SQL: scalar aggregate with resource filter",
|
||||
Name: "datastore_sql_traces_scalar",
|
||||
Summary: "Datastore SQL: scalar aggregate with resource filter",
|
||||
Value: map[string]any{
|
||||
"schemaVersion": "v1",
|
||||
"start": 1640995200000,
|
||||
@@ -424,7 +424,7 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
"compositeQuery": map[string]any{
|
||||
"queries": []any{
|
||||
map[string]any{
|
||||
"type": "clickhouse_sql",
|
||||
"type": "datastore_sql",
|
||||
"spec": map[string]any{
|
||||
"name": "total_spans",
|
||||
"query": "WITH __resource_filter AS (" +
|
||||
@@ -455,7 +455,7 @@ func (provider *provider) addQuerierRoutes(router *mux.Router) error {
|
||||
ID: "QueryRangePreviewV5",
|
||||
Tags: []string{"querier"},
|
||||
Summary: "Query range preview",
|
||||
Description: "Validate a composite query without executing it. Accepts the same payload as the query range endpoint. By default (verbose=true) returns, for each query, the rendered underlying ClickHouse statement(s) with each statement's EXPLAIN ESTIMATE (per-table parts/rows/marks) and granule index analysis (candidate/surviving granules and the per-index pruning funnel). Pass ?verbose=false for the lightweight per-query verdict (valid/error/warnings) with no rendered SQL and no ClickHouse round trips. Intended for agentic/dry-run consumption: per-query errors are reported in the response rather than failing the whole request.",
|
||||
Description: "Validate a composite query without executing it. Accepts the same payload as the query range endpoint. By default (verbose=true) returns, for each query, the rendered underlying Datastore statement(s) with each statement's EXPLAIN ESTIMATE (per-table parts/rows/marks) and granule index analysis (candidate/surviving granules and the per-index pruning funnel). Pass ?verbose=false for the lightweight per-query verdict (valid/error/warnings) with no rendered SQL and no Datastore round trips. Intended for agentic/dry-run consumption: per-query errors are reported in the response rather than failing the whole request.",
|
||||
Request: new(qbtypes.QueryRangeRequest),
|
||||
RequestQuery: new(qbtypes.QueryRangePreviewParams),
|
||||
RequestContentType: "application/json",
|
||||
|
||||
@@ -98,7 +98,7 @@ func SQLSchemaProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedMap[fac
|
||||
|
||||
// NewO11y constructs the O11y runtime with the community provider set: noop
|
||||
// zeus/licensing/gateway, Hanzo IAM authz (iamauthz — the sole authorizer), the
|
||||
// ClickHouse (Hanzo Datastore) telemetry store, sqlite control-plane store, the
|
||||
// Datastore (Hanzo Datastore) telemetry store, sqlite control-plane store, the
|
||||
// full dashboard/cloudintegration/metricreductionrule/ruler modules, and (wired
|
||||
// internally by o11y.New) the identN provider set including iamidentn — the
|
||||
// gateway-header human identity the running pod trusts. The provider list is the
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
// The hanzoai/cloud embed and the standalone binary both resolve config through
|
||||
// NewConfig. The flat operator knob O11Y_DATASTORE_DSN MUST win and land on the
|
||||
// telemetry store DSN — this is the ONE var the cloud CR sets to point the
|
||||
// in-process runtime at the shared ClickHouse (Hanzo Datastore). If this alias
|
||||
// in-process runtime at the shared Datastore (Hanzo Datastore). If this alias
|
||||
// regresses, the embed silently talks to localhost and serves no telemetry.
|
||||
func TestNewConfigAppliesDatastoreDSNAlias(t *testing.T) {
|
||||
const dsn = "tcp://datastore.hanzo.svc:9000?username=u&password=p"
|
||||
@@ -21,10 +21,10 @@ func TestNewConfigAppliesDatastoreDSNAlias(t *testing.T) {
|
||||
t.Fatalf("NewConfig: %v", err)
|
||||
}
|
||||
|
||||
if got := config.TelemetryStore.Clickhouse.DSN; got != dsn {
|
||||
if got := config.TelemetryStore.Datastore.DSN; got != dsn {
|
||||
t.Fatalf("telemetrystore DSN = %q, want the O11Y_DATASTORE_DSN value %q", got, dsn)
|
||||
}
|
||||
if got := config.TelemetryStore.Clickhouse.Cluster; got != "insights" {
|
||||
if got := config.TelemetryStore.Datastore.Cluster; got != "insights" {
|
||||
t.Fatalf("telemetrystore cluster = %q, want %q", got, "insights")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
// Package datastoremetrics is the o11y-native datastore metrics driver: it
|
||||
// writes metric samples + series metadata to the datastore (the columnar
|
||||
// telemetry backend) over UPSTREAM ch-go / clickhouse-go v2, with NO
|
||||
// telemetry backend) over UPSTREAM ch-go / datastore-go v2, with NO
|
||||
// histogram-fork dependency.
|
||||
//
|
||||
// It is the write-side companion to pkg/zapmetricreceiver: WriteMetrics
|
||||
@@ -32,7 +32,7 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
clickhouse "github.com/hanzoai/datastore-go/v2"
|
||||
"github.com/hanzoai/datastore-go/v2"
|
||||
"github.com/hanzoai/datastore-go/v2/lib/driver"
|
||||
"github.com/hanzoai/o11y/pkg/telemetrymetrics"
|
||||
"github.com/hanzoai/o11y/pkg/zapmetricreceiver"
|
||||
@@ -96,9 +96,9 @@ type tsRow struct {
|
||||
}
|
||||
|
||||
// Writer ingests decoded metric batches into the datastore over upstream
|
||||
// clickhouse-go v2. It is safe for concurrent use (clickhouse.Conn is).
|
||||
// datastore-go v2. It is safe for concurrent use (datastore.Conn is).
|
||||
type Writer struct {
|
||||
conn clickhouse.Conn
|
||||
conn datastore.Conn
|
||||
db string
|
||||
tsTable string
|
||||
samplesTable string
|
||||
@@ -123,7 +123,7 @@ func WithNow(now func() int64) Option { return func(w *Writer) { w.nowMilli = no
|
||||
// NewWriter builds a Writer over an existing datastore connection. Defaults
|
||||
// target the SAME database + distributed tables the query plane reads, so a
|
||||
// series written here is immediately queryable.
|
||||
func NewWriter(conn clickhouse.Conn, opts ...Option) *Writer {
|
||||
func NewWriter(conn datastore.Conn, opts ...Option) *Writer {
|
||||
w := &Writer{
|
||||
conn: conn,
|
||||
db: telemetrymetrics.DBName,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// Package datastoresql binds the SQL dialect spoken by the telemetry datastore.
|
||||
package datastoresql
|
||||
|
||||
import "github.com/hanzoai/sqlbuilder"
|
||||
|
||||
// Flavor is the SQL dialect every statement builder renders through. It is the
|
||||
// one place first-party code names the upstream dialect selector.
|
||||
const Flavor = sqlbuilder.Datastore
|
||||
+9
-9
@@ -193,7 +193,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -343,7 +343,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -493,7 +493,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -643,7 +643,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -793,7 +793,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -943,7 +943,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1093,7 +1093,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1243,7 +1243,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1393,7 +1393,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+15
-15
@@ -238,7 +238,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -364,7 +364,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -490,7 +490,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -616,7 +616,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -742,7 +742,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -868,7 +868,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1003,7 +1003,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1138,7 +1138,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1264,7 +1264,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1390,7 +1390,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1525,7 +1525,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1660,7 +1660,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1795,7 +1795,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1921,7 +1921,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2047,7 +2047,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+6
-6
@@ -165,7 +165,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -315,7 +315,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -516,7 +516,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -717,7 +717,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -867,7 +867,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1017,7 +1017,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+10
-10
@@ -197,7 +197,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -334,7 +334,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -462,7 +462,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -590,7 +590,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -718,7 +718,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -846,7 +846,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -983,7 +983,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1120,7 +1120,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1265,7 +1265,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1402,7 +1402,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+10
-10
@@ -249,7 +249,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -380,7 +380,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -511,7 +511,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -642,7 +642,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -782,7 +782,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -922,7 +922,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1062,7 +1062,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1202,7 +1202,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1342,7 +1342,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1482,7 +1482,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+4
-4
@@ -157,7 +157,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -300,7 +300,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -443,7 +443,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -586,7 +586,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+9
-9
@@ -217,7 +217,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -360,7 +360,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -495,7 +495,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -630,7 +630,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -808,7 +808,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -986,7 +986,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1121,7 +1121,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1264,7 +1264,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1399,7 +1399,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+6
-6
@@ -158,7 +158,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -328,7 +328,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -533,7 +533,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -703,7 +703,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -908,7 +908,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1078,7 +1078,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+14
-14
@@ -238,7 +238,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -373,7 +373,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -508,7 +508,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -643,7 +643,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -778,7 +778,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -913,7 +913,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1048,7 +1048,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1183,7 +1183,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1318,7 +1318,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1453,7 +1453,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1588,7 +1588,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1723,7 +1723,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1858,7 +1858,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1993,7 +1993,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+7
-7
@@ -174,7 +174,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -324,7 +324,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -474,7 +474,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -624,7 +624,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -774,7 +774,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -924,7 +924,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1074,7 +1074,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+6
-6
@@ -157,7 +157,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -299,7 +299,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -441,7 +441,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -583,7 +583,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -725,7 +725,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -859,7 +859,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+8
-8
@@ -184,7 +184,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -334,7 +334,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -484,7 +484,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -685,7 +685,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -886,7 +886,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1087,7 +1087,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1237,7 +1237,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1387,7 +1387,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+4
-4
@@ -148,7 +148,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -283,7 +283,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -418,7 +418,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -553,7 +553,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+9
-9
@@ -191,7 +191,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -326,7 +326,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -461,7 +461,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -596,7 +596,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -731,7 +731,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -866,7 +866,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1001,7 +1001,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1136,7 +1136,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1271,7 +1271,7 @@
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+14
-14
@@ -329,7 +329,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -476,7 +476,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -637,7 +637,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -786,7 +786,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -935,7 +935,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1088,7 +1088,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1235,7 +1235,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1382,7 +1382,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1543,7 +1543,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1700,7 +1700,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1851,7 +1851,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2002,7 +2002,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2153,7 +2153,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2304,7 +2304,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+9
-9
@@ -193,7 +193,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -338,7 +338,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -485,7 +485,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -632,7 +632,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -779,7 +779,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -926,7 +926,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1071,7 +1071,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1218,7 +1218,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1365,7 +1365,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+11
-11
@@ -198,7 +198,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -353,7 +353,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -508,7 +508,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -663,7 +663,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -826,7 +826,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -989,7 +989,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1152,7 +1152,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1315,7 +1315,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1470,7 +1470,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1625,7 +1625,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1780,7 +1780,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+16
-16
@@ -345,7 +345,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-totallatency",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -432,7 +432,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-originlatency",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -519,7 +519,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-avgwsconnectionduration",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -611,7 +611,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-originhealthpercentage",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -703,7 +703,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-bytehitratio",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -790,7 +790,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-percentage4xx",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -877,7 +877,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-percentage5xx",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder",
|
||||
@@ -925,7 +925,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-requestcount",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -960,7 +960,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-originrequestcount",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -995,7 +995,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-requestsize",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1030,7 +1030,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-responsesize",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1065,7 +1065,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-activewebsocketconnections",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1100,7 +1100,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-websocketconnections",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1135,7 +1135,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-wafrequestcount",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1170,7 +1170,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-wafcaptcharequestcount",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
@@ -1205,7 +1205,7 @@
|
||||
}],
|
||||
"queryFormulas": [], "queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"datastore_sql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"id": "q-w-wafjsrequestcount",
|
||||
"promql": [{ "disabled": false, "legend": "", "name": "A", "query": "" }],
|
||||
"queryType": "builder", "unit": ""
|
||||
|
||||
+6
-6
@@ -155,7 +155,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -302,7 +302,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -449,7 +449,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -604,7 +604,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -759,7 +759,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -914,7 +914,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+10
-10
@@ -183,7 +183,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -330,7 +330,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -477,7 +477,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -624,7 +624,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -771,7 +771,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -918,7 +918,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1065,7 +1065,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1212,7 +1212,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1359,7 +1359,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1506,7 +1506,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+10
-10
@@ -183,7 +183,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -330,7 +330,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -477,7 +477,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -624,7 +624,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -771,7 +771,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -918,7 +918,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1065,7 +1065,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1212,7 +1212,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1359,7 +1359,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1506,7 +1506,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+18
-18
@@ -239,7 +239,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -386,7 +386,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -533,7 +533,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -680,7 +680,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -827,7 +827,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -974,7 +974,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1121,7 +1121,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1268,7 +1268,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1415,7 +1415,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1562,7 +1562,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1709,7 +1709,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1856,7 +1856,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2003,7 +2003,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2150,7 +2150,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2297,7 +2297,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2444,7 +2444,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2591,7 +2591,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2738,7 +2738,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+41
-41
@@ -400,7 +400,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -547,7 +547,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -694,7 +694,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -841,7 +841,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -988,7 +988,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1135,7 +1135,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1282,7 +1282,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1429,7 +1429,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1576,7 +1576,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1723,7 +1723,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1870,7 +1870,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2017,7 +2017,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2164,7 +2164,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2311,7 +2311,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2458,7 +2458,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2605,7 +2605,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2752,7 +2752,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2899,7 +2899,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3046,7 +3046,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3193,7 +3193,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3340,7 +3340,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3487,7 +3487,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3634,7 +3634,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3781,7 +3781,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3928,7 +3928,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4075,7 +4075,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4222,7 +4222,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4369,7 +4369,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4516,7 +4516,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4663,7 +4663,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4810,7 +4810,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -4957,7 +4957,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5104,7 +5104,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5251,7 +5251,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5398,7 +5398,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5545,7 +5545,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5692,7 +5692,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5839,7 +5839,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -5986,7 +5986,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -6133,7 +6133,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -6280,7 +6280,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+12
-12
@@ -197,7 +197,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -344,7 +344,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -491,7 +491,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -638,7 +638,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -785,7 +785,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -932,7 +932,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1079,7 +1079,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1226,7 +1226,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1373,7 +1373,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1520,7 +1520,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1667,7 +1667,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1814,7 +1814,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+22
-22
@@ -267,7 +267,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -414,7 +414,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -561,7 +561,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -708,7 +708,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -855,7 +855,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1002,7 +1002,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1149,7 +1149,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1296,7 +1296,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1443,7 +1443,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1590,7 +1590,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1884,7 +1884,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2031,7 +2031,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2178,7 +2178,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2325,7 +2325,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2472,7 +2472,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2619,7 +2619,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2766,7 +2766,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -2913,7 +2913,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3060,7 +3060,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3207,7 +3207,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -3354,7 +3354,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+7
-7
@@ -162,7 +162,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -309,7 +309,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -456,7 +456,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -603,7 +603,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -750,7 +750,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -897,7 +897,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1044,7 +1044,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+9
-9
@@ -306,7 +306,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -452,7 +452,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -598,7 +598,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -756,7 +756,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -900,7 +900,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1044,7 +1044,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1188,7 +1188,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1332,7 +1332,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1476,7 +1476,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
+9
-9
@@ -329,7 +329,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -476,7 +476,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -625,7 +625,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -774,7 +774,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -923,7 +923,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1090,7 +1090,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1239,7 +1239,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1388,7 +1388,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
@@ -1537,7 +1537,7 @@
|
||||
"queryFormulas": [],
|
||||
"queryTraceOperator": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
"datastore_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"github.com/hanzoai/o11y/pkg/types/dashboardtypes"
|
||||
qbtypesv5 "github.com/hanzoai/o11y/pkg/types/querybuildertypes/querybuildertypesv5"
|
||||
"github.com/antlr4-go/antlr/v4"
|
||||
sqlbuilder "github.com/huandu/go-sqlbuilder"
|
||||
sqlbuilder "github.com/hanzoai/sqlbuilder"
|
||||
)
|
||||
|
||||
// bunPlaceholderFlavor is any flavor that renders `?` placeholders, which bun
|
||||
|
||||
@@ -208,7 +208,7 @@ func (module *module) GetByMetricNames(ctx context.Context, orgID valuer.UUID, m
|
||||
|
||||
// Check all three query types
|
||||
module.checkBuilderQueriesForMetricNames(query, metricNames, foundMetrics, groupByByMetric, filterByByMetric)
|
||||
module.checkClickHouseQueriesForMetricNames(ctx, query, metricNames, foundMetrics)
|
||||
module.checkDatastoreQueriesForMetricNames(ctx, query, metricNames, foundMetrics)
|
||||
module.checkPromQLQueriesForMetricNames(ctx, query, metricNames, foundMetrics)
|
||||
|
||||
// Add widget to results for all found metrics
|
||||
@@ -406,14 +406,14 @@ func appendDedup(dst []string, values ...string) []string {
|
||||
return dst
|
||||
}
|
||||
|
||||
// checkClickHouseQueriesForMetricNames checks clickhouse_sql[] array for metric names in query strings.
|
||||
func (module *module) checkClickHouseQueriesForMetricNames(ctx context.Context, query map[string]interface{}, metricNames []string, foundMetrics map[string]bool) {
|
||||
clickhouseSQL, ok := query["clickhouse_sql"].([]interface{})
|
||||
// checkDatastoreQueriesForMetricNames checks datastore_sql[] array for metric names in query strings.
|
||||
func (module *module) checkDatastoreQueriesForMetricNames(ctx context.Context, query map[string]interface{}, metricNames []string, foundMetrics map[string]bool) {
|
||||
datastoreSQL, ok := query["datastore_sql"].([]interface{})
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
for _, chQuery := range clickhouseSQL {
|
||||
for _, chQuery := range datastoreSQL {
|
||||
chQueryMap, ok := chQuery.(map[string]interface{})
|
||||
if !ok {
|
||||
continue
|
||||
@@ -425,10 +425,10 @@ func (module *module) checkClickHouseQueriesForMetricNames(ctx context.Context,
|
||||
}
|
||||
|
||||
// Parse query to extract metric names
|
||||
result, err := module.queryParser.AnalyzeQueryFilter(ctx, qbtypes.QueryTypeClickHouseSQL, queryStr)
|
||||
result, err := module.queryParser.AnalyzeQueryFilter(ctx, qbtypes.QueryTypeDatastoreSQL, queryStr)
|
||||
if err != nil {
|
||||
// Log warning and continue - parsing errors shouldn't break the search
|
||||
module.settings.Logger().WarnContext(ctx, "failed to parse ClickHouse query", slog.String("query", queryStr), errors.Attr(err))
|
||||
module.settings.Logger().WarnContext(ctx, "failed to parse Datastore query", slog.String("query", queryStr), errors.Attr(err))
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
@@ -92,8 +92,8 @@ func (m *module) extractMetricNamesFromQuerySpec(ctx context.Context, spec any)
|
||||
}
|
||||
case *qbtypes.PromQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypePromQL, s.Query))
|
||||
case *qbtypes.ClickHouseQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypeClickHouseSQL, s.Query))
|
||||
case *qbtypes.DatastoreQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypeDatastoreSQL, s.Query))
|
||||
}
|
||||
return found
|
||||
}
|
||||
@@ -109,8 +109,8 @@ func (m *module) extractMetricNamesFromQueryEnvelope(ctx context.Context, envelo
|
||||
}
|
||||
case qbtypes.PromQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypePromQL, s.Query))
|
||||
case qbtypes.ClickHouseQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypeClickHouseSQL, s.Query))
|
||||
case qbtypes.DatastoreQuery:
|
||||
maps.Copy(found, m.extractMetricNamesFromRawQuery(ctx, qbtypes.QueryTypeDatastoreSQL, s.Query))
|
||||
}
|
||||
return found
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
// - When a real sink is wired, its write is fail-soft at the call site: a
|
||||
// telemetry-store hiccup must never drop the durable issue upsert.
|
||||
//
|
||||
// NOTE (honest status): the ClickHouse logs sink is NOT implemented in this build —
|
||||
// NOTE (honest status): the Datastore logs sink is NOT implemented in this build —
|
||||
// only NoopSink exists. A raw logs_v2 INSERT couples to resource-fingerprint /
|
||||
// ts-bucket schema that must be byte-verified against a LIVE datastore, not
|
||||
// reconstructed, so it is a deliberate fast-follow. Today occurrences are NOT
|
||||
|
||||
@@ -6,6 +6,8 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/datastoresql"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/errors"
|
||||
"github.com/hanzoai/o11y/pkg/flagger"
|
||||
"github.com/hanzoai/o11y/pkg/querybuilder"
|
||||
@@ -15,10 +17,10 @@ import (
|
||||
qbtypes "github.com/hanzoai/o11y/pkg/types/querybuildertypes/querybuildertypesv5"
|
||||
"github.com/hanzoai/o11y/pkg/types/telemetrytypes"
|
||||
"github.com/hanzoai/o11y/pkg/valuer"
|
||||
"github.com/huandu/go-sqlbuilder"
|
||||
"github.com/hanzoai/sqlbuilder"
|
||||
)
|
||||
|
||||
// quoteIdentifier wraps s in backticks for use as a ClickHouse identifier,
|
||||
// quoteIdentifier wraps s in backticks for use as a Datastore identifier,
|
||||
// escaping any embedded backticks by doubling them.
|
||||
func quoteIdentifier(s string) string {
|
||||
return fmt.Sprintf("`%s`", strings.ReplaceAll(s, "`", "``"))
|
||||
@@ -456,7 +458,7 @@ func (m *module) getEarliestMetricTime(ctx context.Context, metricNames []string
|
||||
sb.From(fmt.Sprintf("%s.%s", telemetrymetrics.DBName, telemetrymetrics.AttributesMetadataTableName))
|
||||
sb.Where(sb.In("metric_name", sqlbuilder.List(metricNames)))
|
||||
|
||||
query, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
query, args := sb.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
var minFirstReported uint64
|
||||
if err := m.telemetryStore.DatastoreDB().QueryRow(ctx, query, args...).Scan(&minFirstReported); err != nil {
|
||||
@@ -483,7 +485,7 @@ func (m *module) getMetricsExistence(ctx context.Context, metricNames []string)
|
||||
sb.Where(sb.In("metric_name", sqlbuilder.List(metricNames)))
|
||||
sb.GroupBy("metric_name")
|
||||
|
||||
query, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
query, args := sb.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
rows, err := m.telemetryStore.DatastoreDB().Query(ctx, query, args...)
|
||||
if err != nil {
|
||||
@@ -531,7 +533,7 @@ func (m *module) getAttributesExistence(ctx context.Context, metricNames, attrNa
|
||||
)
|
||||
sb.GroupBy("attr_name")
|
||||
|
||||
query, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
query, args := sb.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
rows, err := m.telemetryStore.DatastoreDB().Query(ctx, query, args...)
|
||||
if err != nil {
|
||||
@@ -683,7 +685,7 @@ func (m *module) getMetadata(
|
||||
}
|
||||
innerSB.GroupBy(groupByAliases...)
|
||||
|
||||
innerQuery, innerArgs := innerSB.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
innerQuery, innerArgs := innerSB.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
// --- Build outer query ---
|
||||
// Outer SELECT columns: groupBy cols directly + tupleElement(latest_attrs, N) for each additionalCol
|
||||
@@ -701,7 +703,7 @@ func (m *module) getMetadata(
|
||||
outerSB.Select(outerSelectCols...)
|
||||
outerSB.From(fmt.Sprintf("(%s)", innerQuery))
|
||||
|
||||
outerQuery, _ := outerSB.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
outerQuery, _ := outerSB.BuildWithFlavor(datastoresql.Flavor)
|
||||
// All ? params are in innerArgs; outer query introduces none of its own.
|
||||
|
||||
rows, err := m.telemetryStore.DatastoreDB().Query(ctx, outerQuery, innerArgs...)
|
||||
|
||||
@@ -6,13 +6,15 @@ import (
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/datastoresql"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/flagger"
|
||||
"github.com/hanzoai/o11y/pkg/telemetrymetrics"
|
||||
"github.com/hanzoai/o11y/pkg/types/featuretypes"
|
||||
"github.com/hanzoai/o11y/pkg/types/inframonitoringtypes"
|
||||
qbtypes "github.com/hanzoai/o11y/pkg/types/querybuildertypes/querybuildertypesv5"
|
||||
"github.com/hanzoai/o11y/pkg/valuer"
|
||||
"github.com/huandu/go-sqlbuilder"
|
||||
"github.com/hanzoai/sqlbuilder"
|
||||
)
|
||||
|
||||
// getPerGroupHostStatusCounts computes the number of active and inactive hosts per group
|
||||
@@ -127,7 +129,7 @@ func (m *module) getPerGroupHostStatusCounts(
|
||||
}
|
||||
sb.GroupBy(groupByAliases...)
|
||||
|
||||
query, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
query, args := sb.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
rows, err := m.telemetryStore.DatastoreDB().Query(ctx, query, args...)
|
||||
if err != nil {
|
||||
@@ -372,7 +374,7 @@ func (m *module) getActiveHostsQuery(metricNames []string, hostNameAttr string,
|
||||
// It queries distributed_metadata for hosts where last_reported_unix_milli >= sinceUnixMilli.
|
||||
func (m *module) getActiveHosts(ctx context.Context, metricNames []string, hostNameAttr string, sinceUnixMilli int64) (map[string]bool, error) {
|
||||
sb := m.getActiveHostsQuery(metricNames, hostNameAttr, sinceUnixMilli)
|
||||
query, args := sb.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
query, args := sb.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
rows, err := m.telemetryStore.DatastoreDB().Query(ctx, query, args...)
|
||||
if err != nil {
|
||||
|
||||
@@ -173,7 +173,7 @@ func (m *module) ListHosts(ctx context.Context, orgID valuer.UUID, req *inframon
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// TOD(nikhilmantri0902): replace this separate ClickHouse query with a sub-query inside the main query builder query
|
||||
// TOD(nikhilmantri0902): replace this separate Datastore query with a sub-query inside the main query builder query
|
||||
// once QB supports sub-queries.
|
||||
// Determine active hosts: those with metrics reported in the last 10 minutes.
|
||||
// Compute the cutoff once so every downstream query/subquery agrees on what "active" means.
|
||||
|
||||
@@ -6,12 +6,14 @@ import (
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/datastoresql"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/querybuilder"
|
||||
"github.com/hanzoai/o11y/pkg/telemetrymetrics"
|
||||
"github.com/hanzoai/o11y/pkg/types/inframonitoringtypes"
|
||||
qbtypes "github.com/hanzoai/o11y/pkg/types/querybuildertypes/querybuildertypesv5"
|
||||
"github.com/hanzoai/o11y/pkg/valuer"
|
||||
"github.com/huandu/go-sqlbuilder"
|
||||
"github.com/hanzoai/sqlbuilder"
|
||||
)
|
||||
|
||||
// buildNodeRecords assembles the page records. Condition counts come from
|
||||
@@ -225,7 +227,7 @@ func (m *module) getPerGroupNodeConditionCounts(
|
||||
timeSeriesFPsGroupBy = append(timeSeriesFPsGroupBy, quoteIdentifier(key.Name))
|
||||
}
|
||||
timeSeriesFPs.GroupBy(timeSeriesFPsGroupBy...)
|
||||
timeSeriesFPsSQL, timeSeriesFPsArgs := timeSeriesFPs.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
timeSeriesFPsSQL, timeSeriesFPsArgs := timeSeriesFPs.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
// ----- latestConditionPerNode -----
|
||||
latestConditionPerNode := sqlbuilder.NewSelectBuilder()
|
||||
@@ -251,7 +253,7 @@ func (m *module) getPerGroupNodeConditionCounts(
|
||||
"tsfp.node_name != ''",
|
||||
)
|
||||
latestConditionPerNode.GroupBy(latestConditionPerNodeGroupBy...)
|
||||
latestConditionPerNodeSQL, latestConditionPerNodeArgs := latestConditionPerNode.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
latestConditionPerNodeSQL, latestConditionPerNodeArgs := latestConditionPerNode.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
// ----- countNodesPerCondition (outer SELECT) -----
|
||||
countNodesPerConditionSelectCols := make([]string, 0, len(groupBy)+2)
|
||||
|
||||
@@ -7,12 +7,14 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/datastoresql"
|
||||
|
||||
"github.com/hanzoai/o11y/pkg/querybuilder"
|
||||
"github.com/hanzoai/o11y/pkg/telemetrymetrics"
|
||||
"github.com/hanzoai/o11y/pkg/types/inframonitoringtypes"
|
||||
qbtypes "github.com/hanzoai/o11y/pkg/types/querybuildertypes/querybuildertypesv5"
|
||||
"github.com/hanzoai/o11y/pkg/valuer"
|
||||
"github.com/huandu/go-sqlbuilder"
|
||||
"github.com/hanzoai/sqlbuilder"
|
||||
)
|
||||
|
||||
// buildPodRecords assembles the page records. Phase counts come from
|
||||
@@ -246,7 +248,7 @@ func (m *module) getPerGroupPodPhaseCounts(
|
||||
timeSeriesFPsGroupBy = append(timeSeriesFPsGroupBy, quoteIdentifier(key.Name))
|
||||
}
|
||||
timeSeriesFPs.GroupBy(timeSeriesFPsGroupBy...)
|
||||
timeSeriesFPsSQL, timeSeriesFPsArgs := timeSeriesFPs.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
timeSeriesFPsSQL, timeSeriesFPsArgs := timeSeriesFPs.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
latestPhasePerPod := sqlbuilder.NewSelectBuilder()
|
||||
latestPhasePerPodSelectCols := []string{"tsfp.pod_uid AS pod_uid"}
|
||||
@@ -271,7 +273,7 @@ func (m *module) getPerGroupPodPhaseCounts(
|
||||
"tsfp.pod_uid != ''",
|
||||
)
|
||||
latestPhasePerPod.GroupBy(latestPhasePerPodGroupBy...)
|
||||
latestPhasePerPodSQL, latestPhasePerPodArgs := latestPhasePerPod.BuildWithFlavor(sqlbuilder.ClickHouse)
|
||||
latestPhasePerPodSQL, latestPhasePerPodArgs := latestPhasePerPod.BuildWithFlavor(datastoresql.Flavor)
|
||||
|
||||
// ----- countPodsPerPhase (outer SELECT) -----
|
||||
countPodsPerPhaseSelectCols := make([]string, 0, len(groupBy)+5)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user