diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index 9c6e5a8..22041f9 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -44,7 +44,7 @@ jobs:
steps:
- name: Setup Go
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
+ uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
with:
go-version: ${{ env.GO_VERSION }}
@@ -66,7 +66,7 @@ jobs:
steps:
- name: Setup Go
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
+ uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
with:
go-version: ${{ env.GO_VERSION }}
@@ -80,7 +80,7 @@ jobs:
# version, but we prefer this action because it leaves 'annotations' (i.e.
# it comments on PRs to point out linter violations).
- name: Lint
- uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0
+ uses: golangci/golangci-lint-action@a4f60bb28d35aeee14e6880718e0c85ff1882e64 # v6.0.1
with:
version: ${{ env.GOLANGCI_VERSION }}
@@ -96,7 +96,7 @@ jobs:
submodules: true
- name: Setup Go
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
+ uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
with:
go-version: ${{ env.GO_VERSION }}
@@ -125,7 +125,7 @@ jobs:
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0
+ uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
- name: Build Test
uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0
with:
diff --git a/.github/workflows/close-inactive-issues.yml b/.github/workflows/close-inactive-issues.yml
new file mode 100644
index 0000000..66658bb
--- /dev/null
+++ b/.github/workflows/close-inactive-issues.yml
@@ -0,0 +1,22 @@
+name: Close inactive issues
+on:
+ schedule:
+ - cron: "00 0 * * *"
+
+jobs:
+ close-issues:
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ pull-requests: write
+ steps:
+ - uses: actions/stale@v9
+ with:
+ days-before-issue-stale: 90
+ days-before-issue-close: 14
+ stale-issue-label: "stale"
+ stale-issue-message: "This issue is stale because it has been open for 60 days with no activity."
+ close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
+ days-before-pr-stale: -1
+ days-before-pr-close: -1
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index dca9937..e25ca89 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -49,11 +49,11 @@ jobs:
make docker-push IMG_REGISTRY=${{ secrets.CONTAINER_REGISTRY }}
- name: Set up Go
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
+ uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
with:
go-version: ${{ env.GO_VERSION }}
cache: true
- - uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0
+ - uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0
with:
distribution: goreleaser
version: 1.24.0
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 0a7a0d4..ca8ef2b 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -42,7 +42,7 @@ jobs:
steps:
- name: Set up Go
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
+ uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7
with:
go-version: ${{ env.GO_VERSION }}
diff --git a/README.md b/README.md
index 665b3b3..4528a2c 100644
--- a/README.md
+++ b/README.md
@@ -43,8 +43,11 @@ KDP(Kubernetes Data Platform) delivers a modern, hybrid and cloud-native data pl
We look forward to your contributions and suggestions! The easiest way to contribute is to participate in discussions on the Github Issues/Discussion.
Reach out with any questions you may have and we'll make sure to answer them as soon as possible.
-* [DingTalk Group](https://www.dingtalk.com/en): `PLACEHOLDER`
-* [Wechat Group](https://www.wechat.com/en): `PLACEHOLDER`
+* [Wechat Group](https://www.wechat.com/en): add broker wechat to invite you into the communication group.
+
+
+
+* [DingTalk Group](https://www.dingtalk.com/en): search for the public group no. `82250000662`
## Contributing
Check out [Developer Guide](docs/en/developer-guide/developer-guide.md) to see how to develop with KDP.
diff --git a/README_zh.md b/README_zh.md
index c9444d6..a20a45a 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -43,8 +43,12 @@ KDP(Kubernetes Data Platform) 提供了一个基于 Kubernetes 的现代化混
我们期待您的贡献和建议!最简单的贡献方式是参与Github议题/讨论的讨论。
如果您有任何问题,请与我们联系,我们将确保尽快为您解答。
-* [钉钉群](https://www.dingtalk.com/): `PLACEHOLDER`
-* [微信群](https://www.wechat.com/): `PLACEHOLDER`
+* [微信群](https://www.wechat.com/):添加小助手微信以拉您进入交流群
+
+
+
+
+* [钉钉群](https://www.dingtalk.com/):搜索公开群组号 `82250000662`
## 贡献
参考[开发者指南](docs/zh/developer-guide/developer-guide.md),了解如何开发及贡献 KDP。
diff --git a/catalog/airbyte/README.md b/catalog/airbyte/README.md
new file mode 100644
index 0000000..5e51880
--- /dev/null
+++ b/catalog/airbyte/README.md
@@ -0,0 +1,18 @@
+### 1. 引言
+Airbyte 是一个开源的数据集成平台,提供 Airbyte 开源版和 Airbyte Cloud 解决方案。它使用户能够从多种数据源同步数据到目的地,便于数据的整合,以供分析和商业智能使用。
+
+### 2. 产品特性
+#### 2.1 广泛的连接器目录
+拥有全面的连接器列表,适用于各种数据源(数据库、API、SaaS 应用程序等)。300 多个预构建的连接器是业界最大的,并且每年都在翻倍增长。
+
+#### 2.2 易于使用
+用户友好的界面使用户能够轻松设计和维护数据管道,可通过 UI、API 和 Terraform 访问。平台提供无忧的配置选项和简化的数据连接器设置。
+
+#### 2.3 完全托管和可扩展
+完全托管并针对云的可扩展性进行了优化,能够适应特定任务不断增长的数据需求。能够高效处理大量数据,并在不遇到问题或失败的情况下缓解数据偏斜。
+
+#### 2.4 开源社区
+Airbyte 开源社区为用户提供了一个透明且易于访问的平台,鼓励知识交流、故障排除,并为全球数据集成爱好者创建了一个支持性的生态系统。
+
+#### 2.5 监控和管理
+平台配备了内置的监控工具,允许用户通过电子邮件、Web Hooks 以及各种目标系统无缝跟踪数据管道性能。
\ No newline at end of file
diff --git a/catalog/airbyte/apps/airbyte.app/README.md b/catalog/airbyte/apps/airbyte.app/README.md
new file mode 100644
index 0000000..63783d9
--- /dev/null
+++ b/catalog/airbyte/apps/airbyte.app/README.md
@@ -0,0 +1,74 @@
+### 1. 简介
+Airbyte 是一个开源的数据移动基础设施,用于构建提取和加载(EL)数据管道。它被设计为多功能、可扩展且易于使用。
+
+### 2. 核心概念
+**源**
+源是一个API、文件、数据库或数据仓库,您希望从中摄取数据。
+
+**目的地**
+目的地是一个数据仓库、数据湖、数据库或分析工具,您希望将摄取的数据加载到此处。
+
+**连接器**
+连接器是Airbyte的一个组件,用于从源拉取数据或将数据推送到目的地。
+
+**连接**
+连接是一个自动化的数据管道,用于将数据从源复制到目的地。
+
+更多详情,请参考官方文档:https://docs.airbyte.com/using-airbyte/core-concepts/
+
+### 2. 快速开始
+
+安装Airbyte后,您可以打开Airbyte入口(例如 http://airbyte-kdp-data.kdp-e2e.io)。然后输入任何电子邮件和组织名称。之后,您可以创建一个连接。
+
+#### 2.1 添加源
+
+添加一个“Faker”源。
+
+点击“Sources”,搜索“faker”然后选择“Faker”,点击“Set up source”。
+Airbyte将测试源并显示连接状态。(Airbyte将启动一个Pod来测试连接,这可能需要几分钟时间)
+
+更多详情,请参考官方文档:https://docs.airbyte.com/using-airbyte/getting-started/add-a-source
+
+#### 2.2 添加目的地
+
+添加一个“S3”目的地。在添加目的地之前,您需要创建一个Minio桶:
+```bash
+kubectl exec -it airbyte-minio-0 -n kdp-data -- bash
+mc alias set local http://localhost:9000 minio minio123
+mc mb local/tmp
+```
+
+点击“Destinations”,搜索“S3”然后选择它,输入以下字段:
+
+- S3 Key ID: `minio`
+- S3 Access Key: `minio123`
+- S3 Bucket Name: `tmp`
+- S3 Bucket Path: `/`
+- S3 Bucket Region: 选择任何区域
+
+可选字段:
+
+- S3 Endpoint: http://airbyte-minio-svc:9000
+
+点击“Set up destination”。
+
+2.3 创建连接
+点击“Connections”,点击“Create connection”,选择您刚刚创建的源和目的地。
+
+- Define source: `faker`
+- Define destination: `S3`
+- Select the stream: click `Next` button
+- Conifgure connection: click `Finish & Sync` button
+
+
+同步任务将被触发,您可以在UI中看到同步状态。(下载image和启动Pod可能需要几分钟时间。)
+
+如果同步成功,您可以在Minio桶中看到数据。
+
+```bash
+kubectl exec -it airbyte-minio-0 -n kdp-data -- bash
+# list the bucket
+mc ls -r local/tmp
+# you can delete the bucket if you want
+mc rm -r local/tmp
+```
diff --git a/catalog/airbyte/apps/airbyte.app/app.yaml b/catalog/airbyte/apps/airbyte.app/app.yaml
new file mode 100644
index 0000000..81429da
--- /dev/null
+++ b/catalog/airbyte/apps/airbyte.app/app.yaml
@@ -0,0 +1,14 @@
+apiVersion: bdc.kdp.io/v1alpha1
+kind: Application
+metadata:
+ annotations:
+ app.core.bdos/catalog: airbyte
+ labels:
+ app: airbyte
+ app.core.bdos/type: system
+spec:
+ name: airbyte
+ type: airbyte
+ properties:
+ server:
+ replicaCount: 1
diff --git a/catalog/airbyte/apps/airbyte.app/i18n/en/README.md b/catalog/airbyte/apps/airbyte.app/i18n/en/README.md
new file mode 100644
index 0000000..6fd48e3
--- /dev/null
+++ b/catalog/airbyte/apps/airbyte.app/i18n/en/README.md
@@ -0,0 +1,78 @@
+### 1. Introduction
+Airbyte is an open-source data movement infrastructure for building extract and load (EL) data pipelines. It is designed for versatility, scalability, and ease-of-use.
+
+
+### 2. Core Concepts
+**Source**
+A source is an API, file, database, or data warehouse that you want to ingest data from.
+
+**Destination**
+A destination is a data warehouse, data lake, database, or an analytics tool where you want to load your ingested data.
+
+**Connector**
+An Airbyte component which pulls data from a source or pushes data to a destination.
+
+**Connection**
+A connection is an automated data pipeline that replicates data from a source to a destination.
+
+For more details, refer to the official documentation: https://docs.airbyte.com/using-airbyte/core-concepts/
+
+
+### 2. Quick Start
+
+After installing Airbyte, you can open the Airbyte ingress (like http://airbyte-kdp-data.kdp-e2e.io). Then input any email and organization name. After that, you can create a connection.
+
+#### 2.1 Add a Source
+
+Add a "Faker" source.
+
+Click "Sources", search for "faker" then select "Faker", click "Set up source".
+Airbyte will test the source and show the connection status. (Airbyte will launch a Pod to test the connection that mqy take a few minutes)
+
+For more details, refer to the official documentation: https://docs.airbyte.com/using-airbyte/getting-started/add-a-source
+
+#### 2.2 Add a Destination
+
+Add a "S3" destination. Before adding a destination, you need to create a Minio bucket:
+```bash
+kubectl exec -it airbyte-minio-0 -n kdp-data -- bash
+mc alias set local http://localhost:9000 minio minio123
+mc mb local/tmp
+```
+
+Click "Destinations", search for "S3" then select it, input the following fields:
+
+- S3 Key ID: `minio`
+- S3 Access Key: `minio123`
+- S3 Bucket Name: `tmp`
+- S3 Bucket Path: `/`
+- S3 Bucket Region: select any region
+
+Optional fields:
+- S3 Endpoint: `http://airbyte-minio-svc:9000`
+
+Click "Set up destination".
+
+#### 2.3 Create a Connection
+Click "Connections", click "Create connection", select the source and destination you just created.
+- Define source: `faker`
+- Define destination: `S3`
+- Select the stream: click `Next` button
+- Conifgure connection: click `Finish & Sync` button
+
+Sync task will be triggered,you can see the sync status in the UI. (It will take a few minutes to download images and to launch pods.)
+
+
+If sync is successful, you can see the data in the Minio bucket.
+
+```bash
+kubectl exec -it airbyte-minio-0 -n kdp-data -- bash
+# list the bucket
+mc ls -r local/tmp
+# you can delete the bucket if you want
+mc rm -r local/tmp
+```
+
+
+
+
diff --git a/catalog/airbyte/apps/airbyte.app/metadata.yaml b/catalog/airbyte/apps/airbyte.app/metadata.yaml
new file mode 100644
index 0000000..00a7f1b
--- /dev/null
+++ b/catalog/airbyte/apps/airbyte.app/metadata.yaml
@@ -0,0 +1,8 @@
+version: 0.59.1
+alias: Airbyte
+description: Airbyte 是一个开源的数据移动基础设施,专注于构建提取和加载(EL)数据管道。它被设计为多功能、可扩展且易于使用。 https://artifacthub.io/packages/helm/airbyte/airbyte/0.67.17
+isGlobal: false
+i18n:
+ en:
+ description: >-
+ Airbyte is an open-source data movement infrastructure for building extract and load (EL) data pipelines. It is designed for versatility, scalability, and ease-of-use. https://artifacthub.io/packages/helm/airbyte/airbyte/0.67.17
diff --git a/catalog/airbyte/i18n/en/README.md b/catalog/airbyte/i18n/en/README.md
new file mode 100644
index 0000000..51c27df
--- /dev/null
+++ b/catalog/airbyte/i18n/en/README.md
@@ -0,0 +1,20 @@
+### 1. Introduction
+Airbyte is an open-source data integration platform that offers both Airbyte Open Source and Airbyte Cloud solutions. It empowers users to synchronize data from various sources to destinations, facilitating the consolidation of data for analysis and business intelligence.
+
+### 2. Product Features
+#### 2.1 Extensive Connector Catalog
+Comprehensive list of connectors for various data sources (databases, APIs, SaaS applications, etc). 300+ pre-built connectors is the largest in the industry and is doubling every year for various data sources.
+
+#### 2.2 Ease of Use
+A user-friendly interface empowers users to design and manage data pipelines effortlessly, accessible via UI, API, and Terraform. The platform offers hassle-free configuration options and simplified setup for data connectors.
+
+#### 2.3 Fully Managed and Scalable
+Fully managed and optimized for cloud scalability, adept at accommodating the increasing data demands of specific tasks. Capable of efficiently handling large data volumes and mitigating data skewness without encountering issues or failures.
+
+#### 2.4 Open Source Community
+The Airbyte open-source community provides users with a transparent and accessible platform, encouraging knowledge exchange, troubleshooting, and the creation of a supportive ecosystem for data integration enthusiasts worldwide.
+
+#### 2.5 Monitoring and Management
+The platform comes equipped with built-in monitoring tools, allowing users to track data pipeline performance seamlessly via email, web hooks, and various target systems.
+
+
diff --git a/catalog/airbyte/metadata.yaml b/catalog/airbyte/metadata.yaml
new file mode 100644
index 0000000..4c45ba7
--- /dev/null
+++ b/catalog/airbyte/metadata.yaml
@@ -0,0 +1,8 @@
+name: Airbyte
+category: 开发工具
+description: Airbyte 是一个开源的数据移动基础设施,专注于构建提取和加载(EL)数据管道。它被设计为多功能、可扩展且易于使用。 https://artifacthub.io/packages/helm/airbyte/airbyte/0.67.17
+i18n:
+ en:
+ category: devtools
+ description: >-
+ Airbyte is an open-source data movement infrastructure for building extract and load (EL) data pipelines. It is designed for versatility, scalability, and ease-of-use. https://artifacthub.io/packages/helm/airbyte/airbyte/0.67.17
diff --git a/catalog/airbyte/x-definitions/app-airbyte.cue b/catalog/airbyte/x-definitions/app-airbyte.cue
new file mode 100644
index 0000000..abb0533
--- /dev/null
+++ b/catalog/airbyte/x-definitions/app-airbyte.cue
@@ -0,0 +1,164 @@
+"airbyte": {
+ annotations: {}
+ labels: {}
+ attributes: {
+ apiResource: {
+ definition: {
+ apiVersion: "bdc.kdp.io/v1alpha1"
+ kind: "Application"
+ type: "airbyte"
+ }
+ }
+ }
+ description: "airbyte"
+ type: "xdefinition"
+}
+
+template: {
+ _imageRegistry: *"" | string
+ _contextImageRegistry: context["docker_registry"]
+ if _contextImageRegistry != _|_ && len(_contextImageRegistry) > 0 {
+ _imageRegistry: _contextImageRegistry + "/"
+ }
+
+ output: {
+ apiVersion: "core.oam.dev/v1beta1"
+ kind: "Application"
+ metadata: {
+ name: context["name"]
+ namespace: context["namespace"]
+ }
+ spec: {
+ components: [
+ {
+ name: context["name"]
+ properties: {
+ chart: "airbyte"
+ releaseName: context["name"]
+ repoType: "oci"
+ targetNamespace: context["namespace"]
+ url: context["helm_repo_url"]
+ values: {
+ "airbyte-api-server": image: repository: _imageRegistry + "airbyte/airbyte-api-server"
+ "airbyte-bootloader": image: repository: _imageRegistry + "airbyte/bootloader"
+ "connector-builder-server": image: repository: _imageRegistry + "airbyte/connector-builder-server"
+ cron: image: repository: _imageRegistry + "airbyte/cron"
+ metrics: image: repository: _imageRegistry + "airbyte/metrics-reporter"
+ minio: image: repository: _imageRegistry + "minio/minio"
+ "pod-sweeper": image: repository: _imageRegistry + "bitnami/kubectl"
+ postgresql: image: repository: _imageRegistry + "airbyte/db"
+ server: image: repository: _imageRegistry + "airbyte/server"
+ temporal: image: repository: _imageRegistry + "temporalio/auto-setup"
+ webapp: image: repository: _imageRegistry + "airbyte/webapp"
+ worker: image: repository: _imageRegistry + "airbyte/worker"
+ "workload-api-server": image: repository: _imageRegistry + "airbyte/workload-api-server"
+ "workload-launcher": image: repository: _imageRegistry + "airbyte/workload-launcher"
+
+ webapp: {
+ replicaCount: 1
+ }
+ server: {
+ replicaCount: 1
+ }
+ worker: {
+ replicaCount: parameter.worker.replicaCount
+ }
+ "airbyte-api-server": {
+ replicaCount: 1
+ }
+ postgresql: {
+ enabled: true
+ }
+ minio: {
+ storage: {
+ volumeClaimValue: parameter.minio.storage.size
+ }
+ }
+ postgresql: {
+ enabled: true
+ }
+ if parameter.env_vars != _|_ {
+ global: env_vars: parameter.env_vars
+ }
+ }
+ version: "0.67.17"
+ }
+ traits: [
+ {
+ properties: {
+ rules: [
+ {
+ host: context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"]
+ paths: [
+ {
+ path: "/"
+ serviceName: "airbyte-airbyte-webapp-svc"
+ servicePort: 80
+ },
+ ]
+ },
+
+ ]
+ tls: [
+ {
+ hosts: [
+ context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"],
+ ]
+ tlsSecretName: context["ingress.tls_secret_name"]
+ },
+ ]
+ }
+ type: "bdos-ingress"
+ },
+
+ ]
+ type: "helm"
+ },
+
+ ]
+
+ }
+ }
+
+ parameter: {
+ // +ui:description=Minio存储配置
+ // +ui:order=1
+ minio: {
+ // +ui:order=1
+ storage: {
+ // +ui:description=配置存储大小
+ // +pattern=^([1-9]\d*)(Ti|Gi|Mi)$
+ // +err:options={"pattern":"请输入正确格式,如1024Mi, 1Gi, 1Ti"}
+ size: *"500Mi" | string
+ }
+ }
+
+ // +ui:description=Worker配置
+ // +ui:order=2
+ worker: {
+ // +minimum=1
+ // +ui:description=副本数
+ replicaCount: *1 | int
+ }
+
+ // +ui:description=Webapp配置
+ // +ui:order=3
+ webapp: {
+ // +minimum=1
+ // +ui:description=副本数
+ replicaCount: *1 | int
+ }
+
+ // +ui:description=Server配置
+ // +ui:order=4
+ server: {
+ // +minimum=1
+ // +ui:description=副本数
+ replicaCount: *1 | int
+ }
+
+ // +ui:description= 配置环境变量,如 MAX_SYNC_WORKERS=5
+ // +ui:order=5
+ env_vars?: {...}
+ }
+}
diff --git a/catalog/airflow/README.md b/catalog/airflow/README.md
new file mode 100644
index 0000000..0d878e9
--- /dev/null
+++ b/catalog/airflow/README.md
@@ -0,0 +1,21 @@
+### 1. 介绍
+
+Airflow™是一个以编程方式编写、调度和监控工作流的平台。
+
+### 2. 产品特性
+
+#### 动态的
+
+Airflow工作流是使用代码(Python)的形式进行配置,允许动态工作流(DAG)生成,并允许编写动态实例化工作流的代码。
+
+#### 可扩展的
+
+轻松定义您自己的operators、executors并扩展库,使其符合满足您的环境的抽象级别。
+
+#### 优雅的
+
+设计简洁优雅,使用强大的 Jinja 模板引擎将参数化脚本内置到 Airflow 的核心中。
+
+#### 可伸缩的
+
+Airflow 具有模块化架构,并使用消息队列来编排任意数量的workers。
\ No newline at end of file
diff --git a/catalog/airflow/apps/airflow.app/README.md b/catalog/airflow/apps/airflow.app/README.md
new file mode 100644
index 0000000..941275f
--- /dev/null
+++ b/catalog/airflow/apps/airflow.app/README.md
@@ -0,0 +1,51 @@
+### 1. 应用说明
+
+Airflow™是一个以编程方式编写、调度和监控工作流的平台。
+
+### 2. 快速入门
+
+#### 2.1 部署创建
+
+Airflow 通过KDP web部署。
+
+#### 2.2 使用实践
+
+##### 2.2.1 创建DAG文件
+
+##### 2.2.3 浏览器访问airflow web
+
+可通过配置的ingress(http://airflow-web-kdp-data.kdp-e2e.io/home)地址访问airflow web,或者通过kubectl port-forward 访问,以下为port-forward命令。
+
+```shell
+kubectl port-forward svc/airflow-webserver -n kdp-data 8080:8080
+```
+
+默认登陆用户/密码为 `admin/admin`
+
+#### 2.2.4 配置DAG文件
+
+DAG文件存放在git仓库中,默认安装配置的dag文件存放在git仓库中,你可以通过修改该文件来修改DAG文件。
+你也可以自己fork该仓库,然后修改dags文件,然后提交到git仓库中, 在 KDP 页面安装配置修改 dag repo, branch 等,然后更新即可。
+
+#### 2.2.4 运行DAG
+
+DAG 默认是暂停状态,需要手动启动。手动激活(点击名称旁边的开关即可)名称`hello_airflow`的DAG即可,该DAG是每天运行一次,激活后会自动补跑昨天的任务。
+也可以手动触发:点击`hello_airflow`DAG右边`Trigger DAG`按钮即可。
+
+
+### 3. 常见问题自检
+
+#### 3.1. DAG执行失败
+
+原因与排查:
+
+1. 检查 dag 代码同步是否成功,检查日志: `kubectl logs -l component=scheduler,release=airflow -c git-sync -n kdp-data`
+2. 查看scheduler和worker pod 日志输出信息。
+
+### 4. 附录
+
+#### 4.1. 概念介绍
+
+**DAG**
+
+有向无循环图,是Airflow中用于描述工作流的基本单位。
diff --git a/catalog/airflow/apps/airflow.app/app.yaml b/catalog/airflow/apps/airflow.app/app.yaml
new file mode 100644
index 0000000..2de333d
--- /dev/null
+++ b/catalog/airflow/apps/airflow.app/app.yaml
@@ -0,0 +1,15 @@
+apiVersion: bdc.kdp.io/v1alpha1
+kind: Application
+metadata:
+ labels:
+ app: airflow
+ app.core.bdos/type: system
+ annotations:
+ app.core.bdos/catalog: airflow
+ definition.bdc.kdp.io/description: airflow
+spec:
+ type: airflow
+ properties:
+ scheduler:
+ replicas: 1
+
diff --git a/catalog/airflow/apps/airflow.app/i18n/en/README.md b/catalog/airflow/apps/airflow.app/i18n/en/README.md
new file mode 100644
index 0000000..e53f3e6
--- /dev/null
+++ b/catalog/airflow/apps/airflow.app/i18n/en/README.md
@@ -0,0 +1,49 @@
+### 1. Application Description
+
+Airflow™ is a platform for programmatically authoring, scheduling, and monitoring workflows.
+
+### 2. Quick Start
+
+#### 2.1 Deployment
+
+Airflow is deployed via the KDP web interface.
+
+#### 2.2 Practical Usage
+
+##### 2.2.1 Creating DAG Files
+
+##### 2.2.3 Accessing Airflow Web via Browser
+
+You can access the Airflow web interface through the configured ingress (http://airflow-web-kdp-data.kdp-e2e.io/home) or by using kubectl port-forward, as shown in the following command:
+
+```shell
+kubectl port-forward svc/airflow-webserver -n kdp-data 8080:8080
+```
+
+The default login username/password is admin/admin.
+
+
+### 2.2.4 Configuring DAG Files
+
+DAG files are stored in a Git repository. The default installation configuration places the DAG files in a Git repository, which you can modify to change the DAG files. Alternatively, you can fork the repository, modify the DAG files, and then commit them to the Git repository. You can also install and configure the DAG repository, branch, etc., on the KDP page and then update it.
+
+### 2.2.4 Running DAGs
+
+DAGs are set to a paused state by default and need to be manually started. Manually activate the DAG named `hello_airflow` by clicking the switch next to its name. This DAG runs once a day and will automatically catch up on yesterday's tasks after activation. You can also manually trigger it by clicking the `Trigger DAG` button on the right side of the `hello_airflow` DAG.
+
+### 3. FAQ
+
+#### 3.1. DAG Execution Failure
+
+Causes and Troubleshooting:
+
+- Check if the DAG code synchronization is successful by checking the logs: `kubectl logs -l component=scheduler,release=airflow -c git-sync -n kdp-data`
+- Review the log output information for the scheduler and worker pods.
+
+### 4. Appendix
+
+#### 4.1. Concept Introduction
+
+**DAG**
+
+Directed Acyclic Graph, which is the basic unit for describing workflows in Airflow.
\ No newline at end of file
diff --git a/catalog/airflow/apps/airflow.app/metadata.yaml b/catalog/airflow/apps/airflow.app/metadata.yaml
new file mode 100644
index 0000000..4d33284
--- /dev/null
+++ b/catalog/airflow/apps/airflow.app/metadata.yaml
@@ -0,0 +1,8 @@
+version: 2.9.1
+alias: Airflow
+description: Airflow™是一个以编程方式编写、调度和监控工作流的平台。
+isGlobal: false
+i18n:
+ en:
+ description: >-
+ Airflow™ is a platform created by the community to programmatically author, schedule and monitor workflows.
diff --git a/catalog/airflow/i18n/en/README.md b/catalog/airflow/i18n/en/README.md
new file mode 100644
index 0000000..4d5a033
--- /dev/null
+++ b/catalog/airflow/i18n/en/README.md
@@ -0,0 +1,21 @@
+### 1. Introduction
+
+Airflow™ is a platform created by the community to programmatically author, schedule and monitor workflows.
+
+### 2. Product Capabilities
+
+#### Dynamic
+
+Airflow workflows are configured using code (Python), allowing for the generation of dynamic workflows (DAGs) and enabling code to write dynamically instantiated workflows.
+
+#### Extensible
+
+Easily define your own operators, executors, and extend the library to meet the abstraction level required by your environment.
+
+#### Elegant
+
+Designed with simplicity and elegance in mind, parameterized scripts are built into the core of Airflow using the powerful Jinja template engine.
+
+#### Scalable
+
+Airflow features a modular architecture and uses message queues to orchestrate any number of workers.
diff --git a/catalog/airflow/metadata.yaml b/catalog/airflow/metadata.yaml
new file mode 100644
index 0000000..a896012
--- /dev/null
+++ b/catalog/airflow/metadata.yaml
@@ -0,0 +1,8 @@
+name: Airflow
+category: 系统/调度系统
+description: Airflow™是一个以编程方式编写、调度和监控工作流的平台。
+i18n:
+ en:
+ category: system.scheduler
+ description: >-
+ Airflow™ is a platform created by the community to programmatically author, schedule and monitor workflows.
diff --git a/catalog/airflow/x-definitions/app-airflow.cue b/catalog/airflow/x-definitions/app-airflow.cue
new file mode 100644
index 0000000..d4cc397
--- /dev/null
+++ b/catalog/airflow/x-definitions/app-airflow.cue
@@ -0,0 +1,408 @@
+import "strings"
+
+airflow: {
+ annotations: {}
+ labels: {}
+ attributes: {
+ dynamicParameterMeta: [
+ {
+ name: "dependencies.mysql.mysqlSetting"
+ type: "ContextSetting"
+ refType: "mysql"
+ refKey: ""
+ description: "mysql setting name"
+ required: true
+ },
+ {
+ name: "dependencies.mysql.mysqlSecret"
+ type: "ContextSecret"
+ refType: "mysql"
+ refKey: ""
+ description: "mysql secret name"
+ required: true
+ },
+ ]
+ }
+ description: "airflow xdefinition"
+ type: "xdefinition"
+}
+
+template: {
+ _databaseName: "\(strings.Replace(context.namespace+"_airflow", "-", "_", -1))"
+ _imageRegistry: *"" | string
+ if context.docker_registry != _|_ && len(context.docker_registry) > 0 {
+ _imageRegistry: context.docker_registry + "/"
+ }
+
+ output: {
+ apiVersion: "core.oam.dev/v1beta1"
+ kind: "Application"
+ metadata: {
+ name: context.name
+ namespace: context.namespace
+ labels: {
+ app: context.name
+ "app.core.bdos/type": "system"
+ }
+ }
+ spec: {
+ components: [
+ {
+ name: context.name
+ type: "helm"
+ properties: {
+ chart: "airflow"
+ version: parameter.chartVersion
+ url: context["helm_repo_url"]
+ repoType: "oci"
+ releaseName: context.name
+ targetNamespace: context.namespace
+ values: {
+ defaultAirflowRepository: _imageRegistry + "apache/airflow"
+ defaultAirflowTag: parameter.images.airflow.tag
+ executor: "KubernetesExecutor"
+ dags: {
+ gitSync: {
+ enabled: true
+ repo: parameter.dags.gitSync.repo
+ branch: parameter.dags.gitSync.branch
+ rev: parameter.dags.gitSync.rev
+ subPath: parameter.dags.gitSync.subPath
+ }
+ }
+ config: {
+ core: {
+ "default_timezone": "Asia/Shanghai"
+ }
+ webserver: {
+ "default_ui_timezone": "Asia/Shanghai"
+ }
+ scheduler: {
+ "dag_dir_list_interval": 60
+ }
+ }
+ extraEnvFrom: """
+ - secretRef:
+ name: '\(parameter.dependencies.mysql.mysqlSecret)'
+ - configMapRef:
+ name: '\(parameter.dependencies.mysql.mysqlSetting)'
+ """
+ data: {
+ metadataConnection: {
+ protocol: "mysql"
+ db: _databaseName
+ sslmode: "disable"
+ }
+ }
+ postgresql: {
+ enabled: false
+ }
+ migrateDatabaseJob: {
+ useHelmHooks: false
+ }
+ webserverSecretKey: "feab0e05d989b76acb325a8b35e596c9"
+ webserver: {
+ replicas: parameter.webserver.replicas
+ resources: {
+ limits: {
+ cpu: parameter.webserver.resources.limits.cpu
+ memory: parameter.webserver.resources.limits.memory
+ }
+ requests: {
+ cpu: parameter.webserver.resources.requests.cpu
+ memory: parameter.webserver.resources.requests.memory
+ }
+ }
+ startupProbe: {
+ timeoutSeconds: 20
+ failureThreshold: 20
+ periodSeconds: 10
+ }
+ }
+ scheduler: {
+ replicas: parameter.scheduler.replicas
+ resources: {
+ limits: {
+ cpu: parameter.scheduler.resources.limits.cpu
+ memory: parameter.scheduler.resources.limits.memory
+ }
+ requests: {
+ cpu: parameter.scheduler.resources.requests.cpu
+ memory: parameter.scheduler.resources.requests.memory
+ }
+ }
+ startupProbe: {
+ timeoutSeconds: 20
+ failureThreshold: 20
+ periodSeconds: 10
+ }
+ extraInitContainers: [
+ {
+ name: "create-mysql-database"
+ image: _imageRegistry + "bitnami/mysql:8.0.22"
+ env: [
+ {
+ name: "PASSWORD"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_PASSWORD"
+ name: "\(parameter.dependencies.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "USER"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_USER"
+ name: "\(parameter.dependencies.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "DATABASE"
+ value: _databaseName
+ },
+ {
+ name: "MYSQL_HOST"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.dependencies.mysql.mysqlSetting)"
+ key: "MYSQL_HOST"
+ }
+ },
+ {
+ name: "MYSQL_PORT"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.dependencies.mysql.mysqlSetting)"
+ key: "MYSQL_PORT"
+ }
+ },
+ ]
+ command: [
+ "sh",
+ "-c",
+ "mysql -h $MYSQL_HOST -P $MYSQL_PORT -u $USER -p$PASSWORD -e \"CREATE DATABASE IF NOT EXISTS $DATABASE CHARACTER SET utf8mb4;\"",
+ ]
+ },
+ ]
+ }
+ workers: {
+ replicas: parameter.workers.replicas
+ terminationGracePeriodSeconds: 60
+ resources: {
+ limits: {
+ cpu: parameter.workers.resources.limits.cpu
+ memory: parameter.workers.resources.limits.memory
+ }
+ requests: {
+ cpu: parameter.workers.resources.requests.cpu
+ memory: parameter.workers.resources.requests.memory
+ }
+ }
+ persistence: {
+ enabled: false
+ }
+ }
+ ingress: {
+ web: {
+ enabled: true
+ hosts: [
+ {
+ name: "airflow-web-" + context.namespace + "." + context["ingress.root_domain"]
+ },
+ ]
+ }
+ }
+ images: {
+ statsd: {
+ repository: _imageRegistry + "prometheus/statsd-exporter"
+ }
+ gitSync: {
+ repository: _imageRegistry + "git-sync/git-sync"
+ tag: "v4.2.3"
+ }
+
+ }
+ }
+ }
+ },
+ ]
+ }
+ }
+ parameter: {
+ // +ui:title=组件依赖
+ // +ui:order=1
+ dependencies: {
+ // +ui:order=1
+ // +ui:description=MySQL 配置
+ mysql: {
+ // +ui:order=1
+ // +ui:description=数据库连接信息
+ // +err:options={"required":"请先安装Mysql"}
+ mysqlSetting: string
+ // +ui:order=2
+ // +ui:description=数据库认证信息
+ // +err:options={"required":"请先安装Mysql"}
+ mysqlSecret: string
+ }
+ }
+
+ // ui:title=DAG 配置
+ // +ui:order=2
+ dags: {
+ // +ui:description=git 同步配置 (必须配置)
+ gitSync: {
+ // +ui:description=git 仓库地址。 备用镜像仓库: https://gitee.com/linktime-cloud/example-datasets.git
+ // +ui:order=1
+ repo: *"https://github.com/linktimecloud/example-datasets.git" | string
+ // +ui:description=git 仓库分支
+ // +ui:order=2
+ branch: *"airflow" | string
+ // +ui:description=git 仓库提交 ID
+ // +ui:order=3
+ rev: *"HEAD" | string
+ // +ui:description= DAG 代码目录 (根目录请使用空字符串)
+ // +ui:order=4
+ subPath: *"dags" | string
+ }
+ }
+
+ // +ui:title=Webserver
+ // +ui:order=3
+ webserver: {
+ // +ui:description=资源规格
+ // +ui:order=1
+ resources: {
+ // +ui:description=预留
+ // +ui:order=1
+ requests: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"0.1" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"1024Mi" | string
+ }
+ // +ui:description=限制
+ // +ui:order=2
+ limits: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"1.0" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"2048Mi" | string
+ }
+ }
+ // +ui:description=副本数
+ // +ui:order=2
+ // // +pattern=^([1-9]\d*)$
+ // +err:options={"pattern":"请输入正确的副本数"}
+ replicas: *1 | int
+ }
+ // +ui:title=Scheduler
+ // +ui:order=4
+ scheduler: {
+ // +ui:description=资源规格
+ // +ui:order=1
+ resources: {
+ // +ui:description=预留
+ // +ui:order=1
+ requests: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"0.1" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"1024Mi" | string
+ }
+ // +ui:description=限制
+ // +ui:order=2
+ limits: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"1.0" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"2048Mi" | string
+ }
+ }
+ // +ui:description=副本数
+ // +ui:order=2
+ // // +pattern=^([1-9]\d*)$
+ // +err:options={"pattern":"请输入正确的副本数"}
+ replicas: *1 | int
+ }
+ // +ui:title=Workers
+ // +ui:order=5
+ workers: {
+ // +ui:description=资源规格
+ // +ui:order=1
+ resources: {
+ // +ui:description=预留
+ // +ui:order=1
+ requests: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"0.1" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"1024Mi" | string
+ }
+ // +ui:description=限制
+ // +ui:order=2
+ limits: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"1.0" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"2048Mi" | string
+ }
+ }
+ // +ui:description=副本数
+ // +ui:order=2
+ // // +pattern=^([1-9]\d*)$
+ // +err:options={"pattern":"请输入正确的副本数"}
+ replicas: *1 | int
+ }
+
+ // +ui:description=Helm Chart 版本号
+ // +ui:order=100
+ // +ui:options={"disabled":true}
+ chartVersion: string
+ // +ui:description=镜像版本
+ // +ui:order=101
+ // +ui:options={"disabled":true}
+ images: {
+ airflow: {
+ // +ui:options={"disabled":true}
+ tag: *"v1.0.0-2.9.1" | string
+ }
+ }
+ }
+}
diff --git a/catalog/clickhouse/README.md b/catalog/clickhouse/README.md
new file mode 100644
index 0000000..c11976a
--- /dev/null
+++ b/catalog/clickhouse/README.md
@@ -0,0 +1,77 @@
+# 介绍
+
+ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
+
+## 特性
+
+### 真正的列式数据库管理系统
+
+在一个真正的列式数据库管理系统中,除了数据本身外不应该存在其他额外的数据。这意味着为了避免在值旁边存储它们的长度«number»,你必须支持固定长度数值类型。例如,10亿个UInt8类型的数据在未压缩的情况下大约消耗1GB左右的空间,如果不是这样的话,这将对CPU的使用产生强烈影响。即使是在未压缩的情况下,紧凑的存储数据也是非常重要的,因为解压缩的速度主要取决于未压缩数据的大小。
+
+这是非常值得注意的,因为在一些其他系统中也可以将不同的列分别进行存储,但由于对其他场景进行的优化,使其无法有效的处理分析查询。例如: HBase,BigTable,Cassandra,HyperTable。在这些系统中,你可以得到每秒数十万的吞吐能力,但是无法得到每秒几亿行的吞吐能力。
+
+需要说明的是,ClickHouse不单单是一个数据库, 它是一个数据库管理系统。因为它允许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置或重启服务。
+
+### 数据压缩
+
+在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用。
+
+除了在磁盘空间和CPU消耗之间进行不同权衡的高效通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的专用编解码器,这使得ClickHouse能够与更小的数据库(如时间序列数据库)竞争并超越它们。
+
+### 数据的磁盘存储
+
+许多的列式数据库(如 SAP HANA, Google PowerDrill)只能在内存中工作,这种方式会造成比实际更多的设备预算。
+
+ClickHouse被设计用于工作在传统磁盘上的系统,它提供每GB更低的存储成本,但如果可以使用SSD和内存,它也会合理的利用这些资源。
+
+### 多核心并行处理
+
+ClickHouse会使用服务器上一切可用的资源,从而以最自然的方式并行处理大型查询。
+
+### 多服务器分布式处理
+
+上面提到的列式数据库管理系统中,几乎没有一个支持分布式的查询处理。 在ClickHouse中,数据可以保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行地在所有shard上进行处理。这些对用户来说是透明的
+
+### 支持SQL
+
+ClickHouse支持一种基于SQL的声明式查询语言,它在许多情况下与ANSI SQL标准相同。
+
+支持的查询GROUP BY, ORDER BY, FROM, JOIN, IN以及非相关子查询。
+
+相关(依赖性)子查询和窗口函数暂不受支持,但将来会被实现。
+
+### 向量引擎
+
+为了高效的使用CPU,数据不仅仅按列存储,同时还按向量(列的一部分)进行处理,这样可以更加高效地使用CPU。
+
+### 实时的数据更新
+
+ClickHouse支持在表中定义主键。为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
+
+### 索引
+
+按照主键对数据进行排序,这将帮助ClickHouse在几十毫秒以内完成对数据特定值或范围的查找。
+
+### 适合在线查询
+
+在线查询意味着在没有对数据做任何预处理的情况下以极低的延迟处理查询并将结果加载到用户的页面中。
+
+### 支持近似计算
+
+ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进行加速的方法:
+
+用于近似计算的各类聚合函数,如:distinct values, medians, quantiles
+基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。
+不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用。
+
+### 自适应连接算法
+
+ClickHouse支持自定义JOIN多个表,它更倾向于散列连接算法,如果有多个大表,则使用合并-连接算法
+
+### 支持数据复制和数据完整性
+
+ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。
+
+### 角色的访问控制
+
+ClickHouse使用SQL查询实现用户帐户管理,并允许角色的访问控制,类似于ANSI SQL标准和流行的关系数据库管理系统。
\ No newline at end of file
diff --git a/catalog/clickhouse/apps/clickhouse.app/README.md b/catalog/clickhouse/apps/clickhouse.app/README.md
new file mode 100644
index 0000000..60eb219
--- /dev/null
+++ b/catalog/clickhouse/apps/clickhouse.app/README.md
@@ -0,0 +1,30 @@
+### 1. 应用说明
+
+ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
+
+### 2. 快速入门
+
+#### 2.1 部署创建
+
+kdp界面->应用管理->应用市场,找到 "clickhouse",点击“安装”。
+
+#### 2.2 使用实践
+
+##### 2.2.1 使用方式(Shell)
+
+通过 `kubectl` 进入任意 clickhouse 容器。
+
+```shell
+kubectl exec -it clickhouse-shard0-0 -n kdp-data -c clickhouse -- bash
+```
+
+```shell
+# 进入 clickhouse-client。 和 需要替换成真实账密。
+clickhouse-client --user --password
+
+# 执行 SQL
+show databases;
+show tables;
+```
+
+更多示例请参考[官方教程](https://clickhouse.com/docs/zh/getting-started/tutorial)。
\ No newline at end of file
diff --git a/catalog/clickhouse/apps/clickhouse.app/app.yaml b/catalog/clickhouse/apps/clickhouse.app/app.yaml
new file mode 100644
index 0000000..d786cea
--- /dev/null
+++ b/catalog/clickhouse/apps/clickhouse.app/app.yaml
@@ -0,0 +1,29 @@
+apiVersion: bdc.kdp.io/v1alpha1
+kind: Application
+metadata:
+ labels:
+ app: clickhouse
+ app.core.bdos/type: system
+ annotations:
+ definition.bdc.kdp.io/description: clickhouse
+ app.core.bdos/catalog: clickhouse
+spec:
+ type: clickhouse
+ properties:
+ # dependencies:
+ # zookeeperHost: zookeeper.kdp-data.svc.cluster.local
+ chartVersion: "6.0.2"
+ imageTag: "24.3.2-debian-12-r2"
+ shards: 2
+ replicaCount: 2
+ storageSize: "20Gi"
+ resources:
+ requests:
+ cpu: "0.1"
+ memory: 512Mi
+ limits:
+ cpu: "4.0"
+ memory: 4096Mi
+ # auth:
+ # username: "default"
+ # password: "ckdba.123"
\ No newline at end of file
diff --git a/catalog/clickhouse/apps/clickhouse.app/i18n/en/README.md b/catalog/clickhouse/apps/clickhouse.app/i18n/en/README.md
new file mode 100644
index 0000000..2426944
--- /dev/null
+++ b/catalog/clickhouse/apps/clickhouse.app/i18n/en/README.md
@@ -0,0 +1,27 @@
+### 1. Application Description
+ClickHouse is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP).
+
+### 2. Quick Start
+
+#### 2.1 Deployment Creation
+KDP interface -> Application Management -> App Market, find "clickhouse", click "Install".
+
+#### 2.2 Practical Use
+
+##### 2.2.1 Usage Method (Shell)
+Use `kubectl` to enter any clickhouse container.
+
+```shell
+kubectl exec -it clickhouse-shard0-0 -n kdp-data -c clickhouse -- bash
+```
+
+```shell
+# Enter the clickhouse-client. and need to be replaced with real credentials.
+clickhouse-client --user --password
+
+# Execute SQL
+show databases;
+show tables;
+```
+
+For more examples, please refer to the [official tutorial](https://clickhouse.com/docs/en/getting-started/tutorial).
\ No newline at end of file
diff --git a/catalog/clickhouse/apps/clickhouse.app/metadata.yaml b/catalog/clickhouse/apps/clickhouse.app/metadata.yaml
new file mode 100644
index 0000000..c85ad37
--- /dev/null
+++ b/catalog/clickhouse/apps/clickhouse.app/metadata.yaml
@@ -0,0 +1,14 @@
+version: v1.0.0-24.3.2
+alias: ClickHouse
+description: ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
+isGlobal: false
+i18n:
+ en:
+ description: >-
+ ClickHouse is a high-performance, column-oriented SQL database management system (DBMS)
+ for online analytical processing (OLAP).
+dashboard:
+ - id: clickhouse
+ name: ClickHouse 监控面板
+ i18n:
+ en: ClickHouse Dashboard
\ No newline at end of file
diff --git a/catalog/clickhouse/i18n/en/README.md b/catalog/clickhouse/i18n/en/README.md
new file mode 100644
index 0000000..c988dd4
--- /dev/null
+++ b/catalog/clickhouse/i18n/en/README.md
@@ -0,0 +1,84 @@
+# Introduction
+
+ClickHouse is a high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP).
+
+## Distinctive Features
+
+### True Column-Oriented Database Management System
+
+In a real column-oriented DBMS, no extra data is stored with the values. This means that constant-length values must be supported to avoid storing their length “number” next to the values. For example, a billion UInt8-type values should consume around 1 GB uncompressed, or this strongly affects the CPU use. It is essential to store data compactly (without any “garbage”) even when uncompressed since the speed of decompression (CPU usage) depends mainly on the volume of uncompressed data.
+
+This is in contrast to systems that can store values of different columns separately, but that cannot effectively process analytical queries due to their optimization for other scenarios, such as HBase, BigTable, Cassandra, and HyperTable. You would get throughput around a hundred thousand rows per second in these systems, but not hundreds of millions of rows per second.
+
+Finally, ClickHouse is a database management system, not a single database. It allows creating tables and databases in runtime, loading data, and running queries without reconfiguring and restarting the server.
+
+### Data Compression
+
+Some column-oriented DBMSs do not use data compression. However, data compression plays a key role in achieving excellent performance.
+
+In addition to efficient general-purpose compression codecs with different trade-offs between disk space and CPU consumption, ClickHouse provides specialized codecs for specific kinds of data, which allow ClickHouse to compete with and outperform more niche databases, like time-series ones.
+
+### Disk Storage of Data
+
+Keeping data physically sorted by primary key makes it possible to extract data based on specific values or value ranges with low latency in less than a few dozen milliseconds. Some column-oriented DBMSs, such as SAP HANA and Google PowerDrill, can only work in RAM. This approach requires allocation of a larger hardware budget than necessary for real-time analysis.
+
+ClickHouse is designed to work on regular hard drives, which means the cost per GB of data storage is low, but SSD and additional RAM are also fully used if available.
+
+### Parallel Processing on Multiple Cores
+
+Large queries are parallelized naturally, taking all the necessary resources available on the current server.
+
+### Distributed Processing on Multiple Servers
+
+Almost none of the columnar DBMSs mentioned above have support for distributed query processing.
+
+In ClickHouse, data can reside on different shards. Each shard can be a group of replicas used for fault tolerance. All shards are used to run a query in parallel, transparently for the user.
+
+### SQL Support
+
+ClickHouse supports a declarative query language based on SQL that is identical to the ANSI SQL standard in many cases.
+
+Supported queries include GROUP BY, ORDER BY, subqueries in FROM, JOIN clause, IN operator, window functions and scalar subqueries.
+
+Correlated (dependent) subqueries are not supported at the time of writing but might become available in the future.
+
+### Vector Computation Engine
+
+Data is not only stored by columns but is processed by vectors (parts of columns), which allows achieving high CPU efficiency.
+
+### Real-Time Data Inserts
+
+ClickHouse supports tables with a primary key. To quickly perform queries on the range of the primary key, the data is sorted incrementally using the merge tree. Due to this, data can continually be added to the table. No locks are taken when new data is ingested.
+
+### Primary Indexes
+
+Having data physically sorted by primary key makes it possible to extract data based on specific values or value ranges with low latency in less than a few dozen milliseconds.
+
+### Secondary Indexes
+
+Unlike other database management systems, secondary indexes in ClickHouse do not point to specific rows or row ranges. Instead, they allow the database to know in advance that all rows in some data parts would not match the query filtering conditions and do not read them at all, thus they are called data skipping indexes.
+
+### Suitable for Online Queries
+
+Most OLAP database management systems do not aim for online queries with sub-second latencies. In alternative systems, report building time of tens of seconds or even minutes is often considered acceptable. Sometimes it takes even more time, which forces systems to prepare reports offline (in advance or by responding with “come back later”).
+
+In ClickHouse "low latency" means that queries can be processed without delay and without trying to prepare an answer in advance, right at the same moment as the user interface page is loading. In other words, online.
+
+### Support for Approximated Calculations
+
+ClickHouse provides various ways to trade accuracy for performance:
+
+Aggregate functions for approximated calculation of the number of distinct values, medians, and quantiles.
+Running a query based on a part (sample) of data and getting an approximated result. In this case, proportionally less data is retrieved from the disk.
+Running an aggregation for a limited number of random keys, instead of for all keys. Under certain conditions for key distribution in the data, this provides a reasonably accurate result while using fewer resources.
+Adaptive Join Algorithm
+
+ClickHouse adaptively chooses how to JOIN multiple tables, by preferring hash-join algorithm and falling back to the merge-join algorithm if there’s more than one large table.
+
+### Data Replication and Data Integrity Support
+
+ClickHouse uses asynchronous multi-master replication. After being written to any available replica, all the remaining replicas retrieve their copy in the background. The system maintains identical data on different replicas. Recovery after most failures is performed automatically, or semi-automatically in complex cases.
+
+### Role-Based Access Control
+
+ClickHouse implements user account management using SQL queries and allows for role-based access control configuration similar to what can be found in ANSI SQL standard and popular relational database management systems.
diff --git a/catalog/clickhouse/metadata.yaml b/catalog/clickhouse/metadata.yaml
new file mode 100644
index 0000000..713da1a
--- /dev/null
+++ b/catalog/clickhouse/metadata.yaml
@@ -0,0 +1,9 @@
+name: ClickHouse
+category: 系统/大数据开发工具
+description: ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
+i18n:
+ en:
+ category: system.dataManagement
+ description: >-
+ ClickHouse is a high-performance, column-oriented SQL database management system (DBMS)
+ for online analytical processing (OLAP).
diff --git a/catalog/clickhouse/x-definitions/app-clickhouse.cue b/catalog/clickhouse/x-definitions/app-clickhouse.cue
new file mode 100644
index 0000000..13ab851
--- /dev/null
+++ b/catalog/clickhouse/x-definitions/app-clickhouse.cue
@@ -0,0 +1,257 @@
+"clickhouse": {
+ annotations: {}
+ labels: {}
+ attributes: {
+ "dynamicParameterMeta": [
+ {
+ "name": "dependencies.zookeeperHost"
+ "type": "ContextSetting"
+ "refType": "zookeeper"
+ "refKey": "hostname"
+ "description": "zookeeper host"
+ "required": true
+ }
+ ]
+ apiResource: {
+ definition: {
+ apiVersion: "bdc.kdp.io/v1alpha1"
+ kind: "Application"
+ type: "clickhouse"
+ }
+ }
+ }
+ description: "clickhouse xdefinition"
+ type: "xdefinition"
+}
+
+template: {
+ output: {
+ apiVersion: "core.oam.dev/v1beta1"
+ kind: "Application"
+ metadata: {
+ name: context.name
+ namespace: context.namespace
+ labels: {
+ "app": context.name
+ "app.core.bdos/type": "system"
+ }
+ }
+ spec: {
+ components: [
+ {
+ name: context.name
+ type: "helm"
+ properties: {
+ chart: "clickhouse"
+ version: parameter.chartVersion
+ url: context.helm_repo_url
+ repoType: "oci"
+ releaseName: context.name
+ targetNamespace: context.namespace
+ values: {
+ image: {
+ registry: context.docker_registry
+ tag: parameter.imageTag
+ }
+ shards: parameter.shards
+ replicaCount: parameter.replicaCount
+ resources: parameter.resources
+ auth: {
+ username: parameter.auth.username
+ password: parameter.auth.password
+ }
+ podAntiAffinityPreset: "soft"
+ persistence: {
+ enabled: true
+ storageClass: context["storage_config.storage_class_mapping.local_disk"]
+ size: parameter.storageSize
+ }
+ metrics: enabled: true
+ zookeeper: enabled: false
+ externalZookeeper: {
+ servers: [
+ parameter.dependencies.zookeeperHost
+ ]
+ port: 2181
+ }
+ }
+ }
+ traits: [
+ {
+ type: "bdos-monitor"
+ properties: {
+ monitortype: "pod"
+ endpoints: [
+ {
+ port: 8001
+ portName: "http-metrics"
+ },
+ ]
+ matchLabels: {
+ "app.kubernetes.io/instance": context.name
+ }
+ }
+ },
+ {
+ type: "bdos-grafana-dashboard"
+ properties: {
+ labels: {
+ "app": "grafana"
+ "grafana_dashboard": "1"
+ }
+ dashboard_data: {
+ "clickhouse-dashboard.json": #"{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations & Alerts","type":"dashboard"},{"datasource":{"type":"prometheus","uid":"prometheus"},"enable":true,"expr":"resets(ClickHouseAsyncMetrics_Uptime{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","hide":false,"iconColor":"rgba(255, 96, 96, 1)","name":"Restarts","showIn":0,"step":"60s","tagKeys":"instance","titleFormat":"Restart","useValueForTime":false}]},"description":"ClickHouse internal exporter metrics","editable":true,"fiscalYearStartMonth":0,"gnetId":14432,"graphTooltip":1,"id":72,"links":[{"asDropdown":false,"icon":"external link","includeVars":false,"keepTime":false,"tags":[],"targetBlank":true,"title":"ClickHouse monitoring docs","tooltip":"","type":"link","url":"https://clickhouse.tech/docs/en/operations/monitoring/"}],"liveNow":false,"panels":[{"collapsed":false,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":136,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Baisc","type":"row"},{"datasource":{"type":"prometheus","uid":"prometheus"},"fieldConfig":{"defaults":{"decimals":1,"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"semi-dark-red","value":null},{"color":"semi-dark-orange","value":300},{"color":"light-green","value":3600}]},"unit":"s","unitScale":true},"overrides":[]},"gridPos":{"h":4,"w":8,"x":0,"y":1},"id":132,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["mean"],"fields":"","values":false},"showPercentChange":false,"textMode":"auto","wideLayout":true},"pluginVersion":"10.3.3","targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"editorMode":"code","expr":"ClickHouseAsyncMetrics_Uptime{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"","range":true,"refId":"A"}],"title":"UpTime","type":"stat"},{"datasource":{"type":"prometheus","uid":"prometheus"},"fieldConfig":{"defaults":{"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"semi-dark-red","value":null},{"color":"semi-dark-orange","value":300},{"color":"light-green","value":3600}]},"unit":"none","unitScale":true},"overrides":[]},"gridPos":{"h":4,"w":8,"x":8,"y":1},"id":133,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["mean"],"fields":"","values":false},"showPercentChange":false,"textMode":"auto","wideLayout":true},"pluginVersion":"10.3.3","targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"editorMode":"code","expr":"ClickHouseMetrics_VersionInteger{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"","range":true,"refId":"A"}],"title":"Version","type":"stat"},{"datasource":{"type":"prometheus","uid":"prometheus"},"fieldConfig":{"defaults":{"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"semi-dark-red","value":null},{"color":"semi-dark-orange","value":300},{"color":"light-green","value":3600}]},"unit":"none","unitScale":true},"overrides":[]},"gridPos":{"h":4,"w":8,"x":16,"y":1},"id":134,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["mean"],"fields":"","values":false},"showPercentChange":false,"textMode":"auto","wideLayout":true},"pluginVersion":"10.3.3","targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"editorMode":"code","expr":"count(clickhouse_table_parts_count{database!~\"system\",pod=~\"$pod\",namespace=\"$namespace\"})","interval":"","legendFormat":"","range":true,"refId":"A"}],"title":"Tables","type":"stat"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Total amount of memory (bytes) allocated by the server.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":0,"y":5},"hiddenSeries":false,"id":29,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"editorMode":"code","exemplar":false,"expr":"ClickHouseMetrics_MemoryTracking{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","range":true,"refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Memory","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"bytes","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of connections to TCP server (clients with native interface), also included server-server distributed query connections. \nNumber of connections to HTTP server","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":5},"hiddenSeries":false,"id":73,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_TCPConnection{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"tcp","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_HTTPConnection{pod=~\"$pod\",namespace=\"$namespace\"}","hide":false,"interval":"","legendFormat":"http","refId":"B"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"ClickHouseMetrics_InterserverConnection{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"interserver","refId":"C"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"ClickHouseMetrics_MySQLConnection{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"mysql","refId":"D"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"ClickHouseMetrics_PostgreSQLConnection{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"postgre sql","refId":"E"}],"thresholds":[],"timeRegions":[],"title":"Connections","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"collapsed":false,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":13},"id":12,"panels":[],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Queries","type":"row"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":14},"hiddenSeries":false,"id":2,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_Query{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"queries","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"max_over_time( (irate(ClickHouseProfileEvents_FailedQuery{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"failed queries","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"Queries","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Avg queries latencies","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":14},"hiddenSeries":false,"id":8,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null as zero","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"increase(ClickHouseProfileEvents_QueryTimeMicroseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_Query{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"all queries","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"increase(ClickHouseProfileEvents_InsertQueryTimeMicroseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_InsertQuery{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"insert queries","refId":"B"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"increase(ClickHouseProfileEvents_SelectQueryTimeMicroseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_SelectQuery{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"select queries","refId":"C"}],"thresholds":[],"timeRegions":[],"title":"Query latencies (avg)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"µs","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false,"alignLevel":1}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Same as Queries, but only for SELECT queries.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":22},"hiddenSeries":false,"id":3,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectQuery{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"select queries","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"max_over_time( (irate(ClickHouseProfileEvents_FailedSelectQuery{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"failed select queries","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"SELECT queries","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Same as Queries, but only for INSERT queries.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":22},"hiddenSeries":false,"id":4,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_InsertQuery{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"insert queries","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_FailedInsertQuery{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","hide":false,"interval":"","legendFormat":"failed insert queries","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"INSERT queries","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of queries that are stopped and waiting due to 'priority' setting.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":30},"hiddenSeries":false,"id":86,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseMetrics_QueryPreempted{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Query preemted","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times when memory limit exceeded for query.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":30},"hiddenSeries":false,"id":85,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_QueryMemoryLimitExceeded{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Queries memory limit","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":38},"id":64,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of rows INSERTed to all tables.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":39},"hiddenSeries":false,"id":62,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_InsertedRows{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Inserted rows","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of bytes (uncompressed; for columns as they stored in memory) INSERTed to all tables.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":39},"hiddenSeries":false,"id":65,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_InsertedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Inserted bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":47},"hiddenSeries":false,"id":66,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DelayedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Delayed inserts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the INSERT of a block to a MergeTree table was rejected with 'Too many parts' exception due to high number of active data parts for partition.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":47},"hiddenSeries":false,"id":67,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_RejectedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Rejected inserts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":55},"hiddenSeries":false,"id":69,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null as zero","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"increase(ClickHouseProfileEvents_DelayedInsertsMilliseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_DelayedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Delayed inserts blocks (avg)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"µs","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false,"alignLevel":1}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Insert","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":39},"id":125,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of data parts selected to read from a MergeTree table.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":4},"hiddenSeries":false,"id":126,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectedParts{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Parts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of (non-adjacent) ranges in all data parts selected to read from a MergeTree table.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":4},"hiddenSeries":false,"id":127,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectedRanges{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Ranges","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of marks (index granules) selected to read from a MergeTree table.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":12},"hiddenSeries":false,"id":128,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectedMarks{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Marks","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of rows SELECTed from all tables.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":12},"hiddenSeries":false,"id":129,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectedRows{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Rows","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of bytes (uncompressed; for columns as they stored in memory) SELECTed from all tables.","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":20},"hiddenSeries":false,"id":130,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SelectedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Select","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":40},"id":138,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the number of query processing threads was lowered due to slow reads.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":17},"hiddenSeries":false,"id":72,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReadBackoff{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Read backoff","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of reads from a file that were slow. This indicate system overload. Thresholds are controlled by read_backoff_* settings.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":7,"w":12,"x":12,"y":17},"hiddenSeries":false,"id":71,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_SlowRead{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Slow reads","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Read","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":41},"id":17,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the 'lseek' function was called.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":6},"hiddenSeries":false,"id":20,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_Seek{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"lseek","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"ops","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of files opened","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":6},"hiddenSeries":false,"id":19,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_FileOpen{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Open Files","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"ops","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of reads (read/pread) from a file descriptor. Does not include sockets.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":14},"hiddenSeries":false,"id":22,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReadBufferFromFileDescriptorRead{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"read","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReadBufferFromFileDescriptorReadFailed{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"read failed","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"Read from FD","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"ops","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of writes (write/pwrite) to a file descriptor. Does not include sockets.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":14},"hiddenSeries":false,"id":23,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_WriteBufferFromFileDescriptorWrite{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"write","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"max_over_time( (irate(ClickHouseProfileEvents_WriteBufferFromFileDescriptorWriteFailed{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"write failed","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"Write to FD","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"ops","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":22},"hiddenSeries":false,"id":21,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReadBufferFromFileDescriptorReadBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Read bytes from FD","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of bytes written to file descriptors. If the file is compressed, this will show compressed data size.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":22},"hiddenSeries":false,"id":26,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_WriteBufferFromFileDescriptorWriteBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Write bytes to FD","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"*``compressed``: Number of bytes (the number of bytes before decompression) read from compressed sources (files, network).\n\n*``uncompressed``: Number of uncompressed bytes (the number of bytes after decompression) read from compressed sources (files, network).","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":30},"hiddenSeries":false,"id":51,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"sort":"max","sortDesc":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReadCompressedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"compressed","refId":"A"},{"datasource":{"type":"prometheus","uid":"prometheus"},"expr":"max_over_time( (irate(ClickHouseProfileEvents_CompressedReadBufferBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"uncompressed","refId":"B"}],"thresholds":[],"timeRegions":[],"title":"Read compressed bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of compressed blocks (the blocks of data that are compressed independent of each other) read from compressed sources (files, network).","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":30},"hiddenSeries":false,"id":52,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_CompressedReadBufferBlocks{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"peaks - {{instance}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Compressed blocks","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"IO","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":42},"id":56,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of Replicated tables that are currently in readonly state due to re-initialization after ZooKeeper session loss or due to startup without ZooKeeper configured.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":7},"hiddenSeries":false,"id":74,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_ReadonlyReplica","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Readonly replica","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times a data part was failed to download from replica of a ReplicatedMergeTree table.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":7},"hiddenSeries":false,"id":58,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReplicatedPartFailedFetches{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Replicated part failed fetches","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times a data part was downloaded from replica of a ReplicatedMergeTree table.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":15},"hiddenSeries":false,"id":57,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReplicatedPartFetches{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Replicated part fetches","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times we prefer to download already merged part from replica of ReplicatedMergeTree table instead of performing a merge ourself (usually we prefer doing a merge ourself to save network traffic). This happens when we have not all source parts to perform a merge or when the data part is old enough.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":15},"hiddenSeries":false,"id":60,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReplicatedPartFetchesOfMerged{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Replicated part fetches of merged","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times data parts of ReplicatedMergeTree tables were successfully merged.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":23},"hiddenSeries":false,"id":59,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReplicatedPartMerges{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Replicated part merges","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times a data part that we wanted doesn't exist on any replica (even on replicas that are offline right now). That data parts are definitely lost. This is normal due to asynchronous replication (if quorum inserts were not enabled), when the replica on which the data part was written was failed and when it became online after fail it doesn't contain that data part.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":23},"hiddenSeries":false,"id":61,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ReplicatedDataLoss{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Replicated part data loss","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Replicas","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":43},"id":76,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of launched background merges.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":8},"hiddenSeries":false,"id":77,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_Merge{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Merge","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Rows read for background merges. This is the number of rows before merge.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":8},"hiddenSeries":false,"id":78,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergedRows{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Merged rows","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":16},"hiddenSeries":false,"id":79,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergedUncompressedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Merge uncompressed bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Avg merge duration","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":16},"hiddenSeries":false,"id":80,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null as zero","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"increase(ClickHouseProfileEvents_MergesTimeMilliseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_Merge{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Merge duration (avg)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"µs","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false,"alignLevel":1}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of rows INSERTed to MergeTree tables.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":24},"hiddenSeries":false,"id":81,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergeTreeDataWriterRows{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"MergeTree rows","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of blocks INSERTed to MergeTree tables. Each block forms a data part of level zero.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":24},"hiddenSeries":false,"id":82,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergeTreeDataWriterBlocks{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"MergeTree blocks","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":32},"hiddenSeries":false,"id":83,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergeTreeDataWriterUncompressedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"MergeTree uncompressed bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Bytes written to filesystem for data INSERTed to MergeTree tables.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":32},"hiddenSeries":false,"id":84,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MergeTreeDataWriterCompressedBytes{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"MergeTree compressed bytes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Disk space reserved for currently running background merges. It is slightly more than the total size of currently merging parts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":40},"hiddenSeries":false,"id":123,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_DiskSpaceReservedForMerge","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Reserved space","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"bytes","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Merge","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":44},"id":92,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":9},"hiddenSeries":false,"id":102,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_UncompressedCacheHits{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Uncompressed Cache Hits","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":9},"hiddenSeries":false,"id":103,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_UncompressedCacheMisses{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Uncompressed Cache Misses","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":17},"hiddenSeries":false,"id":104,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MarkCacheHits{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Mark Cache Hits","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"unitScale":true},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":17},"hiddenSeries":false,"id":105,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"10.3.3","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_MarkCacheMisses{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Mark Cache Misses","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Cache","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":45},"id":90,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"The part is generating now, it is not in data_parts list.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":10},"hiddenSeries":false,"id":114,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsTemporary{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Temporary","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"The part is in data_parts, but not used for SELECTs.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":10},"hiddenSeries":false,"id":115,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsPreCommitted{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Pre commited","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"The part is in data_parts, but not used for SELECTs.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":18},"hiddenSeries":false,"id":116,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsCommitted{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Commited","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Not active data part, but could be used by only current SELECTs, could be deleted after SELECTs finishes.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":18},"hiddenSeries":false,"id":117,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsOutdated{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Outdated","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Not active data part with identity refcounter, it is deleting right now by a cleaner.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":26},"hiddenSeries":false,"id":118,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsDeleting{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Deleting","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Part was moved to another disk and should be deleted in own destructor.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":26},"hiddenSeries":false,"id":119,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsDeleteOnDestroy{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Delete on destroy","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Wide parts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":34},"hiddenSeries":false,"id":120,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsWide","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Wide","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Compact parts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":34},"hiddenSeries":false,"id":122,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsCompact","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Compact","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"In-memory parts.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":42},"hiddenSeries":false,"id":121,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_PartsInMemory{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"In-memory","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Parts","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":46},"id":94,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of connections to remote servers sending data that was INSERTed into Distributed tables. Both synchronous and asynchronous mode.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":11},"hiddenSeries":false,"id":112,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_DistributedSend{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Send","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of pending files to process for asynchronous insertion into Distributed tables. Number of files for every shard is summed.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":11},"hiddenSeries":false,"id":113,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_DistributedFilesToInsert{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Files to insert","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the INSERT of a block to a Distributed table was throttled due to high number of pending bytes.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":19},"hiddenSeries":false,"id":106,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DistributedDelayedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed delayed inserts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times the INSERT of a block to a Distributed table was rejected with 'Too many bytes' exception due to high number of pending bytes.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":19},"hiddenSeries":false,"id":107,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DistributedRejectedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed rejected inserts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Total number of milliseconds spent while the INSERT of a block to a Distributed table was throttled due to high number of pending bytes.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":27},"hiddenSeries":false,"id":108,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null as zero","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"increase(ClickHouseProfileEvents_DistributedDelayedInsertsMilliseconds{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval]) / increase(ClickHouseProfileEvents_DistributedDelayedInserts{pod=~\"$pod\",namespace=\"$namespace\"}[$__rate_interval])","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed delayed inserts blocks (avg)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"µs","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false,"alignLevel":1}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Total count when distributed connection fails with retry","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":27},"hiddenSeries":false,"id":109,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DistributedConnectionFailTry{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed connection fail try","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Total count when distributed connection fails after all retries finished","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":35},"hiddenSeries":false,"id":110,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DistributedConnectionFailAtAll{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed connection fail at all","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":35},"hiddenSeries":false,"id":111,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_DistributedSyncInsertionTimeoutExceeded{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Distributed sync insertation timeout","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Distributed","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":47},"id":88,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundProcessingPool (merges, mutations, or replication queue bookkeeping)","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":12},"hiddenSeries":false,"id":95,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundPoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundPool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundFetchesPool","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":12},"hiddenSeries":false,"id":96,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundFetchesPoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundFetchesPool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundProcessingPool for moves","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":20},"hiddenSeries":false,"id":97,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundMovePoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundMovePool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":20},"hiddenSeries":false,"id":98,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundSchedulePoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundSchedulePool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundBufferFlushSchedulePool. This pool is used for periodic Buffer flushes","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":28},"hiddenSeries":false,"id":99,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundBufferFlushSchedulePoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundBufferFlushSchedulePool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundDistributedSchedulePool. This pool is used for distributed sends that is done in background.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":28},"hiddenSeries":false,"id":100,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundDistributedSchedulePoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundDistributedSchedulePool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of active tasks in BackgroundProcessingPool for message streaming","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":36},"hiddenSeries":false,"id":101,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_BackgroundMessageBrokerSchedulePoolTask{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"BackgroundMessageBrokerSchedulePool task","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Background pool","type":"row"},{"collapsed":true,"datasource":{"type":"prometheus","uid":"prometheus"},"gridPos":{"h":1,"w":24,"x":0,"y":48},"id":28,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":13},"hiddenSeries":false,"id":30,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperInit{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Init","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":13},"hiddenSeries":false,"id":31,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperTransactions{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Transactions","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":21},"hiddenSeries":false,"id":32,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperList{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"List","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":21},"hiddenSeries":false,"id":33,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperCreate{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Create","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":29},"hiddenSeries":false,"id":34,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperRemove{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Remove","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":29},"hiddenSeries":false,"id":35,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperExists{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Exists","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":37},"hiddenSeries":false,"id":36,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperGet{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Get","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":37},"hiddenSeries":false,"id":37,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperSet{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Set","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":45},"hiddenSeries":false,"id":38,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperMulti{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Multi","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":45},"hiddenSeries":false,"id":39,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperCheck{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Check","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":53},"hiddenSeries":false,"id":40,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperClose{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Close","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":53},"hiddenSeries":false,"id":41,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperWatchResponse{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Watch response","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"reqps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":61},"hiddenSeries":false,"id":42,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperUserExceptions{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"User Exceptions","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":61},"hiddenSeries":false,"id":43,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperHardwareExceptions{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Hardware Exceptions","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":69},"hiddenSeries":false,"id":46,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperBytesReceived{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Bytes received","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":69},"hiddenSeries":false,"id":45,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_ZooKeeperBytesSent{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Bytes sent","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"binBps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of sessions (connections) to ZooKeeper. Should be no more than one, because using more than one connection to ZooKeeper may lead to bugs due to lack of linearizability (stale reads) that ZooKeeper consistency model allows.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":77},"hiddenSeries":false,"id":48,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_ZooKeeperSession{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Sessions","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of ephemeral nodes hold in ZooKeeper.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":77},"hiddenSeries":false,"id":47,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_EphemeralNode{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Ephemeral Node","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of watches (event subscriptions) in ZooKeeper.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":85},"hiddenSeries":false,"id":50,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_ZooKeeperWatch{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Watches","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of requests to ZooKeeper in fly.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":85},"hiddenSeries":false,"id":49,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"ClickHouseMetrics_ZooKeeperRequest{pod=~\"$pod\",namespace=\"$namespace\"}","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Requests","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"short","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":{"type":"prometheus","uid":"prometheus"},"description":"Number of times an error happened while trying to remove ephemeral node. This is not an issue, because our implementation of ZooKeeper library guarantee that the session will expire and the node will be removed.","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":93},"hiddenSeries":false,"id":70,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":2,"maxDataPoints":200,"nullPointMode":"null","options":{"alertThreshold":true},"percentage":false,"pluginVersion":"7.3.5","pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"exemplar":false,"expr":"max_over_time( (irate(ClickHouseProfileEvents_CannotRemoveEphemeralNode{pod=~\"$pod\",namespace=\"$namespace\"}[2m]))[$__rate_interval:15s] )","interval":"","legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeRegions":[],"title":"Remove ephemeral node failed","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transparent":true,"type":"graph","xaxis":{"mode":"time","show":true,"values":[]},"yaxes":[{"$$hashKey":"object:176","format":"cps","label":"","logBase":1,"show":true},{"$$hashKey":"object:177","format":"short","logBase":1,"show":true}],"yaxis":{"align":false}}],"targets":[{"datasource":{"type":"prometheus","uid":"prometheus"},"refId":"A"}],"title":"Zookeeper","type":"row"}],"refresh":"30s","schemaVersion":39,"tags":["ClickHouse","DB"],"templating":{"list":[{"current":{"selected":false,"text":"Prometheus","value":"prometheus"},"hide":0,"includeAll":false,"label":"DataSource","multi":false,"name":"datasource","options":[],"query":"prometheus","queryValue":"","refresh":1,"regex":"","skipUrlSync":false,"type":"datasource"},{"current":{"selected":false,"text":"kdp-data","value":"kdp-data"},"datasource":{"type":"prometheus","uid":"${datasource}"},"definition":"label_values(ClickHouseAsyncMetrics_Uptime,namespace)","hide":0,"includeAll":false,"multi":false,"name":"namespace","options":[],"query":{"qryType":1,"query":"label_values(ClickHouseAsyncMetrics_Uptime,namespace)","refId":"PrometheusVariableQueryEditor-VariableQuery"},"refresh":1,"regex":"","skipUrlSync":false,"sort":1,"type":"query"},{"current":{"selected":true,"text":["All"],"value":["$__all"]},"datasource":{"type":"prometheus","uid":"prometheus"},"definition":"label_values(ClickHouseAsyncMetrics_Uptime,pod)","hide":0,"includeAll":true,"label":"Pod","multi":true,"name":"pod","options":[],"query":{"qryType":1,"query":"label_values(ClickHouseAsyncMetrics_Uptime,pod)","refId":"PrometheusVariableQueryEditor-VariableQuery"},"refresh":1,"regex":"","skipUrlSync":false,"sort":5,"tagValuesQuery":"","tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-15m","to":"now"},"timepicker":{},"timezone":"","title":"ClickHouse","uid":"clickhouse","version":4,"weekStart":""}"#
+ }
+ }
+ },
+ {
+ type: "bdos-ingress"
+ properties: {
+ rules: [
+ {
+ host: context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"]
+ paths: [
+ {
+ path: "/"
+ servicePort: 8123
+ serviceName: context.name
+ },
+ ]
+ },
+ ]
+ tls: [
+ {
+ hosts: [
+ context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"],
+ ]
+ tlsSecretName: context["ingress.tls_secret_name"]
+ },
+ ]
+ }
+ },
+ ]
+ },
+ {
+ "name": "\(context.name)-config"
+ "type": "k8s-objects"
+ "properties": {
+ "objects": [
+ {
+ "apiVersion": "bdc.kdp.io/v1alpha1"
+ "kind": "ContextSetting"
+ "metadata": {
+ "namespace": context.namespace
+ "name": "\(context.bdc)-\(context.name)"
+ "annotations": {
+ "setting.ctx.bdc.kdp.io/type": "clickhouse"
+ "setting.ctx.bdc.kdp.io/origin": "system"
+ }
+ }
+ "spec": {
+ "name": "clickhouse-context"
+ "type": "clickhouse"
+ "properties": {
+ "host": "clickhouse.\(context.namespace).svc.cluster.local:8123"
+ "hostname": "clickhouse.\(context.namespace).svc.cluster.local"
+ "port": "8123"
+ }
+ }
+ }
+ ]
+ }
+ },
+ ]
+ policies: [
+ {
+ name: "shared-resource"
+ type: "shared-resource"
+ properties: {
+ rules: [
+ {
+ selector: {
+ traitTypes: [
+ "bdos-grafana-dashboard",
+ ]
+ }
+ },
+ ]
+ }
+ }
+ ]
+ }
+ }
+ parameter: {
+ // +ui:title=组件依赖
+ // +ui:order=1
+ dependencies: {
+ // +ui:description=Zookeeper 地址
+ // +ui:order=1
+ // +err:options={"required":"请先安装 Zookeeper"}
+ zookeeperHost: string
+ }
+ // +ui:description=分片数
+ // +ui:order=2
+ // +minimum=1
+ shards: *1 | int
+ // +ui:description=副本数
+ // +ui:order=3
+ // +minimum=1
+ replicaCount: *1 | int
+ // +ui:description=存储大小
+ // +ui:order=4
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的存储格式,如1024Mi, 1Gi"}
+ storageSize: *"20Gi" | string
+ // +ui:description=资源规格
+ // +ui:order=5
+ resources: {
+ // +ui:description=预留
+ // +ui:order=1
+ requests: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"0.1" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"512Mi" | string
+ }
+ // +ui:description=限制
+ // +ui:order=2
+ limits: {
+ // +ui:description=CPU
+ // +ui:order=1
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的cpu格式,如1, 1000m"}
+ cpu: *"4.0" | string
+ // +ui:description=内存
+ // +ui:order=2
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ memory: *"4096Mi" | string
+ }
+ }
+ // +ui:description=clickhouse管理员设置
+ // +ui:order=6
+ auth: {
+ // +ui:description=管理员用户名
+ // +ui:order=1
+ username: *"default" | string
+ // +ui:description=管理员密码。部署后无法在此页面更改密码。
+ // +ui:options={"showPassword": true}
+ // +ui:order=2
+ password: *"ckdba.123" | string
+ }
+ // +ui:description=Helm Chart 版本号
+ // +ui:order=100
+ // +ui:options={"disabled":true}
+ chartVersion: *"6.0.2" | string
+ // +ui:description=镜像版本
+ // +ui:order=101
+ // +ui:options={"disabled":true}
+ imageTag: *"24.3.2-debian-12-r2" | string
+ }
+}
diff --git a/catalog/clickhouse/x-definitions/setting-clickhouse.cue b/catalog/clickhouse/x-definitions/setting-clickhouse.cue
new file mode 100644
index 0000000..39e8683
--- /dev/null
+++ b/catalog/clickhouse/x-definitions/setting-clickhouse.cue
@@ -0,0 +1,37 @@
+"ctx-setting-clickhouse": {
+ description: "Clickhouse context setting resource"
+ type: "xdefinition"
+ attributes: {
+ apiResource: {
+ definition: {
+ apiVersion: "bdc.kdp.io/v1alpha1"
+ kind: "ContextSetting"
+ type: "clickhouse"
+ }
+ }
+ }
+ labels: {}
+ annotations: {}
+}
+
+template: {
+ output: {
+ apiVersion: "v1"
+ kind: "ConfigMap"
+ metadata: {
+ name: context.name
+ namespace: context.namespace
+ annotations: context.bdcAnnotations
+ }
+ data: {
+ "host": parameter.host
+ "hostname": parameter.hostname
+ "port": parameter.port
+ }
+ }
+ parameter: {
+ host: string
+ hostname: string
+ port: string
+ }
+}
\ No newline at end of file
diff --git a/catalog/flink/apps/streampark.app/README.md b/catalog/flink/apps/streampark.app/README.md
index 71e24ab..8ada2bc 100644
--- a/catalog/flink/apps/streampark.app/README.md
+++ b/catalog/flink/apps/streampark.app/README.md
@@ -19,7 +19,7 @@ KDP 集成 StreamPark 主要用于方便用户提交 Flink SQL 作业到 Flink s
- 集群名称:`demo`
- 执行模式: `remote`
- Flink版本: `flink-1.17.1` (选择上一步添加的Flink版本)
-- JobManager URL: `http://flink-session-cluster-rest:8081` (Flink session集群的Rest地址, 也可以使用Ingress地址需要带上80端口)
+- JobManager URL: `http://flink-session-cluster-rest:8081` (注意:使用k8s内部service地址无法在浏览器访问;也可以使用Ingress地址需要带上80端口,如`http://flink-session-cluster-kdp-data.kdp-e2e.io:80`)
#### 添加作业
@@ -31,35 +31,35 @@ KDP 集成 StreamPark 主要用于方便用户提交 Flink SQL 作业到 Flink s
- Flink集群: `demo` (上面步骤添加的Flink集群)
- Flink SQL:
- ```sql
- CREATE TABLE datagen (
- f_sequence INT,
- f_random INT,
- f_random_str STRING,
- ts AS localtimestamp,
- WATERMARK FOR ts AS ts
- ) WITH (
- 'connector' = 'datagen',
- -- optional options --
- 'rows-per-second'='5',
- 'fields.f_sequence.kind'='sequence',
- 'fields.f_sequence.start'='1',
- 'fields.f_sequence.end'='500',
- 'fields.f_random.min'='1',
- 'fields.f_random.max'='500',
- 'fields.f_random_str.length'='10'
- );
+```sql
+CREATE TABLE datagen (
+ f_sequence INT,
+ f_random INT,
+ f_random_str STRING,
+ ts AS localtimestamp,
+ WATERMARK FOR ts AS ts
+) WITH (
+ 'connector' = 'datagen',
+ -- optional options --
+ 'rows-per-second'='5',
+ 'fields.f_sequence.kind'='sequence',
+ 'fields.f_sequence.start'='1',
+ 'fields.f_sequence.end'='500',
+ 'fields.f_random.min'='1',
+ 'fields.f_random.max'='500',
+ 'fields.f_random_str.length'='10'
+);
- CREATE TABLE print_table (
- f_sequence INT,
- f_random INT,
- f_random_str STRING
- ) WITH (
- 'connector' = 'print'
- );
+CREATE TABLE print_table (
+ f_sequence INT,
+ f_random INT,
+ f_random_str STRING
+ ) WITH (
+ 'connector' = 'print'
+);
- INSERT INTO print_table select f_sequence,f_random,f_random_str from datagen;
- ```
+INSERT INTO print_table select f_sequence,f_random,f_random_str from datagen;
+```
- 作业名称: `datagen-print`
@@ -67,7 +67,7 @@ KDP 集成 StreamPark 主要用于方便用户提交 Flink SQL 作业到 Flink s
#### 运行作业
- 在作业管理页面,点击`datagen-print`作业的`发布作业`按钮,稍等片刻,发布状态变为`Done` `Success`
-- 点击`datagen-print`作业的`启动作业`按钮,关闭弹窗中的`from savepoin`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running` `Finished`
+- 点击`datagen-print`作业的`启动作业`按钮,关闭弹窗中的`from savepoint`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running` `Finished`
diff --git a/catalog/flink/apps/streampark.app/i18n/en/README.md b/catalog/flink/apps/streampark.app/i18n/en/README.md
index 81bb8c8..9096d5b 100644
--- a/catalog/flink/apps/streampark.app/i18n/en/README.md
+++ b/catalog/flink/apps/streampark.app/i18n/en/README.md
@@ -66,5 +66,5 @@ After the addition is successful, it will jump to the job management page
#### Run the job
- In the job management page, click the `Release Application` button of the `datagen-print` job, wait for a moment, the publish status becomes `Done` `Success`
-- Click the `Start Application` button of the `datagen-print` job, close the `from savepoin` in the pop-up window, click `Apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting` `Running` `Finished` in turn
+- Click the `Start Application` button of the `datagen-print` job, close the `from savepoint` in the pop-up window, click `Apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting` `Running` `Finished` in turn
\ No newline at end of file
diff --git a/catalog/flink/x-definitions/app-streampark.cue b/catalog/flink/x-definitions/app-streampark.cue
index 896d151..993f43e 100644
--- a/catalog/flink/x-definitions/app-streampark.cue
+++ b/catalog/flink/x-definitions/app-streampark.cue
@@ -78,6 +78,9 @@ template: {
spec: {
containers: [{
name: context.name
+ if parameter.resources != _|_ {
+ resources: parameter.resources
+ }
env: [
{
name: "TZ"
@@ -135,11 +138,19 @@ template: {
port: 10000
scheme: "HTTP"
}
- initialDelaySeconds: 60
- periodSeconds: 10
- failureThreshold: 3
- timeoutSeconds: 3
- successThreshold: 1
+ periodSeconds: 30
+ failureThreshold: 3
+ timeoutSeconds: 3
+ successThreshold: 1
+ }
+ startupProbe: {
+ httpGet: {
+ path: "/actuator/health/livenessState"
+ port: 10000
+ scheme: "HTTP"
+ }
+ failureThreshold: 30
+ periodSeconds: 10
}
}]
restartPolicy: "Always"
@@ -225,7 +236,6 @@ template: {
},
{
properties: {
- ingressClassName: parameter.ingressClassName
stickySession: true
service: {
ports: [
@@ -359,10 +369,6 @@ template: {
}
}
- // +ui:description=配置访问 Ingress 地址的 IngressClass, 如果您不清楚IngressClass,请勿随意更改
- // +ui:order=4
- ingressClassName: *"kong" | string
-
// +ui:description=镜像版本
// +ui:options={"disabled": true}
// +ui:order=5
diff --git a/catalog/hdfs/apps/hdfs.app/app.yaml b/catalog/hdfs/apps/hdfs.app/app.yaml
index 1044c08..ebd62a7 100644
--- a/catalog/hdfs/apps/hdfs.app/app.yaml
+++ b/catalog/hdfs/apps/hdfs.app/app.yaml
@@ -20,24 +20,14 @@ spec:
hadoop.tmp.dir: "/usr/local/hadoop/tmp"
fs.trash.interval: "1440"
fs.permissions.umask-mode: "037"
- hadoop.proxyuser.ec2-user.groups: "*"
- hadoop.proxyuser.ec2-user.hosts: "*"
hadoop.proxyuser.root.groups: "*"
hadoop.proxyuser.root.hosts: "*"
- hadoop.proxyuser.sqoop.groups: "*"
- hadoop.proxyuser.sqoop.hosts: "*"
hadoop.proxyuser.hue.groups: "*"
hadoop.proxyuser.hue.hosts: "*"
- hadoop.proxyuser.zeppelin.groups: "*"
- hadoop.proxyuser.zeppelin.hosts: "*"
hadoop.proxyuser.hive.groups: "*"
hadoop.proxyuser.hive.hosts: "*"
hadoop.proxyuser.httpfs.groups: "*"
hadoop.proxyuser.httpfs.hosts: "*"
- hadoop.proxyuser.livy.groups: "*"
- hadoop.proxyuser.livy.hosts: "*"
- hadoop.proxyuser.dcos.groups: "*"
- hadoop.proxyuser.dcos.hosts: "*"
hdfsSite:
dfs.block.access.token.enable: "true"
dfs.permissions.ContentSummary.subAccess: "true"
diff --git a/catalog/hdfs/x-definitions/app-hdfs.cue b/catalog/hdfs/x-definitions/app-hdfs.cue
index 70ca9ac..ce87fe5 100644
--- a/catalog/hdfs/x-definitions/app-hdfs.cue
+++ b/catalog/hdfs/x-definitions/app-hdfs.cue
@@ -529,37 +529,10 @@ template: {
}
// +ui:description=自定义 core-site.xml 内容
// +ui:order=10
- coreSite: *{
- "hadoop.tmp.dir": "/usr/local/hadoop/tmp"
- "fs.trash.interval": "1440"
- "fs.permissions.umask-mode": "037"
- "hadoop.proxyuser.ec2-user.groups": "*"
- "hadoop.proxyuser.ec2-user.hosts": "*"
- "hadoop.proxyuser.root.groups": "*"
- "hadoop.proxyuser.root.hosts": "*"
- "hadoop.proxyuser.sqoop.groups": "*"
- "hadoop.proxyuser.sqoop.hosts": "*"
- "hadoop.proxyuser.hue.groups": "*"
- "hadoop.proxyuser.hue.hosts": "*"
- "hadoop.proxyuser.zeppelin.groups": "*"
- "hadoop.proxyuser.zeppelin.hosts": "*"
- "hadoop.proxyuser.hive.groups": "*"
- "hadoop.proxyuser.hive.hosts": "*"
- "hadoop.proxyuser.httpfs.groups": "*"
- "hadoop.proxyuser.httpfs.hosts": "*"
- "hadoop.proxyuser.livy.groups": "*"
- "hadoop.proxyuser.livy.hosts": "*"
- "hadoop.proxyuser.dcos.groups": "*"
- "hadoop.proxyuser.dcos.hosts": "*"
- } | {...}
+ coreSite: {...}
// +ui:description=自定义 hdfs-site.xml 内容
// +ui:order=11
- hdfsSite: *{
- "dfs.block.access.token.enable": "true"
- "dfs.permissions.ContentSummary.subAccess": "true"
- "dfs.namenode.name.dir": "file:///hadoop/dfs/name"
- "dfs.datanode.max.transfer.threads": "8192"
- } | {...}
+ hdfsSite: {...}
// +ui:description=Helm Chart 版本号
// +ui:order=100
// +ui:options={"disabled":true}
diff --git a/catalog/hdfs/x-definitions/app-httpfs.cue b/catalog/hdfs/x-definitions/app-httpfs.cue
index 5661e76..4fcc3da 100644
--- a/catalog/hdfs/x-definitions/app-httpfs.cue
+++ b/catalog/hdfs/x-definitions/app-httpfs.cue
@@ -130,7 +130,7 @@ template: {
"successThreshold": 1
"failureThreshold": 3
}
- if parameter["resources"] != _|_ {
+ if parameter.resources != _|_ {
resources: parameter.resources
}
volumeMounts: [{
diff --git a/catalog/hive/x-definitions/app-hive-metastore.cue b/catalog/hive/x-definitions/app-hive-metastore.cue
index b2ca98f..04ee9a5 100644
--- a/catalog/hive/x-definitions/app-hive-metastore.cue
+++ b/catalog/hive/x-definitions/app-hive-metastore.cue
@@ -409,6 +409,443 @@ template: {
"""
}
},
+ {
+ apiVersion: "v1",
+ kind: "ConfigMap",
+ metadata: {
+ name: "hms-admin-cfg"
+ },
+ data: {
+ "hms-json-export.yml": #"""
+ metrics:
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..create_total_count_dbs}'
+ labels:
+ environment: hms # static label
+ values:
+ create_total_count_dbs: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..create_total_count_tables}'
+ labels:
+ environment: hms # static label
+ values:
+ create_total_count_tables: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..create_total_count_partitions}'
+ labels:
+ environment: hms # static label
+ values:
+ create_total_count_partitions: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..delete_total_count_dbs}'
+ labels:
+ environment: hms # static label
+ values:
+ delete_total_count_dbs: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..delete_total_count_tables}'
+ labels:
+ environment: hms # static label
+ values:
+ delete_total_count_tables: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..delete_total_count_partitions}'
+ labels:
+ environment: hms # static label
+ values:
+ delete_total_count_partitions: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..directsql_errors}'
+ labels:
+ environment: hms # static label
+ values:
+ directsql_errors: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..open_connections}'
+ labels:
+ environment: hms # static label
+ values:
+ open_connections: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..direct\.capacity}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_direct_capacity: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..direct\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_direct_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..direct\.used}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_direct_used: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..mapped\.capacity}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_mapped_capacity: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..mapped\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_mapped_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..mapped\.used}'
+ labels:
+ environment: hms # static label
+ values:
+ buffers_mapped_used: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..heap\.committed}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_heap_committed: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..heap\.init}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_heap_init: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..heap\.max}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_heap_max: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..heap\.usage}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_heap_usage: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..heap\.used}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_heap_used: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..non-heap\.committed}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_non_heap_committed: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..non-heap\.init}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_non_heap_init: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..non-heap\.max}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_non_heap_max: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..non-heap\.usage}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_non_heap_usage: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..non-heap\.used}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_non_heap_used: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..pools\.Code-Cache\.usage}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_pools_CodeCache_usage: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..pools\.Compressed-Class-Space\.usage}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_pools_CompressedClassSpace_usage: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..pools\.Metaspace\.usage}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_pools_Metaspace_usage: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total\.committed}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_total_committed: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total\.init}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_total_init: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total\.max}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_total_max: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total\.used}'
+ labels:
+ environment: hms # static label
+ values:
+ memory_total_used: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..blocked\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_blocked_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..daemon\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_daemon_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..deadlock\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_deadlock_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..new\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_new_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..runnable\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_runnable_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..terminated\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_terminated_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..timed_waiting\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_timed_waiting_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..waiting\.count}'
+ labels:
+ environment: hms # static label
+ values:
+ threads_waiting_count: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total_count_dbs}'
+ labels:
+ environment: hms # static label
+ values:
+ total_count_dbs: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total_count_partitions}'
+ labels:
+ environment: hms # static label
+ values:
+ total_count_partitions: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..total_count_tables}'
+ labels:
+ environment: hms # static label
+ values:
+ total_count_tables: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..HikariPool-1\.pool\.ActiveConnections}'
+ labels:
+ environment: hms # static label
+ values:
+ HikariPool_pool_ActiveConnections: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..HikariPool-1\.pool\.IdleConnections}'
+ labels:
+ environment: hms # static label
+ values:
+ HikariPool_pool_IdleConnections: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..HikariPool-1\.pool\.PendingConnections}'
+ labels:
+ environment: hms # static label
+ values:
+ HikariPool_pool_PendingConnections: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..HikariPool-1\.pool\.TotalConnections}'
+ labels:
+ environment: hms # static label
+ values:
+ HikariPool_pool_TotalConnections: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..loaded}'
+ labels:
+ environment: hms # static label
+ values:
+ classLoading_loaded: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..unloaded}'
+ labels:
+ environment: hms # static label
+ values:
+ classLoading_unloaded: '{.value}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..jvm\.pause\.extraSleepTime}'
+ labels:
+ environment: hms # static label
+ values:
+ jvm_pause_extraSleepTime: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..jvm\.pause\.info-threshold}'
+ labels:
+ environment: hms # static label
+ values:
+ jvm_pause_info_threshold: '{.count}' # dynamic value
+ - name: hms
+ type: object
+ help: Example of sub-level value scrapes from a json
+ path: '{$..jvm\.pause\.warn-threshold}'
+ labels:
+ environment: hms # static label
+ values:
+ jvm_pause_warn_threshold: '{.count}' # dynamic value
+ headers:
+ X-Dummy: hms-json-export-header
+ """#
+ }
+ },
+ {
+ apiVersion: "v1",
+ kind: "ConfigMap",
+ metadata: {
+ namespace: context.namespace,
+ name: "hive-metastore-grafana-dashboard",
+ labels: {
+ "app": "grafana",
+ "grafana_dashboard": "1"
+ }
+ },
+ data: {
+ "hive-metastore-dashboard.json": "{\"annotations\":{\"list\":[{\"builtIn\":1,\"datasource\":{\"type\":\"datasource\",\"uid\":\"grafana\"},\"enable\":true,\"hide\":true,\"iconColor\":\"rgba(0, 211, 255, 1)\",\"name\":\"Annotations & Alerts\",\"target\":{\"limit\":100,\"matchAny\":false,\"tags\":[],\"type\":\"dashboard\"},\"type\":\"dashboard\"}]},\"editable\":true,\"fiscalYearStartMonth\":0,\"graphTooltip\":0,\"id\":40,\"links\":[],\"liveNow\":false,\"panels\":[{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":0},\"id\":116,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms service info\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"hms instances\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":0,\"y\":1},\"id\":46,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"count(hms_memory_heap_used{namespace=\\\"$namespace\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"\",\"refId\":\"A\"}],\"title\":\"hms instances\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"dbs\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":5,\"y\":1},\"id\":156,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"dbs\",\"range\":true,\"refId\":\"A\"}],\"title\":\"dbs\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tables\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":10,\"y\":1},\"id\":157,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"tables\",\"range\":true,\"refId\":\"A\"}],\"title\":\"tables\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total partitions\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":15,\"y\":1},\"id\":158,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"partitions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"partitions\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"current open connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":4,\"x\":20,\"y\":1},\"id\":159,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"current_total_open_connections\",\"range\":true,\"refId\":\"A\"}],\"title\":\"hms open connections\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Open Connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"palette-classic\"},\"custom\":{\"axisLabel\":\"\",\"axisPlacement\":\"auto\",\"barAlignment\":0,\"drawStyle\":\"line\",\"fillOpacity\":10,\"gradientMode\":\"none\",\"hideFrom\":{\"legend\":false,\"tooltip\":false,\"viz\":false},\"lineInterpolation\":\"linear\",\"lineWidth\":1,\"pointSize\":5,\"scaleDistribution\":{\"type\":\"linear\"},\"showPoints\":\"never\",\"spanNulls\":false,\"stacking\":{\"group\":\"A\",\"mode\":\"none\"},\"thresholdsStyle\":{\"mode\":\"off\"}},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":6,\"w\":24,\"x\":0,\"y\":6},\"id\":102,\"links\":[],\"maxDataPoints\":100,\"options\":{\"legend\":{\"calcs\":[\"max\",\"min\"],\"displayMode\":\"table\",\"placement\":\"bottom\"},\"tooltip\":{\"mode\":\"multi\",\"sort\":\"none\"}},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\" open Connections\",\"type\":\"timeseries\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":12},\"hiddenSeries\":false,\"id\":160,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(container_memory_usage_bytes{container=\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:81\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:82\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"decimals\":3,\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":12},\"hiddenSeries\":false,\"id\":161,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-metastore\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:319\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:320\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":19},\"id\":146,\"panels\":[],\"title\":\"hms database info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":20},\"hiddenSeries\":false,\"id\":141,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total_dbs\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2191\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2192\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":20},\"hiddenSeries\":false,\"id\":142,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max(hms_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total tables\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2362\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2363\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":20},\"hiddenSeries\":false,\"id\":143,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max(hms_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total partitions\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2533\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2534\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":27},\"id\":132,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms datanucleus\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"active Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":28},\"hiddenSeries\":false,\"id\":162,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_ActiveConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Idle Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":28},\"hiddenSeries\":false,\"id\":133,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_IdleConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Idle Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"pending Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":35},\"hiddenSeries\":false,\"id\":134,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_PendingConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"pending Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Total Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":35},\"hiddenSeries\":false,\"id\":135,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_TotalConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Total Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":42},\"id\":114,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms instance database operation\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":43},\"hiddenSeries\":false,\"id\":117,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2077\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2078\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":43},\"hiddenSeries\":false,\"id\":138,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":50},\"hiddenSeries\":false,\"id\":137,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2248\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2249\",\"decimals\":0,\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":50},\"hiddenSeries\":false,\"id\":140,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2305\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2306\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":57},\"hiddenSeries\":false,\"id\":136,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2419\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2420\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":57},\"hiddenSeries\":false,\"id\":139,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2476\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2477\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":64},\"id\":148,\"panels\":[],\"title\":\"container resource info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":65},\"hiddenSeries\":false,\"id\":82,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(container_memory_usage_bytes{container=\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:81\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:82\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"decimals\":3,\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":65},\"hiddenSeries\":false,\"id\":81,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-metastore\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:319\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:320\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Disk Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":65},\"hiddenSeries\":false,\"id\":83,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(rate(container_fs_reads_bytes_total{container=~\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\",device=~\\\"/dev/sd[a|b|c|d|e]\\\"}[2m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-read\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(rate(container_fs_writes_bytes_total{container=~\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\",device=~\\\"/dev/sd[a|b|c|d|e]\\\"}[2m])) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-write\",\"range\":true,\"refId\":\"B\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Disk Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:560\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:561\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":72},\"id\":28,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"JVM\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":73},\"hiddenSeries\":false,\"id\":93,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":73},\"hiddenSeries\":false,\"id\":150,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_classLoading_loaded{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Class loaded\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Heap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":80},\"hiddenSeries\":false,\"id\":149,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Heap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":80},\"hiddenSeries\":false,\"id\":151,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_non_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"NonHeap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread count\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":0,\"y\":87},\"hiddenSeries\":false,\"id\":152,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_threads_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread deadlock\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":6,\"y\":87},\"hiddenSeries\":false,\"id\":144,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_deadlock_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"C\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread deadlock\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"min\":\"0\",\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread blocked\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":12,\"y\":87},\"hiddenSeries\":false,\"id\":155,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_blocked_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"C\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread blocked\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"min\":\"0\",\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"jvm thread state\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":18,\"y\":87},\"hiddenSeries\":false,\"id\":154,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_daemon_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-daemon\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_new_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-new\",\"range\":true,\"refId\":\"D\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_runnable_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-runnable\",\"range\":true,\"refId\":\"E\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_terminated_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-terminated\",\"range\":true,\"refId\":\"F\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_timed_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-timed-waiting\",\"range\":true,\"refId\":\"G\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-waiting\",\"range\":true,\"refId\":\"H\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"jvm thread state\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}}],\"refresh\":false,\"schemaVersion\":36,\"style\":\"dark\",\"tags\":[\"hive\",\"hms\"],\"templating\":{\"list\":[{\"current\":{\"selected\":false,\"text\":\"Prometheus\",\"value\":\"Prometheus\"},\"hide\":0,\"includeAll\":false,\"label\":\"datasource\",\"multi\":false,\"name\":\"datasource\",\"options\":[],\"query\":\"prometheus\",\"queryValue\":\"\",\"refresh\":1,\"regex\":\"\",\"skipUrlSync\":false,\"type\":\"datasource\"},{\"current\":{\"selected\":false,\"text\":\"admin\",\"value\":\"admin\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(hms_memory_heap_used)\",\"hide\":0,\"includeAll\":false,\"label\":\"Namespace\",\"multi\":false,\"name\":\"namespace\",\"options\":[],\"query\":{\"query\":\"query_result(hms_memory_heap_used)\",\"refId\":\"StandardVariableQuery\"},\"refresh\":1,\"regex\":\"/.*namespace=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false},{\"allValue\":\".*\",\"current\":{\"selected\":false,\"text\":\"All\",\"value\":\"$__all\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(count_over_time(hms_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"hide\":0,\"includeAll\":true,\"label\":\"Pod\",\"multi\":true,\"name\":\"pod\",\"options\":[],\"query\":{\"query\":\"query_result(count_over_time(hms_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"refId\":\"StandardVariableQuery\"},\"refresh\":2,\"regex\":\"/.*pod=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false}]},\"time\":{\"from\":\"now-5m\",\"to\":\"now\"},\"timepicker\":{\"refresh_intervals\":[\"5s\",\"10s\",\"30s\",\"1m\",\"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"1d\"],\"time_options\":[\"5m\",\"15m\",\"1h\",\"6h\",\"12h\",\"24h\",\"2d\",\"7d\",\"30d\"]},\"timezone\":\"\",\"title\":\"hive-metastore\",\"uid\":\"t5_CsYCnzqq\",\"version\":48,\"weekStart\":\"\"}\n"
+ }
+ },
{
apiVersion: "bdc.kdp.io/v1alpha1"
kind: "ContextSetting"
@@ -698,39 +1135,6 @@ template: {
}
]
}
- },
- {
- "name": "hms-admin-configmap",
- "type": "raw",
- "properties": {
- "apiVersion": "v1",
- "kind": "ConfigMap",
- "metadata": {
- "name": "hms-admin-cfg"
- },
- "data": {
- "hms-json-export.yml": "metrics:\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..create_total_count_dbs}'\n labels:\n environment: hms # static label\n values:\n create_total_count_dbs: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..create_total_count_tables}'\n labels:\n environment: hms # static label\n values:\n create_total_count_tables: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..create_total_count_partitions}'\n labels:\n environment: hms # static label\n values:\n create_total_count_partitions: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..delete_total_count_dbs}'\n labels:\n environment: hms # static label\n values:\n delete_total_count_dbs: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..delete_total_count_tables}'\n labels:\n environment: hms # static label\n values:\n delete_total_count_tables: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..delete_total_count_partitions}'\n labels:\n environment: hms # static label\n values:\n delete_total_count_partitions: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..directsql_errors}'\n labels:\n environment: hms # static label\n values:\n directsql_errors: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..open_connections}'\n labels:\n environment: hms # static label\n values:\n open_connections: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..direct\\.capacity}'\n labels:\n environment: hms # static label\n values:\n buffers_direct_capacity: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..direct\\.count}'\n labels:\n environment: hms # static label\n values:\n buffers_direct_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..direct\\.used}'\n labels:\n environment: hms # static label\n values:\n buffers_direct_used: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..mapped\\.capacity}'\n labels:\n environment: hms # static label\n values:\n buffers_mapped_capacity: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..mapped\\.count}'\n labels:\n environment: hms # static label\n values:\n buffers_mapped_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..mapped\\.used}'\n labels:\n environment: hms # static label\n values:\n buffers_mapped_used: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..heap\\.committed}'\n labels:\n environment: hms # static label\n values:\n memory_heap_committed: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..heap\\.init}'\n labels:\n environment: hms # static label\n values:\n memory_heap_init: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..heap\\.max}'\n labels:\n environment: hms # static label\n values:\n memory_heap_max: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..heap\\.usage}'\n labels:\n environment: hms # static label\n values:\n memory_heap_usage: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..heap\\.used}'\n labels:\n environment: hms # static label\n values:\n memory_heap_used: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..non-heap\\.committed}'\n labels:\n environment: hms # static label\n values:\n memory_non_heap_committed: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..non-heap\\.init}'\n labels:\n environment: hms # static label\n values:\n memory_non_heap_init: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..non-heap\\.max}'\n labels:\n environment: hms # static label\n values:\n memory_non_heap_max: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..non-heap\\.usage}'\n labels:\n environment: hms # static label\n values:\n memory_non_heap_usage: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..non-heap\\.used}'\n labels:\n environment: hms # static label\n values:\n memory_non_heap_used: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..pools\\.Code-Cache\\.usage}'\n labels:\n environment: hms # static label\n values:\n memory_pools_CodeCache_usage: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..pools\\.Compressed-Class-Space\\.usage}'\n labels:\n environment: hms # static label\n values:\n memory_pools_CompressedClassSpace_usage: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..pools\\.Metaspace\\.usage}'\n labels:\n environment: hms # static label\n values:\n memory_pools_Metaspace_usage: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total\\.committed}'\n labels:\n environment: hms # static label\n values:\n memory_total_committed: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total\\.init}'\n labels:\n environment: hms # static label\n values:\n memory_total_init: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total\\.max}'\n labels:\n environment: hms # static label\n values:\n memory_total_max: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total\\.used}'\n labels:\n environment: hms # static label\n values:\n memory_total_used: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..blocked\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_blocked_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..daemon\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_daemon_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..deadlock\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_deadlock_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..new\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_new_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..runnable\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_runnable_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..terminated\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_terminated_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..timed_waiting\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_timed_waiting_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..waiting\\.count}'\n labels:\n environment: hms # static label\n values:\n threads_waiting_count: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total_count_dbs}'\n labels:\n environment: hms # static label\n values:\n total_count_dbs: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total_count_partitions}'\n labels:\n environment: hms # static label\n values:\n total_count_partitions: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..total_count_tables}'\n labels:\n environment: hms # static label\n values:\n total_count_tables: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..HikariPool-1\\.pool\\.ActiveConnections}'\n labels:\n environment: hms # static label\n values:\n HikariPool_pool_ActiveConnections: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..HikariPool-1\\.pool\\.IdleConnections}'\n labels:\n environment: hms # static label\n values:\n HikariPool_pool_IdleConnections: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..HikariPool-1\\.pool\\.PendingConnections}'\n labels:\n environment: hms # static label\n values:\n HikariPool_pool_PendingConnections: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..HikariPool-1\\.pool\\.TotalConnections}'\n labels:\n environment: hms # static label\n values:\n HikariPool_pool_TotalConnections: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..loaded}'\n labels:\n environment: hms # static label\n values:\n classLoading_loaded: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..unloaded}'\n labels:\n environment: hms # static label\n values:\n classLoading_unloaded: '{.value}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..jvm\\.pause\\.extraSleepTime}'\n labels:\n environment: hms # static label\n values:\n jvm_pause_extraSleepTime: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..jvm\\.pause\\.info-threshold}'\n labels:\n environment: hms # static label\n values:\n jvm_pause_info_threshold: '{.count}' # dynamic value\n - name: hms\n type: object\n help: Example of sub-level value scrapes from a json\n path: '{$..jvm\\.pause\\.warn-threshold}'\n labels:\n environment: hms # static label\n values:\n jvm_pause_warn_threshold: '{.count}' # dynamic value\nheaders:\n X-Dummy: hms-json-export-header\n"
- }
- }
- },
- {
- "name": "hive-metastore-grafana-dashboard",
- "type": "raw",
- "properties": {
- "apiVersion": "v1",
- "kind": "ConfigMap",
- "metadata": {
- "namespace": context.namespace,
- "name": "hive-metastore-grafana-dashboard",
- "labels": {
- "app": "grafana",
- "grafana_dashboard": "1"
- }
- },
- "data": {
- "hive-metastore-dashboard.json": "{\"annotations\":{\"list\":[{\"builtIn\":1,\"datasource\":{\"type\":\"datasource\",\"uid\":\"grafana\"},\"enable\":true,\"hide\":true,\"iconColor\":\"rgba(0, 211, 255, 1)\",\"name\":\"Annotations & Alerts\",\"target\":{\"limit\":100,\"matchAny\":false,\"tags\":[],\"type\":\"dashboard\"},\"type\":\"dashboard\"}]},\"editable\":true,\"fiscalYearStartMonth\":0,\"graphTooltip\":0,\"id\":40,\"links\":[],\"liveNow\":false,\"panels\":[{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":0},\"id\":116,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms service info\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"hms instances\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":0,\"y\":1},\"id\":46,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"count(hms_memory_heap_used{namespace=\\\"$namespace\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"\",\"refId\":\"A\"}],\"title\":\"hms instances\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"dbs\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":5,\"y\":1},\"id\":156,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"dbs\",\"range\":true,\"refId\":\"A\"}],\"title\":\"dbs\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tables\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":10,\"y\":1},\"id\":157,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"tables\",\"range\":true,\"refId\":\"A\"}],\"title\":\"tables\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total partitions\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":5,\"x\":15,\"y\":1},\"id\":158,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"partitions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"partitions\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"current open connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":1}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":5,\"w\":4,\"x\":20,\"y\":1},\"id\":159,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"current_total_open_connections\",\"range\":true,\"refId\":\"A\"}],\"title\":\"hms open connections\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Open Connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"palette-classic\"},\"custom\":{\"axisLabel\":\"\",\"axisPlacement\":\"auto\",\"barAlignment\":0,\"drawStyle\":\"line\",\"fillOpacity\":10,\"gradientMode\":\"none\",\"hideFrom\":{\"legend\":false,\"tooltip\":false,\"viz\":false},\"lineInterpolation\":\"linear\",\"lineWidth\":1,\"pointSize\":5,\"scaleDistribution\":{\"type\":\"linear\"},\"showPoints\":\"never\",\"spanNulls\":false,\"stacking\":{\"group\":\"A\",\"mode\":\"none\"},\"thresholdsStyle\":{\"mode\":\"off\"}},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":6,\"w\":24,\"x\":0,\"y\":6},\"id\":102,\"links\":[],\"maxDataPoints\":100,\"options\":{\"legend\":{\"calcs\":[\"max\",\"min\"],\"displayMode\":\"table\",\"placement\":\"bottom\"},\"tooltip\":{\"mode\":\"multi\",\"sort\":\"none\"}},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\" open Connections\",\"type\":\"timeseries\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":12},\"hiddenSeries\":false,\"id\":160,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(container_memory_usage_bytes{container=\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:81\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:82\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"decimals\":3,\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":12},\"hiddenSeries\":false,\"id\":161,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-metastore\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:319\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:320\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":19},\"id\":146,\"panels\":[],\"title\":\"hms database info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":20},\"hiddenSeries\":false,\"id\":141,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total_dbs\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2191\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2192\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":20},\"hiddenSeries\":false,\"id\":142,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max(hms_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total tables\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2362\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2363\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":20},\"hiddenSeries\":false,\"id\":143,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":false,\"min\":false,\"show\":false,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max(hms_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"total partitions\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2533\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2534\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":27},\"id\":132,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms datanucleus\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"active Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":28},\"hiddenSeries\":false,\"id\":162,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_ActiveConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Idle Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":28},\"hiddenSeries\":false,\"id\":133,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_IdleConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Idle Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"pending Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":35},\"hiddenSeries\":false,\"id\":134,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_PendingConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"pending Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Total Connections\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":35},\"hiddenSeries\":false,\"id\":135,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_HikariPool_pool_TotalConnections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Total Connections\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":42},\"id\":114,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hms instance database operation\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":43},\"hiddenSeries\":false,\"id\":117,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2077\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2078\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total dbs\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":43},\"hiddenSeries\":false,\"id\":138,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_dbs{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total dbs\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":50},\"hiddenSeries\":false,\"id\":137,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2248\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2249\",\"decimals\":0,\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total tables\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":50},\"hiddenSeries\":false,\"id\":140,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_tables{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total tables\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2305\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2306\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"create total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":57},\"hiddenSeries\":false,\"id\":136,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_create_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"create total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2419\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2420\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"delete total partitions\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":57},\"hiddenSeries\":false,\"id\":139,\"legend\":{\"alignAsTable\":false,\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hms_delete_total_count_partitions{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"delete total partitions\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2476\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2477\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":64},\"id\":148,\"panels\":[],\"title\":\"container resource info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":65},\"hiddenSeries\":false,\"id\":82,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(container_memory_usage_bytes{container=\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:81\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:82\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"decimals\":3,\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":65},\"hiddenSeries\":false,\"id\":81,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-metastore\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:319\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:320\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Disk Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":65},\"hiddenSeries\":false,\"id\":83,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(rate(container_fs_reads_bytes_total{container=~\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\",device=~\\\"/dev/sd[a|b|c|d|e]\\\"}[2m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-read\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(rate(container_fs_writes_bytes_total{container=~\\\"hive-metastore\\\",namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\",device=~\\\"/dev/sd[a|b|c|d|e]\\\"}[2m])) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-write\",\"range\":true,\"refId\":\"B\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Disk Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:560\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:561\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":72},\"id\":28,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"JVM\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":73},\"hiddenSeries\":false,\"id\":93,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":73},\"hiddenSeries\":false,\"id\":150,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_classLoading_loaded{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Class loaded\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Heap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":80},\"hiddenSeries\":false,\"id\":149,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Heap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":80},\"hiddenSeries\":false,\"id\":151,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hms_memory_non_heap_used{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"NonHeap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread count\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":0,\"y\":87},\"hiddenSeries\":false,\"id\":152,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max(hms_threads_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread deadlock\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":6,\"y\":87},\"hiddenSeries\":false,\"id\":144,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_deadlock_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"C\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread deadlock\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"min\":\"0\",\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread blocked\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":12,\"y\":87},\"hiddenSeries\":false,\"id\":155,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_blocked_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"C\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread blocked\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"min\":\"0\",\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"jvm thread state\",\"fieldConfig\":{\"defaults\":{\"unit\":\"none\"},\"overrides\":[]},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":6,\"x\":18,\"y\":87},\"hiddenSeries\":false,\"id\":154,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":false,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"maxDataPoints\":100,\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":2,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_daemon_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-daemon\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_new_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-new\",\"range\":true,\"refId\":\"D\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hms_threads_runnable_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-runnable\",\"range\":true,\"refId\":\"E\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_terminated_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-terminated\",\"range\":true,\"refId\":\"F\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_timed_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-timed-waiting\",\"range\":true,\"refId\":\"G\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hms_threads_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-waiting\",\"range\":true,\"refId\":\"H\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"jvm thread state\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:134\",\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:135\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}}],\"refresh\":false,\"schemaVersion\":36,\"style\":\"dark\",\"tags\":[\"hive\",\"hms\"],\"templating\":{\"list\":[{\"current\":{\"selected\":false,\"text\":\"Prometheus\",\"value\":\"Prometheus\"},\"hide\":0,\"includeAll\":false,\"label\":\"datasource\",\"multi\":false,\"name\":\"datasource\",\"options\":[],\"query\":\"prometheus\",\"queryValue\":\"\",\"refresh\":1,\"regex\":\"\",\"skipUrlSync\":false,\"type\":\"datasource\"},{\"current\":{\"selected\":false,\"text\":\"admin\",\"value\":\"admin\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(hms_memory_heap_used)\",\"hide\":0,\"includeAll\":false,\"label\":\"Namespace\",\"multi\":false,\"name\":\"namespace\",\"options\":[],\"query\":{\"query\":\"query_result(hms_memory_heap_used)\",\"refId\":\"StandardVariableQuery\"},\"refresh\":1,\"regex\":\"/.*namespace=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false},{\"allValue\":\".*\",\"current\":{\"selected\":false,\"text\":\"All\",\"value\":\"$__all\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(count_over_time(hms_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"hide\":0,\"includeAll\":true,\"label\":\"Pod\",\"multi\":true,\"name\":\"pod\",\"options\":[],\"query\":{\"query\":\"query_result(count_over_time(hms_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"refId\":\"StandardVariableQuery\"},\"refresh\":2,\"regex\":\"/.*pod=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false}]},\"time\":{\"from\":\"now-5m\",\"to\":\"now\"},\"timepicker\":{\"refresh_intervals\":[\"5s\",\"10s\",\"30s\",\"1m\",\"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"1d\"],\"time_options\":[\"5m\",\"15m\",\"1h\",\"6h\",\"12h\",\"24h\",\"2d\",\"7d\",\"30d\"]},\"timezone\":\"\",\"title\":\"hive-metastore\",\"uid\":\"t5_CsYCnzqq\",\"version\":48,\"weekStart\":\"\"}\n"
- }
- }
}
],
"policies": [
diff --git a/catalog/hive/x-definitions/app-hive-server2.cue b/catalog/hive/x-definitions/app-hive-server2.cue
index 4c7a706..7db8a81 100644
--- a/catalog/hive/x-definitions/app-hive-server2.cue
+++ b/catalog/hive/x-definitions/app-hive-server2.cue
@@ -377,6 +377,21 @@ template: {
"""
}
},
+ {
+ apiVersion: "v1"
+ kind: "ConfigMap"
+ metadata: {
+ namespace: context.namespace
+ name: "hive-server2-grafana-dashboard"
+ labels: {
+ "app": "grafana"
+ "grafana_dashboard": "1"
+ }
+ }
+ data: {
+ "hive-server2-dashboard.json": "{\"annotations\":{\"list\":[{\"builtIn\":1,\"datasource\":{\"type\":\"datasource\",\"uid\":\"grafana\"},\"enable\":true,\"hide\":true,\"iconColor\":\"rgba(0, 211, 255, 1)\",\"name\":\"Annotations & Alerts\",\"target\":{\"limit\":100,\"matchAny\":false,\"tags\":[],\"type\":\"dashboard\"},\"type\":\"dashboard\"}]},\"editable\":true,\"fiscalYearStartMonth\":0,\"graphTooltip\":0,\"id\":132,\"links\":[],\"liveNow\":false,\"panels\":[{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":0},\"id\":116,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hs2 info\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"Open Connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"color\":\"#508642\",\"text\":\"0\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#508642\",\"value\":null},{\"color\":\"#ef843c\",\"value\":1},{\"color\":\"#bf1b00\",\"value\":5}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":8,\"w\":4,\"x\":0,\"y\":1},\"id\":102,\"links\":[],\"maxDataPoints\":100,\"options\":{\"orientation\":\"auto\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"showThresholdLabels\":false,\"showThresholdMarkers\":true},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"open_connection\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(hive_cumulative_connection_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"total_connection\",\"range\":true,\"refId\":\"B\"}],\"title\":\"Open Connections\",\"type\":\"gauge\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Number of brokers online\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":4,\"y\":1},\"id\":46,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"exemplar\":true,\"expr\":\"count(hive_memory_heap_used{namespace=\\\"$namespace\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"\",\"refId\":\"A\"}],\"title\":\"Hs2 instances\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"open session\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":9,\"y\":1},\"id\":187,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_open_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"active_sessions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"open session\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"active session\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":14,\"y\":1},\"id\":136,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_active_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"active_sessions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"active session\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"authorization\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"index\":0,\"text\":\"0\"}},\"type\":\"special\"}],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#508642\",\"value\":null}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":19,\"y\":1},\"id\":128,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"max\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_api_doauthorization{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod) >= 0\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"doauthorization\",\"range\":true,\"refId\":\"A\"}],\"title\":\"authorization\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Submitted Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":4,\"y\":5},\"id\":137,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_submitted_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"submitted_queries\",\"range\":true,\"refId\":\"A\"}],\"title\":\"Submitted Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"failed Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":8,\"y\":5},\"id\":140,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_failed_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\"failed Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"succeeded Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":12,\"y\":5},\"id\":141,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_succeeded_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"succeeded_queries\",\"range\":true,\"refId\":\"A\"}],\"title\":\"succeeded Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tasks\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":16,\"y\":5},\"id\":188,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"tasks\",\"range\":true,\"refId\":\"A\"}],\"title\":\"total tasks\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"spark tasks\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":20,\"y\":5},\"id\":186,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_spark_tasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"spark_tasks\",\"range\":true,\"refId\":\"A\"}],\"title\":\"spark tasks\",\"type\":\"stat\"},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":9},\"id\":144,\"panels\":[],\"title\":\"session info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"open session\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":10},\"hiddenSeries\":false,\"id\":145,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_open_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"open session\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"active session\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":10},\"hiddenSeries\":false,\"id\":146,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_active_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active session\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"avg open session time\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":17},\"hiddenSeries\":false,\"id\":147,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_avg_open_session_time{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"avg open session time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"avg active session time\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":17},\"hiddenSeries\":false,\"id\":148,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_avg_active_session_time{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"avg active session time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":24},\"id\":150,\"panels\":[],\"title\":\"Queries\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"submmited queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":25},\"hiddenSeries\":false,\"id\":151,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_submitted_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"submmited queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"succeeded queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":25},\"hiddenSeries\":false,\"id\":152,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_succeeded_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"succeeded queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"failed queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":25},\"hiddenSeries\":false,\"id\":153,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_failed_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"failed queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":32},\"id\":155,\"panels\":[],\"title\":\"Task\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"total tasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":33},\"hiddenSeries\":false,\"id\":156,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total tasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"spark tasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":33},\"hiddenSeries\":false,\"id\":157,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_spark_tasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"spark tasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"active runtasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":33},\"hiddenSeries\":false,\"id\":158,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active runtasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":40},\"id\":160,\"panels\":[],\"title\":\"Spark job\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"submit job\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"palette-classic\"},\"custom\":{\"axisLabel\":\"\",\"axisPlacement\":\"auto\",\"barAlignment\":0,\"drawStyle\":\"line\",\"fillOpacity\":10,\"gradientMode\":\"none\",\"hideFrom\":{\"legend\":false,\"tooltip\":false,\"viz\":false},\"lineInterpolation\":\"linear\",\"lineWidth\":1,\"pointSize\":5,\"scaleDistribution\":{\"type\":\"linear\"},\"showPoints\":\"never\",\"spanNulls\":false,\"stacking\":{\"group\":\"A\",\"mode\":\"none\"},\"thresholdsStyle\":{\"mode\":\"off\"}},\"decimals\":0,\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":41},\"id\":161,\"links\":[],\"options\":{\"legend\":{\"calcs\":[\"lastNotNull\",\"max\",\"min\"],\"displayMode\":\"table\",\"placement\":\"bottom\"},\"tooltip\":{\"mode\":\"multi\",\"sort\":\"none\"}},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_sparksubmitjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\"submit job\",\"type\":\"timeseries\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve submit job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":41},\"hiddenSeries\":false,\"id\":162,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_sparksubmitjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve submit job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"run job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":48},\"hiddenSeries\":false,\"id\":163,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_sparkrunjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"run job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve run job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":48},\"hiddenSeries\":false,\"id\":164,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_sparkrunjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve run job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":55},\"id\":168,\"panels\":[],\"title\":\"partition retrieving\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"partition_retrieving\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":56},\"hiddenSeries\":false,\"id\":169,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_partition_retrieving{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"partition_retrieving\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve partition retrieving\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":56},\"hiddenSeries\":false,\"id\":170,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_partition_retrieving{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve partition retrieving\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":63},\"id\":172,\"panels\":[],\"title\":\"container resource info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":64},\"hiddenSeries\":false,\"id\":173,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max (container_memory_usage_bytes{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":64},\"hiddenSeries\":false,\"id\":174,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-server2\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Disk Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":64},\"hiddenSeries\":false,\"id\":175,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"expr\":\"max (container_fs_reads_bytes_total{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"legendFormat\":\"{{pod}}-read\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max (container_fs_writes_bytes_total{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-write\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Disk Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":71},\"id\":28,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"JVM\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":72},\"hiddenSeries\":false,\"id\":93,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(jvm_memory_bytes_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM Class loaded\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":72},\"hiddenSeries\":false,\"id\":176,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_classloading_loaded{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Class loaded\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Heap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":78},\"hiddenSeries\":false,\"id\":177,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_memory_heap_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Heap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"NonHeap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":78},\"hiddenSeries\":false,\"id\":178,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_memory_non_heap_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"NonHeap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread count\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":0,\"y\":84},\"hiddenSeries\":false,\"id\":108,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum (jvm_threads_current{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Thread Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:476\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:477\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"JVM thread deadlock\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":6,\"y\":84},\"hiddenSeries\":false,\"id\":130,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(hive_threads_deadlock_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"G\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread deadlock\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"JVM thread blocked\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":12,\"y\":84},\"hiddenSeries\":false,\"id\":180,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_threads_blocked_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"H\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread blocked\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"Thread status\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":18,\"y\":84},\"hiddenSeries\":false,\"id\":179,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_threads_new_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-create\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hive_threads_daemon_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-daemon\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_timed_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-timed-waiting\",\"range\":true,\"refId\":\"C\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_terminated_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-terminated\",\"range\":true,\"refId\":\"D\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hive_threads_runnable_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-runnable\",\"range\":true,\"refId\":\"E\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-waiting\",\"range\":true,\"refId\":\"F\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Thread status\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":90},\"hiddenSeries\":false,\"id\":182,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":90},\"hiddenSeries\":false,\"id\":181,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":0,\"y\":96},\"hiddenSeries\":false,\"id\":97,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"Copy|G1 Young Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Young GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":6,\"y\":96},\"hiddenSeries\":false,\"id\":183,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"MarkSweepCompact|G1 Old.*\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Old GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":12,\"y\":96},\"hiddenSeries\":false,\"id\":184,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"Copy|G1 Young Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Young GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":18,\"y\":96},\"hiddenSeries\":false,\"id\":185,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"MarkSweepCompact|G1 Old Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Old GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}}],\"refresh\":\"30m\",\"schemaVersion\":36,\"style\":\"dark\",\"tags\":[\"hive\",\"hs2\"],\"templating\":{\"list\":[{\"current\":{\"selected\":false,\"text\":\"Prometheus\",\"value\":\"Prometheus\"},\"hide\":0,\"includeAll\":false,\"label\":\"datasource\",\"multi\":false,\"name\":\"datasource\",\"options\":[],\"query\":\"prometheus\",\"queryValue\":\"\",\"refresh\":1,\"regex\":\"\",\"skipUrlSync\":false,\"type\":\"datasource\"},{\"current\":{\"selected\":false,\"text\":\"admin\",\"value\":\"admin\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(hive_memory_heap_used)\",\"hide\":0,\"includeAll\":false,\"label\":\"Namespace\",\"multi\":false,\"name\":\"namespace\",\"options\":[],\"query\":{\"query\":\"query_result(hive_memory_heap_used)\",\"refId\":\"StandardVariableQuery\"},\"refresh\":1,\"regex\":\"/.*namespace=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false},{\"allValue\":\".*\",\"current\":{\"selected\":true,\"text\":[\"hive-server2-0\"],\"value\":[\"hive-server2-0\"]},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(count_over_time(hive_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"hide\":0,\"includeAll\":true,\"label\":\"Pod\",\"multi\":true,\"name\":\"pod\",\"options\":[],\"query\":{\"query\":\"query_result(count_over_time(hive_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"refId\":\"StandardVariableQuery\"},\"refresh\":2,\"regex\":\"/.*pod=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false}]},\"time\":{\"from\":\"now-5m\",\"to\":\"now\"},\"timepicker\":{\"refresh_intervals\":[\"5s\",\"10s\",\"30s\",\"1m\",\"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"1d\"],\"time_options\":[\"5m\",\"15m\",\"1h\",\"6h\",\"12h\",\"24h\",\"2d\",\"7d\",\"30d\"]},\"timezone\":\"\",\"title\":\"hive-server2\",\"uid\":\"t5_CsYCnz\",\"version\":2,\"weekStart\":\"\"}\n"
+ }
+ },
{
apiVersion: "bdc.kdp.io/v1alpha1"
kind: "ContextSetting"
@@ -455,6 +470,12 @@ template: {
"name": context.name
}
},
+ {
+ "type": "bdos-service-account"
+ "properties": {
+ "name": "hive-spark"
+ }
+ },
{
"type": "bdos-pod-affinity"
"properties": {
@@ -743,37 +764,6 @@ template: {
]
}
},
- {
- "name": "hive-spark-serviceaccount"
- "type": "raw"
- "properties": {
- "apiVersion": "v1"
- "kind": "ServiceAccount"
- "metadata": {
- "namespace": context.namespace
- "name": "hive-spark"
- }
- }
- },
- {
- "name": "hive-server2-grafana-dashboard"
- "type": "raw"
- "properties": {
- "apiVersion": "v1"
- "kind": "ConfigMap"
- "metadata": {
- "namespace": context.namespace
- "name": "hive-server2-grafana-dashboard"
- "labels": {
- "app": "grafana"
- "grafana_dashboard": "1"
- }
- }
- "data": {
- "hive-server2-dashboard.json": "{\"annotations\":{\"list\":[{\"builtIn\":1,\"datasource\":{\"type\":\"datasource\",\"uid\":\"grafana\"},\"enable\":true,\"hide\":true,\"iconColor\":\"rgba(0, 211, 255, 1)\",\"name\":\"Annotations & Alerts\",\"target\":{\"limit\":100,\"matchAny\":false,\"tags\":[],\"type\":\"dashboard\"},\"type\":\"dashboard\"}]},\"editable\":true,\"fiscalYearStartMonth\":0,\"graphTooltip\":0,\"id\":132,\"links\":[],\"liveNow\":false,\"panels\":[{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":0},\"id\":116,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"hs2 info\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"Open Connections\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"color\":\"#508642\",\"text\":\"0\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#508642\",\"value\":null},{\"color\":\"#ef843c\",\"value\":1},{\"color\":\"#bf1b00\",\"value\":5}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":8,\"w\":4,\"x\":0,\"y\":1},\"id\":102,\"links\":[],\"maxDataPoints\":100,\"options\":{\"orientation\":\"auto\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"showThresholdLabels\":false,\"showThresholdMarkers\":true},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_open_connections{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"open_connection\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(hive_cumulative_connection_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"})\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"total_connection\",\"range\":true,\"refId\":\"B\"}],\"title\":\"Open Connections\",\"type\":\"gauge\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Number of brokers online\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"text\":\"N/A\"}},\"type\":\"special\"}],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#d44a3a\",\"value\":null},{\"color\":\"rgba(237, 129, 40, 0.89)\",\"value\":0},{\"color\":\"#299c46\",\"value\":2}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":4,\"y\":1},\"id\":46,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"exemplar\":true,\"expr\":\"count(hive_memory_heap_used{namespace=\\\"$namespace\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"\",\"refId\":\"A\"}],\"title\":\"Hs2 instances\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"open session\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":9,\"y\":1},\"id\":187,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_open_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"active_sessions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"open session\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"active session\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":14,\"y\":1},\"id\":136,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_active_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"active_sessions\",\"range\":true,\"refId\":\"A\"}],\"title\":\"active session\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"authorization\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[{\"options\":{\"match\":\"null\",\"result\":{\"index\":0,\"text\":\"0\"}},\"type\":\"special\"}],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"#508642\",\"value\":null}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":5,\"x\":19,\"y\":1},\"id\":128,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"max\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_api_doauthorization{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod) >= 0\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":2,\"legendFormat\":\"doauthorization\",\"range\":true,\"refId\":\"A\"}],\"title\":\"authorization\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Submitted Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":4,\"y\":5},\"id\":137,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_submitted_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"submitted_queries\",\"range\":true,\"refId\":\"A\"}],\"title\":\"Submitted Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"failed Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":8,\"y\":5},\"id\":140,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_failed_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\"failed Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"succeeded Queries\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":12,\"y\":5},\"id\":141,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_succeeded_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"succeeded_queries\",\"range\":true,\"refId\":\"A\"}],\"title\":\"succeeded Queries\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"total tasks\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":16,\"y\":5},\"id\":188,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"tasks\",\"range\":true,\"refId\":\"A\"}],\"title\":\"total tasks\",\"type\":\"stat\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"spark tasks\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"thresholds\"},\"mappings\":[],\"noValue\":\"0\",\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]}},\"overrides\":[]},\"gridPos\":{\"h\":4,\"w\":4,\"x\":20,\"y\":5},\"id\":186,\"links\":[],\"maxDataPoints\":100,\"options\":{\"colorMode\":\"value\",\"graphMode\":\"none\",\"justifyMode\":\"auto\",\"orientation\":\"horizontal\",\"reduceOptions\":{\"calcs\":[\"lastNotNull\"],\"fields\":\"\",\"values\":false},\"textMode\":\"auto\"},\"pluginVersion\":\"9.0.5\",\"repeatDirection\":\"h\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_spark_tasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"})\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"spark_tasks\",\"range\":true,\"refId\":\"A\"}],\"title\":\"spark tasks\",\"type\":\"stat\"},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":9},\"id\":144,\"panels\":[],\"title\":\"session info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"open session\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":10},\"hiddenSeries\":false,\"id\":145,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_open_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"open session\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"active session\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":10},\"hiddenSeries\":false,\"id\":146,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_active_sessions{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active session\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"avg open session time\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":17},\"hiddenSeries\":false,\"id\":147,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_avg_open_session_time{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"avg open session time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"avg active session time\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":17},\"hiddenSeries\":false,\"id\":148,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_avg_active_session_time{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"avg active session time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":24},\"id\":150,\"panels\":[],\"title\":\"Queries\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"submmited queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":25},\"hiddenSeries\":false,\"id\":151,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum (hive_hs2_submitted_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"submmited queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"succeeded queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":25},\"hiddenSeries\":false,\"id\":152,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_succeeded_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"succeeded queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"failed queries\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":25},\"hiddenSeries\":false,\"id\":153,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_hs2_failed_queries{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"failed queries\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":32},\"id\":155,\"panels\":[],\"title\":\"Task\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"total tasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":33},\"hiddenSeries\":false,\"id\":156,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"total tasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"spark tasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":33},\"hiddenSeries\":false,\"id\":157,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_spark_tasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"spark tasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"active runtasks\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":33},\"hiddenSeries\":false,\"id\":158,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_runtasks{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"active runtasks\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":40},\"id\":160,\"panels\":[],\"title\":\"Spark job\",\"type\":\"row\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"submit job\",\"fieldConfig\":{\"defaults\":{\"color\":{\"mode\":\"palette-classic\"},\"custom\":{\"axisLabel\":\"\",\"axisPlacement\":\"auto\",\"barAlignment\":0,\"drawStyle\":\"line\",\"fillOpacity\":10,\"gradientMode\":\"none\",\"hideFrom\":{\"legend\":false,\"tooltip\":false,\"viz\":false},\"lineInterpolation\":\"linear\",\"lineWidth\":1,\"pointSize\":5,\"scaleDistribution\":{\"type\":\"linear\"},\"showPoints\":\"never\",\"spanNulls\":false,\"stacking\":{\"group\":\"A\",\"mode\":\"none\"},\"thresholdsStyle\":{\"mode\":\"off\"}},\"decimals\":0,\"mappings\":[],\"thresholds\":{\"mode\":\"absolute\",\"steps\":[{\"color\":\"green\",\"value\":null},{\"color\":\"red\",\"value\":80}]},\"unit\":\"none\"},\"overrides\":[]},\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":41},\"id\":161,\"links\":[],\"options\":{\"legend\":{\"calcs\":[\"lastNotNull\",\"max\",\"min\"],\"displayMode\":\"table\",\"placement\":\"bottom\"},\"tooltip\":{\"mode\":\"multi\",\"sort\":\"none\"}},\"pluginVersion\":\"9.0.5\",\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_sparksubmitjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"title\":\"submit job\",\"type\":\"timeseries\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve submit job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":41},\"hiddenSeries\":false,\"id\":162,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_sparksubmitjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve submit job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"run job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":48},\"hiddenSeries\":false,\"id\":163,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_sparkrunjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"run job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve run job\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":48},\"hiddenSeries\":false,\"id\":164,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_sparkrunjob{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve run job\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":55},\"id\":168,\"panels\":[],\"title\":\"partition retrieving\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"partition_retrieving\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":0,\"y\":56},\"hiddenSeries\":false,\"id\":169,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_api_partition_retrieving{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"partition_retrieving\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"acitve partition retrieving\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":12,\"x\":12,\"y\":56},\"hiddenSeries\":false,\"id\":170,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_active_calls_api_partition_retrieving{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"acitve partition retrieving\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1452\",\"decimals\":0,\"format\":\"none\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1453\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":63},\"id\":172,\"panels\":[],\"title\":\"container resource info\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Memory Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":0,\"y\":64},\"hiddenSeries\":false,\"id\":173,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"max (container_memory_usage_bytes{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Memory Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"CPU Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":8,\"y\":64},\"hiddenSeries\":false,\"id\":174,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(rate(container_cpu_usage_seconds_total{container=\\\"hive-server2\\\", namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}[5m])) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"CPU Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Disk Usage\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":7,\"w\":8,\"x\":16,\"y\":64},\"hiddenSeries\":false,\"id\":175,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"expr\":\"max (container_fs_reads_bytes_total{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"legendFormat\":\"{{pod}}-read\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"max (container_fs_writes_bytes_total{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-write\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Disk Usage\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:692\",\"format\":\"bytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:693\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"collapsed\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"gridPos\":{\"h\":1,\"w\":24,\"x\":0,\"y\":71},\"id\":28,\"panels\":[],\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"prometheus\"},\"refId\":\"A\"}],\"title\":\"JVM\",\"type\":\"row\"},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":72},\"hiddenSeries\":false,\"id\":93,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(jvm_memory_bytes_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM Class loaded\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":72},\"hiddenSeries\":false,\"id\":176,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_classloading_loaded{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Class loaded\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"Heap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":78},\"hiddenSeries\":false,\"id\":177,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_memory_heap_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Heap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"NonHeap Memory Used\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":78},\"hiddenSeries\":false,\"id\":178,\"legend\":{\"alignAsTable\":true,\"avg\":true,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum(hive_memory_non_heap_used{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"NonHeap Memory Used\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2038\",\"format\":\"decbytes\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2039\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"description\":\"JVM thread count\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":0,\"y\":84},\"hiddenSeries\":false,\"id\":108,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"exemplar\":true,\"expr\":\"sum (jvm_threads_current{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM Thread Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:476\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:477\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"JVM thread deadlock\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":6,\"y\":84},\"hiddenSeries\":false,\"id\":130,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"sum(hive_threads_deadlock_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"G\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread deadlock\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"JVM thread blocked\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":12,\"y\":84},\"hiddenSeries\":false,\"id\":180,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_threads_blocked_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"H\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM thread blocked\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"description\":\"Thread status\",\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":18,\"y\":84},\"hiddenSeries\":false,\"id\":179,\"legend\":{\"alignAsTable\":true,\"avg\":false,\"current\":true,\"max\":true,\"min\":true,\"show\":true,\"total\":false,\"values\":true},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(hive_threads_new_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}) by (pod)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}-create\",\"range\":true,\"refId\":\"A\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hive_threads_daemon_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-daemon\",\"range\":true,\"refId\":\"B\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_timed_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-timed-waiting\",\"range\":true,\"refId\":\"C\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_terminated_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-terminated\",\"range\":true,\"refId\":\"D\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":false,\"expr\":\"hive_threads_runnable_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-runnable\",\"range\":true,\"refId\":\"E\"},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"hive_threads_waiting_count{namespace=\\\"$namespace\\\",pod=~\\\"$pod\\\"}\",\"hide\":false,\"interval\":\"\",\"legendFormat\":\"{{pod}}-waiting\",\"range\":true,\"refId\":\"F\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Thread status\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:1288\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:1289\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":0,\"y\":90},\"hiddenSeries\":false,\"id\":182,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":12,\"x\":12,\"y\":90},\"hiddenSeries\":false,\"id\":181,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"JVM GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":0,\"y\":96},\"hiddenSeries\":false,\"id\":97,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"Copy|G1 Young Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Young GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":6,\"y\":96},\"hiddenSeries\":false,\"id\":183,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_count{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"MarkSweepCompact|G1 Old.*\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Old GC Count\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"short\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":12,\"y\":96},\"hiddenSeries\":false,\"id\":184,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"Copy|G1 Young Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Young GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}},{\"aliasColors\":{},\"bars\":false,\"dashLength\":10,\"dashes\":false,\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"fill\":1,\"fillGradient\":0,\"gridPos\":{\"h\":6,\"w\":6,\"x\":18,\"y\":96},\"hiddenSeries\":false,\"id\":185,\"legend\":{\"avg\":false,\"current\":false,\"max\":false,\"min\":false,\"show\":true,\"total\":false,\"values\":false},\"lines\":true,\"linewidth\":1,\"links\":[],\"nullPointMode\":\"null\",\"options\":{\"alertThreshold\":true},\"paceLength\":10,\"percentage\":false,\"pluginVersion\":\"9.0.5\",\"pointradius\":5,\"points\":false,\"renderer\":\"flot\",\"seriesOverrides\":[],\"spaceLength\":10,\"stack\":false,\"steppedLine\":false,\"targets\":[{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"$datasource\"},\"editorMode\":\"code\",\"exemplar\":true,\"expr\":\"sum(increase(jvm_gc_collection_seconds_sum{namespace=\\\"$namespace\\\",container=\\\"hive-server2\\\",pod=~\\\"$pod\\\",gc=~\\\"MarkSweepCompact|G1 Old Generation\\\"}[1m])) by (pod)\",\"format\":\"time_series\",\"interval\":\"\",\"intervalFactor\":1,\"legendFormat\":\"{{pod}}\",\"range\":true,\"refId\":\"A\"}],\"thresholds\":[],\"timeRegions\":[],\"title\":\"Old GC Time\",\"tooltip\":{\"shared\":true,\"sort\":0,\"value_type\":\"individual\"},\"type\":\"graph\",\"xaxis\":{\"mode\":\"time\",\"show\":true,\"values\":[]},\"yaxes\":[{\"$$hashKey\":\"object:2705\",\"format\":\"ms\",\"logBase\":1,\"show\":true},{\"$$hashKey\":\"object:2706\",\"format\":\"short\",\"logBase\":1,\"show\":true}],\"yaxis\":{\"align\":false}}],\"refresh\":\"30m\",\"schemaVersion\":36,\"style\":\"dark\",\"tags\":[\"hive\",\"hs2\"],\"templating\":{\"list\":[{\"current\":{\"selected\":false,\"text\":\"Prometheus\",\"value\":\"Prometheus\"},\"hide\":0,\"includeAll\":false,\"label\":\"datasource\",\"multi\":false,\"name\":\"datasource\",\"options\":[],\"query\":\"prometheus\",\"queryValue\":\"\",\"refresh\":1,\"regex\":\"\",\"skipUrlSync\":false,\"type\":\"datasource\"},{\"current\":{\"selected\":false,\"text\":\"admin\",\"value\":\"admin\"},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(hive_memory_heap_used)\",\"hide\":0,\"includeAll\":false,\"label\":\"Namespace\",\"multi\":false,\"name\":\"namespace\",\"options\":[],\"query\":{\"query\":\"query_result(hive_memory_heap_used)\",\"refId\":\"StandardVariableQuery\"},\"refresh\":1,\"regex\":\"/.*namespace=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false},{\"allValue\":\".*\",\"current\":{\"selected\":true,\"text\":[\"hive-server2-0\"],\"value\":[\"hive-server2-0\"]},\"datasource\":{\"type\":\"prometheus\",\"uid\":\"${datasource}\"},\"definition\":\"query_result(count_over_time(hive_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"hide\":0,\"includeAll\":true,\"label\":\"Pod\",\"multi\":true,\"name\":\"pod\",\"options\":[],\"query\":{\"query\":\"query_result(count_over_time(hive_memory_heap_used{namespace=\\\"$namespace\\\"}[$__range]))\",\"refId\":\"StandardVariableQuery\"},\"refresh\":2,\"regex\":\"/.*pod=\\\"([^\\\"]+).*/\",\"skipUrlSync\":false,\"sort\":1,\"tagValuesQuery\":\"\",\"tagsQuery\":\"\",\"type\":\"query\",\"useTags\":false}]},\"time\":{\"from\":\"now-5m\",\"to\":\"now\"},\"timepicker\":{\"refresh_intervals\":[\"5s\",\"10s\",\"30s\",\"1m\",\"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"1d\"],\"time_options\":[\"5m\",\"15m\",\"1h\",\"6h\",\"12h\",\"24h\",\"2d\",\"7d\",\"30d\"]},\"timezone\":\"\",\"title\":\"hive-server2\",\"uid\":\"t5_CsYCnz\",\"version\":2,\"weekStart\":\"\"}\n"
- }
- }
- },
]
"policies": [
{
diff --git a/catalog/hue/x-definitions/app-hue.cue b/catalog/hue/x-definitions/app-hue.cue
index 3bd299c..f31c994 100644
--- a/catalog/hue/x-definitions/app-hue.cue
+++ b/catalog/hue/x-definitions/app-hue.cue
@@ -100,11 +100,9 @@ template: {
spec: {
containers: [{
name: context.name
- _customEnv: [...]
- if parameter.env != _|_ {
- _customEnv: parameter.env
+ if parameter.resources != _|_ {
+ resources: parameter.resources
}
-
env: [
{
name: "ADMIN_USER"
@@ -277,7 +275,6 @@ template: {
{
properties: {
- ingressClassName: parameter.ingressClassName
stickySession: true
service: {
ports: [
@@ -446,10 +443,6 @@ template: {
}
}
- // +ui:description=配置访问 Ingress 地址的 IngressClass, 如果您不清楚IngressClass,请勿随意更改
- // +ui:order=4
- ingressClassName: *"kong" | string
-
// +ui:description=容器镜像
// +ui:options={"disabled": true}
// +ui:order=5
diff --git a/catalog/mysql/apps/mysql.app/app.yaml b/catalog/mysql/apps/mysql.app/app.yaml
index 765359b..1e6c900 100644
--- a/catalog/mysql/apps/mysql.app/app.yaml
+++ b/catalog/mysql/apps/mysql.app/app.yaml
@@ -12,12 +12,7 @@ spec:
type: mysql
properties:
version: "9.23.0"
- architecture: "replication"
- auth:
- rootPassword: Kdp@mysql123
- replicationPassword: Replicat@mysql123
- username: bdos_dba
- password: KdpDba@mysql123
+ architecture: ""
resources:
limits:
cpu: '2.0'
@@ -56,7 +51,7 @@ spec:
expire_logs_days=3
max_connections=3000
max_user_connections=1000
- innodb_buffer_pool_size=6442450944
+ innodb_buffer_pool_size=3G
slow-query-log=1
slow-query-log-file=/opt/bitnami/mysql/logs/slow-query.log
long_query_time=10
diff --git a/catalog/mysql/x-definitions/app-mysql.cue b/catalog/mysql/x-definitions/app-mysql.cue
index a3a003d..a108358 100644
--- a/catalog/mysql/x-definitions/app-mysql.cue
+++ b/catalog/mysql/x-definitions/app-mysql.cue
@@ -281,57 +281,61 @@ template: {
"mysql-replication-password": base64.Encode(null, parameter.auth.replicationPassword)
"mysql-root-password": base64.Encode(null, parameter.auth.rootPassword)
}
- }
+ },
]
}
"type": "k8s-objects"
},
+ {
+ name: "mysql-context-data"
+ type: "k8s-objects"
+ properties: {
+ objects: [
+ {
+ "apiVersion": "bdc.kdp.io/v1alpha1"
+ "kind": "ContextSetting"
+ "metadata": {
+ "name": context.bdc + "-mysql-setting"
+ "annotations": {
+ "setting.ctx.bdc.kdp.io/type": "connect"
+ "setting.ctx.bdc.kdp.io/origin": "system"
+ }
+ }
+ "spec": {
+ "name": "mysql-setting"
+ "properties": {
+ "MYSQL_HOST": context["bdc"] + "-mysql"
+ "MYSQL_PORT": "3306"
+ }
+ "type": "mysql"
+ }
+ },
+ {
+ "apiVersion": "bdc.kdp.io/v1alpha1"
+ "kind": "ContextSecret"
+ "metadata": {
+ "annotations": {
+ "setting.ctx.bdc.kdp.io/origin": "system"
+ }
+ "name": context["bdc"] + "-mysql-secret"
+ "namespace": ""
+ }
+ "spec": {
+ "type": "mysql"
+ "properties": {
+ "MYSQL_USER": base64.Encode(null, parameter.auth.username)
+ "MYSQL_PASSWORD": base64.Encode(null, parameter.auth.password)
+ }
+ "name": "mysql-secret"
+ }
+ },
+ ]
+ }
+ },
]
}
}
}
- outputs: {
- contextsetting: {
- //生成connect地址端口相关的上下文信息
- "apiVersion": "bdc.kdp.io/v1alpha1"
- "kind": "ContextSetting"
- "metadata": {
- "name": context.bdc + "-mysql-setting"
- "annotations": {
- "setting.ctx.bdc.kdp.io/type": "connect"
- "setting.ctx.bdc.kdp.io/origin": "system"
- }
- }
- "spec": {
- "name": "mysql-setting"
- "properties": {
- "MYSQL_HOST": context["bdc"] + "-mysql"
- "MYSQL_PORT": "3306"
- }
- "type": "mysql"
- }
- }
-
- contextsecret: {
- "apiVersion": "bdc.kdp.io/v1alpha1"
- "kind": "ContextSecret"
- "metadata": {
- "annotations": {
- "setting.ctx.bdc.kdp.io/origin": "system"
- }
- "name": context["bdc"] + "-mysql-secret"
- "namespace": ""
- }
- "spec": {
- "type": "mysql"
- "properties": {
- "MYSQL_USER": base64.Encode(null, parameter.auth.username)
- "MYSQL_PASSWORD": base64.Encode(null, parameter.auth.password)
- }
- "name": "mysql-secret"
- }
- }
- }
parameter: {
// +ui:description=mysql套件版本
@@ -343,33 +347,34 @@ template: {
debug: *false | bool
// +ui:description=mysql部署模式,standalone: 单机部署,replication: 主备部署。注意: standalone切换replication会导致应用一直处于执行中且无法切换成功。
// +ui:order=3
- architecture: *"standalone" | "replication"
- // +ui:description=mysql鉴权信息
+ // +ui:hidden={{rootFormData.architecture != ""}}
+ architecture: *""| "standalone" | "replication"
+ // +ui:description={{rootFormData.architecture == "standalone" ? 'standalone模式鉴权信息': 'replication模式鉴权信息'}}
// +ui:order=4
auth: {
// +ui:description=mysql root的密码, 初次安装时使用此配置,应用更新时更改此配置mysql密码保持不变, 可在应用端修改密码后更新配置,以供其他应用使用。
- // +pattern=^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()-_=+[\]{}|;:'",.<>?/]).{8,}$
+ // +pattern=(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}
// +ui:options={"format": "password", "showPassword": true}
// +ui:order=1
// +err:options={"pattern":"密码要求如下:\n1、长度大于8个字符\n2、密码中至少包含大小写字母、数字、特殊字符"}
- rootPassword: string
+ rootPassword: *"Kdp@mysql123" | string
// +ui:description=mysql 备份用户的密码, 初次安装时使用此配置,应用更新时更改此配置mysql密码保持不变, 可在应用端修改密码后更新配置,以供其他应用使用。
- // +pattern=^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()-_=+[\]{}|;:'",.<>?/]).{8,}$
+ // +pattern=(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}
// +ui:options={"showPassword": true}
// +ui:order=2
// +err:options={"pattern":"密码要求如下:\n1、长度大于8个字符\n2、密码中至少包含大小写字母、数字、特殊字符"}
// +ui:hidden={{rootFormData.architecture == "standalone"}}
- replicationPassword: string
+ replicationPassword: *"Replicat@mysql123" | string
// +ui:description=mysql dba用户名
// +ui:options={"disabled": true}
// +ui:order=3
username: *"bdos_dba" | string
// +ui:description=mysql dba密码, 初次安装时使用此配置,应用更新时更改此配置mysql密码保持不变, 可在应用端修改密码后更新配置,以供其他应用使用。
- // +pattern=^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()-_=+[\]{}|;:'",.<>?/]).{8,}$
+ // +pattern=(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}
// +ui:options={"showPassword": true}
// +ui:order=4
// +err:options={"pattern":"密码要求如下:\n1、长度大于8个字符\n2、密码中至少包含大小写字母、数字、特殊字符"}
- password: string
+ password: *"KdpDba!mysql123" | string
}
// +ui:description=mysql资源配置
// +ui:order=5
@@ -419,4 +424,4 @@ template: {
// +ui:options={"type": "textarea", "rows": 40, "placeholder": "[mysqld]\nport=3306"}
"mysqlConfig": string
}
-}
+}
\ No newline at end of file
diff --git a/catalog/spark/x-definitions/app-spark-history-server.cue b/catalog/spark/x-definitions/app-spark-history-server.cue
index 5e195c1..e8b25f7 100644
--- a/catalog/spark/x-definitions/app-spark-history-server.cue
+++ b/catalog/spark/x-definitions/app-spark-history-server.cue
@@ -41,71 +41,99 @@ template: {
spec: {
components: [
{
- "name": context.name
- "type": "raw"
- "properties": {
- apiVersion: "apps/v1"
- kind: "Deployment"
- metadata: {
- name: context.name
- annotations: {}
- labels: {
- app: context.name
- }
- }
- spec: {
- replicas: parameter.replicas
- selector: matchLabels: {
- app: context.name
- "app.oam.dev/component": context.name
- }
- template: {
- metadata: labels: {
- app: context.name
- "app.oam.dev/component": context.name
+ name: context.name
+ type: "k8s-objects"
+ properties: {
+ objects: [
+ {
+ apiVersion: "apps/v1"
+ kind: "Deployment"
+ metadata: {
+ name: context.name
+ annotations: {}
+ labels: {
+ app: context.name
+ }
}
spec: {
- containers: [{
- name: context.name
- env: [{
- name: "HADOOP_CONF_DIR"
- value: "/opt/hadoop/etc/hadoop/"
- }, {
- name: "SPARK_HISTORY_OPTS"
- value: "-Dspark.history.fs.logDirectory=\(parameter.logDirectory) -Dspark.history.fs.cleaner.enabled=\(strconv.FormatBool(parameter.cleaner.enabled)) -Dspark.history.fs.cleaner.interval=\(parameter.cleaner.interval) -Dspark.history.fs.cleaner.maxAge=\(parameter.cleaner.maxAge) -Dlog4j.configuration=file:///opt/spark/conf/log4j.properties"
- }]
- args: ["/opt/spark/bin/spark-class", "org.apache.spark.deploy.history.HistoryServer"]
- image: "\(context.docker_registry)/\(parameter.image)"
- ports: [{
- containerPort: 18080
- protocol: "TCP"
- }]
- resources: parameter.resources
+ replicas: parameter.replicas
+ selector: matchLabels: {
+ app: context.name
+ "app.oam.dev/component": context.name
+ }
+ template: {
+ metadata: labels: {
+ app: context.name
+ "app.oam.dev/component": context.name
+ }
+ spec: {
+ containers: [{
+ name: context.name
+ env: [{
+ name: "HADOOP_CONF_DIR"
+ value: "/opt/hadoop/etc/hadoop/"
+ }, {
+ name: "SPARK_HISTORY_OPTS"
+ value: "-Dspark.history.fs.logDirectory=\(parameter.logDirectory) -Dspark.history.fs.cleaner.enabled=\(strconv.FormatBool(parameter.cleaner.enabled)) -Dspark.history.fs.cleaner.interval=\(parameter.cleaner.interval) -Dspark.history.fs.cleaner.maxAge=\(parameter.cleaner.maxAge) -Dlog4j.configuration=file:///opt/spark/conf/log4j.properties"
+ }]
+ args: ["/opt/spark/bin/spark-class", "org.apache.spark.deploy.history.HistoryServer"]
+ image: "\(context.docker_registry)/\(parameter.image)"
+ ports: [{
+ containerPort: 18080
+ protocol: "TCP"
+ }]
+ resources: parameter.resources
- volumeMounts: [{
- name: "logs"
- mountPath: "/opt/spark/logs/"
- }, {
- name: "hadoop-config"
- mountPath: "/opt/hadoop/etc/hadoop/"
- }]
- }]
+ volumeMounts: [{
+ name: "logs"
+ mountPath: "/opt/spark/logs/"
+ }, {
+ name: "hadoop-config"
+ mountPath: "/opt/hadoop/etc/hadoop/"
+ }]
+ }]
- volumes: [{
- name: "logs"
- emptyDir: {}
- }, {
- name: "hadoop-config"
- configMap: {
- name: parameter.dependencies.hdfsConfigMapName
- defaultMode: 420
+ volumes: [{
+ name: "logs"
+ emptyDir: {}
+ }, {
+ name: "hadoop-config"
+ configMap: {
+ name: parameter.dependencies.hdfsConfigMapName
+ defaultMode: 420
+ }
+ }]
}
- }]
+ }
+ }
+ },
+ {
+ apiVersion: "v1"
+ kind: "Service"
+ metadata: {
+ name: context.name + "-svc"
+ labels: {
+ "app": context.name
+ }
+ }
+ spec: {
+ type: "ClusterIP"
+ selector: {
+ "app": context.name
+ }
+ ports: [
+ {
+ name: "port-tcp-18080"
+ targetPort: 18080
+ port: 18080
+ protocol: "TCP"
+ },
+ ]
}
}
- }
+ ]
}
- "traits": [
+ traits: [
{
"type": "bdos-security-context"
"properties": {
@@ -145,34 +173,6 @@ template: {
},
]
},
- {
- "name": context.name + "-svc"
- "type": "raw"
- "properties": {
- apiVersion: "v1"
- kind: "Service"
- metadata: {
- name: context.name + "-svc"
- labels: {
- "app": context.name
- }
- }
- spec: {
- type: "ClusterIP"
- selector: {
- "app": context.name
- }
- ports: [
- {
- name: "port-tcp-18080"
- targetPort: 18080
- port: 18080
- protocol: "TCP"
- },
- ]
- }
- }
- },
]
}
}
diff --git a/catalog/superset/README.md b/catalog/superset/README.md
new file mode 100644
index 0000000..bf9b0bf
--- /dev/null
+++ b/catalog/superset/README.md
@@ -0,0 +1,24 @@
+# 1. 介绍
+Superset 是一个快速、轻量级、直观的工具,提供了丰富的选项,使得不同技能水平的用户都能轻松地探索和可视化他们的数据,从简单的折线图到高度详细的GIS图表。
+
+# 2. 产品特性
+
+## 功能强大且易于使用
+Superset 使得数据探索变得简单,用户可以通过我们简单的无代码可视化构建器或先进的SQL IDE来实现。
+
+## 与现代数据库集成
+Superset 可以连接到任何基于SQL的数据库,包括现代的云原生数据库和引擎,支持PB级规模的数据。
+
+## 现代架构
+Superset 轻量级且高度可扩展,利用现有的数据基础设施的强大功能,无需额外的数据摄取层。
+
+## 丰富的可视化和仪表板
+Superset 自带40多种预安装的可视化类型。我们的插件架构使得构建自定义可视化变得容易。
+
+# 3. 应用场景
+
+## 数据探索与分析
+Superset 是数据分析师和科学家的理想选择,他们需要快速探索大型数据集并获得洞察。凭借其直观的界面和强大的SQL IDE,用户可以执行复杂的查询,并将结果可视化在各种图表和图形中。
+
+## 商业智能
+对于希望为团队提供自助式分析的组织,Superset 提供了一个可以定制以满足不同部门特定需求的平台。可以创建仪表板来监控关键绩效指标(KPIs)、跟踪销售、分析客户行为等。
\ No newline at end of file
diff --git a/catalog/superset/apps/superset.app/README.md b/catalog/superset/apps/superset.app/README.md
new file mode 100644
index 0000000..e81a4aa
--- /dev/null
+++ b/catalog/superset/apps/superset.app/README.md
@@ -0,0 +1,20 @@
+### 1. 介绍
+Superset 是一个快速、轻量级、直观的工具,提供了丰富的选项,使得不同技能水平的用户都能轻松地探索和可视化他们的数据,从简单的折线图到高度详细的GIS图表。
+
+### 2. 快速开始
+#### 2.1 登陆
+打开 Superset 访问地址(KDP->应用目录->Superset->运行实例页面右上角->访问地址),输入安装时候填写管理员密码账号即可登录。默认账号:`admin` 密码:`admin`.
+登录后可以在 Superset 应用中修改密码。
+
+注意:如果第一次访问出现`500 Internal Server Error`错误,请稍后重试。因为Superset 启动需要时间初始化数据,需要等待后台启动完成。根据配置不同,耗时可能几分钟到十几分钟。
+
+
+#### 2.2 如何创建一个 Superset Dashboard
+请参考:https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#creating-your-first-dashboard
+
+### 3.FAQ
+
+1. 启动报错
+
+`sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2005, "Unknown server host 'xxxxx@yyyy' (-2)")`
+请检查数据库密码中是否包含`@`字符,如果包含请修改数据库密码。该报错是由于 Superset 解析 SQLAlchemy URL (dialect+driver://username:password@host:port/database) 时候错误识别 host 导致的。
\ No newline at end of file
diff --git a/catalog/superset/apps/superset.app/app.yaml b/catalog/superset/apps/superset.app/app.yaml
new file mode 100644
index 0000000..44705b8
--- /dev/null
+++ b/catalog/superset/apps/superset.app/app.yaml
@@ -0,0 +1,15 @@
+apiVersion: bdc.kdp.io/v1alpha1
+kind: Application
+metadata:
+ annotations:
+ app.core.bdos/catalog: superset
+ labels:
+ app: superset
+ app.core.bdos/type: system
+spec:
+ name: superset
+ type: superset
+ properties:
+ supersetNode:
+ replicaCount: 1
+
diff --git a/catalog/superset/apps/superset.app/i18n/en/README.md b/catalog/superset/apps/superset.app/i18n/en/README.md
new file mode 100644
index 0000000..491c7c8
--- /dev/null
+++ b/catalog/superset/apps/superset.app/i18n/en/README.md
@@ -0,0 +1,19 @@
+### 1. Introduction
+Superset is a fast, lightweight, and intuitive tool that offers a rich set of options, making it easy for users of varying skill levels to explore and visualize their data, from simple line charts to highly detailed GIS maps.
+
+### 2. Quick Start
+#### 2.1 Login
+Access the Superset URL (KDP->Application Catalog->Superset->Running Instance Page Top Right->Access URL), enter the administrator username and password you set during installation to log in. The default username is: `admin` and the default password is: `admin`.
+After logging in, you can change your password within the Superset application.
+
+Note: If you encounter a `500 Internal Server Error` upon first access, please try again later. Superset requires time to initialize data upon startup, and you need to wait for the backend to complete its startup process. Depending on the configuration, this may take from a few minutes to over ten minutes.
+
+#### 2.2 How to Create a Superset Dashboard
+Please refer to: https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#creating-your-first-dashboard
+
+
+### 3.FAQ
+
+1. Startup Error
+`sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2005, "Unknown server host 'xxxxx@yyyy' (-2)")`
+Please verify whether the database password includes the @ character. If it does, you should update the database password. This error arises because Superset misinterprets the host when parsing the SQLAlchemy URL (dialect+driver://username:password@host:port/database).
\ No newline at end of file
diff --git a/catalog/superset/apps/superset.app/metadata.yaml b/catalog/superset/apps/superset.app/metadata.yaml
new file mode 100644
index 0000000..8657d10
--- /dev/null
+++ b/catalog/superset/apps/superset.app/metadata.yaml
@@ -0,0 +1,8 @@
+version: 4.0.0
+alias: Superset
+description: Superset 是一个快速、轻量级、直观的工具,它提供了丰富的选项,使得不同技能水平的用户都能轻松地探索和可视化他们的数据,从简单的折线图到高度详细的GIS图表。 https://github.com/apache/superset/tree/master/helm/superset
+isGlobal: false
+i18n:
+ en:
+ description: >-
+ Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts. https://github.com/apache/superset/tree/master/helm/superset
diff --git a/catalog/superset/i18n/en/README.md b/catalog/superset/i18n/en/README.md
new file mode 100644
index 0000000..b1fc4bb
--- /dev/null
+++ b/catalog/superset/i18n/en/README.md
@@ -0,0 +1,24 @@
+### 1. Introduction
+Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts.
+
+### 2. Product Features
+
+#### Powerful yet easy to use
+Superset makes it easy to explore your data, using either our simple no-code viz builder or state-of-the-art SQL IDE.
+
+#### Integrates with modern databases
+Superset can connect to any SQL-based databases including modern cloud-native databases and engines at petabyte scale.
+
+#### Modern architecture
+Superset is lightweight and highly scalable, leveraging the power of your existing data infrastructure without requiring yet another ingestion layer.
+
+#### Rich visualizations and dashboards
+Superset ships with 40+ pre-installed visualization types. Our plug-in architecture makes it easy to build custom visualizations.
+
+### 3. Application Scenarios
+
+#### Data Exploration and Analysis
+Superset is ideal for data analysts and scientists who need to quickly explore large datasets and gain insights. With its intuitive interface and powerful SQL IDE, users can perform complex queries and visualize the results in a variety of charts and graphs.
+
+#### Business Intelligence
+For organizations looking to empower their teams with self-service analytics, Superset provides a platform that can be customized to fit the specific needs of different departments. Dashboards can be created to monitor key performance indicators (KPIs), track sales, analyze customer behavior, and more.
\ No newline at end of file
diff --git a/catalog/superset/metadata.yaml b/catalog/superset/metadata.yaml
new file mode 100644
index 0000000..7683535
--- /dev/null
+++ b/catalog/superset/metadata.yaml
@@ -0,0 +1,8 @@
+name: Superset
+category: 开发工具
+description: Superset 是一个快速、轻量级、直观的工具,它提供了丰富的选项,使得不同技能水平的用户都能轻松地探索和可视化他们的数据,从简单的折线图到高度详细的GIS图表。
+i18n:
+ en:
+ category: devtools
+ description: >-
+ Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts.
diff --git a/catalog/superset/x-definitions/app-superset.cue b/catalog/superset/x-definitions/app-superset.cue
new file mode 100644
index 0000000..c563776
--- /dev/null
+++ b/catalog/superset/x-definitions/app-superset.cue
@@ -0,0 +1,440 @@
+import "strings"
+
+"superset": {
+ annotations: {}
+ labels: {}
+ attributes: {
+ dynamicParameterMeta: [
+ {
+ name: "mysql.mysqlSetting"
+ type: "ContextSetting"
+ refType: "mysql"
+ refKey: ""
+ description: "mysql setting name"
+ required: true
+ },
+ {
+ name: "mysql.mysqlSecret"
+ type: "ContextSecret"
+ refType: "mysql"
+ refKey: ""
+ description: "mysql secret name"
+ required: true
+ },
+ ]
+ apiResource: {
+ definition: {
+ apiVersion: "bdc.kdp.io/v1alpha1"
+ kind: "Application"
+ type: "superset"
+ }
+ }
+ }
+ description: "superset"
+ type: "xdefinition"
+}
+
+template: {
+ _databaseName: "\(strings.Replace(context.namespace+"_superset", "-", "_", -1))"
+ _imageRegistry: *"" | string
+ _contextImageRegistry: context["docker_registry"]
+ if _contextImageRegistry != _|_ && len(_contextImageRegistry) > 0 {
+ _imageRegistry: _contextImageRegistry + "/"
+ }
+
+ output: {
+ apiVersion: "core.oam.dev/v1beta1"
+ kind: "Application"
+ metadata: {
+ name: context["name"]
+ namespace: context["namespace"]
+ }
+ spec: {
+ components: [
+ {
+ name: context["name"]
+ type: "k8s-objects"
+ properties: {
+ objects: [
+ {
+ apiVersion: "source.toolkit.fluxcd.io/v1beta2"
+ kind: "HelmRepository"
+ metadata: {
+ name: context["name"]
+ namespace: context["namespace"]
+ }
+ spec: {
+ interval: "5m"
+ type: "oci"
+ url: context["helm_repo_url"]
+ }
+ },
+ {
+ apiVersion: "source.toolkit.fluxcd.io/v1beta2"
+ kind: "HelmChart"
+ metadata: {
+ name: context["name"]
+ namespace: context["namespace"]
+ }
+ spec: {
+ chart: "superset"
+ interval: "30s"
+ sourceRef: {
+ kind: "HelmRepository"
+ name: context["name"]
+ }
+ version: "0.12.10"
+ }
+ },
+ {
+ apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
+ kind: "HelmRelease"
+ metadata: {
+ name: context["name"]
+ namespace: context["namespace"]
+ }
+ spec: {
+ interval: "5m"
+ releaseName: context["name"]
+ targetNamespace: context["namespace"]
+ chart: {
+ spec: {
+ chart: "superset"
+ sourceRef: {
+ kind: "HelmRepository"
+ name: context["name"]
+ }
+ version: "0.12.10"
+ }
+ }
+ install: {
+ disableWait: true
+ }
+ upgrade: {
+ disableWait: true
+ }
+ values: {
+ image: {
+ repository: _imageRegistry + "apache/superset"
+ tag: "4.0.0"
+ }
+ initImage: repository: _imageRegistry + "apache/superset"
+ supersetWebsockets: image: repository: _imageRegistry + "oneacrefund/superset-websocket"
+
+ bootstrapScript: ##"""
+ #!/bin/bash
+ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple clickhouse-connect==0.7.8
+ {{ if .Values.init.loadExamples }}
+ mkdir -p /app/examples-data
+ curl https://registry.linktimecloud.com/repository/raw/examples-data-kdp-v1.0.tar.gz | tar -xz --strip-components=1 -C /app/examples-data
+ if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi
+ {{- end }}
+ """##
+ supersetNode: {
+ replicaCount: parameter.supersetNode.replicaCount
+ connections: {
+ db_name: _databaseName
+ }
+ if parameter.supersetNode.resources != _|_ {
+ resources: parameter.supersetNode.resources
+ }
+ initContainers: [
+ {
+ name: "wait-for-db"
+ image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
+ envFrom: [
+ {
+ configMapRef: name: "\(parameter.mysql.mysqlSetting)"
+ },
+ ]
+ command: [
+ "/bin/sh",
+ "-c",
+ "dockerize -wait tcp://$MYSQL_HOST:$MYSQL_PORT -timeout 120s",
+ ]
+ },
+
+ ]
+ }
+ extraEnvRaw: [
+ {
+ name: "DB_PASS"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_PASSWORD"
+ name: "\(parameter.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "DB_USER"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_USER"
+ name: "\(parameter.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "DB_HOST"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.mysql.mysqlSetting)"
+ key: "MYSQL_HOST"
+ }
+ },
+ {
+ name: "DB_PORT"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.mysql.mysqlSetting)"
+ key: "MYSQL_PORT"
+ }
+ },
+
+ ]
+ configOverrides: {
+ my_override:
+ """
+ # superset server secret key
+ SECRET_KEY = '4fBJrboAjmcQML/vkj0proB1YepAD/HN4do48OZGip5U0uSNkMtxq1oh'
+
+ # Set this API key to enable Mapbox visualizations.
+ MAPBOX_API_KEY = "pk.eyJ1IjoieGluZ2NhbiIsImEiOiJjazA0bTF0eWEyMGh6M25wZGNtdmJxZXpzIn0.4MOlFD_220-v9nyvkVfqYg"
+
+ # metadata database https://superset.apache.org/docs/configuration/configuring-superset/#setting-up-a-production-metadata-database
+ import urllib
+ DATABASE_PASSWORD = urllib.parse.quote_plus(f"{env('DB_PASS')}") # password may contain special characters @
+ SQLALCHEMY_DATABASE_URI = f"mysql://{env('DB_USER')}:{DATABASE_PASSWORD}@{env('DB_HOST')}:{env('DB_PORT')}/{env('DB_NAME')}?charset=utf8"
+ SQLALCHEMY_EXAMPLES_URI = f"mysql://{env('DB_USER')}:{DATABASE_PASSWORD}@{env('DB_HOST')}:{env('DB_PORT')}/{env('DB_NAME')}_examples?charset=utf8"
+
+ # https://github.com/apache/superset/issues/10354
+ WTF_CSRF_ENABLED = False
+
+ # https://superset.apache.org/docs/configuration/configuring-superset/#configuration-behind-a-load-balancer
+ ENABLE_PROXY_FIX = True
+
+ # localization
+ BABEL_DEFAULT_LOCALE = "en"
+ LANGUAGES = {
+ "en": {"flag": "us", "name": "English"},
+ "zh": {"flag": "cn", "name": "Chinese"},
+ }
+
+ """
+ }
+ // https: //artifacthub.io/packages/helm/bitnami/redis
+ redis: {
+ enabled: true
+ architecture: "standalone"
+ }
+ // https://github.com/bitnami/charts/tree/main/bitnami/postgresql
+ postgresql: {
+ enabled: false
+ }
+
+ // Async Queries via Celery
+ supersetWorker: {
+ replicaCount: 0
+ }
+
+ init: {
+ loadExamples: true
+ createAdmin: true
+ adminUser: {
+ username: parameter.supersetNode.adminUser.username
+ password: parameter.supersetNode.adminUser.password
+ }
+ initContainers: [
+ {
+ name: "create-mysql-database"
+ image: _imageRegistry + "bitnami/mysql:8.0.22"
+ env: [
+ {
+ name: "PASSWORD"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_PASSWORD"
+ name: "\(parameter.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "USER"
+ valueFrom: {
+ secretKeyRef: {
+ key: "MYSQL_USER"
+ name: "\(parameter.mysql.mysqlSecret)"
+ }
+ }
+ },
+ {
+ name: "DATABASE"
+ value: _databaseName
+ },
+ {
+ name: "MYSQL_HOST"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.mysql.mysqlSetting)"
+ key: "MYSQL_HOST"
+ }
+ },
+ {
+ name: "MYSQL_PORT"
+ valueFrom: configMapKeyRef: {
+ name: "\(parameter.mysql.mysqlSetting)"
+ key: "MYSQL_PORT"
+ }
+ },
+ ]
+ command: [
+ "sh",
+ "-c",
+ "mysql -h $MYSQL_HOST -P $MYSQL_PORT -u $USER -p$PASSWORD -e \"CREATE DATABASE IF NOT EXISTS $DATABASE CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE IF NOT EXISTS ${DATABASE}_examples CHARACTER SET utf8 COLLATE utf8_general_ci;\"",
+ ]
+ },
+ ]
+ initscript: ##"""
+ #!/bin/sh
+ set -eu
+ echo "Upgrading DB schema..."
+ superset db upgrade
+ echo "Initializing roles..."
+ superset init
+ {{ if .Values.init.createAdmin }}
+ echo "Creating admin user..."
+ superset fab create-admin \
+ --username {{ .Values.init.adminUser.username }} \
+ --firstname {{ .Values.init.adminUser.firstname }} \
+ --lastname {{ .Values.init.adminUser.lastname }} \
+ --email {{ .Values.init.adminUser.email }} \
+ --password {{ .Values.init.adminUser.password }} \
+ || true
+ {{- end }}
+ {{ if .Values.init.loadExamples }}
+ sed -i 's#https://github.com/apache-superset/examples-data/blob/master/#http://localhost:8000/#' /app/superset/examples/helpers.py
+ sed -i 's#https://github.com/apache-superset/examples-data/raw/master/#http://localhost:8000/#g' /app/superset/examples/configs/datasets/examples/*
+ sed -i 's#https://github.com/apache-superset/examples-data/raw/lowercase_columns_examples/#http://localhost:8000/#g' /app/superset/examples/configs/datasets/examples/video_game_sales.yaml
+ sed -i 's#https://raw.githubusercontent.com/apache-superset/examples-data/master/#http://localhost:8000/#g' /app/superset/examples/configs/datasets/examples/*
+ sed -i 's#https://raw.githubusercontent.com/apache-superset/examples-data/lowercase_columns_examples/#http://localhost:8000/#g' /app/superset/examples/configs/datasets/examples/*
+ echo "Starting http server for loading examples"
+ python -m http.server --directory /app/examples-data &
+ sleep 5
+ echo "Loading examples..."
+ superset load_examples
+ {{- end }}
+ if [ -f "{{ .Values.extraConfigMountPath }}/import_datasources.yaml" ]; then
+ echo "Importing database connections.... "
+ superset import_datasources -p {{ .Values.extraConfigMountPath }}/import_datasources.yaml
+ fi
+ """##
+ }
+
+ }
+
+ }
+
+ },
+
+ ]
+ }
+ traits: [
+ {
+ properties: {
+ rules: [
+ {
+ host: context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"]
+ paths: [
+ {
+ path: "/"
+ serviceName: context["name"]
+ servicePort: 8088
+ },
+ ]
+ },
+ ]
+ tls: [
+ {
+ hosts: [
+ context["name"] + "-" + context["namespace"] + "." + context["ingress.root_domain"],
+ ]
+ tlsSecretName: context["ingress.tls_secret_name"]
+ },
+ ]
+ }
+ type: "bdos-ingress"
+ },
+ ]
+
+ },
+ ]
+
+ }
+ }
+
+ parameter: {
+ // +ui:description=数据库依赖
+ // +ui:order=1
+ mysql: {
+ // +ui:description=数据库连接信息
+ // +err:options={"required":"请先安装mysql"}
+ mysqlSetting: string
+
+ // +ui:description=数据库认证信息
+ // +err:options={"required":"请先安装mysql"}
+ mysqlSecret: string
+ }
+
+ // +ui:description=Superset配置
+ // +ui:order=1
+ supersetNode: {
+ // +ui:description=管理员账号,初次安装配置,更新请在Web应用中修改
+ // +ui:order=1
+ adminUser: {
+ // +ui:description=用户名
+ // +ui:options={"showPassword":true}
+ // +ui:order=1
+ username: *"admin" | string
+
+ // +ui:description=密码
+ // +ui:options={"showPassword":true}
+ // +ui:order=2
+ password: *"admin" | string
+ }
+
+ // +minimum=1
+ // +ui:description=副本数
+ // +ui:order=2
+ replicaCount: *1 | int
+
+ // +ui:description=资源规格
+ // +ui:order=3
+ resources: {
+ // +ui:description=预留
+ // +ui:order=1
+ requests: {
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的CPU格式,如0.25,250m"}
+ // +ui:description=CPU
+ cpu: *"0.1" | string
+
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ // +ui:description=内存
+ memory: *"256Mi" | string
+ }
+ // +ui:description=限制
+ // +ui:order=2
+ limits: {
+ // +pattern=^(\d+\.\d{1,3}?|[1-9]\d*m?)$
+ // +err:options={"pattern":"请输入正确的CPU格式,如0.25,250m"}
+ // +ui:description=CPU
+ cpu: *"0.5" | string
+
+ // +pattern=^[1-9]\d*(Mi|Gi)$
+ // +err:options={"pattern":"请输入正确的内存格式,如1024Mi, 1Gi"}
+ // +ui:description=内存
+ memory: *"1Gi" | string
+ }
+ }
+ }
+ }
+}
diff --git a/catalog/zookeeper/x-definitions/app-zookeeper.cue b/catalog/zookeeper/x-definitions/app-zookeeper.cue
index 094e0e6..1eda421 100644
--- a/catalog/zookeeper/x-definitions/app-zookeeper.cue
+++ b/catalog/zookeeper/x-definitions/app-zookeeper.cue
@@ -310,27 +310,31 @@ template: {
},
{
"name": "\(context.name)-config"
- "type": "raw"
+ "type": "k8s-objects"
"properties": {
- "apiVersion": "bdc.kdp.io/v1alpha1"
- "kind": "ContextSetting"
- "metadata": {
- "namespace": context.namespace
- "name": "\(context.bdc)-\(context.name)"
- "annotations": {
- "setting.ctx.bdc.kdp.io/type": "zookeeper"
- "setting.ctx.bdc.kdp.io/origin": "system"
- }
- }
- "spec": {
- "name": "zookeeper-context"
- "type": "zookeeper"
- "properties": {
- "host": "zookeeper.\(context.namespace).svc.cluster.local:2181"
- "hostname": "zookeeper.\(context.namespace).svc.cluster.local"
- "port": "2181"
+ "objects": [
+ {
+ "apiVersion": "bdc.kdp.io/v1alpha1"
+ "kind": "ContextSetting"
+ "metadata": {
+ "namespace": context.namespace
+ "name": "\(context.bdc)-\(context.name)"
+ "annotations": {
+ "setting.ctx.bdc.kdp.io/type": "zookeeper"
+ "setting.ctx.bdc.kdp.io/origin": "system"
+ }
+ }
+ "spec": {
+ "name": "zookeeper-context"
+ "type": "zookeeper"
+ "properties": {
+ "host": "zookeeper.\(context.namespace).svc.cluster.local:2181"
+ "hostname": "zookeeper.\(context.namespace).svc.cluster.local"
+ "port": "2181"
+ }
+ }
}
- }
+ ]
}
},
]
diff --git a/cmd/const.go b/cmd/const.go
index 73bcd76..1809b3c 100644
--- a/cmd/const.go
+++ b/cmd/const.go
@@ -17,7 +17,7 @@ package cmd
const (
defaultKdpRepoUrl = "https://github.com/linktimecloud/kubernetes-data-platform.git"
- defaultKdpRepoRef = "main"
+ defaultKdpRepoRef = "v1.1.0"
defaultArtifactServer = "https://registry.linktimecloud.com/repository/raw/vela"
defaultHelmRepoisotry = "oci://registry-cr.linktimecloud.com/linktimecloud/"
defaultDockerRegistry = "registry-cr.linktimecloud.com"
diff --git a/docs/en/catalog-overview/Flink/common-usage.md b/docs/en/catalog-overview/Flink/common-usage.md
index 3e4da32..a51ac1e 100644
--- a/docs/en/catalog-overview/Flink/common-usage.md
+++ b/docs/en/catalog-overview/Flink/common-usage.md
@@ -9,15 +9,11 @@ Below is a demonstration of how to submit a Flink job to a session cluster via F
### Obtaining the Flink Job Jar File
-You can download the Flink job jar file from[here](https://repo1.maven.org/maven2/org/apache/flink/flink-examples-batch_2.11/1.14.6/flink-examples-batch_2.11-1.14.6-WordCount.jar),The file name is `flink-examples-batch_2.11-1.14.6-WordCount.jar`.
-
-Or you can build your own Flink job jar file. Refer to the [Flink WordCount example](https://github.com/apache/flink/blob/master/flink-examples/flink-examples-batch/src/main/java/org/apache/flink/examples/java/wordcount/WordCount.java)
+You can download the Flink job jar file from [here](https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.17.1/flink-examples-streaming_2.12-1.17.1-WordCount.jar), with the file name `flink-examples-streaming_2.12-1.17.1-WordCount`.
### Submitting the Flink Job to the Session Cluster
-Open the Flink WebUI(for example:`http://flink-session-cluster:8081`)and submit the Flink job to the session cluster.
+1. Open Flink WebUI (for example, Flink WebUI: `http://flink-session-cluster-ingress.yourdomain.com`)
+2. Click `Submit New Job` -> `Add New`, select the jar file downloaded in the previous step, and submit the Flink job to the session cluster.
-1. Click `Submit New Job` -> `Add New`,select the jar file on your local machine to upload.
-2. Click on the uploaded jar file name, enter `org.apache.flink.examples.java.wordcount.WordCount` in `the Entry Class` field, and enter `--output "/tmp/word-count.txt"` in the Program Arguments field. Click `Submit` to submit the Flink job to the session cluster.
-
-You can check the Flink job running in the Flink WebUI.
+Later, you can see the Flink job running in the Flink WebUI.
diff --git a/docs/en/catalog-overview/Flink/developer-guide.md b/docs/en/catalog-overview/Flink/developer-guide.md
index 133b2a8..fb7ab86 100644
--- a/docs/en/catalog-overview/Flink/developer-guide.md
+++ b/docs/en/catalog-overview/Flink/developer-guide.md
@@ -140,17 +140,34 @@ Two methods are introduced for submitting applications: one is through the Flink
#### Submitting Applications via Flink CLI
-Enter the flink session cluster container and execute the following command:
+Enter the flink session cluster container :
```shell
-./bin/flink run -d ./examples/streaming/SocketWindowWordCount.jar --hostname `(grep 'flink-session-cluster' /etc/hosts | head -n 1 | awk '{print $1}')` --port 9999 && nc -l 9999
+# Change the pod according to the actual situation
+kubectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
```
-After successfully publishing the job, input text data and observe the output results on the flink session cluster console.
+Execute the following command in the flink session cluster container:
+```shell
+./bin/flink run -d ./examples/streaming/SocketWindowWordCount.jar --hostname `(grep 'flink-session-cluster' /etc/hosts | head -n 1 | awk '{print $1}')` --port 9999 && nc -l 9999
+```
+Expected output like:
+```shell
+ERROR StatusLogger Reconfiguration failed: No configuration found for '6438a396' at 'null' in 'null'
+ERROR StatusLogger Reconfiguration failed: No configuration found for '510f3d34' at 'null' in 'null'
+WARNING: An illegal reflective access operation has occurred
+WARNING: Illegal reflective access by org.apache.flink.api.java.ClosureCleaner (file:/opt/flink/lib/flink-dist-1.17.1.jar) to field java.lang.String.value
+WARNING: Please consider reporting this to the maintainers of org.apache.flink.api.java.ClosureCleaner
+WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
+WARNING: All illegal access operations will be denied in a future release
+Job has been submitted with JobID ff3008609a49c364e7b27f5e94f4f57b
+```
+The error message `ERROR StatusLogger Reconfiguration failed` does not affect job submission and can be ignored.
-Clean up job:
-Exit the nc interactive interface and execute the following command:
+At this point, the job has been successfully submitted. In the nc command interactive interface, enter any text, press Enter to send the text, and you can send text multiple times. You can view the output results on the flink session cluster console.
+Clear the job:
+Exit the nc interactive interface (control+c) and execute the following command:
```shell
./bin/flink list
## expecte output:job id
@@ -192,8 +209,8 @@ After successful addition, you will be redirected to the job management page.
**Running the job**
-- On the job management page, click the `publish job` button for the `datagen-print` job, and the publish status will change to `Done` `Success`
-- Click the `start job` button for the `datagen-print` job, close the `from savepoint` in the pop-up window, click `apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting`, `Running`, `Finished` in turn.
+- On the job management page, click the `publish job` button for the ``Socket Window WordCount`` job, and the publish status will change to `Done` `Success`
+- Click the `start job` button for the ``Socket Window WordCount`` job, close the `from savepoint` in the pop-up window, click `apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting`, `Running` in turn.
- Finally, use the `stop job` button to stop the job.
## Flink SQL Application Development
@@ -317,4 +334,5 @@ After successful addition, you will be redirected to the job management page.
Running the job
- On the job management page, click the `publish job` button for the job, and the publish status will change to `Done` `Success`.
-- Click the `start job` button for the job, close the from savepoint in the pop-up window, click `apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting`, `Running`, `Finished` in turn.
\ No newline at end of file
+- Click the `start job` button for the job, close the from savepoint in the pop-up window, click `apply`, the job will be submitted to the Flink session cluster for running, and the running status will change to `Starting`, `Running`, in turn.
+- Finally, use the `stop job` button to stop the job.
\ No newline at end of file
diff --git a/docs/en/getting-started/quick-start.md b/docs/en/getting-started/quick-start.md
index 38cee16..fd2a4a7 100644
--- a/docs/en/getting-started/quick-start.md
+++ b/docs/en/getting-started/quick-start.md
@@ -20,52 +20,45 @@ Users can quickly experience KDP functions on a stand-alone environment.
- Binary installation from [Release Page](https://github.com/linktimecloud/kubernetes-data-platform/releases)
- Source code installation (requires [Go](https://go.dev/doc/install) 1.21+ installed locally): clone the project to the local, then run `go install` at project root
-## Install KDP
+## Install KDP Infrastructure
* Use KDP CLI to install KDP infrastructure:
```bash
# > specify "--debug" to enable verbose logging
-# > specify "--set ingress.domain=" w/wo "--set ingress.tlsSecretName=" to use your own domain w/wo TLS
-# > if the install breaks, you may run the command again and it will skip the steps already been done; you may also specify "--force-reinstall" to do a start-over force reinstallation
-
+# > if the install breaks, you may re-run the command to continue the install
kdp install --local-mode --set dnsService.name=kube-dns
-
```
-## Domain resolution
+## Local Domain resolution
-All components running on the KDP are exposed to external access through the K8s Ingress. Therefore, domain name resolution must be configured after the installation.
-
-Below is a list of domains for all components on KDP by default:
-```
-kdp-ux.kdp-e2e.io
-grafana.kdp-e2e.io
-prometheus.kdp-e2e.io
-alertmanager.kdp-e2e.io
-flink-session-cluster-kdp-data.kdp-e2e.io
-hdfs-namenode-0-kdp-data.kdp-e2e.io
-hdfs-namenode-1-kdp-data.kdp-e2e.io
-hue-kdp-data.kdp-e2e.io
-kafka-manager-kdp-data.kdp-e2e.io
-minio-kdp-data-api.kdp-e2e.io
-spark-history-server-kdp-data.kdp-e2e.io
-streampark-kdp-data.kdp-e2e.io
+All components running on the KDP are exposed to external access through the K8s Ingress. We used a self-defined root domain `kdp-e2e.io` for the quick start, therefore, local domain resolution must be configured in order to visit those services:
+```bash
+# 1. set env `KDP_HOST` to the private IP of the stand-alone host, e.g. `export KDP_HOST=192.168.1.100`
+# 2. modify /etc/hosts requires sudo priviledge
+
+kdpHost=${KDP_HOST:-127.0.0.1}
+kdpDomain="kdp-e2e.io"
+kdpPrefix=("kdp-ux" "grafana" "prometheus" "alertmanager" "cloudtty" "flink-session-cluster-kdp-data" "hdfs-namenode-0-kdp-data" "hdfs-namenode-1-kdp-data" "hue-kdp-data" "kafka-manager-kdp-data" "minio-kdp-data-api" "spark-history-server-kdp-data" "streampark-kdp-data")
+etcHosts="/etc/hosts"
+
+for prefix in "${kdpPrefix[@]}"; do
+ domain="$prefix.$kdpDomain"
+ if ! grep -q "$domain" ${etcHosts}; then
+ echo "$kdpHost $domain" | sudo tee -a ${etcHosts}
+ fi
+done
```
-You may refer to the following common scenarios for configuring domain resolution:
-- when installing with the default configuration, add the resolution of the above domains to the local `/etc/hosts` on the access end, pointing to the IP address of the stand-alone environment
-- if specified "--set ingress.domain=" previously, choose one of the following:
- - if the customized domains are not public resolved, replace the root domain of the above domains with "", then add the resolution of the above domains to the local `/etc/hosts` on the access end, pointing to the IP address of the stand-alone environment
- - elsely, add A records of above domains at DNS provider, pointing to the IP address of the stand-alone environment
-
## Visit KDP UX
-After the installation is complete, you can access the KDP UX in either of the following situations(if specified "--set ingress.tlsSecretName=" previously, use HTTPS protocol):
-- by default:http://kdp-ux.kdp-e2e.io
-- with '--set ingress.domain=':`http://kdp-ux.`
+After the installation is completed successfully, you may visit KDP UX by the default URL:http://kdp-ux.kdp-e2e.io
## Clean up
```bash
-# destroy local cluster, all data will be erased.
-kind delete cluster -n kdp-e2e
+# 1. destroy KDP kind cluster, all data will be erased
+# 2. clean up /etc/hosts
+kind delete cluster -n kdp-e2e
+for prefix in "${kdpPrefix[@]}"; do
+ sudo sed -i"" "/$prefix.$kdpDomain/d" ${etcHosts}
+done
```
diff --git a/docs/en/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md b/docs/en/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md
new file mode 100644
index 0000000..5ea580f
--- /dev/null
+++ b/docs/en/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md
@@ -0,0 +1,51 @@
+
+# Batch Job Scheduling for Hive SQL with Apache Airflow
+
+# 1. Introduction
+Apache Airflow is an open-source platform for orchestrating and automating batch jobs, allowing for the easy creation, scheduling, monitoring, and management of workflows. Airflow supports Hive SQL, enabling the effortless execution of Hive SQL tasks.
+
+Apache Airflow utilizes Directed Acyclic Graphs (DAGs) to represent workflows, which consist of task nodes and dependencies. Task nodes can be Python operations, Shell operations, SQL operations, and more. Airflow supports various schedulers, including the Local scheduler, Celery scheduler, Kubernetes scheduler, and others.
+
+This article introduces how to write Hive SQL tasks using `pyhive` and execute them with the Apache Airflow Kubernetes scheduler.
+
+# 2. Writing a Hive SQL DAG
+
+The specific code implementation can be accessed on [Github](https://github.com/linktimecloud/example-datasets/blob/airflow/dags/hive-sql-example.py) or [Gitee](https://gitee.com/linktime-cloud/example-datasets/blob/airflow/dags/hive-sql-example.py).
+
+This code is a DAG (Directed Acyclic Graph) written using the Apache Airflow framework, designed for automating data processing tasks. It primarily performs two tasks: creating a Hive table and inserting data, followed by identifying the top-scoring students in each subject.
+
+# 3. Running the DAG
+## 3.1 Component Dependencies
+The following components need to be installed in KDP:
+- mysql
+- airflow
+- zookeeper
+- hdfs
+- hive (hive metastore, hive server)
+- hue, httpfs-gateway (optional)
+
+## 3.2 Scheduling Jobs
+After installing Airflow with default parameters in KDP, log in to the Airflow Web interface using the username `admin` and password `admin`.
+
+Start the DAG named `hive-sql-example`.
+
+
+
+Upon successful execution, the results can be viewed through the Hue Web interface. Alternatively, you can refer to the `hive-server2` Quick Start guide to connect to Hive Server2 using beeline and view the results.
+
+
+
+
+运行成功后,可以通过Hue Web界面查看结果。也可以参考 `hive-server2` Qucick Start 使用beeline 连接 Hive Server2 查看结果。
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/en/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md b/docs/en/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md
new file mode 100644
index 0000000..22cee2e
--- /dev/null
+++ b/docs/en/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md
@@ -0,0 +1,93 @@
+# Exploring data using airbyte, clickhouse, and superset
+English | [简体中文](../../zh/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md)
+
+# 1. Introduction
+This guide will show you how to use the KDP platform to complete data integration/processing/BI display, involving applications such as `airbyte`, `clickhouse`, and `superset`. It is recommended to familiarize yourself with each component's quick start before following the steps in this guide.
+
+# 2. Data Integration
+Import data from a csv file into clickhouse
+1. Add a file type source in airbyte.
+ 
+ - Dataset Name: `tmall-order-sample` (please modify)
+ - URL: `https://gitee.com/linktime-cloud/example-datasets/raw/main/airbyte/tmall-order-sample.csv`
+
+1. Add a clickhouse type destination in airbyte.
+ 
+ - Host: `clickhouse.kdp-data.svc.cluster.local`
+ - Port: `8123`
+ - DB Name: `default`
+ - User: `default`
+ - Password: `ckdba.123`
+
+1. Add a connection in airbyte, select file as the source and clickhouse as the destination, use the default configuration, and then save.
+ 
+
+1. Check the airbyte job status. If successful, the data has been successfully imported into clickhouse.
+ 
+
+After completing the above operations, the ELT (Extract Load Transform) process is completed, and the Transform is performed using clickhouse.
+
+# 3. Data Processing
+
+```bash
+# Enter clickhouse container
+kubectl exec -it clickhouse-shard0-0 -n kdp-data -c clickhouse -- bash
+# Connect to clickhouse
+clickhouse-client --user default --password ckdba.123
+# View the databases
+show databases;
+use airbyte_internal;
+show tables;
+# Confirm that the data has been successfully written
+select count(*) from airbyte_internal.default_raw__stream_tmall_order_sample;
+```
+
+Continue to execute the following three SQL statements in sequence to complete data processing.
+
+```sql
+DROP TABLE IF EXISTS airbyte_internal.ods_tmall_order;
+
+-- Define the structure of the new table ods_tmall_order
+CREATE TABLE airbyte_internal.ods_tmall_order
+(
+ total_amount Int32,
+ order_number Int32,
+ shipping_address String,
+ payment_time DateTime64(3, 'GMT'),
+ order_creation_time DateTime64(3, 'GMT'),
+ refund_amount Int32,
+ actual_payment_amount Int32
+)
+ ENGINE = MergeTree
+ORDER BY order_number;
+-- Assuming order_number is a unique identifier for each order
+
+-- Insert data into the new table from the JSON in _airbyte_data
+INSERT INTO airbyte_internal.ods_tmall_order
+SELECT JSONExtractInt(_airbyte_data, '总金额') AS total_amount,
+ JSONExtractInt(_airbyte_data, '订单编号') AS order_number,
+ JSONExtractString(_airbyte_data, '收货地址 ') AS shipping_address,
+ parseDateTimeBestEffortOrNull(nullIf(JSONExtractString(_airbyte_data, '订单付款时间 '), '')) AS payment_time,
+ parseDateTimeBestEffortOrNull(nullIf(JSONExtractString(_airbyte_data, '订单创建时间'), '')) AS order_creation_time,
+
+ JSONExtractInt(_airbyte_data, '退款金额') AS refund_amount,
+ JSONExtractInt(_airbyte_data, '买家实际支付金额') AS actual_payment_amount
+FROM default_raw__stream_tmall_order_sample;
+
+```
+
+Data processing verification
+```sql
+select * from airbyte_internal.ods_tmall_order limit 10;
+```
+# 4. Data Display
+In Superset, we add a ClickHouse data source and create a dashboard. For instructions on how to add a data source and create a dashboard, refer to the Superset quick start guide. Below, we complete the data source and dashboard import using the panel import feature.
+1. [Download the dashboard](https://gitee.com/linktime-cloud/example-datasets/blob/main/superset/dashboard_export_20240521T102107.zip)
+2. Import the dashboard
+ - Select the downloaded file to import
+
+ - Enter the default password of the ClickHouse user `default` as ckdba.123`
+
+ - The imported dashboard will look like this:
+
+
diff --git a/docs/en/user-tutorials/images/airbyte01.png b/docs/en/user-tutorials/images/airbyte01.png
new file mode 100644
index 0000000..cc32e52
Binary files /dev/null and b/docs/en/user-tutorials/images/airbyte01.png differ
diff --git a/docs/en/user-tutorials/images/airbyte02.png b/docs/en/user-tutorials/images/airbyte02.png
new file mode 100644
index 0000000..0c9a8f4
Binary files /dev/null and b/docs/en/user-tutorials/images/airbyte02.png differ
diff --git a/docs/en/user-tutorials/images/airbyte03.png b/docs/en/user-tutorials/images/airbyte03.png
new file mode 100644
index 0000000..eecf444
Binary files /dev/null and b/docs/en/user-tutorials/images/airbyte03.png differ
diff --git a/docs/en/user-tutorials/images/airbyte04.png b/docs/en/user-tutorials/images/airbyte04.png
new file mode 100644
index 0000000..de453a0
Binary files /dev/null and b/docs/en/user-tutorials/images/airbyte04.png differ
diff --git a/docs/en/user-tutorials/images/airflow01.png b/docs/en/user-tutorials/images/airflow01.png
new file mode 100644
index 0000000..68dd9c0
Binary files /dev/null and b/docs/en/user-tutorials/images/airflow01.png differ
diff --git a/docs/en/user-tutorials/images/airflow02.png b/docs/en/user-tutorials/images/airflow02.png
new file mode 100644
index 0000000..bf8114b
Binary files /dev/null and b/docs/en/user-tutorials/images/airflow02.png differ
diff --git a/docs/en/user-tutorials/images/kdp-ux-landing-page.png b/docs/en/user-tutorials/images/kdp-ux-landing-page.png
new file mode 100644
index 0000000..8f9aaf8
Binary files /dev/null and b/docs/en/user-tutorials/images/kdp-ux-landing-page.png differ
diff --git a/docs/en/user-tutorials/images/ks-cluster-overview.png b/docs/en/user-tutorials/images/ks-cluster-overview.png
new file mode 100644
index 0000000..d5a33c3
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-cluster-overview.png differ
diff --git a/docs/en/user-tutorials/images/ks-kdp-install.png b/docs/en/user-tutorials/images/ks-kdp-install.png
new file mode 100644
index 0000000..c560fbd
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-kdp-install.png differ
diff --git a/docs/en/user-tutorials/images/ks-kdp-ux-access-service.png b/docs/en/user-tutorials/images/ks-kdp-ux-access-service.png
new file mode 100644
index 0000000..02d354e
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-kdp-ux-access-service.png differ
diff --git a/docs/en/user-tutorials/images/ks-kdp-ux-ingress.png b/docs/en/user-tutorials/images/ks-kdp-ux-ingress.png
new file mode 100644
index 0000000..a5c4dce
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-kdp-ux-ingress.png differ
diff --git a/docs/en/user-tutorials/images/ks-monitoring.png b/docs/en/user-tutorials/images/ks-monitoring.png
new file mode 100644
index 0000000..6eb34ff
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-monitoring.png differ
diff --git a/docs/en/user-tutorials/images/ks-web-kubectl.png b/docs/en/user-tutorials/images/ks-web-kubectl.png
new file mode 100644
index 0000000..2131a01
Binary files /dev/null and b/docs/en/user-tutorials/images/ks-web-kubectl.png differ
diff --git a/docs/en/user-tutorials/images/rancher-arch.png b/docs/en/user-tutorials/images/rancher-arch.png
new file mode 100644
index 0000000..46b5ad4
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-arch.png differ
diff --git a/docs/en/user-tutorials/images/rancher-ds-cluster-monitoring.png b/docs/en/user-tutorials/images/rancher-ds-cluster-monitoring.png
new file mode 100644
index 0000000..25f42a0
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-ds-cluster-monitoring.png differ
diff --git a/docs/en/user-tutorials/images/rancher-ds-cluster.png b/docs/en/user-tutorials/images/rancher-ds-cluster.png
new file mode 100644
index 0000000..03c5ea3
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-ds-cluster.png differ
diff --git a/docs/en/user-tutorials/images/rancher-k8s-dist.png b/docs/en/user-tutorials/images/rancher-k8s-dist.png
new file mode 100644
index 0000000..3ead947
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-k8s-dist.png differ
diff --git a/docs/en/user-tutorials/images/rancher-kdp-install-ok.png b/docs/en/user-tutorials/images/rancher-kdp-install-ok.png
new file mode 100644
index 0000000..24d6fd0
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-kdp-install-ok.png differ
diff --git a/docs/en/user-tutorials/images/rancher-kdp-ux-ingress.png b/docs/en/user-tutorials/images/rancher-kdp-ux-ingress.png
new file mode 100644
index 0000000..0fa6113
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-kdp-ux-ingress.png differ
diff --git a/docs/en/user-tutorials/images/rancher-kubectl-shell.png b/docs/en/user-tutorials/images/rancher-kubectl-shell.png
new file mode 100644
index 0000000..ff11907
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-kubectl-shell.png differ
diff --git a/docs/en/user-tutorials/images/rancher-overview.png b/docs/en/user-tutorials/images/rancher-overview.png
new file mode 100644
index 0000000..61b84c4
Binary files /dev/null and b/docs/en/user-tutorials/images/rancher-overview.png differ
diff --git a/docs/en/user-tutorials/images/superset01.png b/docs/en/user-tutorials/images/superset01.png
new file mode 100644
index 0000000..1845ef6
Binary files /dev/null and b/docs/en/user-tutorials/images/superset01.png differ
diff --git a/docs/en/user-tutorials/images/superset02.png b/docs/en/user-tutorials/images/superset02.png
new file mode 100644
index 0000000..f69a6d3
Binary files /dev/null and b/docs/en/user-tutorials/images/superset02.png differ
diff --git a/docs/en/user-tutorials/images/superset03.png b/docs/en/user-tutorials/images/superset03.png
new file mode 100644
index 0000000..119d217
Binary files /dev/null and b/docs/en/user-tutorials/images/superset03.png differ
diff --git a/docs/en/user-tutorials/import-from-hdfs-to-hdfs.md b/docs/en/user-tutorials/import-from-hdfs-to-hdfs.md
new file mode 100644
index 0000000..9d813d4
--- /dev/null
+++ b/docs/en/user-tutorials/import-from-hdfs-to-hdfs.md
@@ -0,0 +1,98 @@
+# Data Import from External HDFS to KDP HDFS
+
+Migrating data from an old cluster to a new cluster is a common requirement. On a traditional HDFS cluster deployment, you can use [distcp](https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html) for data migration. However, since KDP does not have YARN, you cannot directly use distcp for data migration. As an alternative, you can use [spark-distcp](https://index.scala-lang.org/coxautomotivedatasolutions/spark-distcp) for data migration.
+
+# Component Dependencies
+
+Please install the following components:
+
+- spark-on-k8s-operator
+
+# Performing Data Migration
+
+Assuming the HDFS on the old cluster has Namenode High Availability enabled, with addresses as follows:
+
+- hdfs://namenode-1:8020
+- hdfs://namenode-2:8020
+
+The HDFS Namenode addresses on KDP are:
+
+- hdfs-namenode-0.hdfs-namenode.kdp-data.svc.cluster.local:8020
+- hdfs-namenode-1.hdfs-namenode.kdp-data.svc.cluster.local:8020
+
+We will migrate the directory hdfs:///data from the old cluster to hdfs:///data on the KDP HDFS cluster.
+
+Create a file `spark-distcp.yaml` with the following content on your local machine:
+
+```yaml
+apiVersion: sparkoperator.k8s.io/v1beta2
+kind: SparkApplication
+metadata:
+ name: spark-distcp
+ namespace: kdp-data
+spec:
+ type: Scala
+ mode: cluster
+ image: od-registry.linktimecloud.com/ltc-spark:v1.0.0-3.3.0
+ sparkVersion: 3.3.0
+ mainClass: com.coxautodata.SparkDistCP
+ mainApplicationFile: https://repo1.maven.org/maven2/com/coxautodata/spark-distcp_2.12/0.2.5/spark-distcp_2.12-0.2.5-assembly.jar
+ hadoopConf:
+ "dfs.nameservices": "source,target"
+ "dfs.ha.namenodes.source": "nn0,nn1"
+ "dfs.namenode.rpc-address.source.nn0": "hdfs://namenode-1:8020"
+ "dfs.namenode.rpc-address.source.nn1": "hdfs://namenode-2:8020"
+ "dfs.client.failover.proxy.provider.source": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ "dfs.ha.namenodes.target": "nn0,nn1"
+ "dfs.namenode.rpc-address.target.nn0": "hdfs-namenode-0.hdfs-namenode.kdp-data.svc.cluster.local:8020"
+ "dfs.namenode.rpc-address.target.nn1": "hdfs-namenode-1.hdfs-namenode.kdp-data.svc.cluster.local:8020"
+ "dfs.client.failover.proxy.provider.target": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ driver:
+ cores: 1
+ memory: 512m
+ executor:
+ cores: 1
+ instances: 2
+ memory: 512m
+ arguments:
+ - hdfs://source/data
+ - hdfs://target/data
+```
+
+Pay attention to the contents in `spec.hadoopConf`. We named the old cluster as `source` and the KDP HDFS cluster as `target`.
+
+You can adjust the resources for the driver and executor as needed.
+
+Execute the following command to start the data migration process:
+
+```shell
+kubectl apply -f spark-distcp.yaml
+```
+
+Migration progress can be viewed by checking the logs of the `spark-distcp-driver` pod, or by accessing the Spark UI from a local browser using the following command:
+
+```shell
+# Once executed, you can access localhost:4040 from your browser
+kubectl port-forward spark-distcp-driver -n kdp-data 4040:4040
+```
+
+# Options
+
+The following flags can be added in `spec.arguments` of `spark-distcp.yaml`:
+
+| Flag | Description |
+| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| --i | Ignore failures |
+| --log | Write logs to a URI |
+| --dryrun | Perform a trial run with no changes made |
+| --verbose | Run in verbose mode |
+| --overwrite | Overwrite destination |
+| --update | Overwrite if source and destination differ in size, or checksum |
+| --filters | The path to a file containing a list of pattern strings, one string per line, such that paths matching the pattern will be excluded from the copy |
+| --delete | Delete the files existing in the dst but not in src |
+| --numListstatusThreads | Number of threads to use for building file listing |
+| --consistentPathBehaviour | Revert the path behaviour when using overwrite or update to the path behaviour of non-overwrite/non-update |
+| --maxFilesPerTask | Maximum number of files to copy in a single Spark task |
+| --maxBytesPerTask | Maximum number of bytes to copy in a single Spark task |
+
+For more parameters and considerations, you can refer to https://index.scala-lang.org/coxautomotivedatasolutions/spark-distcp
\ No newline at end of file
diff --git a/docs/en/user-tutorials/import-from-rbdms-to-hive.md b/docs/en/user-tutorials/import-from-rbdms-to-hive.md
index aff2141..bfb8195 100644
--- a/docs/en/user-tutorials/import-from-rbdms-to-hive.md
+++ b/docs/en/user-tutorials/import-from-rbdms-to-hive.md
@@ -14,9 +14,9 @@ Requires the installation of the following components on KDP:
- hive-metastore
- hive-server2
- flink-kubernetes-operator
-- flink-session-cluster
-- streampark(optional. Note that Flink on Hive needs to be enabled.)
-- hue(optional)
+- flink-session-cluster (Note that Flink on Hive needs to be enabled)
+- streampark (optional)
+- hue (optional)
Please install the above components in order.
@@ -51,7 +51,7 @@ Execute the following commands to enter Flink SQL:
kubectl get pods -n kdp-data -l app=flink-session-cluster -l component=jobmanager -o name
# Enter the flink-session-cluster container.
# Replace 'flink-session-cluster-xxxxx' with the actual pod name.
-kbuectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
+kubectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
# Start Flink SQL
./bin/sql-client.sh
```
diff --git a/docs/en/user-tutorials/import-from-rdbms-to-kafka.md b/docs/en/user-tutorials/import-from-rdbms-to-kafka.md
index 27c0a8a..f70633b 100644
--- a/docs/en/user-tutorials/import-from-rdbms-to-kafka.md
+++ b/docs/en/user-tutorials/import-from-rdbms-to-kafka.md
@@ -20,7 +20,7 @@ Requires the installation of the following components on KDP:
Please install the above components in order.
-For the usage of Flink SQL, please refer to [Flink SQL](./import-from-mysql-to-hive.md#flink-sql-使用方法)
+For the usage of Flink SQL, please refer to [Flink SQL](./import-from-rbdms-to-hive.md#flink-sql-usage)
After the installation of kafka-3-cluster is complete, please click on 'Big Data Cluster Management' - 'Cluster Information' - 'Application Usage Configuration' - 'kafka-3-cluster-kafka-context' on the KDP page in sequence, and check the value of `bootstrap_plain` (usually `kafka-3-cluster-kafka-0.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092,kafka-3-cluster-kafka-1.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092,kafka-3-cluster-kafka-2.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092`). This value is the address of the kafka bootstrap servers and will be used below.
diff --git a/docs/en/user-tutorials/install-kdp-on-kubesphere-101.md b/docs/en/user-tutorials/install-kdp-on-kubesphere-101.md
new file mode 100644
index 0000000..fc220d9
--- /dev/null
+++ b/docs/en/user-tutorials/install-kdp-on-kubesphere-101.md
@@ -0,0 +1,74 @@
+# Install KDP on KubeSphere Container Platform
+## KubeSphere Container Platform
+### Kubekey
+
+[Kubekey](https://github.com/kubesphere/kubekey) is an open source Kubernetes installer and lifecycle manager. It supports installation of Kubernetes clusters, KubeSphere, and other related components.
+
+### KubeSphere
+
+[KubeSphere](https://kubesphere.io/) is a distributed operating system for cloud-native application management, using Kubernetes as its kernel. It provides a plug-and-play architecture, allowing third-party applications to be seamlessly integrated into its ecosystem.
+
+## Prerequisites
+
+- [x] KubeSphere is installed on Kubernetes(refer to [Minimal KubeSphere on Kubernetes](https://kubesphere.io/docs/v3.4/quick-start/minimal-kubesphere-on-k8s/) for a quick-start):
+
+
+- [x] After KubeSphere is installed, login to KubeSphere web console and make sure the monitoring components are enabled:
+
+
+## Install KDP on KubeSphere
+
+> Assume you have already installed KubeSphere on a v1.26.x Kubernetes cluster with monitoring componentes enabled.
+
+### Install KDP CLI
+
+* Use either local terminal tool or KubeShpere web terminal:
+ * By local shell: Open your local shell terminal tool with Bash or Zsh.
+ * By [Web Kubectl](https://kubesphere.io/docs/v3.4/toolbox/web-kubectl/):
+
+
+* In the web/local terminal, run following commands to install KDP CLI(Note: for web terminal, since it's statefulless, you may need to install KDP CLI every time you connect to a new session):
+```bash
+# Download KDP CLI(set env 'VERSION' to the version you want to download)
+export VERSION=v1.1.0
+wget https://github.com/linktimecloud/kubernetes-data-platform/releases/download/${VERSION}/kdp-${VERSION}-linux-amd64.tar.gz
+tar xzf kdp-${VERSION}-linux-amd64.tar.gz
+mkdir -p ~/.local/bin
+install -v linux-amd64/kdp ~/.local/bin
+export PATH=$PATH:$HOME/.local/bin
+
+kdp version
+```
+
+### Install KDP infrastructure
+
+Run below command to install KDP infrastructure:
+```bash
+# Note: pay attention to those parameters:
+# - `openebs.enabled=false`: To disable installing OpenEBS hostpath provisioner in KDP
+# - `storageConfig.storageClassMapping.localDisk=local`: To use the built-in StorageClass on KubeShpere, you may also change `local` to other existing SC
+# - `prometheusCRD.enabled=false`: To disable installing Prometheus CRD in KDP
+# - `prometheus.enabled=false`: To disable installing Prometheus operator and cluster in KDP
+# - `prometheus.externalUrl=http://prometheus-operated.kubesphere-monitoring-system.svc:9090`: To use the built-in Prometheus service URL on KubeShpere
+kdp install \
+--force-reinstall \
+--set openebs.enabled=false \
+--set storageConfig.storageClassMapping.localDisk=local \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://prometheus-operated.kubesphere-monitoring-system.svc:9090
+```
+
+## Visit KDP UX
+
+* Wait untill the installation is completed:
+
+
+* Go to menu 'Application Workloads' -> 'Ingresses' on KubeSphere web console and find the ingress object 'kdp-ux' and click to enter its detailed page:
+
+
+* On the detailed page of ingress 'kdp-ux', click the 'Access Service' button of path '/' and KDP UX will be opened in a new tab:
+
+
+* You may now use KDP web console to set up your data platform. For more tutorials with data components, please refer to [**tutorial catalogs**](./tutorials.md):
+
diff --git a/docs/en/user-tutorials/install-kdp-on-rancher-101.md b/docs/en/user-tutorials/install-kdp-on-rancher-101.md
new file mode 100644
index 0000000..51b08cd
--- /dev/null
+++ b/docs/en/user-tutorials/install-kdp-on-rancher-101.md
@@ -0,0 +1,109 @@
+# Install KDP on Rancher
+## Rancher
+### What is Rancher
+
+[Rancher](https://ranchermanager.docs.rancher.com/) is a Kubernetes management tool to deploy and run clusters anywhere and on any provider.
+
+Rancher can provision Kubernetes from a hosted provider, provision compute nodes and then install Kubernetes onto them, or import existing Kubernetes clusters running anywhere.
+
+Rancher is a complete container management platform for Kubernetes, giving you the tools to successfully run Kubernetes anywhere.
+
+
+
+### Rancher Architecture
+
+Speaking of the architecture of Rancher, there are Rancher management server and Rancher-managed downstream clusters:
+
+
+### Integrated Kubernetes Distributions
+
+Rancher integrates these [Kubernetes distributions](https://ranchermanager.docs.rancher.com/integrations-in-rancher/kubernetes-distributions):
+
+- [K3s](https://docs.k3s.io/): Lightweight Kubernetes. Easy to install, half the memory, all in a binary of less than 100 MB.
+
+- [RKE2](https://docs.rke2.io/): RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.
+
+When creating a custom downstream cluster on Rancher, you may see those two distributions as options:
+
+
+## Prerequisites
+
+- [x] The Rancher management server is installed on a [Kubernetes cluster](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster) or by [other methods](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/other-installation-methods).
+
+- [x] A Downstream cluster are [set up on the Rancher management server](https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/launch-kubernetes-with-rancher), such as a K3s cluster, a RKE2 cluster or K8s clusters from [other providers](https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup).
+
+## Install KDP on Rancher-managed clusters
+
+> Assume you have already installed a downstream K3s or RKE2 cluster(K8s v1.26.x) on Rancher and the monitroing stack has been installed on the downstream cluster:
+
+
+
+### Install KDP CLI
+
+* Use either local terminal tool or Rancher web terminal:
+ * By local shell: Open your local shell terminal tool with Bash or Zsh.
+ * By 'Kubectl Shell': Open the 'Kubectl Shell(Ctrl+`)' on Rancher web console as below, and you will connect to a web terminal:
+
+
+* In the web/local terminal, run following commands to install KDP CLI(Note: for web terminal, since it's statefulless, you may need to install KDP CLI every time you connect to a new session):
+```bash
+# Download KDP CLI(set env 'VERSION' to the version you want to download)
+export VERSION=v1.1.0
+wget https://github.com/linktimecloud/kubernetes-data-platform/releases/download/${VERSION}/kdp-${VERSION}-linux-amd64.tar.gz
+tar xzf kdp-${VERSION}-linux-amd64.tar.gz
+mkdir -p ~/.local/bin
+install -v linux-amd64/kdp ~/.local/bin
+export PATH=$PATH:$HOME/.local/bin
+
+kdp version
+```
+
+### Install KDP infrastructure
+#### For K3s clusters
+
+Run below command to install KDP on K3s clusters with monitoring stack enabled:
+```bash
+# Note: pay attention to those parameters:
+# - `dnsService.name=kube-dns`: To specify the default DNS service name of K3s clusters.
+# - `kong.enabled=false` && `ingress.class=traefik`: To disable installing KDP built-in Kong ingress controller, and use K3s built-in Traefik instead.
+# - `prometheus*`: To disable installing KDP built-in monitoring stack, and use K3s built-in monitoring stack instead.
+
+kdp install \
+--force-reinstall \
+--set dnsService.name=kube-dns \
+--set kong.enabled=false \
+--set ingress.class=traefik \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090
+```
+
+#### For RKE2 clusters
+
+Run below command to install KDP on RKE2 clusters with monitoring stack enabled:
+```bash
+# Note: pay attention to those parameters:
+# - `dnsService.name=rke2-coredns-rke2-coredns`: To specify the default DNS service name of RKE2 clusters.
+# - `kong.enabled=false` && `ingress.class=nginx`: To disable installing KDP built-in Kong ingress controller, and use RKE2 built-in Nginx instead.
+# - `prometheus*`: To disable installing KDP built-in monitoring stack, and use RKE2 built-in monitoring stack instead.
+
+kdp install \
+--force-reinstall \
+--set dnsService.name=rke2-coredns-rke2-coredns \
+--set kong.enabled=false \
+--set ingress.class=nginx \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090
+```
+
+### Visit KDP UX
+
+* Wait untill the installation is completed:
+
+
+* Go to menu 'Service Discovery' - 'Ingresses' on Rancher web console, and find the ingress object 'kdp-ux', then click the hyper link in the column 'Target', and KDP UX will be opened in a new tab:
+
+
+* You may now use KDP web console to set up your data platform. For more tutorials with data components, please refer to [**tutorial catalogs**](./tutorials.md)::
+
diff --git a/docs/en/user-tutorials/integration-kafka-with-int-ext-comps.md b/docs/en/user-tutorials/integration-kafka-with-int-ext-comps.md
index 6faf9eb..d406346 100644
--- a/docs/en/user-tutorials/integration-kafka-with-int-ext-comps.md
+++ b/docs/en/user-tutorials/integration-kafka-with-int-ext-comps.md
@@ -210,11 +210,11 @@ KDP provides an example of reading Kafka data and writing it back to Kafka using
### Component Deployment
-Install Kafka cluster, kafka-manager, Flink cluster, and streampark applications on KDP-ux.
+Install Kafka operator、kafka cluster, kafka manager, Flink cluster, and streampark applications on KDP-ux.
### Topic Creation and Data Preparation
-Find the application directory under Kafka and click on the kafka-manager application. Enter the application details page and click the "Access Address" button to enter the kafka-manager management page. Create topics named `pageviews` and `pageviews_per_region`.
+Find the application directory under Kafka and click on the kafka-manager application. Enter the application details page and click the "Access Address" button to enter the kafka-manager management page. Create topics named `pageviews` and `pageviews_per_region`. Note that when creating a topic, the input parameter 'Replicator Factor' must be greater than or equal to the cluster configuration value 'min.insync.replicas' (default value is '2'), with a recommended default value of '3'.
Kafka Manager Topic Management and Creation
diff --git a/docs/en/user-tutorials/tutorials.md b/docs/en/user-tutorials/tutorials.md
index cb4046b..d298bd6 100644
--- a/docs/en/user-tutorials/tutorials.md
+++ b/docs/en/user-tutorials/tutorials.md
@@ -8,7 +8,17 @@ English | [简体中文](../../zh/user-tutorials/tutorials.md)
Users can refer to the following scenario tutorials to practice how to do data ingestion and developing through KDP:
-* [Import data from RDBMS to Hive](./import-from-rbdms-to-hive.md)
-* [Import data from RDBMS to Kafka](./import-from-rdbms-to-kafka.md)
-* [How to integrate with Kafka on KDP](./integration-kafka-with-int-ext-comps.md)
-* to be continued...
\ No newline at end of file
+* Day1 (Installation of KDP infrastructure)
+ * [Install KDP on KubeSphere 101](./install-kdp-on-kubesphere-101.md)
+ * [Install KDP on Rancher 101](./install-kdp-on-rancher-101.md)
+ * More...
+
+* Day2 (Data integration and development)
+ * [Import data from RDBMS to Hive](./import-from-rbdms-to-hive.md)
+ * [Import data from RDBMS to Kafka](./import-from-rdbms-to-kafka.md)
+ * [How to integrate with Kafka on KDP](./integration-kafka-with-int-ext-comps.md)
+ * [Data Import from External HDFS to KDP HDFS](./import-from-hdfs-to-hdfs.md)
+ * [Exploring data using Airbyte/ClickHouse/Superset](./exploring-data-using-airbyte-clickhouse-superset.md)
+ * [Batch Job Scheduling for Hive SQL with Apache Airflow](./batch-job-scheduling-for-hive-sql-with-apache-airflow.md)
+ * More...
+
diff --git a/docs/zh/catalog-overview/Flink/common-usage.md b/docs/zh/catalog-overview/Flink/common-usage.md
index c407d76..e1acfac 100644
--- a/docs/zh/catalog-overview/Flink/common-usage.md
+++ b/docs/zh/catalog-overview/Flink/common-usage.md
@@ -9,15 +9,11 @@
### 获取 Flink 作业 Jar 文件
-您可以从[这里](https://repo1.maven.org/maven2/org/apache/flink/flink-examples-batch_2.11/1.14.6/flink-examples-batch_2.11-1.14.6-WordCount.jar)下载 Flink 作业 jar 文件,文件名为 `flink-examples-batch_2.11-1.14.6-WordCount.jar`。
-
-或者您可以自己构建 Flink 作业 jar 文件,您可以参考 [Flink WordCount 示例](https://github.com/apache/flink/blob/master/flink-examples/flink-examples-batch/src/main/java/org/apache/flink/examples/java/wordcount/WordCount.java)
+您可以从[这里](https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.17.1/flink-examples-streaming_2.12-1.17.1-WordCount.jar)下载 Flink 作业 jar 文件,文件名为 `flink-examples-streaming_2.12-1.17.1-WordCount`。
### 将 Flink 作业提交到会话集群
-打开 Flink WebUI(例如:`http://flink-session-cluster:8081`),将 Flink 作业提交到会话集群。
+1. 打开 Flink WebUI((例如Flink WebUI:`http://flink-session-cluster-ingress.yourdomain.com`)
+2. 点击 `Submit New Job` -> `Add New`,选择上一步下载的 jar 文件上传, 将 Flink 作业提交到会话集群。
-1. 点击 `Submit New Job` -> `Add New`,选择本地机器上的 jar 文件上传。
-2. 点击上传的 jar 文件名称,将 `org.apache.flink.examples.java.wordcount.WordCount` 填写到 `Entry Class` 字段中,将 `--output "/tmp/word-count.txt"` 填写到 `Program Arguments` 字段中,点击 `Submit` 将 Flink 作业提交到会话集群。
-
-您可以在 Flink WebUI 中看到 Flink 作业正在运行。
+稍后您可以在 Flink WebUI 中看到 Flink 作业正在运行。
diff --git a/docs/zh/catalog-overview/Flink/developer-guide.md b/docs/zh/catalog-overview/Flink/developer-guide.md
index e58cbbf..1d192d9 100644
--- a/docs/zh/catalog-overview/Flink/developer-guide.md
+++ b/docs/zh/catalog-overview/Flink/developer-guide.md
@@ -140,18 +140,34 @@ public class SocketWindowWordCount {
#### 通过 Flink CLI 提交应用程序
-进入 flink session cluster 容器,执行以下命令:
+进入flink session cluster容器
+```shell
+# pod 根据实际情况替换
+kubectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
+```
+在容器中执行以下命令:
```shell
./bin/flink run -d ./examples/streaming/SocketWindowWordCount.jar --hostname `(grep 'flink-session-cluster' /etc/hosts | head -n 1 | awk '{print $1}')` --port 9999 && nc -l 9999
```
+预期输出类似:
+```shell
+ERROR StatusLogger Reconfiguration failed: No configuration found for '6438a396' at 'null' in 'null'
+ERROR StatusLogger Reconfiguration failed: No configuration found for '510f3d34' at 'null' in 'null'
+WARNING: An illegal reflective access operation has occurred
+WARNING: Illegal reflective access by org.apache.flink.api.java.ClosureCleaner (file:/opt/flink/lib/flink-dist-1.17.1.jar) to field java.lang.String.value
+WARNING: Please consider reporting this to the maintainers of org.apache.flink.api.java.ClosureCleaner
+WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
+WARNING: All illegal access operations will be denied in a future release
+Job has been submitted with JobID ff3008609a49c364e7b27f5e94f4f57b
+```
+`ERROR StatusLogger Reconfiguration failed` 不影响作业提交,可以忽略。
-执行成功后,进入nc命令行,输入文本数据, 然后回车; 输入多条文本数据,查看flink session cluster控制台输出结果。
+此时,作业提交成功,在nc命令的交互界面输入任意文本,回车后发送文字,可以多次发送文字。可以查看flink session cluster控制台输出结果。
也可以到flink WebUI 查看作业状态。
清理作业:
-退出nc交互界面,执行以下命令:
-
+退出nc交互界面(control+c),执行以下命令:
```shell
./bin/flink list
## 预期会输出job id
@@ -192,8 +208,8 @@ nc -l 9999
**运行作业**
-- 在作业管理页面,点击`datagen-print`作业的`发布作业`按钮,稍等片刻,发布状态变为`Done` `Success`
-- 点击`datagen-print`作业的`启动作业`按钮,关闭弹窗中的`from savepoin`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running` `Finished`
+- 在作业管理页面,点击`Socket Window WordCount`作业的`发布作业`按钮,稍等片刻,发布状态变为`Done` `Success`
+- 点击`Socket Window WordCount`作业的`启动作业`按钮,关闭弹窗中的`from savepoint`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running`
- 最后不需要运行时,作业的`停止作业`按钮,停止作业。
## Flink SQL 应用开发
@@ -318,4 +334,5 @@ group by
运行作业
- 在作业管理页面,点击该作业的`发布作业`按钮,稍等片刻,发布状态变为`Done` `Success`
-- 点击该作业的`启动作业`按钮,关闭弹窗中的`from savepoin`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running` `Finished`
+- 点击该作业的`启动作业`按钮,关闭弹窗中的`from savepoint`, 点击`应用`, 作业将提交到Flink session集群运行, 运行状态依次变为`Starting` `Running`
+- 最后不需要运行时,作业的`停止作业`按钮,停止作业。
diff --git a/docs/zh/getting-started/quick-start.md b/docs/zh/getting-started/quick-start.md
index 1e5a8ae..5c08186 100644
--- a/docs/zh/getting-started/quick-start.md
+++ b/docs/zh/getting-started/quick-start.md
@@ -17,50 +17,43 @@
- 编译安装 (本地需要安装 [Go](https://go.dev/doc/install) 1.21+): 克隆项目到本地, 在项目根目录执行 `go install`
## 安装 KDP 基础设施层
-
-* 使用 KDP CLI 安装 KDP 基础设施层:
+使用 KDP CLI 安装 KDP 基础设施层:
```bash
-# > 指定 "--debug" 以开启debug日志
-# > 指定 "--set ingress.domain=" 单独/以及 "--set ingress.tlsSecretName=" 以使用自定义域名以及TLS
-# > 如安装中断, 可重复执行安装命令,已执行的步骤会自动跳过; 也可以指定 "--force-reinstall" 强制重新安装
+# if the install breaks, you may re-run the command to continue the install
kdp install --local-mode --set dnsService.name=kube-dns
-
```
-## 域名解析
-KDP 上运行的所有组件均通过 K8s Ingress 的方式暴露外部访问,因此安装完成后需要配置域名解析方可访问。
-
-以下列表是 KDP 上全量组件的默认域名:
-```
-kdp-ux.kdp-e2e.io
-grafana.kdp-e2e.io
-prometheus.kdp-e2e.io
-alertmanager.kdp-e2e.io
-flink-session-cluster-kdp-data.kdp-e2e.io
-hdfs-namenode-0-kdp-data.kdp-e2e.io
-hdfs-namenode-1-kdp-data.kdp-e2e.io
-hue-kdp-data.kdp-e2e.io
-kafka-manager-kdp-data.kdp-e2e.io
-minio-kdp-data-api.kdp-e2e.io
-spark-history-server-kdp-data.kdp-e2e.io
-streampark-kdp-data.kdp-e2e.io
+## 配置本地域名解析
+KDP 上运行的所有组件均通过 K8s Ingress 的方式暴露外部访问。在快速启动中我们使用了自定义的根域名`kdp-e2e.io`,因此安装完成后需要配置本地域名解析后方可访问对外暴露的KDP服务:
+```bash
+# 1. set env `KDP_HOST` to the private IP of the stand-alone host, e.g. `export KDP_HOST=192.168.1.100`
+# 2. modify /etc/hosts requires sudo priviledge
+
+kdpHost=${KDP_HOST:-127.0.0.1}
+kdpDomain="kdp-e2e.io"
+kdpPrefix=("kdp-ux" "grafana" "prometheus" "alertmanager" "cloudtty" "flink-session-cluster-kdp-data" "hdfs-namenode-0-kdp-data" "hdfs-namenode-1-kdp-data" "hue-kdp-data" "kafka-manager-kdp-data" "minio-kdp-data-api" "spark-history-server-kdp-data" "streampark-kdp-data")
+etcHosts="/etc/hosts"
+
+for prefix in "${kdpPrefix[@]}"; do
+ domain="$prefix.$kdpDomain"
+ if ! grep -q "$domain" ${etcHosts}; then
+ echo "$kdpHost $domain" | sudo tee -a ${etcHosts}
+ fi
+done
```
-域名解析配置可参考以下几种常见情况:
-- 使用默认配置安装时,在访问端本地 `/etc/hosts` 添加解析以上域名解析,指向单机环境的IP地址
-- 如之前指定了 "--set ingress.domain=",以下二选一:
- - 如自定义域名不是公网解析,替换以上所有域名的根域名为,并在访问端本地 `/etc/hosts` 添加解析以上域名解析,指向单机环境的IP地址
- - 如自定义域名可公网解析,在DNS供应商添加以上域名的A记录,将自定义域名指向单机环境的IP地址
## 访问 KDP UX
-安装完成后可访问 KDP UX,以下两种情况二选一(如指定了"--set ingress.tlsSecretName=",则使用 HTTPS 协议访问):
-- 默认配置:http://kdp-ux.kdp-e2e.io
-- 指定了 "--set ingress.domain=":`http://kdp-ux.`
+安装完成后可访问 KDP UX,默认地址为:http://kdp-ux.kdp-e2e.io
## 环境清理
```bash
-# 销毁本地集群,所有数据将被清除
-kind delete cluster -n kdp-e2e
+# 1. destroy KDP kind cluster, all data will be erased
+# 2. clean up /etc/hosts
+kind delete cluster -n kdp-e2e
+for prefix in "${kdpPrefix[@]}"; do
+ sudo sed -i"" "/$prefix.$kdpDomain/d" ${etcHosts}
+done
```
diff --git a/docs/zh/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md b/docs/zh/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md
new file mode 100644
index 0000000..1e025f9
--- /dev/null
+++ b/docs/zh/user-tutorials/batch-job-scheduling-for-hive-sql-with-apache-airflow.md
@@ -0,0 +1,47 @@
+
+# 使用Apache Airflow进行Hive SQL批作业调度
+
+# 1. 介绍
+Apache Airflow是一个开源的流式作业调度平台,可以轻松地创建、调度、监控和管理工作流。Airflow支持Hive SQL,可以轻松地执行Hive SQL任务。
+Apache Airflow使用DAG(有向无环图)来表示工作流,DAG由任务节点和依赖关系组成。任务节点可以是Python操作、Shell操作、SQL操作等。Airflow支持多种调度器,包括本地调度器、Celery调度器、Kubernetes调度器等。
+
+本文介绍使用`pyhive`编写Hive SQL任务,并使用Apache Airflow Kubernetes 调度器来执行任务。
+
+# 2. 编写 Hive SQL DAG
+
+具体的代码实现可以访问 [Github](https://github.com/linktimecloud/example-datasets/blob/airflow/dags/hive-sql-example.py
+) 或者 [Gitee](https://gitee.com/linktime-cloud/example-datasets/blob/airflow/dags/hive-sql-example.py) 查看。
+
+这段代码是一个使用Apache Airflow框架编写的DAG(Directed Acyclic Graph,有向无环图),用于自动化数据处理任务。它主要执行以下两个任务:创建一个Hive表并插入数据,然后找出每个科目的最高分学生。
+
+# 3. 运行DAG
+## 3.1 组件依赖
+需要在KDP安装如下组件:
+- mysql
+- airflow
+- zookeeper
+- hdfs
+- hive (hive metastore, hive server)
+- hue, httpfs-gateway (可选)
+
+## 3.2 调度作业
+使用默认参数在KDP安装Airflow后, 使用账号`admin`和密码`admin` 登录Airflow Web。
+
+启动名称为`hive-sql-example`的DAG。
+
+
+
+
+运行成功后,可以通过Hue Web界面查看结果。也可以参考 `hive-server2` Qucick Start 使用beeline 连接 Hive Server2 查看结果。
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/zh/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md b/docs/zh/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md
new file mode 100644
index 0000000..c3b2c74
--- /dev/null
+++ b/docs/zh/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md
@@ -0,0 +1,94 @@
+# 使用 airbyte, clickhouse, superset 探索数据
+简体中文 | [English](../../en/user-tutorials/exploring-data-using-airbyte-clickhouse-superset.md)
+
+# 1. 介绍
+本文将展示如何使用KDP平台来完成数据集成/加工/BI展示,涉及的应用有`airbyte`, `clickhouse`, `superset`, 需要提前安装这些应用。
+建议先熟悉个组件的quick start,然后按照本文的步骤来操作。
+
+# 2. 数据集成
+将数据从 csv file 导入 clickhouse
+1. 在 airbyte 中添加一个 file 类型 source。
+
+ - Dataset Name: `tmall-order-sample` (请误修改)
+ - URL: `https://gitee.com/linktime-cloud/example-datasets/raw/main/airbyte/tmall-order-sample.csv`
+
+1. 在 airbyte 中添加一个 clickhouse 类型 destination。
+
+ - Host: `clickhouse.kdp-data.svc.cluster.local`
+ - Port: `8123`
+ - DB Name: `default`
+ - User: `default`
+ - Password: `ckdba.123`
+
+1. 在 airbyte 中添加一个 connection, source 选择 file, destination 选择 clickhouse, 使用默认配置然后保存。
+
+
+1. 查看 airbyte 的 job 状态,如果成功,则说明数据已经成功导入到clickhouse中。
+
+
+完成上述操作后即完成了ELT(Extract Load Transform)中的EL, 接下使用clickhouse完成Transform。
+
+# 3. 数据加工
+
+```bash
+# 进入clickhouse container
+kubectl exec -it clickhouse-shard0-0 -n kdp-data -c clickhouse -- bash
+# 连接clickhouse
+clickhouse-client --user default --password ckdba.123
+# 查看数据库
+show databases;
+use airbyte_internal;
+show tables;
+# 确认数据写入成功
+select count(*) from airbyte_internal.default_raw__stream_tmall_order_sample;
+```
+
+继续依次执行下面的三条SQL语句,完成数据加工。
+
+```sql
+DROP TABLE IF EXISTS airbyte_internal.ods_tmall_order;
+
+-- Define the structure of the new table ods_tmall_order
+CREATE TABLE airbyte_internal.ods_tmall_order
+(
+ total_amount Int32,
+ order_number Int32,
+ shipping_address String,
+ payment_time DateTime64(3, 'GMT'),
+ order_creation_time DateTime64(3, 'GMT'),
+ refund_amount Int32,
+ actual_payment_amount Int32
+)
+ ENGINE = MergeTree
+ORDER BY order_number;
+-- Assuming order_number is a unique identifier for each order
+
+-- Insert data into the new table from the JSON in _airbyte_data
+INSERT INTO airbyte_internal.ods_tmall_order
+SELECT JSONExtractInt(_airbyte_data, '总金额') AS total_amount,
+ JSONExtractInt(_airbyte_data, '订单编号') AS order_number,
+ JSONExtractString(_airbyte_data, '收货地址 ') AS shipping_address,
+ parseDateTimeBestEffortOrNull(nullIf(JSONExtractString(_airbyte_data, '订单付款时间 '), '')) AS payment_time,
+ parseDateTimeBestEffortOrNull(nullIf(JSONExtractString(_airbyte_data, '订单创建时间'), '')) AS order_creation_time,
+
+ JSONExtractInt(_airbyte_data, '退款金额') AS refund_amount,
+ JSONExtractInt(_airbyte_data, '买家实际支付金额') AS actual_payment_amount
+FROM default_raw__stream_tmall_order_sample;
+
+```
+
+确认数据处理完成
+```sql
+select * from airbyte_internal.ods_tmall_order limit 10;
+```
+# 4. 数据展示
+在 Superset 中添加 clickhouse 数据源, 并制作面板。关于如何添加数据源,如何制作面板请参考 Superset quick start。下面我们通过面板的导入功能完成数据源,面板的导入。
+1. [下载面板](https://gitee.com/linktime-cloud/example-datasets/blob/main/superset/dashboard_export_20240521T102107.zip)
+2. 导入面板
+选择下载的文件导入
+
+输入clickhouse的用户`default`的默认密码`ckdba.123`
+
+导入后的效果如下
+
+
diff --git a/docs/zh/user-tutorials/images/airbyte01.png b/docs/zh/user-tutorials/images/airbyte01.png
new file mode 100644
index 0000000..cc32e52
Binary files /dev/null and b/docs/zh/user-tutorials/images/airbyte01.png differ
diff --git a/docs/zh/user-tutorials/images/airbyte02.png b/docs/zh/user-tutorials/images/airbyte02.png
new file mode 100644
index 0000000..0c9a8f4
Binary files /dev/null and b/docs/zh/user-tutorials/images/airbyte02.png differ
diff --git a/docs/zh/user-tutorials/images/airbyte03.png b/docs/zh/user-tutorials/images/airbyte03.png
new file mode 100644
index 0000000..eecf444
Binary files /dev/null and b/docs/zh/user-tutorials/images/airbyte03.png differ
diff --git a/docs/zh/user-tutorials/images/airbyte04.png b/docs/zh/user-tutorials/images/airbyte04.png
new file mode 100644
index 0000000..de453a0
Binary files /dev/null and b/docs/zh/user-tutorials/images/airbyte04.png differ
diff --git a/docs/zh/user-tutorials/images/airflow01.png b/docs/zh/user-tutorials/images/airflow01.png
new file mode 100644
index 0000000..68dd9c0
Binary files /dev/null and b/docs/zh/user-tutorials/images/airflow01.png differ
diff --git a/docs/zh/user-tutorials/images/airflow02.png b/docs/zh/user-tutorials/images/airflow02.png
new file mode 100644
index 0000000..bf8114b
Binary files /dev/null and b/docs/zh/user-tutorials/images/airflow02.png differ
diff --git a/docs/zh/user-tutorials/images/kdp-ux-landing-page.png b/docs/zh/user-tutorials/images/kdp-ux-landing-page.png
new file mode 100644
index 0000000..0e83701
Binary files /dev/null and b/docs/zh/user-tutorials/images/kdp-ux-landing-page.png differ
diff --git a/docs/zh/user-tutorials/images/ks-cluster-overview.png b/docs/zh/user-tutorials/images/ks-cluster-overview.png
new file mode 100644
index 0000000..e235fdb
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-cluster-overview.png differ
diff --git a/docs/zh/user-tutorials/images/ks-kdp-install.png b/docs/zh/user-tutorials/images/ks-kdp-install.png
new file mode 100644
index 0000000..d319f0c
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-kdp-install.png differ
diff --git a/docs/zh/user-tutorials/images/ks-kdp-ux-access-service.png b/docs/zh/user-tutorials/images/ks-kdp-ux-access-service.png
new file mode 100644
index 0000000..6421fd3
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-kdp-ux-access-service.png differ
diff --git a/docs/zh/user-tutorials/images/ks-kdp-ux-ingress.png b/docs/zh/user-tutorials/images/ks-kdp-ux-ingress.png
new file mode 100644
index 0000000..6836fd4
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-kdp-ux-ingress.png differ
diff --git a/docs/zh/user-tutorials/images/ks-monitoring.png b/docs/zh/user-tutorials/images/ks-monitoring.png
new file mode 100644
index 0000000..de23966
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-monitoring.png differ
diff --git a/docs/zh/user-tutorials/images/ks-web-kubectl.png b/docs/zh/user-tutorials/images/ks-web-kubectl.png
new file mode 100644
index 0000000..dfced42
Binary files /dev/null and b/docs/zh/user-tutorials/images/ks-web-kubectl.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-arch.png b/docs/zh/user-tutorials/images/rancher-arch.png
new file mode 100644
index 0000000..46b5ad4
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-arch.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-ds-cluster-monitoring.png b/docs/zh/user-tutorials/images/rancher-ds-cluster-monitoring.png
new file mode 100644
index 0000000..25f42a0
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-ds-cluster-monitoring.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-ds-cluster.png b/docs/zh/user-tutorials/images/rancher-ds-cluster.png
new file mode 100644
index 0000000..03c5ea3
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-ds-cluster.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-k8s-dist.png b/docs/zh/user-tutorials/images/rancher-k8s-dist.png
new file mode 100644
index 0000000..3ead947
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-k8s-dist.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-kdp-install-ok.png b/docs/zh/user-tutorials/images/rancher-kdp-install-ok.png
new file mode 100644
index 0000000..24d6fd0
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-kdp-install-ok.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-kdp-ux-ingress.png b/docs/zh/user-tutorials/images/rancher-kdp-ux-ingress.png
new file mode 100644
index 0000000..0fa6113
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-kdp-ux-ingress.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-kubectl-shell.png b/docs/zh/user-tutorials/images/rancher-kubectl-shell.png
new file mode 100644
index 0000000..ff11907
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-kubectl-shell.png differ
diff --git a/docs/zh/user-tutorials/images/rancher-overview.png b/docs/zh/user-tutorials/images/rancher-overview.png
new file mode 100644
index 0000000..61b84c4
Binary files /dev/null and b/docs/zh/user-tutorials/images/rancher-overview.png differ
diff --git a/docs/zh/user-tutorials/images/superset01.png b/docs/zh/user-tutorials/images/superset01.png
new file mode 100644
index 0000000..1845ef6
Binary files /dev/null and b/docs/zh/user-tutorials/images/superset01.png differ
diff --git a/docs/zh/user-tutorials/images/superset02.png b/docs/zh/user-tutorials/images/superset02.png
new file mode 100644
index 0000000..f69a6d3
Binary files /dev/null and b/docs/zh/user-tutorials/images/superset02.png differ
diff --git a/docs/zh/user-tutorials/images/superset03.png b/docs/zh/user-tutorials/images/superset03.png
new file mode 100644
index 0000000..119d217
Binary files /dev/null and b/docs/zh/user-tutorials/images/superset03.png differ
diff --git a/docs/zh/user-tutorials/import-from-hdfs-to-hdfs.md b/docs/zh/user-tutorials/import-from-hdfs-to-hdfs.md
new file mode 100644
index 0000000..c9473e2
--- /dev/null
+++ b/docs/zh/user-tutorials/import-from-hdfs-to-hdfs.md
@@ -0,0 +1,98 @@
+# 从外部 HDFS 导入数据到 KDP HDFS
+
+从老集群迁移数据到新集群是一个常见需求。在传统模式部署的 HDFS 集群上可以使用 [distcp](https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html) 进行数据迁移。但 KDP 上没有 YARN,无法直接使用 distcp 进行数据迁移。作为替代,我们可以使用 [spark-distcp](https://index.scala-lang.org/coxautomotivedatasolutions/spark-distcp) 进行数据迁移。
+
+# 组件依赖
+
+请安装以下组件:
+
+- spark-on-k8s-operator
+
+# 进行数据迁移
+
+假设老集群的 HDFS 开启了 Namenode 高可用,地址分别为
+
+- hdfs://namenode-1:8020
+- hdfs://namenode-2:8020
+
+KDP 上的 HDFS Namenode 地址则分别为
+
+- hdfs-namenode-0.hdfs-namenode.kdp-data.svc.cluster.local:8020
+- hdfs-namenode-1.hdfs-namenode.kdp-data.svc.cluster.local:8020
+
+我们将老集群的 hdfs:///data 目录迁移到 KDP HDFS 集群上的 hdfs:///data。
+
+在本地创建文件 `spark-distcp.yaml`,内容如下:
+
+```yaml
+apiVersion: sparkoperator.k8s.io/v1beta2
+kind: SparkApplication
+metadata:
+ name: spark-distcp
+ namespace: kdp-data
+spec:
+ type: Scala
+ mode: cluster
+ image: od-registry.linktimecloud.com/ltc-spark:v1.0.0-3.3.0
+ sparkVersion: 3.3.0
+ mainClass: com.coxautodata.SparkDistCP
+ mainApplicationFile: https://repo1.maven.org/maven2/com/coxautodata/spark-distcp_2.12/0.2.5/spark-distcp_2.12-0.2.5-assembly.jar
+ hadoopConf:
+ "dfs.nameservices": "source,target"
+ "dfs.ha.namenodes.source": "nn0,nn1"
+ "dfs.namenode.rpc-address.source.nn0": "hdfs://namenode-1:8020"
+ "dfs.namenode.rpc-address.source.nn1": "hdfs://namenode-2:8020"
+ "dfs.client.failover.proxy.provider.source": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ "dfs.ha.namenodes.target": "nn0,nn1"
+ "dfs.namenode.rpc-address.target.nn0": "hdfs-namenode-0.hdfs-namenode.kdp-data.svc.cluster.local:8020"
+ "dfs.namenode.rpc-address.target.nn1": "hdfs-namenode-1.hdfs-namenode.kdp-data.svc.cluster.local:8020"
+ "dfs.client.failover.proxy.provider.target": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ driver:
+ cores: 1
+ memory: 512m
+ executor:
+ cores: 1
+ instances: 2
+ memory: 512m
+ arguments:
+ - hdfs://source/data
+ - hdfs://target/data
+```
+
+注意 `spec.hadoopConf` 中的内容,我们将老集群命名为 `source`,KDP HDFS 集群命名为 `target`。
+
+driver 和 executor 的资源可以按需要调整。
+
+执行以下命令开始进行数据迁移:
+
+```shell
+kubectl apply -f spark-distcp.yaml
+```
+
+迁移进度可以查看 `spark-distcp-driver` pod 的日志,或者通过以下命令从本地浏览器访问 Spark UI:
+
+```shell
+# 执行完毕后可以从浏览器访问 localhost:4040
+kubectl port-forward spark-distcp-driver -n kdp-data 4040:4040
+```
+
+# 可选参数
+
+可以在 `spark-distcp.yaml` 的 `spec.arguments` 中增加以下标识:
+
+| 参数 | 描述 |
+| ---------------------------- | --------------------------------------------------------------------- |
+| --i | 忽略失败 |
+| --log | 将日志写入 URI |
+| --dryrun | 进行一次无更改的试运行 |
+| --verbose | 以详细模式运行 |
+| --overwrite | 覆盖目标位置 |
+| --update | 如果源文件和目标文件大小不同或校验和不一致,则覆盖 |
+| --filters | 过滤器配置文件的路径,文件中每行一个模式字符串,匹配这些模式的文件路径将不会被复制 |
+| --delete | 删除存在于目标位置但不在源位置的文件 |
+| --numListstatusThreads | 用于构建文件列表的线程数 |
+| --consistentPathBehaviour | 在使用 `--overwrite` 或 `--update` 标识时,路径行为不受此标志影响 |
+| --maxFilesPerTask | 单个 Spark 任务中复制的最大文件数 |
+| --maxBytesPerTask | 单个 Spark 任务中复制的最大字节数 |
+
+更多参数和注意事项可以参考 https://index.scala-lang.org/coxautomotivedatasolutions/spark-distcp
diff --git a/docs/zh/user-tutorials/import-from-rdbms-to-hive.md b/docs/zh/user-tutorials/import-from-rdbms-to-hive.md
index 8ba6c3c..d33b799 100644
--- a/docs/zh/user-tutorials/import-from-rdbms-to-hive.md
+++ b/docs/zh/user-tutorials/import-from-rdbms-to-hive.md
@@ -14,8 +14,8 @@
- hive-metastore
- hive-server2
- flink-kubernetes-operator
-- flink-session-cluster
-- streampark(可选。注意需要启用 Flink on Hive。)
+- flink-session-cluster(注意需要启用 Flink on Hive)
+- streampark(可选)
- hue(可选)
请依次安装上述组件。
@@ -48,7 +48,7 @@ Hue 安装完成之后会自动连上 hive server2,无需进行额外配置。
kubectl get pods -n kdp-data -l app=flink-session-cluster -l component=jobmanager -o name
# 进入 flink-session-cluster 容器
# flink-session-cluster-xxxxx 替换成 pod 真实名称
-kbuectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
+kubectl exec -it flink-session-cluster-xxxxx -n kdp-data -- bash
# 启动 Flink SQL
./bin/sql-client.sh
```
diff --git a/docs/zh/user-tutorials/import-from-rdbms-to-kafka.md b/docs/zh/user-tutorials/import-from-rdbms-to-kafka.md
index e7a67a3..0c2e616 100644
--- a/docs/zh/user-tutorials/import-from-rdbms-to-kafka.md
+++ b/docs/zh/user-tutorials/import-from-rdbms-to-kafka.md
@@ -20,7 +20,7 @@
请依次安装上述组件。
-Flink SQL 的使用方法请参考 [Flink SQL](./import-from-mysql-to-hive.md#flink-sql-使用方法)
+Flink SQL 的使用方法请参考 [Flink SQL](./import-from-rdbms-to-hive.md#flink-sql-使用方法)
kafka-3-cluster 安装完成后,请在 KDP 页面依次点击「大数据集群管理」-「集群信息」-「应用使用配置」-「kafka-3-cluster-kafka-context」,查看 `bootstrap_plain` 的值(通常为 `kafka-3-cluster-kafka-0.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092,kafka-3-cluster-kafka-1.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092,kafka-3-cluster-kafka-2.kafka-3-cluster-kafka-brokers.kdp-data.svc.cluster.local:9092`)。这个值是 kafka bootstrap servers 地址,下面会用到。
diff --git a/docs/zh/user-tutorials/install-kdp-on-kubesphere-101.md b/docs/zh/user-tutorials/install-kdp-on-kubesphere-101.md
new file mode 100644
index 0000000..d546317
--- /dev/null
+++ b/docs/zh/user-tutorials/install-kdp-on-kubesphere-101.md
@@ -0,0 +1,74 @@
+# 在 KubeSphere 容器平台安装 KDP
+## KubeSphere 简介
+### Kubekey
+
+[Kubekey](https://github.com/kubesphere/kubekey) 是一个开源的 Kubernetes 安装程序和生命周期管理工具。它支持安装 Kubernetes 集群、KubeSphere 以及其他相关组件。
+
+### KubeSphere
+
+[KubeSphere](https://kubesphere.io/zh/) 是一个用于云原生应用程序管理的分布式操作系统,使用 Kubernetes 作为其内核。它提供了即插即用架构,允许第三方应用程序无缝集成到其生态系统中。
+
+## 先决条件
+
+- [x] 在 Kubernetes 已上安装 KubeSphere(快速开始可参考[在 Kubernetes 上最小化安装 KubeSphere](https://kubesphere.io/zh/docs/v3.4/quick-start/minimal-kubesphere-on-k8s/)):
+
+
+- [x] KubeSphere 安装完成后,登录 KubeSphere Web 控制台并确保监控组件已启用:
+
+
+## 在 KubeSphere 上安装 KDP
+
+> 假设您已经在一个 v1.26.x Kubernetes 集群上安装了 KubeSphere ,并开启了监控套件。
+
+### 安装 KDP 命令行工具
+
+* 可选使用本地终端工具或 KubeSphere 网页终端进行操作:
+ - 通过本地 Shell:打开您计算机上的Bash或Zsh终端。
+ - 通过 [Web Kubectl](https://kubesphere.io/zh/docs/v3.4/toolbox/web-kubectl/):
+
+
+* 在网页或本地终端中,请执行以下命令以安装 KDP 命令行工具(注:若使用网页终端,因其无状态特性,每次新建立会话都需要重新安装 KDP 命令行工具):
+```bash
+# 下载 KDP CLI(设置环境变量'VERSION'为所需版本号)
+export VERSION=v1.1.0
+wget https://github.com/linktimecloud/kubernetes-data-platform/releases/download/${VERSION}/kdp-${VERSION}-linux-amd64.tar.gz
+tar xzf kdp-${VERSION}-linux-amd64.tar.gz
+mkdir -p ~/.local/bin
+install -v ./linux-amd64/kdp ~/.local/bin
+export PATH=$PATH:$HOME/.local/bin
+
+kdp version
+```
+
+### 安装 KDP 基础平台
+
+执行以下命令以安装 KDP 基础平台:
+```bash
+# 注:请关注以下参数:
+# - `openebs.enabled=false`:跳过 KDP 内置 OpenEBS hostpath provisioner 组件的安装
+# - `storageConfig.storageClassMapping.localDisk=local`:使用 KubeSphere 上的内置 StorageClass,你也可以将 `local` 更改为其他现有的 SC
+# - `prometheusCRD.enabled=false`:跳过 KDP 内置 Prometheus CRD 的安装
+# - `prometheus.enabled=false`:跳过 KDP 内置 Prometheus Operator 的安装
+# - `prometheus.externalUrl=http://prometheus-operated.kubesphere-monitoring-system.svc:9090`:使用 KubeSphere 上的内置 Prometheus 服务
+kdp install \
+--force-reinstall \
+--set openebs.enabled=false \
+--set storageConfig.storageClassMapping.localDisk=local \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://prometheus-operated.kubesphere-monitoring-system.svc:9090
+```
+
+## 访问 KDP UX
+
+* 等待安装完成:
+
+
+* 转到 KubeSphere Web 控制台,并在菜单 “应用负载” -> “应用路由” 中找到名为 'kdp-ux' 的应用路由对象:
+
+
+* 点击并进入'kdp-ux'应用路由的详细页面,然后点击路径'/'的'访问服务'按钮,KDP UX 将在新标签页中打开:
+
+
+* 您现在可以使用 KDP Web 控制台来建设自己的数据平台。有关使用数据组件的更多教程,请参考[**教程目录**](./tutorials.md):
+
diff --git a/docs/zh/user-tutorials/install-kdp-on-rancher-101.md b/docs/zh/user-tutorials/install-kdp-on-rancher-101.md
new file mode 100644
index 0000000..b36b515
--- /dev/null
+++ b/docs/zh/user-tutorials/install-kdp-on-rancher-101.md
@@ -0,0 +1,107 @@
+# 在Rancher上安装KDP
+## Rancher 简介
+### 什么是 Rancher
+
+[Rancher](https://ranchermanager.docs.rancher.com/zh/) 是一个 Kubernetes 管理工具,让您能在任何地方和任何提供商上部署和运行集群。
+
+Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
+
+Rancher 是一个全栈式的 Kubernetes 容器管理平台,为您提供在任何地方都能成功运行 Kubernetes 的工具。
+
+
+
+### Rancher 架构
+
+Rancher 的架构包括 Rancher 管理服务器和 Rancher 管理的下游集群:
+
+
+### 集成的 Kubernetes 发行版
+
+Rancher 集成了这些 [Kubernetes 发行版](https://ranchermanager.docs.rancher.com/zh/integrations-in-rancher/kubernetes-distributions):
+- [K3s](https://docs.k3s.io/zh/): K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
+- [RKE2](https://docs.rke2.io/zh/): RKE2,也称为 RKE Government,是 Rancher 的下一代 Kubernetes 发行版。
+
+在 Rancher 上创建自定义下游集群时,您会看到这两个发行版作为选项:
+
+
+## 先决条件
+
+- [x] 已在 [Kubernetes 集群](https://ranchermanager.docs.rancher.com/zh/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster)上安装 Rancher 管理服务器,或通过[其他方法](https://ranchermanager.docs.rancher.com/zh/getting-started/installation-and-upgrade/other-installation-methods)安装。
+
+- [x] 已在 Rancher 管理服务器上[创建了下游集群](https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/launch-kubernetes-with-rancher),例如 K3s 集群、RKE2 集群或来自[其他提供商](https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup)的K8s集群。
+
+## 在 Rancher 管理的集群上安装KDP
+
+> 假设您已经在 Rancher 上安装了一个下游的 K3s 或 RKE2 集群(K8s v1.26.x),并已在下游集群上安装了监控套件:
+
+
+
+### 安装KDP CLI
+
+* 可选使用本地终端工具或 KubeSphere 网页终端进行操作:
+ - 通过本地Shell:打开您计算机上的Bash或Zsh终端。
+ * 通过'Kubectl Shell':如下所示在 Rancher 控制台中打开'Kubectl Shell(Ctrl+`)',您将连接到一个网页终端:
+
+
+* 在网页或本地终端中,请执行以下命令以安装 KDP 命令行工具(注:若使用网页终端,因其无状态特性,每次新建立会话都需要重新安装 KDP 命令行工具):
+```bash
+# 下载 KDP CLI(设置环境变量'VERSION'为所需版本号)
+export VERSION=v1.1.0
+wget https://github.com/linktimecloud/kubernetes-data-platform/releases/download/${VERSION}/kdp-${VERSION}-linux-amd64.tar.gz
+tar xzf kdp-${VERSION}-linux-amd64.tar.gz
+mkdir -p ~/.local/bin
+install -v ./linux-amd64/kdp ~/.local/bin
+export PATH=$PATH:$HOME/.local/bin
+
+kdp version
+```
+
+### 安装 KDP 基础平台
+#### 对于K3s集群
+
+执行以下命令以在启用了监控套件的 K3s 集群上安装 KDP :
+```bash
+# 注:请关注以下参数:
+# - `dnsService.name=kube-dns`:指定 K3s 集群的默认 DNS 服务名称。
+# - `kong.enabled=false` && `ingress.class=traefik`:跳过 KDP 内置的 Kong Ingress Controller 组件安装,改用 K3s 内置的 Traefik 。
+# - `prometheus*`:跳过 KDP 内置的监控套件安装,改用 K3s 内置的监控套件。
+
+kdp install \
+--force-reinstall \
+--set dnsService.name=kube-dns \
+--set kong.enabled=false \
+--set ingress.class=traefik \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090
+```
+
+#### 对于RKE2集群
+
+执行以下命令以在启用了监控套件的 RKE2 集群上安装 KDP :
+```bash
+# 注:请关注以下参数:
+# - `dnsService.name=rke2-coredns-rke2-coredns`:指定 RKE2 集群的默认 DNS 服务名称。
+# - `kong.enabled=false` && `ingress.class=nginx`:跳过 KDP 内置的 Kong Ingress Controller 组件安装,改用 RKE2 内置的 Nginx 。
+# - `prometheus*`:跳过 KDP 内置的监控套件安装,改用 RKE2 内置的监控套件。
+
+kdp install \
+--force-reinstall \
+--set dnsService.name=rke2-coredns-rke2-coredns \
+--set kong.enabled=false \
+--set ingress.class=nginx \
+--set prometheusCRD.enabled=false \
+--set prometheus.enabled=false \
+--set prometheus.externalUrl=http://rancher-monitoring-prometheus.cattle-monitoring-system.svc:9090
+```
+
+### 访问KDP UX
+
+* 等待安装完成:
+
+
+* 转到 Rancher 控制台菜单'Service Discovery' - 'Ingresses',找到 Ingress 对象'kdp-ux',然后点击'Target'列中的链接,KDP UX 将在新标签页中打开:
+
+
+* 您现在可以使用 KDP Web 控制台来建设自己的数据平台。有关使用数据组件的更多教程,请参考[**教程目录**](./tutorials.md):
+
diff --git a/docs/zh/user-tutorials/integration-kafka-with-int-ext-comps.md b/docs/zh/user-tutorials/integration-kafka-with-int-ext-comps.md
index 981ee01..af53039 100644
--- a/docs/zh/user-tutorials/integration-kafka-with-int-ext-comps.md
+++ b/docs/zh/user-tutorials/integration-kafka-with-int-ext-comps.md
@@ -207,15 +207,15 @@ kafka 集群域名格式为:`..svc.`
### 组件部署
-在KDP-ux上分别安装Kafka cluster、kafka-manager、flink cluster、streampark应用。
+在KDP-ux上分别安装Kafka operator、kafka cluster、kafka manager、flink cluster、streampark应用。
### topic创建与数据准备
-找到应用目录kafka下kafka-manager应用,点击名称进入应用详情页,点击“访问地址”按钮,进入kafka-manager管理页面,创建一个名为`pageviews`、一个名为`pageviews_per_region`的topic。kafka manager topic管理与创建页面如下:
+找到应用目录kafka下kafka-manager应用,点击名称进入应用详情页,点击“访问地址”按钮,进入kafka-manager管理页面,创建一个名为`pageviews`、一个名为`pageviews_per_region`的topic。注意,创建topic时的输入参数`Replicator Factor`需大于或等于集群配置值`min.insync.replicas`(默认值`2`),默认推荐值`3`。kafka manager topic管理与创建页面如下:

-点击`pageviews` topic右侧放大镜进入topic详情页,点击`Produce to topic`按钮,将一下数据**逐条**发送到topic中。
+点击`pageviews` topic右侧放大镜进入topic详情页,点击`Produce to topic`按钮,将以下数据**逐条**发送到topic中。

```json
@@ -237,17 +237,17 @@ kafka 集群域名格式为:`..svc.`
若已完成配置可跳过
-1. 找到应用目录Flink下Streampark应用,进入点击名称应用详情页,点击“访问地址”按钮,进入Streampark管理页面,输入**固定**用户名(admin)密码(streampark)登录。
- 在`设计中心`添加`Flink版本`配置:当前仅支持flink 1.17.1版本,在streampark默认路径为`/streampark/flink/flink-1.17.1`。
+1. 找到应用目录Flink下Streampark应用,点击应用实例名称进入应用详情页,点击“访问地址”按钮,进入Streampark管理页面,输入**固定**用户名(admin)密码(streampark)登录。
+ 在`设置中心`添加`Flink版本`配置:当前仅支持flink 1.17.1版本,在streampark默认路径为`/streampark/flink/flink-1.17.1`。

-2. 在`设计中心`添加`Flink集群`配置:当前仅支持flink 1.17.1版本。KDP flink默认访问地址为:
+2. 在`设置中心`添加`Flink集群`配置:当前仅支持flink 1.17.1版本。KDP flink默认访问地址为:

#### Flink任务编写
-1. 选择`实时任务`->`作业管理`点击`添加`,
-2. 执行模式选择`remote`,选择`Flink版本`与`Flink集群`选择3.3.1中配置的内容
+1. 选择`实时开发`->`作业管理`点击`添加`,
+2. 执行模式选择`remote`,选择`Flink版本`与`Flink集群`

3. flink sql填入如下内容:
@@ -288,8 +288,8 @@ FROM pageviews
GROUP BY user_region;
```
-4. 输入作业名称`kafka-to-kafka`,点击`确定`。
-5. 在`作业管理`页面找到刚才添加的`kafka-to-kafka`作业点击操作中的`提交`与`启动`,等待任务启动成功。
+4. 输入作业名称`kafka-to-kafka`,点击`提交`。
+5. 在`作业管理`页面找到刚才添加的`kafka-to-kafka`作业点击操作中的`发布作业`与`启动作业`,首次启动时关闭弹出框中`from savepoint`然后点击`应用`,等待任务启动成功。
### 结果验证
diff --git a/docs/zh/user-tutorials/tutorials.md b/docs/zh/user-tutorials/tutorials.md
index 610d41d..fc28f80 100644
--- a/docs/zh/user-tutorials/tutorials.md
+++ b/docs/zh/user-tutorials/tutorials.md
@@ -4,7 +4,17 @@
用户可以参考以下场景教程来实践如何通过KDP进行数据集成开发:
-* [将数据从关系型数据库导入到 Hive](./import-from-rdbms-to-hive.md)
-* [将数据从关系型数据库导入到 Kafka](./import-from-rdbms-to-kafka.md)
-* [如何与 KDP 上的 Kafka 快速集成](./integration-kafka-with-int-ext-comps.md)
-* 更多...
\ No newline at end of file
+* Day1(KDP基础平台安装)
+ * [在 KubeSphere 上安装 KDP 101](./install-kdp-on-kubesphere-101.md)
+ * [在 Rancher 上安装 KDP 101](./install-kdp-on-rancher-101.md)
+ * 更多...
+
+* Day2(数据集成与开发)
+ * [将数据从关系型数据库导入到 Hive](./import-from-rdbms-to-hive.md)
+ * [将数据从关系型数据库导入到 Kafka](./import-from-rdbms-to-kafka.md)
+ * [如何与 KDP 上的 Kafka 快速集成](./integration-kafka-with-int-ext-comps.md)
+ * [从外部 HDFS 导入数据到 KDP HDFS](./import-from-hdfs-to-hdfs.md)
+ * [使用 Airbyte/ClickHouse/Superset 探索数据](./exploring-data-using-airbyte-clickhouse-superset.md)
+ * [使用Apache Airflow进行Hive SQL批作业调度](./batch-job-scheduling-for-hive-sql-with-apache-airflow.md)
+ * 更多...
+
diff --git a/go.mod b/go.mod
index 954ff27..f10e8de 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ require (
github.com/go-git/go-git/v5 v5.12.0
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.0
- golang.org/x/crypto v0.21.0
+ golang.org/x/crypto v0.23.0
)
require (
@@ -28,8 +28,8 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
golang.org/x/mod v0.12.0 // indirect
- golang.org/x/net v0.22.0 // indirect
- golang.org/x/sys v0.18.0 // indirect
+ golang.org/x/net v0.23.0 // indirect
+ golang.org/x/sys v0.20.0 // indirect
golang.org/x/tools v0.13.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
)
diff --git a/go.sum b/go.sum
index a98159f..37132fc 100644
--- a/go.sum
+++ b/go.sum
@@ -86,8 +86,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
-golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
-golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
+golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
+golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
@@ -99,8 +99,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
-golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
-golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -119,15 +119,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
-golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
+golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
-golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
+golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
+golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -135,8 +135,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
+golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
diff --git a/infra/kdp-core/definitions/trait-bdos-ingress.cue b/infra/kdp-core/definitions/trait-bdos-ingress.cue
index b8328b9..8918fa4 100644
--- a/infra/kdp-core/definitions/trait-bdos-ingress.cue
+++ b/infra/kdp-core/definitions/trait-bdos-ingress.cue
@@ -13,6 +13,8 @@ import "strings"
template: {
import ("strings")
+ // could be "kong" or "nginx" ...
+ _ingressClassName: ""
// declare _ingressName
_ingressName: string
if parameter.ingressName != _|_ {
@@ -77,7 +79,9 @@ template: {
}
spec: {
- ingressClassName: parameter.ingressClassName
+ if _ingressClassName != _|_ && _ingressClassName != "" {
+ ingressClassName: _ingressClassName
+ }
rules: [
for v in parameter.rules {
_rule_domain: *v.host | string
@@ -138,11 +142,13 @@ template: {
"\(k)": v
}
}
+
// KongIngress CR
- if parameter.stickySession && parameter.ingressClassName == "kong"{
+ if parameter.stickySession && _ingressClassName == "kong"
+ // nginxIngress CR
+ {
"konghq.com/override": context.name + "-sticky-session"
}
- // nginxIngress CR
}
metalabels: {
"app": context.name
@@ -169,10 +175,11 @@ template: {
}
-
outputs: {
// KongIngress CR
- if parameter.stickySession && parameter.ingressClassName == "kong"{
+ if parameter.stickySession && _ingressClassName == "kong"
+ // nginxIngress CR
+ {
"kongIngress": {
apiVersion: "configuration.konghq.com/v1"
kind: "KongIngress"
@@ -189,7 +196,6 @@ template: {
}
}
}
- // nginxIngress CR
}
parameter: {
@@ -197,8 +203,7 @@ template: {
ingressName?: string
gateway?: [string]: string
annotations?: [string]: string
- ingressClassName: *"kong" | string
- stickySession: *false | bool
+ stickySession: *false | bool
service?: {
serviceName?: string
annotations?: [string]: string
diff --git a/infra/kdp-core/parameter.cue b/infra/kdp-core/parameter.cue
index 2444df3..7bde9dc 100644
--- a/infra/kdp-core/parameter.cue
+++ b/infra/kdp-core/parameter.cue
@@ -15,8 +15,6 @@ parameter: {
imagePullSecret: *"cr-secret" | string
// +usage=Specify namespace of the application to be installed
namespace: *"kdp-system" | string
- // +usage=Specify KDP version
- kdpVersion: *"v1.0.0-rc1" | string
// +usage=Ingress settings
ingress: {
// +usage=Specify ingressClassName
diff --git a/infra/kdp-core/resources/kdp-catalog-manager.cue b/infra/kdp-core/resources/kdp-catalog-manager.cue
index 0cda55a..c309dec 100644
--- a/infra/kdp-core/resources/kdp-catalog-manager.cue
+++ b/infra/kdp-core/resources/kdp-catalog-manager.cue
@@ -107,10 +107,18 @@ _kdpCatalogManager: {
name: "OAM_BASE_URL"
value: "http://\(_APIServerName):\(_APIServerPort)"
},
- {
- name: "DASHBOARD_URL"
- value: _GrafanaUrl
- },
+ if parameter.grafana.externalUrl != "" {
+ {
+ name: "DASHBOARD_URL"
+ value: parameter.grafana.externalUrl
+ },
+ }
+ if parameter.grafana.externalUrl == "" || parameter.grafana.externalUrl == _|_ {
+ {
+ name: "DASHBOARD_URL"
+ value: "http://grafana.\(parameter.ingress.domain)"
+ },
+ }
{
name: "SUPPORT_LANG"
value: "zh,en"
diff --git a/infra/kdp-core/resources/kdp-cloudtty.cue b/infra/kdp-core/resources/kdp-cloudtty.cue
new file mode 100644
index 0000000..bc02a39
--- /dev/null
+++ b/infra/kdp-core/resources/kdp-cloudtty.cue
@@ -0,0 +1,473 @@
+package main
+
+_CloudTtyName: "cloudtty"
+
+_kdpCloudTty: {
+ name: parameter.namePrefix + _CloudTtyName
+ type: "helm"
+ properties: {
+ url: "\(parameter.helmURL)"
+ chart: _CloudTtyName
+ releaseName: parameter.namePrefix + _CloudTtyName
+ repoType: "oci"
+ version: "0.5.7"
+ values: {
+ global: {
+ imageRegistry: "\(parameter.registry)"
+ imagePullSecrets: [
+ {name: "\(parameter.imagePullSecret)"},
+ ]
+ }
+ replicaCount: 1
+ }
+ }
+}
+
+_kdpTerminalConfigTask: {
+ name: parameter.namePrefix +"terminal-config-task"
+ type: "k8s-objects"
+ properties: {
+ objects: [
+ {
+ apiVersion: "batch/v1"
+ kind: "Job"
+ metadata: {
+ name: parameter.namePrefix + "init-kubeconfig"
+ }
+ spec: {
+ ttlSecondsAfterFinished: 60
+ template: {
+ spec: {
+ volumes: [
+ {
+ name: "template"
+ projected: {
+ defaultMode: 420
+ sources: [
+ {
+ configMap: {
+ name: "kubeconfig-template"
+ items: [
+ {
+ key: "kubeconfig-template"
+ path: "kubeconfig-template"
+ },
+ {
+ key: "kubeconfig-secret-template"
+ path: "kubeconfig-secret-template"
+ },
+ {
+ key: "create-kubeconfig"
+ path: "create-kubeconfig.sh"
+ },
+ {
+ key: "terminal-ingress-template"
+ path: "terminal-ingress-template.yaml"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+ containers: [
+ {
+ name: "init-kubeconfig"
+ image: "\(parameter.registry)/cloudtty/cloudshell:v0.5.7"
+ imagePullPolicy: "IfNotPresent"
+ env: [
+ if parameter.ingress.tlsSecretName != "" {
+ {
+ name: "HTTPTYPE"
+ value: "https"
+ }
+ },
+ if parameter.ingress.tlsSecretName == "" {
+ {
+ name: "HTTPTYPE"
+ value: "http"
+ }
+ },
+ ]
+ volumeMounts: [
+ {
+ name: "template"
+ mountPath: "/opt"
+ }
+ ]
+ command: [
+ "bash",
+ "-c",
+ "cd /tmp;cp /opt/* ./;sh create-kubeconfig.sh"
+ ]
+
+ }
+ ]
+ serviceAccount: "cloudtty-controller-manager"
+ restartPolicy: "OnFailure"
+ }
+ }
+ }
+ }
+ ]
+ }
+}
+
+
+_KdpTerminalConfig: {
+ name: parameter.namePrefix +"terminal-config"
+ type: "k8s-objects"
+ properties: {
+ objects: [
+ {
+ apiVersion: "v1"
+ kind: "ServiceAccount"
+ metadata: {
+ name: "pod-terminal-sa"
+ namespace: "\(parameter.namespace)"
+ }
+ },
+ {
+ apiVersion: "v1"
+ kind: "Secret"
+ metadata: {
+ name: "pod-terminal-token"
+ namespace: "\(parameter.namespace)"
+ annotations: {
+ "kubernetes.io/service-account.name": "pod-terminal-sa"
+ }
+ }
+ type: "kubernetes.io/service-account-token"
+ },
+ {
+ apiVersion: "v1"
+ kind: "ServiceAccount"
+ metadata: {
+ name: "general-terminal-sa"
+ namespace: "\(parameter.namespace)"
+ }
+ },
+ {
+ apiVersion: "v1"
+ kind: "Secret"
+ metadata: {
+ name: "general-terminal-token"
+ namespace: "\(parameter.namespace)"
+ annotations: {
+ "kubernetes.io/service-account.name": "general-terminal-sa"
+ }
+ }
+ type: "kubernetes.io/service-account-token"
+ },
+ {
+ kind: "ClusterRole"
+ apiVersion: "rbac.authorization.k8s.io/v1"
+ metadata: {
+ name: "pod-terminal-cr"
+ }
+ rules: [{
+ apiGroups: [""]
+ resources: [
+ "pods",
+ "pods/exec",
+ "pods/log",
+ ]
+ verbs: [
+ "get",
+ "list",
+ "exec",
+ "logs",
+ "create"
+ ]
+ }]
+ },
+ {
+ kind: "ClusterRole"
+ apiVersion: "rbac.authorization.k8s.io/v1"
+ metadata: {
+ name: "general-terminal-cr"
+ }
+ rules: [
+ {
+ apiGroups: [""]
+ resources: [
+ "pods",
+ "pods/log",
+ "pods/exec"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "create",
+ "update",
+ "delete"
+ ]
+ },
+ {
+ apiGroups: [""]
+ resources: [
+ "services",
+ "configmaps",
+ "secrets",
+ "persistentvolumes",
+ "persistentvolumeclaims",
+ "endpoints",
+ "events",
+ "limitranges",
+ "resourcequotas",
+ "componentstatuses"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "watch",
+ "create",
+ "update",
+ "patch",
+ "delete"
+ ]
+ },
+ {
+ apiGroups: ["apps"]
+ resources: [
+ "deployments",
+ "replicasets",
+ "statefulsets",
+ "daemonsets"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "watch",
+ "create",
+ "update",
+ "patch",
+ "delete"
+ ]
+ },
+ {
+ apiGroups: ["batch"]
+ resources: [
+ "jobs",
+ "cronjobs"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "watch",
+ "create",
+ "update",
+ "patch",
+ "delete"
+ ]
+ },
+ {
+ apiGroups: [
+ "extensions"
+ ]
+ resources: [
+ "ingresses"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "watch",
+ "create",
+ "update",
+ "patch",
+ "delete"
+ ]
+ },
+ {
+ apiGroups: ["bdc.kdp.io"]
+ resources: [
+ "applications"
+ ]
+ verbs: [
+ "get",
+ "list",
+ "create",
+ "update",
+ "delete",
+ ]
+ },
+ {
+ apiGroups: [
+ "bdc.kdp.io"
+ ]
+ resources: [
+ "bigdataclusters",
+ "contextsecrets",
+ "contextsettings",
+ "xdefinitions",
+ ]
+ verbs: [
+ "get",
+ "list"
+ ]
+ },
+ {
+ apiGroups: ["cloudshell.cloudtty.io"]
+ resources: [
+ "cloudshells"
+ ]
+ verbs: [
+ "get",
+ "list",
+ ]
+ },
+ {
+ apiGroups: ["flink.apache.org"]
+ resources: [
+ "*"
+ ]
+ verbs: [
+ "*"
+ ]
+ },
+ {
+ apiGroups: ["kafka.strimzi.io"]
+ resources: [
+ "*"
+ ]
+ verbs: [
+ "*"
+ ]
+ },
+ {
+ apiGroups: ["sparkoperator.k8s.io"]
+ resources: [
+ "*"
+ ]
+ verbs: [
+ "*"
+ ]
+ },
+ ]
+ },
+ {
+ kind: "ClusterRoleBinding"
+ apiVersion: "rbac.authorization.k8s.io/v1"
+ metadata: {
+ name: "pod-terminal-crb"
+ }
+ subjects: [
+ {
+ kind: "ServiceAccount"
+ name: "pod-terminal-sa"
+ namespace: "\(parameter.namespace)"
+ }
+ ]
+ roleRef: {
+ apiGroup: "rbac.authorization.k8s.io"
+ kind: "ClusterRole"
+ name: "pod-terminal-cr"
+ }
+ },
+ {
+ kind: "ClusterRoleBinding"
+ apiVersion: "rbac.authorization.k8s.io/v1"
+ metadata: {
+ name: "general-terminal-crb"
+ }
+ subjects: [
+ {
+ kind: "ServiceAccount"
+ name: "general-terminal-sa"
+ namespace: "\(parameter.namespace)"
+ }
+ ]
+ roleRef: {
+ apiGroup: "rbac.authorization.k8s.io"
+ kind: "ClusterRole"
+ name: "general-terminal-cr"
+ }
+ },
+ {
+ apiVersion: "v1"
+ kind: "ConfigMap"
+ metadata: {
+ name: "kubeconfig-template"
+ }
+ data: {
+ "kubeconfig-template": """
+ apiVersion: v1
+ kind: Config
+ users:
+ - name: USER
+ user:
+ token: TOKEN_DECODE
+ clusters:
+ - cluster:
+ certificate-authority-data: CLUSTER_AUTH
+ server: KUBE_APISERVER
+ name: USER-cluster
+ contexts:
+ - context:
+ cluster: USER-cluster
+ user: USER
+ name: USER-cluster
+ current-context: USER-cluster
+ """
+ "kubeconfig-secret-template": """
+ kind: Secret
+ apiVersion: v1
+ metadata:
+ name: SECRECT_NAME
+ namespace: \(parameter.namespace)
+ data:
+ config: SECRECT_DATA
+ """
+ "terminal-ingress-template": """
+ kind: Ingress
+ apiVersion: networking.k8s.io/v1
+ metadata:
+ name: "cloudtty"
+ namespace: "\(parameter.namespace)"
+ annotations:
+ "konghq.com/strip-path": "true"
+ spec:
+ ingressClassName: "\(parameter.ingress.class)"
+ rules:
+ - host: "cloudtty.\(parameter.ingress.domain)"
+ http:
+ paths:
+ - path: "/template"
+ pathType: "Prefix"
+ backend:
+ service:
+ name: "\(_UXName)"
+ port:
+ number: \(_UXPort)
+ tls:
+ - hosts:
+ - "cloudtty.\(parameter.ingress.domain)"
+ secretName: "\(parameter.ingress.tlsSecretName)"
+ """
+ "create-kubeconfig": """
+ if [[ ${HTTPTYPE} == "http" ]];then
+ head -n -4 terminal-ingress-template.yaml >terminal-ingress.yaml
+ else
+ cat terminal-ingress-template.yaml >terminal-ingress.yaml
+ fi
+ kubectl get ingress cloudtty -n \(parameter.namespace)
+ if [[ $? -ne 0 ]];then
+ kubectl apply -f terminal-ingress.yaml
+ fi
+ KUBE_APISERVER='https://kubernetes.default.svc';
+ for i in pod-terminal general-terminal;do
+ TOKEN_DECODE=$(kubectl get secret/$i-token -n \(parameter.namespace) -o jsonpath='{.data.token}'| base64 -d)
+ CLUSTER_AUTH=$(kubectl get secret/$i-token -n \(parameter.namespace) -o yaml |grep ca.crt |awk '{print $2}')
+ # cat kubeconfig-template |sed "s#USER#$i#g" |sed "s#KUBE_APISERVER#$KUBE_APISERVER#g" |sed "s#CLUSTER_AUTH#$CLUSTER_AUTH#g" |sed "s#TOKEN_DECODE#$TOKEN_DECODE#g" >$i.config
+ KUBE_BASE_CODE=$(cat kubeconfig-template |sed "s#USER#$i#g" |sed "s#KUBE_APISERVER#$KUBE_APISERVER#g" |sed "s#CLUSTER_AUTH#$CLUSTER_AUTH#g" |sed "s#TOKEN_DECODE#$TOKEN_DECODE#g"|base64 -w 0)
+ cat kubeconfig-secret-template |sed "s#SECRECT_NAME#$i-secret#g" |sed "s#SECRECT_DATA#$KUBE_BASE_CODE#g" >$i.yaml
+ kubectl apply -f $i.yaml
+ done
+ """
+
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/infra/kdp-core/resources/kdp-oam-operator.cue b/infra/kdp-core/resources/kdp-oam-operator.cue
index c7a40e0..cfe9e43 100644
--- a/infra/kdp-core/resources/kdp-oam-operator.cue
+++ b/infra/kdp-core/resources/kdp-oam-operator.cue
@@ -16,7 +16,7 @@ _kdpOAMOperator: {
version: "\(_version.operator)"
values: {
images: {
- registry: "\(parameter.registry)"
+ registry: "\(parameter.registry)/linktimecloud"
pullSecrets: [
{name: "\(parameter.imagePullSecret)"},
]
@@ -27,7 +27,29 @@ _kdpOAMOperator: {
"--kube-api-qps=300",
"--kube-api-burst=900"
]
+ image: repository: "kdp-oam-apiserver"
+ env: [
+ {
+ name: "NAMESPACE",
+ value: "\(parameter.namespace)"
+ },
+ {
+ name: "DOMAIN",
+ value: "cloudtty.\(parameter.ingress.domain)"
+ },
+ {
+ name: "TTL",
+ value: "3600"
+ },
+ if parameter.ingress.tlsSecretName != "" {
+ {
+ name: "HTTPTYPE"
+ value: "https"
+ }
+ }
+ ]
}
+ controller: image: repository: "kdp-oam-operator"
systemNamespace: name: "\(parameter.namespace)"
}
}
diff --git a/infra/kdp-core/resources/kdp-ux.cue b/infra/kdp-core/resources/kdp-ux.cue
index 4cac23b..0cd32f4 100644
--- a/infra/kdp-core/resources/kdp-ux.cue
+++ b/infra/kdp-core/resources/kdp-ux.cue
@@ -67,14 +67,30 @@ _kdpUX: {
name: "OAM_API_SERVER_DOMAIN"
value: "http://\(_APIServerName):\(_APIServerPort)"
},
- {
- name: "PROMETHEUS_SERVICE"
- value: _PrometheusUrl
- },
- {
- name: "LOKI_SERVICE"
- value: _LokiUrl
- },
+ if parameter.prometheus.externalUrl != "" {
+ {
+ name: "PROMETHEUS_SERVICE"
+ value: parameter.prometheus.externalUrl
+ },
+ }
+ if parameter.prometheus.externalUrl == "" || parameter.prometheus.externalUrl == _|_ {
+ {
+ name: "PROMETHEUS_SERVICE"
+ value: "http://kps-prometheus:9090"
+ },
+ }
+ if parameter.loki.externalUrl != "" {
+ {
+ name: "LOKI_SERVICE"
+ value: parameter.loki.externalUrl
+ },
+ }
+ if parameter.loki.externalUrl == "" || parameter.loki.externalUrl == _|_ {
+ {
+ name: "LOKI_SERVICE"
+ value: "http://loki-gateway.\(parameter.namespace)"
+ },
+ }
{
name: "MYSQL_DATABASE"
value: "kdp_ux_db"
diff --git a/infra/kdp-core/resources/shared-configs.cue b/infra/kdp-core/resources/shared-configs.cue
index 7c5525c..988d846 100644
--- a/infra/kdp-core/resources/shared-configs.cue
+++ b/infra/kdp-core/resources/shared-configs.cue
@@ -71,8 +71,14 @@ _sharedConfigs: {
}
}
data: {
- LOKI_PUSH_URL: "\(_LokiUrl)/loki/api/v1/push"
- LOKI_ROOT_URL: "\(_LokiUrl)"
+ if parameter.loki.externalUrl != "" {
+ LOKI_PUSH_URL: "\(parameter.loki.externalUrl)/loki/api/v1/push"
+ LOKI_ROOT_URL: "\(parameter.loki.externalUrl)"
+ }
+ if parameter.loki.externalUrl == "" || parameter.loki.externalUrl == _|_ {
+ LOKI_PUSH_URL: "http://loki-gateway.\(parameter.namespace)/loki/api/v1/push"
+ LOKI_ROOT_URL: "http://loki-gateway.\(parameter.namespace)"
+ }
}
},
{
diff --git a/infra/kdp-core/template.cue b/infra/kdp-core/template.cue
index a0c50ff..6abc46e 100644
--- a/infra/kdp-core/template.cue
+++ b/infra/kdp-core/template.cue
@@ -4,27 +4,11 @@ import (
"encoding/json"
)
-_PrometheusUrl: "http://kps-prometheus:9090"
-_LokiUrl: "http://loki-gateway.\(parameter.namespace)"
-_GrafanaUrl: "http://grafana.\(parameter.ingress.domain)"
-
-if parameter.prometheus.externalUrl != "" {
- _PrometheusUrl: parameter.prometheus.externalUrl
-}
-
-if parameter.loki.externalUrl != "" {
- _LokiUrl: parameter.prometheus.externalUrl
-}
-
-if parameter.grafana.externalUrl != "" {
- _GrafanaUrl: parameter.grafana.externalUrl
-}
-
_version: {
- kdp: parameter.kdpVersion
- operator: "v1.0.0"
- catalogManager: "v1.0.0-rc1"
- ux: "v1.0.0-240329"
+ kdp: "v1.1.0"
+ operator: "v1.1.0"
+ catalogManager: "v1.0.0"
+ ux: "v1.1.0"
}
_ns: {
@@ -49,6 +33,9 @@ output: {
_velaOps,
_configReplicator,
_configReloader,
+ _kdpCloudTty,
+ _KdpTerminalConfig,
+ _kdpTerminalConfigTask,
_kdpOAMOperator,
_kdpCatalogManager,
_kdpUX,
@@ -173,7 +160,22 @@ output: {
type: "apply-component"
name: "apply-kdp-ux"
properties: component: parameter.namePrefix + "kdp-ux"
- }
+ },
+ {
+ type: "apply-component"
+ name: "apply-cloudtty"
+ properties: component: parameter.namePrefix + "cloudtty"
+ },
+ {
+ type: "apply-component"
+ name: "apply-terminal-config"
+ properties: component: parameter.namePrefix + "terminal-config"
+ },
+ {
+ type: "apply-component"
+ name: "apply-terminal-config-task"
+ properties: component: parameter.namePrefix + "terminal-config-task"
+ },
]
},
{
diff --git a/infra/kong/template.cue b/infra/kong/template.cue
index 850391b..45de790 100644
--- a/infra/kong/template.cue
+++ b/infra/kong/template.cue
@@ -59,7 +59,9 @@ _kong: {
repository: "\(parameter.registry)/kong/kubernetes-ingress-controller"
tag: "2.12"
ingressClass: "kong"
- ingressClassAnnotations: {}
+ ingressClassAnnotations: {
+ "ingressclass.kubernetes.io/is-default-class": "true"
+ }
}
waitImage: {
enabled: true
diff --git a/infra/mysql/resources/mysql.cue b/infra/mysql/resources/mysql.cue
index c494284..2f894e8 100644
--- a/infra/mysql/resources/mysql.cue
+++ b/infra/mysql/resources/mysql.cue
@@ -184,6 +184,9 @@ mysql: {
}]
}]
}
+ startupProbe: {
+ failureThreshold: 30
+ }
}
secondary: {
replicaCount: 1
diff --git a/infra/openebs/parameter.cue b/infra/openebs/parameter.cue
index 97d4117..ee292d5 100644
--- a/infra/openebs/parameter.cue
+++ b/infra/openebs/parameter.cue
@@ -15,4 +15,8 @@ parameter: {
imagePullSecret: *"cr-secret" | string
// +usage=Specify namespace of the application to be installed
namespace: *"kdp-system" | string
+ // +usage=Specify if install OpenEBS hostpath provisoner
+ openebs: {
+ enabled: *true | bool
+ }
}
diff --git a/infra/openebs/template.cue b/infra/openebs/template.cue
index b7fd875..740d1df 100644
--- a/infra/openebs/template.cue
+++ b/infra/openebs/template.cue
@@ -33,7 +33,7 @@ _openebs: {
enabled: true
image: "openebs/provisioner-localpv"
imageTag: "3.5.0"
- replicas: 1
+ replicas: 3
basePath: "/var/openebs/local"
deviceClass: {
enabled: false
@@ -45,14 +45,14 @@ _openebs: {
}
}
ndm: {
- enabled: true
+ enabled: false
image: "openebs/node-disk-manager"
imageTag: "2.1.0"
nodeSelector: {}
tolerations: []
}
ndmOperator: {
- enabled: true
+ enabled: false
image: "openebs/node-disk-operator"
imageTag: "2.1.0"
replicas: 1
@@ -68,15 +68,65 @@ _openebs: {
}
}
+_init_pvc_cleaner : {
+ name: parameter.namePrefix + "openebs-init-pvc-cleaner"
+ type: "k8s-objects"
+ properties: objects: [{
+ apiVersion: "batch/v1"
+ kind: "CronJob"
+ metadata: {
+ name: parameter.namePrefix + "openebs-init-pvc-cleaner"
+ namespace: parameter.namespace
+ labels: app: parameter.namePrefix + "openebs-init-pvc-cleaner"
+ }
+ spec: {
+ concurrencyPolicy: "Forbid"
+ ttlSecondsAfterFinished: 0
+ schedule: "*/1 * * * *"
+ jobTemplate: {
+ spec: {
+ template: {
+ spec: {
+ containers: [{
+ name: "openebs-init-pvc-cleaner"
+ env: [{
+ name: "NS",
+ value: parameter.namespace,
+ },]
+ command: ["/bin/sh", "-c", "kubectl delete pods -n ${NS} $(kubectl get pods -n ${NS} --field-selector=status.phase=Succeeded -ojsonpath='{range .items[*]}{.metadata.name}{\"\\n\"}{end}') || true"]
+ image: "\(parameter.registry)/bitnami/kubectl:1.26"
+ imagePullPolicy: "IfNotPresent"
+ }]
+ imagePullSecrets: [{
+ name: "\(parameter.imagePullSecret)"
+ }]
+ restartPolicy: "OnFailure"
+ serviceAccountName: "openebs"
+ }
+ }
+ }
+ }
+ }
+ }]
+}
+
output: {
apiVersion: "core.oam.dev/v1beta1"
kind: "Application"
metadata: name: context.metadata.name
spec: {
- components: [
- _ns,
- _openebs
- ]
+ if parameter.openebs.enabled == true {
+ components: [
+ _ns,
+ _openebs,
+ _init_pvc_cleaner,
+ ]
+ }
+ if parameter.openebs.enabled != true {
+ components: [
+ _ns,
+ ]
+ }
policies: [
{
type: "shared-resource"
@@ -102,7 +152,7 @@ output: {
name: "apply-once-res"
properties: rules: [
{
- selector: resourceTypes: ["Namespace", "CustomResourceDefinition"]
+ selector: resourceTypes: ["Namespace", "CustomResourceDefinition", "CronJob"]
strategy: {
path: ["*"]
}
diff --git a/infra/plg-stack/parameter.cue b/infra/plg-stack/parameter.cue
index cb9f08c..baa03bc 100644
--- a/infra/plg-stack/parameter.cue
+++ b/infra/plg-stack/parameter.cue
@@ -44,8 +44,15 @@ parameter: {
}
// +usage=Enable/Disable Prometheus CRD installation
prometheusCRD: enabled: *true | bool
- // +usage=Enable/Disable Prometheus/AlertManager/Grafana installation
- prometheus: enabled: *true | bool
+ // +usage=Enable/Disable Prometheus default rules installation
+ prometheusDefaultRules: enabled: *true | bool
+ // +usage=Enable/Disable Prometheus/AlertManager installation
+ prometheus: {
+ enabled: *true | bool
+ externalUrl: *"" | string
+ }
+ // +usage=Enable/Disable Grafana installation
+ grafana: enabled: *true | bool
// +usage=Enable/Disable Loki/Prometheus installation
loki: enabled: *true | bool
}
diff --git a/infra/plg-stack/resources/loki.cue b/infra/plg-stack/resources/loki.cue
index 9ce11ab..f02cff4 100644
--- a/infra/plg-stack/resources/loki.cue
+++ b/infra/plg-stack/resources/loki.cue
@@ -42,7 +42,12 @@ _loki: {
serviceMonitor: labels: {
release: "prometheus"
}
- selfMonitoring: enabled: false
+ selfMonitoring: {
+ enabled: false
+ grafanaAgent: {
+ installOperator: false
+ }
+ }
lokiCanary: enabled: false
}
test: enabled: false
diff --git a/infra/plg-stack/resources/prometheus.cue b/infra/plg-stack/resources/prometheus.cue
index b07c298..4def3e9 100644
--- a/infra/plg-stack/resources/prometheus.cue
+++ b/infra/plg-stack/resources/prometheus.cue
@@ -12,10 +12,24 @@ _prometheus: {
targetNamespace: "\(parameter.namespace)"
values: {
fullnameOverride: parameter.namePrefix + "kps"
- if parameter.prometheus.enabled != true {
- defaultRules: {
+ defaultRules: {
+ if parameter.prometheusDefaultRules.enabled != true {
create: false
}
+ if parameter.prometheusDefaultRules.enabled == true {
+ create: true
+ rules: {
+ windows: false
+ }
+ }
+ labels: {
+ prometheus: "k8s"
+ role: "alert-rules"
+ }
+ additionalRuleLabels: {
+ prometheus: "k8s"
+ role: "alert-rules"
+ }
}
global: {
imageRegistry: "\(parameter.registry)"
@@ -79,7 +93,7 @@ _prometheus: {
}
}
grafana: {
- if parameter.prometheus.enabled != true {
+ if parameter.grafana.enabled != true {
enabled: false
}
additionalDataSources: [{
@@ -173,7 +187,12 @@ _prometheus: {
defaultDatasourceEnabled: true
isDefaultDatasource: true
uid: "prometheus"
- url: "http://kps-prometheus:9090/"
+ if parameter.prometheus.externalUrl != "" {
+ url: "\(parameter.prometheus.externalUrl)"
+ }
+ if parameter.prometheus.externalUrl == "" {
+ url: "http://kps-prometheus:9090/"
+ }
label: "grafana_datasource"
labelValue: "1"
alertmanager: {
diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go
index dec5695..dce6ae0 100644
--- a/pkg/utils/utils.go
+++ b/pkg/utils/utils.go
@@ -19,8 +19,6 @@ import (
"bytes"
"encoding/base64"
"fmt"
- "archive/tar"
- "compress/gzip"
"io"
"net/http"
"os"
@@ -125,69 +123,6 @@ func ExecCmd(cmdStr string, suppressStdout bool) (int, error) {
return 0, nil
}
-func ExtractTarGZ(tarBallFile, targetDir, pathInTar string) error {
- // create targetDir if not exists
- if _, err := os.Stat(targetDir); os.IsNotExist(err) {
- err := os.MkdirAll(targetDir, 0755)
- if err != nil {
- return fmt.Errorf("failed to create target directory: %v", err)
- }
- }
-
- // open tar.gz file
- file, err := os.Open(tarBallFile)
- if err != nil {
- return fmt.Errorf("failed to open file %s: %v", tarBallFile, err)
- }
- defer file.Close()
-
- // create gzip reader
- reader, err := gzip.NewReader(file)
- if err != nil {
- return fmt.Errorf("failed to create gzip reader: %v", err)
- }
- defer reader.Close()
-
- // create tar reader and copy files to target directory
- tarReader := tar.NewReader(reader)
- for {
- header, err := tarReader.Next()
- if err == io.EOF {
- break
- }
- if err != nil {
- return fmt.Errorf("failed to read tar entry: %v", err)
- }
-
- if pathInTar != "" && !strings.HasPrefix(header.Name, pathInTar) {
- continue
- }
-
- switch header.Typeflag {
- case tar.TypeDir:
- if _, err := os.Stat(filepath.Join(targetDir, filepath.Base(header.Name))); os.IsNotExist(err) {
- err := os.MkdirAll(filepath.Join(targetDir, filepath.Base(header.Name)), 0755)
- if err != nil {
- return fmt.Errorf("failed to create directory: %v", err)
- }
- }
- case tar.TypeReg:
- targetFile, err := os.Create(filepath.Join(targetDir, filepath.Base(header.Name)))
- if err != nil {
- return fmt.Errorf("failed to create target file: %v", err)
- }
- defer targetFile.Close()
- if _, err := io.Copy(targetFile, tarReader); err != nil {
- return fmt.Errorf("failed to write target file: %v", err)
- }
- default:
- return fmt.Errorf("unsupported tar entry type: %v in : %v", header.Typeflag, header.Name)
- }
- }
-
- return nil
-}
-
func GetEnv(key, fallback string) string {
value := os.Getenv(key)
if len(value) == 0 {
diff --git a/pkg/vela/vela.go b/pkg/vela/vela.go
index 4f5fdaa..80d8f61 100644
--- a/pkg/vela/vela.go
+++ b/pkg/vela/vela.go
@@ -89,7 +89,7 @@ func VelaInstall(artifactServer, dockerRegistry, cacheDir, binDir, velaVersion s
} else {
_, err = utils.ExecCmd(
fmt.Sprintf(
- "%s install --yes --detail=false --file %s --set imageRegistry=%s/ --set image.pullPolicy=IfNotPresent",
+ "%s install --yes --detail=false --file %s --set imageRegistry=%s/ --set image.pullPolicy=IfNotPresent --set replicaCount=3",
velaCli, filepath.Join(cacheDir, velaChart), dockerRegistry,
), false,
)