From b4db5f229a7e4069cf1b5bb622ce1bc54c6abc1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Mon, 18 Sep 2023 10:44:22 +0200 Subject: [PATCH 01/53] Adapted ververica deployemtn to 1.10.1 --- .github/workflows/helm-test-workflow.yaml | 2 ++ src/Chart.yaml | 2 +- src/templates/_helpers.tpl | 4 +++- src/templates/configmap.yaml | 11 ++++++++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index df360792..c99459bc 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -7,6 +7,7 @@ on: push: branches: - main + - 'preview/*' tags: - '*' workflow_dispatch: @@ -56,6 +57,7 @@ jobs: with: name: helm-build path: "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" + - run: curl -u ${{env.CHART_REPOSITORY_AUTH}} --fail --upload-file "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" ${{env.CHARTS_PUBLIC_SNAPSHOTS_URL}} test-flink: name: test flink mode runs-on: ubuntu-latest diff --git a/src/Chart.yaml b/src/Chart.yaml index 30e985ee..42ab3cec 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1 +version: 1.10.1-mpk-1 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index f81e71d2..6808e58d 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -184,7 +184,9 @@ nussknacker-request-response-scenario {{- define "nussknacker.modelClassPath" -}} {{- if .Values.nussknacker.modelClassPath -}} -{{ tpl ( mustToJson .Values.nussknacker.modelClassPath) . }} +{{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} +{{- else if eq .Values.nussknacker.mode "ververica" -}} +["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "flink" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "streaming-lite" -}} diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index d3894290..7d734c18 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -14,7 +14,16 @@ data: scenarioTypes { "default": { - {{- if eq .Values.nussknacker.mode "flink" }} + {{- if eq .Values.nussknacker.mode "ververica" }} + deploymentConfig: { + type: "ververica" + workspace: {{ .Values.nussknacker.workspace }} + username: {{ .Values.nussknacker.username | quote }} + password: {{ .Values.nussknacker.password | quote }} + remoteSyslogIp: {{ .Values.nussknacker.remoteSyslogIp | quote }} + remoteSyslogPort: {{ .Values.nussknacker.remoteSyslogPort }} + } + {{- else if eq .Values.nussknacker.mode "flink" }} deploymentConfig: { type: "flinkStreaming" {{- /* Find easier way of passing it through values */}} From b11f66866b389dbd3f293e4c58a60859e0d50ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Mon, 18 Sep 2023 12:46:53 +0200 Subject: [PATCH 02/53] bump --- src/Chart.yaml | 2 +- src/templates/_helpers.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 42ab3cec..7ea2376a 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-1 +version: 1.10.1-mpk-2 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index 6808e58d..b647f165 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -186,7 +186,7 @@ nussknacker-request-response-scenario {{- if .Values.nussknacker.modelClassPath -}} {{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} {{- else if eq .Values.nussknacker.mode "ververica" -}} -["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] +["components/defaultModel.jar", "components/flinkBase.jar", "components/flinkExecutor.jar", "components/flinkKafka.jar", "components/ververica-2.13.jar"] {{- else if eq .Values.nussknacker.mode "flink" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "streaming-lite" -}} From a23e64a848cd281415bb7f6178dca881bc9b067c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Mon, 18 Sep 2023 14:16:39 +0200 Subject: [PATCH 03/53] wip --- src/Chart.yaml | 2 +- src/templates/_helpers.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 7ea2376a..9b3e90b7 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-2 +version: 1.10.1-mpk-3 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index b647f165..df7a3685 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -186,7 +186,7 @@ nussknacker-request-response-scenario {{- if .Values.nussknacker.modelClassPath -}} {{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} {{- else if eq .Values.nussknacker.mode "ververica" -}} -["components/defaultModel.jar", "components/flinkBase.jar", "components/flinkExecutor.jar", "components/flinkKafka.jar", "components/ververica-2.13.jar"] +["components/ververica/defaultModel.jar", "components/ververica/flinkBase.jar", "components/ververica/flinkExecutor.jar", "components/ververica/flinkKafka.jar", "managers/ververica/ververica-2.13.jar"] {{- else if eq .Values.nussknacker.mode "flink" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "streaming-lite" -}} From 26435b4edd89e5fd979ff9db35fe93e4fb69ab58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 19 Sep 2023 10:19:14 +0200 Subject: [PATCH 04/53] bump --- src/Chart.yaml | 2 +- src/templates/_helpers.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 9b3e90b7..4a1d078c 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-3 +version: 1.10.1-mpk-4 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index df7a3685..6808e58d 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -186,7 +186,7 @@ nussknacker-request-response-scenario {{- if .Values.nussknacker.modelClassPath -}} {{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} {{- else if eq .Values.nussknacker.mode "ververica" -}} -["components/ververica/defaultModel.jar", "components/ververica/flinkBase.jar", "components/ververica/flinkExecutor.jar", "components/ververica/flinkKafka.jar", "managers/ververica/ververica-2.13.jar"] +["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "flink" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "streaming-lite" -}} From 42125c33bb57982a62df87b2033fff0d3e33fde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 19 Sep 2023 14:06:38 +0200 Subject: [PATCH 05/53] Added handling of remote classpath --- src/Chart.yaml | 2 +- src/templates/configmap.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 4a1d078c..bcdb7a48 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-4 +version: 1.10.1-mpk-5 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index 7d734c18..f795d0fb 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -80,6 +80,7 @@ data: modelConfig: { classPath: {{ include "nussknacker.modelClassPath" . }} + remoteClassPath: {{ ".Values.nussknacker.remoteClassPath" | default "[]" }} {{- if and (eq .Values.nussknacker.mode "flink") (not .Values.nussknacker.skipKafkaConfig ) }} components.kafka.config { kafkaProperties { From 7794655c31e82c46b68688e87a44f981ba851ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 19 Sep 2023 14:15:39 +0200 Subject: [PATCH 06/53] bump --- src/Chart.yaml | 2 +- src/templates/configmap.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index bcdb7a48..3480ffa5 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-5 +version: 1.10.1-mpk-6 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index f795d0fb..9447121f 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -80,7 +80,7 @@ data: modelConfig: { classPath: {{ include "nussknacker.modelClassPath" . }} - remoteClassPath: {{ ".Values.nussknacker.remoteClassPath" | default "[]" }} + remoteClassPath: {{ .Values.nussknacker.remoteClassPath | default "[]" }} {{- if and (eq .Values.nussknacker.mode "flink") (not .Values.nussknacker.skipKafkaConfig ) }} components.kafka.config { kafkaProperties { From 4d092429cb069f40bb76ea6b98bb12b1d174b34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 20 Sep 2023 14:55:39 +0200 Subject: [PATCH 07/53] fix --- src/Chart.yaml | 2 +- src/templates/_helpers.tpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 3480ffa5..0be8970e 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-6 +version: 1.10.1-mpk-7 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index 6808e58d..050e5ee4 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -186,7 +186,7 @@ nussknacker-request-response-scenario {{- if .Values.nussknacker.modelClassPath -}} {{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} {{- else if eq .Values.nussknacker.mode "ververica" -}} -["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] +["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common", "compatibility-provider/nussknacker-ververica-compatibility-provider.jar"] {{- else if eq .Values.nussknacker.mode "flink" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] {{- else if eq .Values.nussknacker.mode "streaming-lite" -}} From 56e3f9933e905dc2c2e1e7f02cfb4b8d1044e776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 4 Oct 2023 19:31:07 +0200 Subject: [PATCH 08/53] Removed unnecesary configuration fields --- src/Chart.yaml | 2 +- src/templates/configmap.yaml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 0be8970e..e041bb3d 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-7 +version: 1.10.1-mpk-8 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index 9447121f..0780a34a 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -17,7 +17,6 @@ data: {{- if eq .Values.nussknacker.mode "ververica" }} deploymentConfig: { type: "ververica" - workspace: {{ .Values.nussknacker.workspace }} username: {{ .Values.nussknacker.username | quote }} password: {{ .Values.nussknacker.password | quote }} remoteSyslogIp: {{ .Values.nussknacker.remoteSyslogIp | quote }} @@ -80,7 +79,6 @@ data: modelConfig: { classPath: {{ include "nussknacker.modelClassPath" . }} - remoteClassPath: {{ .Values.nussknacker.remoteClassPath | default "[]" }} {{- if and (eq .Values.nussknacker.mode "flink") (not .Values.nussknacker.skipKafkaConfig ) }} components.kafka.config { kafkaProperties { From bdc15ff56b49d2819619d7d730f6947118a01b45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 11 Oct 2023 09:47:02 +0200 Subject: [PATCH 09/53] fixes --- src/Chart.yaml | 2 +- src/templates/configmap.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index e041bb3d..6419e76d 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.10.1-mpk-8 +version: 1.10.1-mpk-9 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index 0780a34a..691fa282 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -17,10 +17,10 @@ data: {{- if eq .Values.nussknacker.mode "ververica" }} deploymentConfig: { type: "ververica" - username: {{ .Values.nussknacker.username | quote }} - password: {{ .Values.nussknacker.password | quote }} - remoteSyslogIp: {{ .Values.nussknacker.remoteSyslogIp | quote }} - remoteSyslogPort: {{ .Values.nussknacker.remoteSyslogPort }} + username: {{ .Values.nussknacker.ververica.username | quote }} + password: {{ .Values.nussknacker.ververica.password | quote }} + remoteSyslogIp: {{ .Values.nussknacker.ververica.remoteSyslogIp | quote }} + remoteSyslogPort: {{ .Values.nussknacker.ververica.remoteSyslogPort }} } {{- else if eq .Values.nussknacker.mode "flink" }} deploymentConfig: { From c781e561f974789b8e21705ce5f049e4a5e95e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 11 Oct 2023 09:53:17 +0200 Subject: [PATCH 10/53] fix --- src/templates/_helpers.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/_helpers.tpl b/src/templates/_helpers.tpl index 050e5ee4..50c52190 100644 --- a/src/templates/_helpers.tpl +++ b/src/templates/_helpers.tpl @@ -184,7 +184,7 @@ nussknacker-request-response-scenario {{- define "nussknacker.modelClassPath" -}} {{- if .Values.nussknacker.modelClassPath -}} -{{ tpl ( mustToJson .Valumes.nussknacker.modelClassPath) . }} +{{ tpl ( mustToJson .Values.nussknacker.modelClassPath) . }} {{- else if eq .Values.nussknacker.mode "ververica" -}} ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common", "compatibility-provider/nussknacker-ververica-compatibility-provider.jar"] {{- else if eq .Values.nussknacker.mode "flink" -}} From 689bce7a2cca2c0111a81285f8064fc9eb67b62e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:06:25 +0200 Subject: [PATCH 11/53] test --- .github/workflows/helm-test-workflow.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index df360792..9075284d 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -7,6 +7,7 @@ on: push: branches: - main + - 'preview/*' tags: - '*' workflow_dispatch: From 5cf7fa859ef6d200e0706a5b1848510289dd6f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:09:29 +0200 Subject: [PATCH 12/53] test --- .github/workflows/helm-test-workflow.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 9075284d..5a64fa0f 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -4,6 +4,7 @@ on: pull_request: branches: - main + - 'preview/*' push: branches: - main From de113a19ae72e6348defdb2ce2086f0694be2ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:10:27 +0200 Subject: [PATCH 13/53] tet --- .github/workflows/helm-test-workflow.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 5a64fa0f..c613c90b 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -49,6 +49,8 @@ jobs: run: echo "::set-output name=version::$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" - name: buildAll run: ./setup.sh + - name: git log + run: git log - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} - name: packageAll From 4efdbc10cb3a00f50f2758aa03fdcce5905954bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:12:17 +0200 Subject: [PATCH 14/53] test --- .github/workflows/helm-test-workflow.yaml | 2 + out | 11397 ++++++++++++++++++++ 2 files changed, 11399 insertions(+) create mode 100644 out diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index c613c90b..2d8976b9 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -51,6 +51,8 @@ jobs: run: ./setup.sh - name: git log run: git log + - name: helm version + run: helm version - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} - name: packageAll diff --git a/out b/out new file mode 100644 index 00000000..0de9edab --- /dev/null +++ b/out @@ -0,0 +1,11397 @@ +--- +# Source: nussknacker/charts/telegraf/templates/pdb.yaml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.34 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + minAvailable: 1 + selector: + matchLabels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/apicurio-registry/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/grafana/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +--- +# Source: nussknacker/charts/influxdb/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/kafka/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka + annotations: +automountServiceAccountToken: true +--- +# Source: nussknacker/charts/telegraf/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.34 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-nussknacker + labels: + + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/grafana/templates/secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +type: Opaque +data: + admin-user: "YWRtaW4=" + admin-password: "YWRtaW4=" + ldap-toml: "" +--- +# Source: nussknacker/charts/influxdb/templates/secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-influxdb-auth + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +data: + influxdb-password: "Y2hhbmdlbWU=" + influxdb-user: "bnVzc2tuYWNrZXI=" +--- +# Source: nussknacker/charts/postgresql/templates/secrets.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm +type: Opaque +data: + postgres-password: "QXk5SGZocEYxWA==" + # We don't auto-generate LDAP password when it's not provided as we do for other passwords +--- +# Source: nussknacker/charts/flink/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-flink-config + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +data: + flink-conf.yaml: |+ + taskmanager.numberOfTaskSlots: 4 + blob.server.port: 6124 + taskmanager.rpc.port: 6122 + jobmanager.heap.size: 1g + taskmanager.memory.process.size: 1g + metrics.reporters: prom + metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter + metrics.reporter.prom.port: 9999 + jobmanager.rpc.address: release-name-flink-jobmanager + jobmanager.rpc.port: 6123 + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory + flink-conf-taskmanager.yaml: |+ + taskmanager.numberOfTaskSlots: 4 + blob.server.port: 6124 + taskmanager.rpc.port: 6122 + jobmanager.heap.size: 1g + taskmanager.memory.process.size: 1g + metrics.reporters: prom + metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter + metrics.reporter.prom.port: 9999 + jobmanager.rpc.address: release-name-flink-jobmanager + jobmanager.rpc.port: 6123 + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory + log4j.properties: |+ + # This affects logging for both user code and Flink + rootLogger.level = INFO + rootLogger.appenderRef.console.ref = ConsoleAppender + rootLogger.appenderRef.rolling.ref = RollingFileAppender + + # Uncomment this if you want to _only_ change Flink's logging + #logger.flink.name = org.apache.flink + #logger.flink.level = INFO + + # The following lines keep the log level of common libraries/connectors on + # log level INFO. The root logger does not override this. You have to manually + # change the log levels here. + logger.akka.name = akka + logger.akka.level = INFO + logger.kafka.name= org.apache.kafka + logger.kafka.level = INFO + logger.hadoop.name = org.apache.hadoop + logger.hadoop.level = INFO + logger.zookeeper.name = org.apache.zookeeper + logger.zookeeper.level = INFO + + # Log all infos to the console + appender.console.name = ConsoleAppender + appender.console.type = CONSOLE + appender.console.layout.type = PatternLayout + appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n + + # Log all infos in the given rolling file + appender.rolling.name = RollingFileAppender + appender.rolling.type = RollingFile + appender.rolling.append = false + appender.rolling.fileName = ${sys:log.file} + appender.rolling.filePattern = ${sys:log.file}.%i + appender.rolling.layout.type = PatternLayout + appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n + appender.rolling.policies.type = Policies + appender.rolling.policies.size.type = SizeBasedTriggeringPolicy + appender.rolling.policies.size.size=100MB + appender.rolling.strategy.type = DefaultRolloverStrategy + appender.rolling.strategy.max = 10 + + # Suppress the irrelevant (wrong) warnings from the Netty channel handler + logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline + logger.netty.level = OFF + + + security.properties: + # The java-level namelookup cache policy for successful lookups + networkaddress.cache.ttl=30 +--- +# Source: nussknacker/charts/grafana/templates/configmap-dashboard-provider.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana-config-dashboards + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +data: + provider.yaml: |- + apiVersion: 1 + providers: + - name: 'sidecarProvider' + orgId: 1 + folder: '' + type: file + disableDeletion: false + allowUiUpdates: false + updateIntervalSeconds: 30 + options: + foldersFromFilesStructure: false + path: /tmp/dashboards +--- +# Source: nussknacker/charts/grafana/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +data: + grafana.ini: | + [analytics] + check_for_updates = true + [auth.anonymous] + enabled = true + [grafana_net] + url = https://grafana.net + [log] + mode = console + [paths] + data = /var/lib/grafana/ + logs = /var/log/grafana + plugins = /var/lib/grafana/plugins + provisioning = /etc/grafana/provisioning + [security] + allow_embedding = true + [server] + domain = '' + root_url = %(protocol)s://%(domain)s/grafana + serve_from_sub_path = true +--- +# Source: nussknacker/charts/influxdb/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +data: + influxdb.conf: |+ + reporting-disabled = false + bind-address = ":8088" + + [meta] + dir = "/var/lib/influxdb/meta" + + [data] + dir = "/var/lib/influxdb/data" + wal-dir = "/var/lib/influxdb/wal" + + [coordinator] + + [retention] + + [shard-precreation] + + [monitor] + + [subscriber] + + [http] + auth-enabled = true + bind-address = ":8086" + enabled = true + flux-enabled = true + + # TODO: allow multiple graphite listeners + + [[graphite]] + + # TODO: allow multiple collectd listeners with templates + + [[collectd]] + + # TODO: allow multiple opentsdb listeners with templates + + [[opentsdb]] + + # TODO: allow multiple udp listeners with templates + + [[udp]] + + [continuous_queries] + + [logging] +--- +# Source: nussknacker/charts/kafka/templates/scripts-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-kafka-scripts + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm +data: + setup.sh: |- + #!/bin/bash + + ID="${MY_POD_NAME#"release-name-kafka-"}" + # If process.roles is not set at all, it is assumed to be in ZooKeeper mode. + # https://kafka.apache.org/documentation/#kraft_role + + if [[ -f "/bitnami/kafka/data/meta.properties" ]]; then + if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then + export KAFKA_CFG_BROKER_ID="$(grep "broker.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" + else + export KAFKA_CFG_NODE_ID="$(grep "node.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" + fi + else + if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then + export KAFKA_CFG_BROKER_ID="$((ID + 0))" + else + export KAFKA_CFG_NODE_ID="$((ID + 0))" + fi + fi + + if [[ $KAFKA_CFG_PROCESS_ROLES == *"controller"* && -z $KAFKA_CFG_CONTROLLER_QUORUM_VOTERS ]]; then + node_id=0 + pod_id=0 + while : + do + VOTERS="${VOTERS}$node_id@release-name-kafka-$pod_id.release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9093" + node_id=$(( $node_id + 1 )) + pod_id=$(( $pod_id + 1 )) + if [[ $pod_id -ge 1 ]]; then + break + else + VOTERS="$VOTERS," + fi + done + export KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=$VOTERS + fi + + # Configure zookeeper client + + exec /entrypoint.sh /run.sh +--- +# Source: nussknacker/charts/telegraf/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.34 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +data: + telegraf.conf: |+ + + [agent] + collection_jitter = "0s" + debug = false + flush_interval = "10s" + flush_jitter = "0s" + hostname = "$HOSTNAME" + interval = "10s" + logfile = "" + metric_batch_size = 1000 + metric_buffer_limit = 10000 + omit_hostname = false + precision = "" + quiet = false + round_interval = true + [[processors.enum]] + [[processors.enum.mapping]] + dest = "status_code" + field = "status" + [processors.enum.mapping.value_mappings] + critical = 3 + healthy = 1 + problem = 2 + + + + [[inputs.statsd]] + allowed_pending_messages = 10000 + metric_separator = "_" + percentile_limit = 1000 + percentiles = [ + 50.0, + 95.0, + 99.0 + ] + service_address = ":8125" + + [[inputs.internal]] + collect_memstats = false +--- +# Source: nussknacker/charts/zookeeper/templates/scripts-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-zookeeper-scripts + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +data: + init-certs.sh: |- + #!/bin/bash + setup.sh: |- + #!/bin/bash + + # Execute entrypoint as usual after obtaining ZOO_SERVER_ID + # check ZOO_SERVER_ID in persistent volume via myid + # if not present, set based on POD hostname + if [[ -f "/bitnami/zookeeper/data/myid" ]]; then + export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)" + else + HOSTNAME="$(hostname -s)" + if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then + ORD=${BASH_REMATCH[2]} + export ZOO_SERVER_ID="$((ORD + 1 ))" + else + echo "Failed to get index from hostname $HOST" + exit 1 + fi + fi + exec /entrypoint.sh /run.sh +--- +# Source: nussknacker/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: + application.conf: |- + db: {"driver":"org.postgresql.Driver","schema":"public","url":"jdbc:postgresql://release-name-postgresql/","user":"postgres"} + db.password: ${?DB_PASSWORD} + + scenarioTypes { + "default": { + deploymentConfig: { + type: "flinkStreaming" + restUrl: "http://release-name-flink-jobmanager-rest:8081" + queryableStateProxyUrl: "release-name-flink-taskmanager:6122" + } {"jobManagerTimeout":"1m"} + + modelConfig: { + classPath: ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] + components.kafka.config { + kafkaProperties { + "bootstrap.servers": "release-name-kafka:9092" + "schema.registry.url": "http://release-name-apicurio-registry:80/apis/ccompat/v6/" + } + } + rocksDB { + enable: true + } + }{"components":{"openAPI":{"url":"https://app.swaggerhub.com/apiproxy/registry/TKJ/CurrencyConverter/FINAL"}},"namespace":"release-name"} + } + } + countsSettings: { + "user": ${INFLUXDB_USER} + "password": ${INFLUXDB_PASSWORD} + "influxUrl": "http://release-name-influxdb:8086/query" + "database": "nussknacker" + metricsConfig: { "countField": "gauge"}} + metricsSettings: { + url: "/grafana/d/$dashboard?theme=dark&var-scenarioName=$scenarioName&var-env="${environment} + defaultDashboard: "nussknacker-scenario" + } + + tabs: ${tabs}[] + + usageStatisticsReports { + enabled:false + fingerprint: "" + source: "helmchart" + } + categoriesConfig: {"Default":"default"} + environment: "default" + environmentAlert: {"color":"indicator-green","content":"default"} +--- +# Source: nussknacker/templates/grafana-dashboard.yml +apiVersion: v1 +kind: ConfigMap +metadata: + name: "release-name-nussknacker-grafana-dashboard" + labels: + grafana_dashboard: "nussknacker" +data: + dashboard.json: |- + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 1, + "iteration": 1631534794448, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "source.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"source_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Source throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "end.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Events that passed whole scenario /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 5, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "dead_end.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"dead_end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Rejected events /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "error.instantRateByNode.count.count", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"error_instantRateByNode_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 15 + }, + "hiddenSeries": false, + "id": 9, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + } + ], + "measurement": "records_lag_max", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"gauge\") FROM \"records_lag_max\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(none)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Max lag among Kafka source partitions (events)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 8, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT min(\"min\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "min" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - minimum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 22 + }, + "hiddenSeries": false, + "id": 6, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"0.5\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 7, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "max" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - maximum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 22 + }, + "hiddenSeries": false, + "id": 13, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_minimalDelay", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT min(\"gauge\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Time from latest event", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_OK_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.5\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_OK_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.99\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "action" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "serviceInstant.OK", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_OK_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_FAIL_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.5\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_FAIL_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.99\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "action" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "serviceInstant.FAIL", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_FAIL_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "External services", + "type": "row" + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 22, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 45 + }, + "hiddenSeries": false, + "id": 19, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.cur-size-all-mem-tables/", + "orderByTime": "ASC", + "policy": "default", + "query": "\nSELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.cur-size-all-mem-tables/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB cur-size-all-mem-tables", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 45 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.cur-size-all-mem-tables/", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-live-data-size/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB estimate-live-data-size", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates on number of keys in RocksDB state. Aggregates (e.g. session windows) can have many internal states. Please remember that this is only estimate, based on internal RocksDB metrics", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 45 + }, + "hiddenSeries": false, + "id": 20, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.estimate-num-keys/", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-num-keys/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB estimate-num-keys", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "RocksDB state", + "type": "row" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 31 + }, + "id": 28, + "panels": [], + "title": "Scenario health", + "type": "row" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 32 + }, + "id": 30, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_uptime", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Uptime", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 32 + }, + "id": 32, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_fullRestarts", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Number of restarts", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 37 + }, + "id": 37, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_lastCheckpointDuration", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Last checkpoint duration", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 37 + }, + "id": 38, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_lastCheckpointSize", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Last checkpoint size", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "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": 1 + }, + { + "color": "#299c46", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 37 + }, + "id": 35, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_numberOfCompletedCheckpoints", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Completed checkpoints", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 37 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_numberOfFailedCheckpoints", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Failed checkpoints", + "type": "stat" + } + ], + "refresh": "30s", + "schemaVersion": 30, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "allValue": null, + "current": { + "selected": false, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "local", + "value": "local" + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": false, + "label": null, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "description": null, + "error": null, + "hide": 0, + "label": null, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Scenario", + "uid": "nussknacker-scenario", + "version": 4 + } + nussknacker-lite-scenario.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 1, + "iteration": 1638475135627, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"source.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Source throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "hide": false, + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Events that passed whole scenario /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 5, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Rejected events /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 15 + }, + "hiddenSeries": false, + "id": 9, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_taskId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "taskId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + } + ], + "measurement": "records-lag-max", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Max lag among Kafka source partitions (events)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 8, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "min" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - minimum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 22 + }, + "hiddenSeries": false, + "id": 6, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 7, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "max" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - maximum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 22 + }, + "hiddenSeries": false, + "id": 13, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.minimalDelay", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Time from latest event", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "External services", + "type": "row" + } + ], + "refresh": "30s", + "schemaVersion": 30, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "allValue": null, + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "local", + "value": "local" + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": false, + "label": null, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "description": null, + "error": null, + "hide": 0, + "label": null, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Lite scenario", + "uid": "nussknacker-lite-scenario", + "version": 101 + } + nussknacker-request-response-scenario.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": 1, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": "influx", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "targets": [ + { + "datasource": "influx", + "refId": "A" + } + ], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"invocation.success.histogram\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "hide": false, + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + }, + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "hide": false, + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Outputs/s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 27, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 15 + }, + "hiddenSeries": false, + "id": 28, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - median - 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 15 + }, + "hiddenSeries": false, + "id": 31, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - max", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 29, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 22 + }, + "hiddenSeries": false, + "id": 30, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 22 + }, + "hiddenSeries": false, + "id": 32, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - max", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": "influx", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [], + "targets": [ + { + "datasource": "influx", + "refId": "A" + } + ], + "title": "External services", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "datasource": "influx", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "30s", + "schemaVersion": 36, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "current": { + "selected": true, + "text": [ + "test proxy process for rr" + ], + "value": [ + "test proxy process for rr" + ] + }, + "datasource": "influx", + "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", + "hide": 0, + "includeAll": true, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "influx", + "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "hide": 0, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "RequestResponse scenario", + "uid": "nussknacker-request-response-scenario", + "version": 1, + "weekStart": "" + } +--- +# Source: nussknacker/templates/grafana-datasource.yml +apiVersion: v1 +kind: ConfigMap +metadata: + name: "release-name-influx-grafana-datasource" + labels: + grafana_datasource: "influx" +data: + datasource.yaml: |- + apiVersion: 1 + datasources: + - name: influx + type: influxdb + access: proxy + orgId: 1 + url: http://release-name-influxdb:8086 + database: nussknacker + basicAuth: true + isDefault: true + version: 1 + editable: false + basicAuthUser: ${influxdb-user} + secureJsonData: + basicAuthPassword: ${influxdb-password} +--- +# Source: nussknacker/templates/logging-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-logging-conf + labels: + nussknacker.io/resourceType: "logging-conf" + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: +--- +# Source: nussknacker/templates/telegraf-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: telegraf-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: + nussknacker.conf: |- + # Flink reporters for Prometheus or InfluxDB are somewhat limited: + # - no possibility of adding own tags + # - no possitility of removing Flink internal tags (like job_id, task_id, etc.) + # - metric name has all tags encoded inside + # NOTE: Prometheus has different field names than e.g. InfluxDB reporter, (count -> gauge, different percentile names, etc.) + + [global_tags] + env = "default" + + #FIXME: handle case where Flink is disabled but telegraf *is* enabled + [[inputs.prometheus]] + urls=[ + "http://release-name-flink-jobmanager-headless:9999/metrics", + "http://release-name-flink-taskmanager:9999/metrics" + ] + + [[processors.rename]] + + [[processors.rename.replace]] + tag = "job_name" + dest = "process" + + [[processors.rename.replace]] + tag = "subtask_index" + dest = "slot" + + #TODO: this is test model specific, figure out way to remove it... + [[processors.rename.replace]] + tag = "originalProcessName" + dest = "process" + + #We remove tag names from measurement names to have more stable measurement names + [[processors.strings]] + [[processors.strings.replace]] + measurement = "*" + old = "taskmanager_job_task_operator_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "flink_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "nodeId_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "serviceName_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "namespace_" + new = "" + [[processors.strings.replace]] + measurement = "*" + old = "originalProcessName_" + new = "" + + [[outputs.influxdb]] + urls = ["http://release-name-influxdb:8086"] + skip_database_creation = true + database = "nussknacker" +--- +# Source: nussknacker/templates/tests/test-scripts.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-test-scripts +data: + main-wrapper.sh: |- + #!/bin/sh + ($*) & + MAIN_PID=$! + echo $MAIN_PID > /var/run/sidecars/main.pid + wait $MAIN_PID + sidecar-wrapper.sh: |- + #!/bin/sh + ($*) & + MAIN_PID=$(until cat /var/run/sidecars/main.pid; do sleep 1; done) + tail --pid $MAIN_PID -f /dev/null +--- +# Source: nussknacker/templates/tests/test-suites.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-test-suites +data: + kafka-only.bats: | + #!/usr/bin/env bats + + : "${NUSSKNACKER_URL:?required environment value not set}" + : "${AUTHORIZATION:?required environment value not set}" + : "${KAFKA_BOOTSTRAP_SERVER:?required environment value not set}" + : "${SCHEMA_REGISTRY_URL:?required environment value not set}" + : "${SCENARIO_TYPE:?required environment value not set}" + + function curl() { + /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" + } + export -f curl + + # timeout command has different syntax in Ubuntu and BusyBox + if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then + function timeout() { + $(which timeout) -t "$@" + } + fi + + function given_a_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local SCHEMA="${2:?required}" + + kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --describe --topic "${TOPIC_FULL_NAME}" || + kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --create --topic "${TOPIC_FULL_NAME}" \ + --partitions 10 --replication-factor 1 + + kafka-consumer-groups --bootstrap-server ${KAFKA_BOOTSTRAP_SERVER} \ + --topic "${TOPIC_FULL_NAME}" \ + --group helm_test --reset-offsets --to-latest --execute + + cat << _END | curl -d @- "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions" + { "schema": "$(echo $SCHEMA | sed -e 's/"/\\"/g')" } + _END + } + + function given_a_proxy_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_OBJECT="${2:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_IMPORT_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') + + curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default + echo ${PROCESS_OBJECT} | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- + + [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) == "RUNNING" ]] && curl -X POST ${PROCESS_CANCEL_URL} + curl -X POST ${PROCESS_DEPLOY_URL} + #on smaller ci envs deployment may last some time... + timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"RUNNING\" ]]; do sleep 1 && echo -n .; done;" || true + echo "Checking after waiting for status..." + local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) + echo "Status is: $STATUS_RESPONSE" + [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] + } + + function when_a_message_has_been_posted_on_the_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local ID=${2:?required} + + local SCHEMA_ID=$(curl "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions/latest" | jq '.id') + + cat << _END | kafka-avro-console-producer \ + --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ + --topic "${TOPIC_FULL_NAME}" \ + --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ + --property "value.schema.id=${SCHEMA_ID}" + { "id": "$ID", "content": "a content", "tags": [] } + _END + } + + function then_the_message_can_be_consumed_from_the_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local ID=${2:?required} + + kafka-avro-console-consumer \ + --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ + --topic "${TOPIC_FULL_NAME}" \ + --group helm_test \ + --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ + --timeout-ms 60000 \ + | (while : ; do + read MSG; + echo $MSG + if [[ -z $MSG ]]; then exit 1; fi; + if echo $MSG | jq -e ".id == \"${ID}\""; then break; fi; + done) + } + + function setup() { + export GROUP=testgroup + export INPUT_TOPIC=inputKafkaOnly + export OUTPUT_TOPIC=outputKafkaOnly + local SCHEMA=$(cat << _END + { + "namespace": "\${GROUP}", + "name": "\${TOPIC}", + "type": "record", + "doc": "This is a sample schema definition", + "fields": [ + { "name": "id", "type": "string", "doc": "Message id" }, + { "name": "content", "type": "string", "doc": "Message content" }, + { "name": "tags", "type": { "type": "array", "items": "string" }, "doc": "Message tags" } + ] + } + _END + ) + local -x PROCESS_NAME="test proxy process for kafka only" + + given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${INPUT_TOPIC} envsubst)" + given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${OUTPUT_TOPIC} envsubst)" + given_a_proxy_process "${PROCESS_NAME}" "$(cat ${BATS_TEST_DIRNAME%/}/testprocess.json | envsubst)" + } + + @test "message should pass through the kafka only proxy process" { + local ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) + when_a_message_has_been_posted_on_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" ${ID} + then_the_message_can_be_consumed_from_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" ${ID} + } + rr-only.bats: | + #!/usr/bin/env bats + + : "${NUSSKNACKER_URL:?required environment value not set}" + : "${AUTHORIZATION:?required environment value not set}" + : "${SCENARIO_TYPE:?required environment value not set}" + + function curl() { + /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" + } + export -f curl + + # timeout command has different syntax in Ubuntu and BusyBox + if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then + function timeout() { + $(which timeout) -t "$@" + } + fi + + function cancel_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') + curl -X POST ${PROCESS_CANCEL_URL} + } + + function wait_for_status() { + local PROCESS_NAME="${1:?required}" + local STATUS="${2:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"$STATUS\" ]]; do sleep 1 && echo -n .; done;" || true + } + + function given_a_proxy_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_IMPORT_URL=$( echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') + + curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default + export PROCESS_NAME GROUP INPUT_TOPIC OUTPUT_TOPIC + cat ${BATS_TEST_DIRNAME}/rr-testprocess.json | envsubst | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- + + [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) = RUNNING ]] && cancel_process "$PROCESS_NAME" + curl -X POST ${PROCESS_DEPLOY_URL} + #on smaller ci envs deployment may last some time... + wait_for_status "$PROCESS_NAME" "RUNNING" + echo "Checking after waiting for status..." + local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) + echo "Status is: $STATUS_RESPONSE" + [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] + } + + function setup() { + given_a_proxy_process "test proxy process for rr" + } + + @test "message should pass through the rr proxy process" { + local PROCESS_NAME="test proxy process for rr" + INPUT_MESSAGE='{"productId":10}' + EXPECTED_OUTPUT_MESSAGE='{"productId":20}' + + if [[ $(curl $SCENARIO_URL -d $INPUT_MESSAGE) == $EXPECTED_OUTPUT_MESSAGE ]]; then echo ok; else exit 1; fi + + cancel_process "$PROCESS_NAME" + wait_for_status "$PROCESS_NAME" "CANCELED" + } + rr-testprocess.json: "{\n \"metaData\" : {\n \"id\" : \"test-scenario-for-rr-only\",\n + \ \"typeSpecificData\" : {\n \"slug\" : \"test-scenario-for-rr-only\",\n + \ \"type\" : \"RequestResponseMetaData\"\n },\n \"additionalFields\" : + {\n \"description\" : null,\n \"properties\" : {\n \"inputSchema\" + : \"{\\n \\\"title\\\": \\\"Product\\\",\\n \\\"description\\\": \\\"A product + from Acme's catalog\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": + {\\n \\\"productId\\\": {\\n \\\"description\\\": \\\"The unique identifier + for a product\\\",\\n \\\"type\\\": \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": + [ \\\"productId\\\" ]\\n}\",\n \"outputSchema\" : \"{\\n \\\"title\\\": + \\\"Product\\\",\\n \\\"description\\\": \\\"A product from Acme's catalog\\\",\\n + \ \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"productId\\\": + {\\n \\\"description\\\": \\\"The unique identifier for a product\\\",\\n \\\"type\\\": + \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": [ \\\"productId\\\" ]\\n}\"\n + \ }\n },\n \"subprocessVersions\" : {\n \n }\n },\n \"nodes\" + : [\n {\n \"id\" : \"request\",\n \"ref\" : {\n \"typ\" : \"request\",\n + \ \"parameters\" : [\n ]\n },\n \"additionalFields\" : {\n + \ \"description\" : null,\n \"layoutData\" : {\n \"x\" : 0,\n + \ \"y\" : 0\n }\n },\n \"type\" : \"Source\"\n },\n + \ {\n \"id\" : \"response\",\n \"ref\" : {\n \"typ\" : \"response\",\n + \ \"parameters\" : [\n {\n \"name\" : \"productId\",\n + \ \"expression\" : {\n \"language\" : \"spel\",\n \"expression\" + : \"#input.productId * 2\"\n }\n }\n ]\n },\n \"endResult\" + : null,\n \"isDisabled\" : null,\n \"additionalFields\" : {\n \"description\" + : null,\n \"layoutData\" : {\n \"x\" : 1,\n \"y\" : 180\n + \ }\n },\n \"type\" : \"Sink\"\n }\n ],\n \"additionalBranches\" + : [\n ]\n}\n" + testprocess.json: | + { + "metaData": { + "id": "${PROCESS_NAME}", + "typeSpecificData": { + "parallelism": 1, + "type": "${SCENARIO_TYPE}" + }, + "isSubprocess": false, + "additionalFields": { + "description": null, + "groups": [ + ], + "properties": { + } + }, + "subprocessVersions": { + } + }, + "exceptionHandlerRef": { + "parameters": [ + ] + }, + "nodes": [ + { + "id": "kafka-source", + "ref": { + "typ": "kafka", + "parameters": [ + { + "name": "Topic", + "expression": { + "language": "spel", + "expression": "'${GROUP}.${INPUT_TOPIC}'" + } + }, + { + "name": "Schema version", + "expression": { + "language": "spel", + "expression": "'latest'" + } + } + ] + }, + "additionalFields": { + "description": null, + "layoutData": { + "x": -3, + "y": -90 + } + }, + "type": "Source" + }, + { + "id": "kafka-sink", + "ref": { + "typ": "kafka", + "parameters": [ + { + "name": "Topic", + "expression": { + "language": "spel", + "expression": "'${GROUP}.${OUTPUT_TOPIC}'" + } + }, + { + "name": "Schema version", + "expression": { + "language": "spel", + "expression": "'latest'" + } + }, + { + "name" : "Key", + "expression" : { + "language" : "spel", + "expression" : "" + } + }, + { + "name" : "Raw editor", + "expression" : { + "language" : "spel", + "expression" : "true" + } + }, + { + "name" : "Value validation mode", + "expression" : { + "language" : "spel", + "expression" : "'strict'" + } + }, + { + "name": "Value", + "expression": { + "language": "spel", + "expression": "#input" + } + } + ] + }, + "endResult": null, + "isDisabled": null, + "additionalFields": { + "description": null, + "layoutData": { + "x": 0, + "y": 135 + } + }, + "type": "Sink" + } + ], + "additionalBranches": [ + ] + } +--- +# Source: nussknacker/charts/grafana/templates/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +rules: + - apiGroups: [""] # "" indicates the core API group + resources: ["configmaps", "secrets"] + verbs: ["get", "watch", "list"] +--- +# Source: nussknacker/templates/role.yml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: release-name-nussknacker + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +rules: +- apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: ["apps"] + resources: ["deployments"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["services"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: ["networking.k8s.io"] + resources: ["ingresses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["resourcequotas"] + verbs: ["get", "list"] +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list"] +--- +# Source: nussknacker/charts/grafana/templates/rolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: release-name-grafana +subjects: +- kind: ServiceAccount + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +--- +# Source: nussknacker/templates/rolebinding.yml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: release-name-nussknacker + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +subjects: +- kind: ServiceAccount + name: release-name-nussknacker +roleRef: + kind: Role + apiGroup: rbac.authorization.k8s.io + name: release-name-nussknacker +--- +# Source: nussknacker/charts/apicurio-registry/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/flink/templates/jobmanager-headless-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager-headless + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + clusterIP: None + ports: + - port: 6124 + targetPort: blob + protocol: TCP + name: blob + - port: 6123 + targetPort: rpc + protocol: TCP + name: rpc + - port: 8081 + targetPort: ui + protocol: TCP + name: ui + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/jobmanager-rest-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager-rest + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + type: ClusterIP + ports: + - port: 8081 + targetPort: 8081 + protocol: TCP + name: ui + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/jobmanager-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + type: ClusterIP + ports: + - port: 6124 + targetPort: blob + protocol: TCP + name: blob + - port: 6123 + targetPort: rpc + protocol: TCP + name: rpc + - port: 8081 + targetPort: ui + protocol: TCP + name: ui + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/taskmanager-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: taskmanager +spec: + type: ClusterIP + ports: + - port: 6122 + targetPort: rpc + protocol: TCP + name: rpc + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager +--- +# Source: nussknacker/charts/grafana/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: service + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/influxdb/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: api + port: 8086 + targetPort: api + - name: rpc + port: 8088 + targetPort: rpc + selector: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/kafka/templates/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-kafka-headless + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + type: ClusterIP + clusterIP: None + publishNotReadyAddresses: false + ports: + - name: tcp-client + port: 9092 + protocol: TCP + targetPort: kafka-client + - name: tcp-internal + port: 9094 + protocol: TCP + targetPort: kafka-internal + selector: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka +--- +# Source: nussknacker/charts/kafka/templates/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-client + port: 9092 + protocol: TCP + targetPort: kafka-client + nodePort: null + selector: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka +--- +# Source: nussknacker/charts/postgresql/templates/primary/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-postgresql-hl + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary + # Use this annotation in addition to the actual publishNotReadyAddresses + # field below because the annotation will stop being respected soon but the + # field is broken in some versions of Kubernetes: + # https://github.com/kubernetes/kubernetes/issues/58662 + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + type: ClusterIP + clusterIP: None + # We want all pods in the StatefulSet to have their addresses published for + # the sake of the other Postgresql pods even before they're ready, since they + # have to be able to talk to each other in order to become ready. + publishNotReadyAddresses: true + ports: + - name: tcp-postgresql + port: 5432 + targetPort: tcp-postgresql + selector: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary +--- +# Source: nussknacker/charts/postgresql/templates/primary/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-postgresql + port: 5432 + targetPort: tcp-postgresql + nodePort: null + selector: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary +--- +# Source: nussknacker/charts/telegraf/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.34 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + type: ClusterIP + ports: + - port: 8125 + targetPort: 8125 + protocol: "UDP" + name: "statsd" + selector: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/zookeeper/templates/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-zookeeper-headless + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +spec: + type: ClusterIP + clusterIP: None + publishNotReadyAddresses: true + ports: + - name: tcp-client + port: 2181 + targetPort: client + - name: tcp-follower + port: 2888 + targetPort: follower + - name: tcp-election + port: 3888 + targetPort: election + selector: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper +--- +# Source: nussknacker/charts/zookeeper/templates/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-zookeeper + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-client + port: 2181 + targetPort: client + nodePort: null + - name: tcp-follower + port: 2888 + targetPort: follower + - name: tcp-election + port: 3888 + targetPort: election + selector: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper +--- +# Source: nussknacker/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm + annotations: + +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/apicurio-registry/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + template: + metadata: + labels: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + spec: + serviceAccountName: release-name-apicurio-registry + securityContext: + {} + containers: + - name: apicurio-registry + securityContext: + {} + image: "apicurio/apicurio-registry-kafkasql:2.2.5.Final" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 8080 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + env: + - name: KAFKA_BOOTSTRAP_SERVERS + value: release-name-kafka:9092 + resources: + {} +--- +# Source: nussknacker/charts/flink/templates/taskmanager.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: taskmanager + annotations: + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager + template: + metadata: + labels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager + annotations: + spec: + serviceAccountName: release-name-flink-taskmanager + securityContext: + {} + initContainers: + containers: + - name: taskmanager + image: "flink:1.16.0-scala_2.12-java11" + imagePullPolicy: IfNotPresent + workingDir: /opt/flink + command: + - "/bin/bash" + - "-c" + - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && $FLINK_HOME/bin/taskmanager.sh start-foreground;" + env: + - name: JVM_ARGS + value: "-Djava.security.properties=/opt/flink/conf/security.properties" + envFrom: + ports: + - containerPort: 6122 + name: rpc + - containerPort: 9999 + name: metrics + livenessProbe: + tcpSocket: + port: 6122 + initialDelaySeconds: 30 + periodSeconds: 60 + volumeMounts: + - name: flink-config-volume + mountPath: /opt/flink/conf + resources: + limits: + memory: 3Gi + requests: + memory: 2560Mi + + volumes: + - name: flink-config-volume + configMap: + name: release-name-flink-config + items: + - key: flink-conf-taskmanager.yaml + path: flink-conf.yaml + - key: log4j.properties + path: log4j.properties + - key: log4j.properties + path: log4j-console.properties + - key: security.properties + path: security.properties +--- +# Source: nussknacker/charts/grafana/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + strategy: + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + annotations: + checksum/config: 45292994968c494c3aaf68de82fdfb1e3602672eb983748da825f62856cfaebd + checksum/dashboards-json-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b + checksum/sc-dashboard-provider-config: 90a0f13a07e446a02df0f5b0a8258b2c0190756a76a05c868f838084509b7a55 + checksum/secret: ba085bc855a8bf05798045c837210040fb6ed89831c42a1d954512c5d455c737 + kubectl.kubernetes.io/default-container: grafana + spec: + + serviceAccountName: release-name-grafana + automountServiceAccountToken: true + securityContext: + fsGroup: 472 + runAsGroup: 472 + runAsNonRoot: true + runAsUser: 472 + enableServiceLinks: true + containers: + - name: grafana-sc-dashboard + image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" + imagePullPolicy: IfNotPresent + env: + - name: METHOD + value: WATCH + - name: LABEL + value: "grafana_dashboard" + - name: FOLDER + value: "/tmp/dashboards" + - name: RESOURCE + value: "both" + - name: REQ_USERNAME + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: REQ_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: REQ_URL + value: http://localhost:3000/api/admin/provisioning/dashboards/reload + - name: REQ_METHOD + value: POST + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: sc-dashboard-volume + mountPath: "/tmp/dashboards" + - name: grafana-sc-datasources + image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" + imagePullPolicy: IfNotPresent + env: + - name: METHOD + value: WATCH + - name: LABEL + value: "grafana_datasource" + - name: FOLDER + value: "/etc/grafana/provisioning/datasources" + - name: RESOURCE + value: "both" + - name: REQ_USERNAME + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: REQ_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: REQ_URL + value: http://localhost:3000/api/admin/provisioning/datasources/reload + - name: REQ_METHOD + value: POST + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: sc-datasources-volume + mountPath: "/etc/grafana/provisioning/datasources" + - name: grafana + image: "docker.io/grafana/grafana:10.1.1" + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: "/etc/grafana/grafana.ini" + subPath: grafana.ini + - name: storage + mountPath: "/var/lib/grafana" + - name: sc-dashboard-volume + mountPath: "/tmp/dashboards" + - name: sc-dashboard-provider + mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" + subPath: provider.yaml + - name: sc-datasources-volume + mountPath: "/etc/grafana/provisioning/datasources" + ports: + - name: grafana + containerPort: 3000 + protocol: TCP + - name: gossip-tcp + containerPort: 9094 + protocol: TCP + - name: gossip-udp + containerPort: 9094 + protocol: UDP + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: GF_SECURITY_ADMIN_USER + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: GF_SECURITY_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: GF_PATHS_DATA + value: /var/lib/grafana/ + - name: GF_PATHS_LOGS + value: /var/log/grafana + - name: GF_PATHS_PLUGINS + value: /var/lib/grafana/plugins + - name: GF_PATHS_PROVISIONING + value: /etc/grafana/provisioning + envFrom: + - secretRef: + name: release-name-influxdb-auth + livenessProbe: + failureThreshold: 10 + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 60 + timeoutSeconds: 30 + readinessProbe: + httpGet: + path: /api/health + port: 3000 + volumes: + - name: config + configMap: + name: release-name-grafana + - name: storage + emptyDir: {} + - name: sc-dashboard-volume + emptyDir: + {} + - name: sc-dashboard-provider + configMap: + name: release-name-grafana-config-dashboards + - name: sc-datasources-volume + emptyDir: + {} +--- +# Source: nussknacker/charts/telegraf/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.34 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name + template: + metadata: + labels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name + annotations: + checksum/config: df84be45587603f5b138e123f4100cde265232e612750cd60c6fc5bfbcea9f35 + spec: + serviceAccountName: release-name-telegraf + containers: + - name: telegraf + image: "docker.io/library/telegraf:1.28-alpine" + imagePullPolicy: "IfNotPresent" + resources: + {} + args: + - --config-directory + - /etc/telegraf/telegraf.d + env: + - name: HOSTNAME + value: telegraf-polling-service + volumeMounts: + - name: config + mountPath: /etc/telegraf + - mountPath: /etc/telegraf/telegraf.d + name: telegraf-nussknacker + volumes: + - name: config + configMap: + name: release-name-telegraf + - configMap: + name: telegraf-nussknacker + name: telegraf-nussknacker +--- +# Source: nussknacker/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + template: + metadata: + annotations: + checksum/config: 1b7022c6d68275314b51adda70dfe570ed9aa620f5f416410b3a502f0fc672b8 + labels: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + spec: + imagePullSecrets: + - name: gitlab-registry + serviceAccountName: release-name-nussknacker + securityContext: + fsGroup: 1001 + containers: + - name: nussknacker + securityContext: + runAsUser: 1001 + image: "touk/nussknacker:staging-latest" + imagePullPolicy: Always + volumeMounts: + - name: config + mountPath: /etc/nussknacker + - name: logging-config + mountPath: /etc/logging + env: + - name: JDK_JAVA_OPTIONS + value: + - name: CONFIG_FILE + value: /etc/nussknacker/application.conf + - name: HELM_RELEASE_NAME + value: release-name + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: 'release-name-postgresql' + key: postgres-password + - name: INFLUXDB_PASSWORD + valueFrom: + secretKeyRef: + name: 'release-name-influxdb-auth' + key: influxdb-password + - name: INFLUXDB_USER + valueFrom: + secretKeyRef: + name: 'release-name-influxdb-auth' + key: influxdb-user + - name: NUSSKNACKER_LOG_LEVEL + value: DEBUG + ports: + - name: http + containerPort: 8080 + protocol: TCP + + livenessProbe: + httpGet: + path: / + port: http + periodSeconds: 5 + failureThreshold: 3 + timeoutSeconds: 5 + startupProbe: + httpGet: + path: / + port: http + periodSeconds: 3 + failureThreshold: 40 + timeoutSeconds: 5 + resources: + limits: + memory: 1Gi + requests: + memory: 512Mi + volumes: + - name: config + configMap: + name: release-name-nussknacker + - name: logging-config + configMap: + name: release-name-nussknacker-logging-conf + - name: storage + emptyDir: {} +--- +# Source: nussknacker/charts/flink/templates/jobmanager.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager + annotations: +spec: + replicas: 1 + podManagementPolicy: Parallel + selector: + matchLabels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager + serviceName: release-name-flink-jobmanager-headless + template: + metadata: + labels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager + annotations: + spec: + serviceAccountName: release-name-flink-jobmanager + securityContext: + {} + initContainers: + containers: + - name: jobmanager + image: "flink:1.16.0-scala_2.12-java11" + imagePullPolicy: IfNotPresent + workingDir: /opt/flink + command: + - "/bin/bash" + - "-c" + - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && cp $FLINK_HOME/conf/flink-conf.yaml.tpl $FLINK_HOME/conf/flink-conf.yaml && $FLINK_HOME/bin/jobmanager.sh start-foreground;" + env: + - name: JVM_ARGS + value: "-Djava.security.properties=/opt/flink/conf/security.properties" + - name: FLINK_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + ports: + - containerPort: 6124 + name: blob + - containerPort: 6123 + name: rpc + - containerPort: 8081 + name: ui + - containerPort: 9999 + name: metrics + readinessProbe: + tcpSocket: + port: 6123 + periodSeconds: 10 + initialDelaySeconds: 20 + livenessProbe: + tcpSocket: + port: 6124 + initialDelaySeconds: 10 + periodSeconds: 15 + volumeMounts: + - name: flink-config-volume + mountPath: /opt/flink/conf/flink-conf.yaml.tpl + subPath: flink-conf.yaml.tpl + - name: flink-config-volume + mountPath: /opt/flink/conf/log4j.properties + subPath: log4j.properties + - name: flink-config-volume + mountPath: /opt/flink/conf/log4j-console.properties + subPath: log4j.properties + - name: flink-config-volume + mountPath: /opt/flink/conf/security.properties + subPath: security.properties + resources: + {} + + volumes: + - name: flink-config-volume + configMap: + name: release-name-flink-config + items: + - key: flink-conf.yaml + path: flink-conf.yaml.tpl + - key: log4j.properties + path: log4j.properties + - key: security.properties + path: security.properties +--- +# Source: nussknacker/charts/influxdb/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + serviceName: "release-name-influxdb" + template: + metadata: + labels: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + spec: + serviceAccountName: release-name-influxdb + containers: + - name: release-name-influxdb + image: "influxdb:1.8.10" + imagePullPolicy: "IfNotPresent" + ports: + - name: api + containerPort: 8086 + - name: rpc + containerPort: 8088 + env: + - name: INFLUXDB_DB + value: nussknacker + - name: INFLUXDB_ADMIN_USER + valueFrom: + secretKeyRef: + name: release-name-influxdb-auth + key: influxdb-user + - name: INFLUXDB_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-influxdb-auth + key: influxdb-password + livenessProbe: + httpGet: + path: /ping + port: api + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /ping + port: api + scheme: HTTP + initialDelaySeconds: 5 + timeoutSeconds: 1 + volumeMounts: + - name: release-name-influxdb-data + mountPath: /var/lib/influxdb + - name: config + mountPath: /etc/influxdb + volumes: + - name: config + configMap: + name: release-name-influxdb + # Cannot use existing claim in enterprise mode + # Must use volume claim template in enterprise mode + volumeClaimTemplates: + - metadata: + name: release-name-influxdb-data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/kafka/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka + serviceName: release-name-kafka-headless + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka + annotations: + spec: + + hostNetwork: false + hostIPC: false + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + serviceAccountName: release-name-kafka + containers: + - name: kafka + image: docker.io/bitnami/kafka:3.4.1-debian-11-r0 + imagePullPolicy: "IfNotPresent" + securityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + command: + - /scripts/setup.sh + env: + - name: BITNAMI_DEBUG + value: "false" + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KAFKA_CFG_ZOOKEEPER_CONNECT + value: release-name-zookeeper:2181 + - name: KAFKA_INTER_BROKER_LISTENER_NAME + value: "INTERNAL" + - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP + value: "INTERNAL:PLAINTEXT,CLIENT:PLAINTEXT" + - name: KAFKA_CFG_LISTENERS + value: "INTERNAL://:9094,CLIENT://:9092" + - name: KAFKA_CFG_ADVERTISED_LISTENERS + value: "INTERNAL://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9094,CLIENT://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9092" + - name: ALLOW_PLAINTEXT_LISTENER + value: "yes" + - name: KAFKA_ZOOKEEPER_PROTOCOL + value: PLAINTEXT + - name: KAFKA_VOLUME_DIR + value: "/bitnami/kafka" + - name: KAFKA_LOG_DIR + value: "/opt/bitnami/kafka/logs" + - name: KAFKA_CFG_DELETE_TOPIC_ENABLE + value: "false" + - name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE + value: "true" + - name: KAFKA_HEAP_OPTS + value: "-Xmx1024m -Xms1024m" + - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MESSAGES + value: "10000" + - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MS + value: "1000" + - name: KAFKA_CFG_LOG_RETENTION_BYTES + value: "1073741824" + - name: KAFKA_CFG_LOG_RETENTION_CHECK_INTERVAL_MS + value: "300000" + - name: KAFKA_CFG_LOG_RETENTION_HOURS + value: "168" + - name: KAFKA_CFG_MESSAGE_MAX_BYTES + value: "1000012" + - name: KAFKA_CFG_LOG_SEGMENT_BYTES + value: "1073741824" + - name: KAFKA_CFG_LOG_DIRS + value: "/bitnami/kafka/data" + - name: KAFKA_CFG_DEFAULT_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR + value: "1" + - name: KAFKA_CFG_NUM_IO_THREADS + value: "8" + - name: KAFKA_CFG_NUM_NETWORK_THREADS + value: "3" + - name: KAFKA_CFG_NUM_PARTITIONS + value: "1" + - name: KAFKA_CFG_NUM_RECOVERY_THREADS_PER_DATA_DIR + value: "1" + - name: KAFKA_CFG_SOCKET_RECEIVE_BUFFER_BYTES + value: "102400" + - name: KAFKA_CFG_SOCKET_REQUEST_MAX_BYTES + value: "104857600" + - name: KAFKA_CFG_SOCKET_SEND_BUFFER_BYTES + value: "102400" + - name: KAFKA_CFG_ZOOKEEPER_CONNECTION_TIMEOUT_MS + value: "6000" + - name: KAFKA_CFG_AUTHORIZER_CLASS_NAME + value: "" + - name: KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND + value: "true" + - name: KAFKA_CFG_SUPER_USERS + value: "User:admin" + - name: KAFKA_ENABLE_KRAFT + value: "false" + ports: + - name: kafka-client + containerPort: 9092 + - name: kafka-internal + containerPort: 9094 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + tcpSocket: + port: kafka-client + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + tcpSocket: + port: kafka-client + resources: + limits: {} + requests: {} + volumeMounts: + - name: data + mountPath: /bitnami/kafka + - name: logs + mountPath: /opt/bitnami/kafka/logs + - name: scripts + mountPath: /scripts/setup.sh + subPath: setup.sh + volumes: + - name: scripts + configMap: + name: release-name-kafka-scripts + defaultMode: 0755 + - name: logs + emptyDir: {} + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/postgresql/templates/primary/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary +spec: + replicas: 1 + serviceName: release-name-postgresql-hl + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary + template: + metadata: + name: release-name-postgresql + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary + spec: + serviceAccountName: default + + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + hostNetwork: false + hostIPC: false + initContainers: + - name: init-chmod-data + image: docker.io/bitnami/bitnami-shell:11-debian-11-r81 + imagePullPolicy: "IfNotPresent" + resources: + limits: {} + requests: {} + command: + - /bin/sh + - -ec + - | + chown 1001:1001 /bitnami/postgresql + mkdir -p /bitnami/postgresql/data + chmod 700 /bitnami/postgresql/data + find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \ + xargs -r chown -R 1001:1001 + chmod -R 777 /dev/shm + securityContext: + runAsUser: 0 + volumeMounts: + - name: data + mountPath: /bitnami/postgresql + - name: dshm + mountPath: /dev/shm + containers: + - name: postgresql + image: docker.io/bitnami/postgresql:15.2.0-debian-11-r0 + imagePullPolicy: "IfNotPresent" + securityContext: + runAsUser: 1001 + env: + - name: BITNAMI_DEBUG + value: "false" + - name: POSTGRESQL_PORT_NUMBER + value: "5432" + - name: POSTGRESQL_VOLUME_DIR + value: "/bitnami/postgresql" + - name: PGDATA + value: "/bitnami/postgresql/data" + # Authentication + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-postgresql + key: postgres-password + # Replication + # Initdb + # Standby + # LDAP + - name: POSTGRESQL_ENABLE_LDAP + value: "no" + # TLS + - name: POSTGRESQL_ENABLE_TLS + value: "no" + # Audit + - name: POSTGRESQL_LOG_HOSTNAME + value: "false" + - name: POSTGRESQL_LOG_CONNECTIONS + value: "false" + - name: POSTGRESQL_LOG_DISCONNECTIONS + value: "false" + - name: POSTGRESQL_PGAUDIT_LOG_CATALOG + value: "off" + # Others + - name: POSTGRESQL_CLIENT_MIN_MESSAGES + value: "error" + - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES + value: "pgaudit" + ports: + - name: tcp-postgresql + containerPort: 5432 + livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: + - /bin/sh + - -c + - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: + - /bin/sh + - -c + - -e + + - | + exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] + resources: + limits: {} + requests: + cpu: 250m + memory: 256Mi + volumeMounts: + - name: dshm + mountPath: /dev/shm + - name: data + mountPath: /bitnami/postgresql + volumes: + - name: dshm + emptyDir: + medium: Memory + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/zookeeper/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-zookeeper + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper + role: zookeeper +spec: + replicas: 1 + podManagementPolicy: Parallel + selector: + matchLabels: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper + serviceName: release-name-zookeeper-headless + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + template: + metadata: + annotations: + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper + spec: + serviceAccountName: default + + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + initContainers: + containers: + - name: zookeeper + image: docker.io/bitnami/zookeeper:3.8.0-debian-11-r74 + imagePullPolicy: "IfNotPresent" + securityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + command: + - /scripts/setup.sh + resources: + limits: {} + requests: + cpu: 250m + memory: 256Mi + env: + - name: BITNAMI_DEBUG + value: "false" + - name: ZOO_DATA_LOG_DIR + value: "" + - name: ZOO_PORT_NUMBER + value: "2181" + - name: ZOO_TICK_TIME + value: "2000" + - name: ZOO_INIT_LIMIT + value: "10" + - name: ZOO_SYNC_LIMIT + value: "5" + - name: ZOO_PRE_ALLOC_SIZE + value: "65536" + - name: ZOO_SNAPCOUNT + value: "100000" + - name: ZOO_MAX_CLIENT_CNXNS + value: "60" + - name: ZOO_4LW_COMMANDS_WHITELIST + value: "srvr, mntr, ruok" + - name: ZOO_LISTEN_ALLIPS_ENABLED + value: "no" + - name: ZOO_AUTOPURGE_INTERVAL + value: "0" + - name: ZOO_AUTOPURGE_RETAIN_COUNT + value: "3" + - name: ZOO_MAX_SESSION_TIMEOUT + value: "40000" + - name: ZOO_SERVERS + value: release-name-zookeeper-0.release-name-zookeeper-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:2888:3888::1 + - name: ZOO_ENABLE_AUTH + value: "no" + - name: ZOO_ENABLE_QUORUM_AUTH + value: "no" + - name: ZOO_HEAP_SIZE + value: "1024" + - name: ZOO_LOG_LEVEL + value: "ERROR" + - name: ALLOW_ANONYMOUS_LOGIN + value: "yes" + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + ports: + - name: client + containerPort: 2181 + - name: follower + containerPort: 2888 + - name: election + containerPort: 3888 + livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] + volumeMounts: + - name: scripts + mountPath: /scripts/setup.sh + subPath: setup.sh + - name: data + mountPath: /bitnami/zookeeper + volumes: + - name: scripts + configMap: + name: release-name-zookeeper-scripts + defaultMode: 0755 + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/templates/ingress.yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + rules: + - http: + paths: + - path: /grafana + pathType: Prefix + backend: + service: + name: release-name-grafana + port: + number: 80 + - path: / + pathType: Prefix + backend: + service: + name: release-name-nussknacker + port: + number: 80 +--- +# Source: nussknacker/templates/extra-deploy.yaml +# Pattern from bitnami +--- +# Source: nussknacker/charts/grafana/templates/tests/test-serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana-test + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" +--- +# Source: nussknacker/charts/grafana/templates/tests/test-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-grafana-test + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm +data: + run.sh: |- + @test "Test Health" { + url="http://release-name-grafana/api/health" + + code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}') + [ "$code" == "200" ] + } +--- +# Source: nussknacker/charts/apicurio-registry/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "release-name-apicurio-registry-test-connection" + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['release-name-apicurio-registry:80'] + restartPolicy: Never +--- +# Source: nussknacker/charts/grafana/templates/tests/test.yaml +apiVersion: v1 +kind: Pod +metadata: + name: release-name-grafana-test + labels: + helm.sh/chart: grafana-6.59.4 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.1" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +spec: + serviceAccountName: release-name-grafana-test + containers: + - name: release-name-test + image: "docker.io/bats/bats:v1.4.1" + imagePullPolicy: "IfNotPresent" + command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"] + volumeMounts: + - mountPath: /tests + name: tests + readOnly: true + volumes: + - name: tests + configMap: + name: release-name-grafana-test + restartPolicy: Never +--- +# Source: nussknacker/templates/tests/test-job.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: "release-name-nussknacker-test-job" + annotations: + "helm.sh/hook": test +spec: + activeDeadlineSeconds: 600 + backoffLimit: 0 + template: + spec: + imagePullSecrets: + - name: gitlab-registry + shareProcessNamespace: true + containers: + - name: test-job + image: touk/kafka-bats + imagePullPolicy: Always + command: + - /main-wrapper.sh + - /usr/local/bin/bats + args: + - -t + - //suites/kafka-only.bats + env: + - name: NUSSKNACKER_URL + value: "http://release-name-nussknacker:80" + - name: AUTHORIZATION + value: "Basic YWRtaW46YWRtaW4=" + - name: KAFKA_NAMESPACE + value: release-name + - name: KAFKA_BOOTSTRAP_SERVER + value: "release-name-kafka:9092" + - name: SCENARIO_TYPE + value: "StreamMetaData" + - name: SCHEMA_REGISTRY_URL + value: "http://release-name-apicurio-registry:80/apis/ccompat/v6/" + volumeMounts: + - name: suites + mountPath: /suites + - name: scripts + mountPath: /main-wrapper.sh + subPath: main-wrapper.sh + - name: pids + mountPath: /var/run/sidecars + restartPolicy: Never + volumes: + - name: pids + emptyDir: {} + - name: suites + configMap: + name: release-name-nussknacker-test-suites + - name: scripts + configMap: + name: release-name-nussknacker-test-scripts + defaultMode: 0755 From 70cc7c582a5fb592852354dc2e8607e4bc8cf321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:21:02 +0200 Subject: [PATCH 15/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 2d8976b9..be04ce50 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -35,7 +35,7 @@ defaults: jobs: build: name: build - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 outputs: version: ${{ steps.setVersion.outputs.version }} steps: From 642293f79795d7af0e69ea7fa5687c7eee86d9ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:22:34 +0200 Subject: [PATCH 16/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- out | 11397 -------------------- 2 files changed, 1 insertion(+), 11398 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index be04ce50..0948f237 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -35,7 +35,7 @@ defaults: jobs: build: name: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 outputs: version: ${{ steps.setVersion.outputs.version }} steps: diff --git a/out b/out index 0de9edab..e69de29b 100644 --- a/out +++ b/out @@ -1,11397 +0,0 @@ ---- -# Source: nussknacker/charts/telegraf/templates/pdb.yaml -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.34 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - minAvailable: 1 - selector: - matchLabels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/apicurio-registry/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/grafana/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c ---- -# Source: nussknacker/charts/influxdb/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/kafka/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka - annotations: -automountServiceAccountToken: true ---- -# Source: nussknacker/charts/telegraf/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.34 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-nussknacker - labels: - - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/grafana/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -type: Opaque -data: - admin-user: "YWRtaW4=" - admin-password: "YWRtaW4=" - ldap-toml: "" ---- -# Source: nussknacker/charts/influxdb/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-influxdb-auth - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -data: - influxdb-password: "Y2hhbmdlbWU=" - influxdb-user: "bnVzc2tuYWNrZXI=" ---- -# Source: nussknacker/charts/postgresql/templates/secrets.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm -type: Opaque -data: - postgres-password: "QXk5SGZocEYxWA==" - # We don't auto-generate LDAP password when it's not provided as we do for other passwords ---- -# Source: nussknacker/charts/flink/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-flink-config - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm -data: - flink-conf.yaml: |+ - taskmanager.numberOfTaskSlots: 4 - blob.server.port: 6124 - taskmanager.rpc.port: 6122 - jobmanager.heap.size: 1g - taskmanager.memory.process.size: 1g - metrics.reporters: prom - metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter - metrics.reporter.prom.port: 9999 - jobmanager.rpc.address: release-name-flink-jobmanager - jobmanager.rpc.port: 6123 - metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory - flink-conf-taskmanager.yaml: |+ - taskmanager.numberOfTaskSlots: 4 - blob.server.port: 6124 - taskmanager.rpc.port: 6122 - jobmanager.heap.size: 1g - taskmanager.memory.process.size: 1g - metrics.reporters: prom - metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter - metrics.reporter.prom.port: 9999 - jobmanager.rpc.address: release-name-flink-jobmanager - jobmanager.rpc.port: 6123 - metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory - log4j.properties: |+ - # This affects logging for both user code and Flink - rootLogger.level = INFO - rootLogger.appenderRef.console.ref = ConsoleAppender - rootLogger.appenderRef.rolling.ref = RollingFileAppender - - # Uncomment this if you want to _only_ change Flink's logging - #logger.flink.name = org.apache.flink - #logger.flink.level = INFO - - # The following lines keep the log level of common libraries/connectors on - # log level INFO. The root logger does not override this. You have to manually - # change the log levels here. - logger.akka.name = akka - logger.akka.level = INFO - logger.kafka.name= org.apache.kafka - logger.kafka.level = INFO - logger.hadoop.name = org.apache.hadoop - logger.hadoop.level = INFO - logger.zookeeper.name = org.apache.zookeeper - logger.zookeeper.level = INFO - - # Log all infos to the console - appender.console.name = ConsoleAppender - appender.console.type = CONSOLE - appender.console.layout.type = PatternLayout - appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n - - # Log all infos in the given rolling file - appender.rolling.name = RollingFileAppender - appender.rolling.type = RollingFile - appender.rolling.append = false - appender.rolling.fileName = ${sys:log.file} - appender.rolling.filePattern = ${sys:log.file}.%i - appender.rolling.layout.type = PatternLayout - appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n - appender.rolling.policies.type = Policies - appender.rolling.policies.size.type = SizeBasedTriggeringPolicy - appender.rolling.policies.size.size=100MB - appender.rolling.strategy.type = DefaultRolloverStrategy - appender.rolling.strategy.max = 10 - - # Suppress the irrelevant (wrong) warnings from the Netty channel handler - logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline - logger.netty.level = OFF - - - security.properties: - # The java-level namelookup cache policy for successful lookups - networkaddress.cache.ttl=30 ---- -# Source: nussknacker/charts/grafana/templates/configmap-dashboard-provider.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana-config-dashboards - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -data: - provider.yaml: |- - apiVersion: 1 - providers: - - name: 'sidecarProvider' - orgId: 1 - folder: '' - type: file - disableDeletion: false - allowUiUpdates: false - updateIntervalSeconds: 30 - options: - foldersFromFilesStructure: false - path: /tmp/dashboards ---- -# Source: nussknacker/charts/grafana/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -data: - grafana.ini: | - [analytics] - check_for_updates = true - [auth.anonymous] - enabled = true - [grafana_net] - url = https://grafana.net - [log] - mode = console - [paths] - data = /var/lib/grafana/ - logs = /var/log/grafana - plugins = /var/lib/grafana/plugins - provisioning = /etc/grafana/provisioning - [security] - allow_embedding = true - [server] - domain = '' - root_url = %(protocol)s://%(domain)s/grafana - serve_from_sub_path = true ---- -# Source: nussknacker/charts/influxdb/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -data: - influxdb.conf: |+ - reporting-disabled = false - bind-address = ":8088" - - [meta] - dir = "/var/lib/influxdb/meta" - - [data] - dir = "/var/lib/influxdb/data" - wal-dir = "/var/lib/influxdb/wal" - - [coordinator] - - [retention] - - [shard-precreation] - - [monitor] - - [subscriber] - - [http] - auth-enabled = true - bind-address = ":8086" - enabled = true - flux-enabled = true - - # TODO: allow multiple graphite listeners - - [[graphite]] - - # TODO: allow multiple collectd listeners with templates - - [[collectd]] - - # TODO: allow multiple opentsdb listeners with templates - - [[opentsdb]] - - # TODO: allow multiple udp listeners with templates - - [[udp]] - - [continuous_queries] - - [logging] ---- -# Source: nussknacker/charts/kafka/templates/scripts-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-kafka-scripts - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm -data: - setup.sh: |- - #!/bin/bash - - ID="${MY_POD_NAME#"release-name-kafka-"}" - # If process.roles is not set at all, it is assumed to be in ZooKeeper mode. - # https://kafka.apache.org/documentation/#kraft_role - - if [[ -f "/bitnami/kafka/data/meta.properties" ]]; then - if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then - export KAFKA_CFG_BROKER_ID="$(grep "broker.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" - else - export KAFKA_CFG_NODE_ID="$(grep "node.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" - fi - else - if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then - export KAFKA_CFG_BROKER_ID="$((ID + 0))" - else - export KAFKA_CFG_NODE_ID="$((ID + 0))" - fi - fi - - if [[ $KAFKA_CFG_PROCESS_ROLES == *"controller"* && -z $KAFKA_CFG_CONTROLLER_QUORUM_VOTERS ]]; then - node_id=0 - pod_id=0 - while : - do - VOTERS="${VOTERS}$node_id@release-name-kafka-$pod_id.release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9093" - node_id=$(( $node_id + 1 )) - pod_id=$(( $pod_id + 1 )) - if [[ $pod_id -ge 1 ]]; then - break - else - VOTERS="$VOTERS," - fi - done - export KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=$VOTERS - fi - - # Configure zookeeper client - - exec /entrypoint.sh /run.sh ---- -# Source: nussknacker/charts/telegraf/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.34 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -data: - telegraf.conf: |+ - - [agent] - collection_jitter = "0s" - debug = false - flush_interval = "10s" - flush_jitter = "0s" - hostname = "$HOSTNAME" - interval = "10s" - logfile = "" - metric_batch_size = 1000 - metric_buffer_limit = 10000 - omit_hostname = false - precision = "" - quiet = false - round_interval = true - [[processors.enum]] - [[processors.enum.mapping]] - dest = "status_code" - field = "status" - [processors.enum.mapping.value_mappings] - critical = 3 - healthy = 1 - problem = 2 - - - - [[inputs.statsd]] - allowed_pending_messages = 10000 - metric_separator = "_" - percentile_limit = 1000 - percentiles = [ - 50.0, - 95.0, - 99.0 - ] - service_address = ":8125" - - [[inputs.internal]] - collect_memstats = false ---- -# Source: nussknacker/charts/zookeeper/templates/scripts-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-zookeeper-scripts - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -data: - init-certs.sh: |- - #!/bin/bash - setup.sh: |- - #!/bin/bash - - # Execute entrypoint as usual after obtaining ZOO_SERVER_ID - # check ZOO_SERVER_ID in persistent volume via myid - # if not present, set based on POD hostname - if [[ -f "/bitnami/zookeeper/data/myid" ]]; then - export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)" - else - HOSTNAME="$(hostname -s)" - if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then - ORD=${BASH_REMATCH[2]} - export ZOO_SERVER_ID="$((ORD + 1 ))" - else - echo "Failed to get index from hostname $HOST" - exit 1 - fi - fi - exec /entrypoint.sh /run.sh ---- -# Source: nussknacker/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: - application.conf: |- - db: {"driver":"org.postgresql.Driver","schema":"public","url":"jdbc:postgresql://release-name-postgresql/","user":"postgres"} - db.password: ${?DB_PASSWORD} - - scenarioTypes { - "default": { - deploymentConfig: { - type: "flinkStreaming" - restUrl: "http://release-name-flink-jobmanager-rest:8081" - queryableStateProxyUrl: "release-name-flink-taskmanager:6122" - } {"jobManagerTimeout":"1m"} - - modelConfig: { - classPath: ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] - components.kafka.config { - kafkaProperties { - "bootstrap.servers": "release-name-kafka:9092" - "schema.registry.url": "http://release-name-apicurio-registry:80/apis/ccompat/v6/" - } - } - rocksDB { - enable: true - } - }{"components":{"openAPI":{"url":"https://app.swaggerhub.com/apiproxy/registry/TKJ/CurrencyConverter/FINAL"}},"namespace":"release-name"} - } - } - countsSettings: { - "user": ${INFLUXDB_USER} - "password": ${INFLUXDB_PASSWORD} - "influxUrl": "http://release-name-influxdb:8086/query" - "database": "nussknacker" - metricsConfig: { "countField": "gauge"}} - metricsSettings: { - url: "/grafana/d/$dashboard?theme=dark&var-scenarioName=$scenarioName&var-env="${environment} - defaultDashboard: "nussknacker-scenario" - } - - tabs: ${tabs}[] - - usageStatisticsReports { - enabled:false - fingerprint: "" - source: "helmchart" - } - categoriesConfig: {"Default":"default"} - environment: "default" - environmentAlert: {"color":"indicator-green","content":"default"} ---- -# Source: nussknacker/templates/grafana-dashboard.yml -apiVersion: v1 -kind: ConfigMap -metadata: - name: "release-name-nussknacker-grafana-dashboard" - labels: - grafana_dashboard: "nussknacker" -data: - dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": 1, - "iteration": 1631534794448, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "source.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"source_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Source throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "end.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Events that passed whole scenario /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 5, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "dead_end.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"dead_end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Rejected events /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "error.instantRateByNode.count.count", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"error_instantRateByNode_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 15 - }, - "hiddenSeries": false, - "id": 9, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - } - ], - "measurement": "records_lag_max", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"gauge\") FROM \"records_lag_max\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(none)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Max lag among Kafka source partitions (events)", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 8, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT min(\"min\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "min" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - minimum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 22 - }, - "hiddenSeries": false, - "id": 6, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"0.5\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 12, - "y": 22 - }, - "hiddenSeries": false, - "id": 7, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "max" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - maximum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 22 - }, - "hiddenSeries": false, - "id": 13, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_minimalDelay", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT min(\"gauge\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Time from latest event", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_OK_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.5\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_OK_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.99\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "action" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "serviceInstant.OK", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_OK_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_FAIL_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.5\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_FAIL_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.99\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "action" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "serviceInstant.FAIL", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_FAIL_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "External services", - "type": "row" - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 22, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 45 - }, - "hiddenSeries": false, - "id": 19, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.cur-size-all-mem-tables/", - "orderByTime": "ASC", - "policy": "default", - "query": "\nSELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.cur-size-all-mem-tables/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB cur-size-all-mem-tables", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 45 - }, - "hiddenSeries": false, - "id": 39, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.cur-size-all-mem-tables/", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-live-data-size/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB estimate-live-data-size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates on number of keys in RocksDB state. Aggregates (e.g. session windows) can have many internal states. Please remember that this is only estimate, based on internal RocksDB metrics", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 45 - }, - "hiddenSeries": false, - "id": 20, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.estimate-num-keys/", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-num-keys/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB estimate-num-keys", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "RocksDB state", - "type": "row" - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 31 - }, - "id": 28, - "panels": [], - "title": "Scenario health", - "type": "row" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 32 - }, - "id": 30, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_uptime", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Uptime", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 1 - }, - { - "color": "#d44a3a", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 32, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_fullRestarts", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Number of restarts", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 37 - }, - "id": 37, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_lastCheckpointDuration", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Last checkpoint duration", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 37 - }, - "id": 38, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_lastCheckpointSize", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Last checkpoint size", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "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": 1 - }, - { - "color": "#299c46", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 12, - "y": 37 - }, - "id": 35, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_numberOfCompletedCheckpoints", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Completed checkpoints", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 1 - }, - { - "color": "#d44a3a", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 18, - "y": 37 - }, - "id": 34, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_numberOfFailedCheckpoints", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Failed checkpoints", - "type": "stat" - } - ], - "refresh": "30s", - "schemaVersion": 30, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "allValue": null, - "current": { - "selected": false, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "local", - "value": "local" - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "description": null, - "error": null, - "hide": 0, - "label": null, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Scenario", - "uid": "nussknacker-scenario", - "version": 4 - } - nussknacker-lite-scenario.json: | - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": 1, - "iteration": 1638475135627, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"source.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Source throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "hide": false, - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Events that passed whole scenario /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 5, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Rejected events /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 15 - }, - "hiddenSeries": false, - "id": 9, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_taskId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "taskId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - } - ], - "measurement": "records-lag-max", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Max lag among Kafka source partitions (events)", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 8, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "min" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - minimum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 22 - }, - "hiddenSeries": false, - "id": 6, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 12, - "y": 22 - }, - "hiddenSeries": false, - "id": 7, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "max" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - maximum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 22 - }, - "hiddenSeries": false, - "id": 13, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.minimalDelay", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Time from latest event", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "External services", - "type": "row" - } - ], - "refresh": "30s", - "schemaVersion": 30, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "allValue": null, - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "local", - "value": "local" - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "description": null, - "error": null, - "hide": 0, - "label": null, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Lite scenario", - "uid": "nussknacker-lite-scenario", - "version": 101 - } - nussknacker-request-response-scenario.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": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": "influx", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "targets": [ - { - "datasource": "influx", - "refId": "A" - } - ], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"invocation.success.histogram\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "hide": false, - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - }, - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "hide": false, - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Outputs/s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 27, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 15 - }, - "hiddenSeries": false, - "id": 28, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - median - 99th percentile", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 15 - }, - "hiddenSeries": false, - "id": 31, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - max", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 29, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 22 - }, - "hiddenSeries": false, - "id": 30, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - 99th percentile", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 22 - }, - "hiddenSeries": false, - "id": 32, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - max", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": "influx", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [], - "targets": [ - { - "datasource": "influx", - "refId": "A" - } - ], - "title": "External services", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "datasource": "influx", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": "30s", - "schemaVersion": 36, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "current": { - "selected": true, - "text": [ - "test proxy process for rr" - ], - "value": [ - "test proxy process for rr" - ] - }, - "datasource": "influx", - "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", - "hide": 0, - "includeAll": true, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "default", - "value": "default" - }, - "datasource": "influx", - "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "RequestResponse scenario", - "uid": "nussknacker-request-response-scenario", - "version": 1, - "weekStart": "" - } ---- -# Source: nussknacker/templates/grafana-datasource.yml -apiVersion: v1 -kind: ConfigMap -metadata: - name: "release-name-influx-grafana-datasource" - labels: - grafana_datasource: "influx" -data: - datasource.yaml: |- - apiVersion: 1 - datasources: - - name: influx - type: influxdb - access: proxy - orgId: 1 - url: http://release-name-influxdb:8086 - database: nussknacker - basicAuth: true - isDefault: true - version: 1 - editable: false - basicAuthUser: ${influxdb-user} - secureJsonData: - basicAuthPassword: ${influxdb-password} ---- -# Source: nussknacker/templates/logging-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-logging-conf - labels: - nussknacker.io/resourceType: "logging-conf" - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: ---- -# Source: nussknacker/templates/telegraf-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: telegraf-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: - nussknacker.conf: |- - # Flink reporters for Prometheus or InfluxDB are somewhat limited: - # - no possibility of adding own tags - # - no possitility of removing Flink internal tags (like job_id, task_id, etc.) - # - metric name has all tags encoded inside - # NOTE: Prometheus has different field names than e.g. InfluxDB reporter, (count -> gauge, different percentile names, etc.) - - [global_tags] - env = "default" - - #FIXME: handle case where Flink is disabled but telegraf *is* enabled - [[inputs.prometheus]] - urls=[ - "http://release-name-flink-jobmanager-headless:9999/metrics", - "http://release-name-flink-taskmanager:9999/metrics" - ] - - [[processors.rename]] - - [[processors.rename.replace]] - tag = "job_name" - dest = "process" - - [[processors.rename.replace]] - tag = "subtask_index" - dest = "slot" - - #TODO: this is test model specific, figure out way to remove it... - [[processors.rename.replace]] - tag = "originalProcessName" - dest = "process" - - #We remove tag names from measurement names to have more stable measurement names - [[processors.strings]] - [[processors.strings.replace]] - measurement = "*" - old = "taskmanager_job_task_operator_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "flink_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "nodeId_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "serviceName_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "namespace_" - new = "" - [[processors.strings.replace]] - measurement = "*" - old = "originalProcessName_" - new = "" - - [[outputs.influxdb]] - urls = ["http://release-name-influxdb:8086"] - skip_database_creation = true - database = "nussknacker" ---- -# Source: nussknacker/templates/tests/test-scripts.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-test-scripts -data: - main-wrapper.sh: |- - #!/bin/sh - ($*) & - MAIN_PID=$! - echo $MAIN_PID > /var/run/sidecars/main.pid - wait $MAIN_PID - sidecar-wrapper.sh: |- - #!/bin/sh - ($*) & - MAIN_PID=$(until cat /var/run/sidecars/main.pid; do sleep 1; done) - tail --pid $MAIN_PID -f /dev/null ---- -# Source: nussknacker/templates/tests/test-suites.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-test-suites -data: - kafka-only.bats: | - #!/usr/bin/env bats - - : "${NUSSKNACKER_URL:?required environment value not set}" - : "${AUTHORIZATION:?required environment value not set}" - : "${KAFKA_BOOTSTRAP_SERVER:?required environment value not set}" - : "${SCHEMA_REGISTRY_URL:?required environment value not set}" - : "${SCENARIO_TYPE:?required environment value not set}" - - function curl() { - /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" - } - export -f curl - - # timeout command has different syntax in Ubuntu and BusyBox - if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then - function timeout() { - $(which timeout) -t "$@" - } - fi - - function given_a_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local SCHEMA="${2:?required}" - - kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --describe --topic "${TOPIC_FULL_NAME}" || - kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --create --topic "${TOPIC_FULL_NAME}" \ - --partitions 10 --replication-factor 1 - - kafka-consumer-groups --bootstrap-server ${KAFKA_BOOTSTRAP_SERVER} \ - --topic "${TOPIC_FULL_NAME}" \ - --group helm_test --reset-offsets --to-latest --execute - - cat << _END | curl -d @- "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions" - { "schema": "$(echo $SCHEMA | sed -e 's/"/\\"/g')" } - _END - } - - function given_a_proxy_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_OBJECT="${2:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_IMPORT_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') - - curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default - echo ${PROCESS_OBJECT} | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- - - [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) == "RUNNING" ]] && curl -X POST ${PROCESS_CANCEL_URL} - curl -X POST ${PROCESS_DEPLOY_URL} - #on smaller ci envs deployment may last some time... - timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"RUNNING\" ]]; do sleep 1 && echo -n .; done;" || true - echo "Checking after waiting for status..." - local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) - echo "Status is: $STATUS_RESPONSE" - [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] - } - - function when_a_message_has_been_posted_on_the_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local ID=${2:?required} - - local SCHEMA_ID=$(curl "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions/latest" | jq '.id') - - cat << _END | kafka-avro-console-producer \ - --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ - --topic "${TOPIC_FULL_NAME}" \ - --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ - --property "value.schema.id=${SCHEMA_ID}" - { "id": "$ID", "content": "a content", "tags": [] } - _END - } - - function then_the_message_can_be_consumed_from_the_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local ID=${2:?required} - - kafka-avro-console-consumer \ - --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ - --topic "${TOPIC_FULL_NAME}" \ - --group helm_test \ - --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ - --timeout-ms 60000 \ - | (while : ; do - read MSG; - echo $MSG - if [[ -z $MSG ]]; then exit 1; fi; - if echo $MSG | jq -e ".id == \"${ID}\""; then break; fi; - done) - } - - function setup() { - export GROUP=testgroup - export INPUT_TOPIC=inputKafkaOnly - export OUTPUT_TOPIC=outputKafkaOnly - local SCHEMA=$(cat << _END - { - "namespace": "\${GROUP}", - "name": "\${TOPIC}", - "type": "record", - "doc": "This is a sample schema definition", - "fields": [ - { "name": "id", "type": "string", "doc": "Message id" }, - { "name": "content", "type": "string", "doc": "Message content" }, - { "name": "tags", "type": { "type": "array", "items": "string" }, "doc": "Message tags" } - ] - } - _END - ) - local -x PROCESS_NAME="test proxy process for kafka only" - - given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${INPUT_TOPIC} envsubst)" - given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${OUTPUT_TOPIC} envsubst)" - given_a_proxy_process "${PROCESS_NAME}" "$(cat ${BATS_TEST_DIRNAME%/}/testprocess.json | envsubst)" - } - - @test "message should pass through the kafka only proxy process" { - local ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) - when_a_message_has_been_posted_on_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" ${ID} - then_the_message_can_be_consumed_from_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" ${ID} - } - rr-only.bats: | - #!/usr/bin/env bats - - : "${NUSSKNACKER_URL:?required environment value not set}" - : "${AUTHORIZATION:?required environment value not set}" - : "${SCENARIO_TYPE:?required environment value not set}" - - function curl() { - /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" - } - export -f curl - - # timeout command has different syntax in Ubuntu and BusyBox - if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then - function timeout() { - $(which timeout) -t "$@" - } - fi - - function cancel_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') - curl -X POST ${PROCESS_CANCEL_URL} - } - - function wait_for_status() { - local PROCESS_NAME="${1:?required}" - local STATUS="${2:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"$STATUS\" ]]; do sleep 1 && echo -n .; done;" || true - } - - function given_a_proxy_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_IMPORT_URL=$( echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') - - curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default - export PROCESS_NAME GROUP INPUT_TOPIC OUTPUT_TOPIC - cat ${BATS_TEST_DIRNAME}/rr-testprocess.json | envsubst | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- - - [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) = RUNNING ]] && cancel_process "$PROCESS_NAME" - curl -X POST ${PROCESS_DEPLOY_URL} - #on smaller ci envs deployment may last some time... - wait_for_status "$PROCESS_NAME" "RUNNING" - echo "Checking after waiting for status..." - local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) - echo "Status is: $STATUS_RESPONSE" - [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] - } - - function setup() { - given_a_proxy_process "test proxy process for rr" - } - - @test "message should pass through the rr proxy process" { - local PROCESS_NAME="test proxy process for rr" - INPUT_MESSAGE='{"productId":10}' - EXPECTED_OUTPUT_MESSAGE='{"productId":20}' - - if [[ $(curl $SCENARIO_URL -d $INPUT_MESSAGE) == $EXPECTED_OUTPUT_MESSAGE ]]; then echo ok; else exit 1; fi - - cancel_process "$PROCESS_NAME" - wait_for_status "$PROCESS_NAME" "CANCELED" - } - rr-testprocess.json: "{\n \"metaData\" : {\n \"id\" : \"test-scenario-for-rr-only\",\n - \ \"typeSpecificData\" : {\n \"slug\" : \"test-scenario-for-rr-only\",\n - \ \"type\" : \"RequestResponseMetaData\"\n },\n \"additionalFields\" : - {\n \"description\" : null,\n \"properties\" : {\n \"inputSchema\" - : \"{\\n \\\"title\\\": \\\"Product\\\",\\n \\\"description\\\": \\\"A product - from Acme's catalog\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": - {\\n \\\"productId\\\": {\\n \\\"description\\\": \\\"The unique identifier - for a product\\\",\\n \\\"type\\\": \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": - [ \\\"productId\\\" ]\\n}\",\n \"outputSchema\" : \"{\\n \\\"title\\\": - \\\"Product\\\",\\n \\\"description\\\": \\\"A product from Acme's catalog\\\",\\n - \ \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"productId\\\": - {\\n \\\"description\\\": \\\"The unique identifier for a product\\\",\\n \\\"type\\\": - \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": [ \\\"productId\\\" ]\\n}\"\n - \ }\n },\n \"subprocessVersions\" : {\n \n }\n },\n \"nodes\" - : [\n {\n \"id\" : \"request\",\n \"ref\" : {\n \"typ\" : \"request\",\n - \ \"parameters\" : [\n ]\n },\n \"additionalFields\" : {\n - \ \"description\" : null,\n \"layoutData\" : {\n \"x\" : 0,\n - \ \"y\" : 0\n }\n },\n \"type\" : \"Source\"\n },\n - \ {\n \"id\" : \"response\",\n \"ref\" : {\n \"typ\" : \"response\",\n - \ \"parameters\" : [\n {\n \"name\" : \"productId\",\n - \ \"expression\" : {\n \"language\" : \"spel\",\n \"expression\" - : \"#input.productId * 2\"\n }\n }\n ]\n },\n \"endResult\" - : null,\n \"isDisabled\" : null,\n \"additionalFields\" : {\n \"description\" - : null,\n \"layoutData\" : {\n \"x\" : 1,\n \"y\" : 180\n - \ }\n },\n \"type\" : \"Sink\"\n }\n ],\n \"additionalBranches\" - : [\n ]\n}\n" - testprocess.json: | - { - "metaData": { - "id": "${PROCESS_NAME}", - "typeSpecificData": { - "parallelism": 1, - "type": "${SCENARIO_TYPE}" - }, - "isSubprocess": false, - "additionalFields": { - "description": null, - "groups": [ - ], - "properties": { - } - }, - "subprocessVersions": { - } - }, - "exceptionHandlerRef": { - "parameters": [ - ] - }, - "nodes": [ - { - "id": "kafka-source", - "ref": { - "typ": "kafka", - "parameters": [ - { - "name": "Topic", - "expression": { - "language": "spel", - "expression": "'${GROUP}.${INPUT_TOPIC}'" - } - }, - { - "name": "Schema version", - "expression": { - "language": "spel", - "expression": "'latest'" - } - } - ] - }, - "additionalFields": { - "description": null, - "layoutData": { - "x": -3, - "y": -90 - } - }, - "type": "Source" - }, - { - "id": "kafka-sink", - "ref": { - "typ": "kafka", - "parameters": [ - { - "name": "Topic", - "expression": { - "language": "spel", - "expression": "'${GROUP}.${OUTPUT_TOPIC}'" - } - }, - { - "name": "Schema version", - "expression": { - "language": "spel", - "expression": "'latest'" - } - }, - { - "name" : "Key", - "expression" : { - "language" : "spel", - "expression" : "" - } - }, - { - "name" : "Raw editor", - "expression" : { - "language" : "spel", - "expression" : "true" - } - }, - { - "name" : "Value validation mode", - "expression" : { - "language" : "spel", - "expression" : "'strict'" - } - }, - { - "name": "Value", - "expression": { - "language": "spel", - "expression": "#input" - } - } - ] - }, - "endResult": null, - "isDisabled": null, - "additionalFields": { - "description": null, - "layoutData": { - "x": 0, - "y": 135 - } - }, - "type": "Sink" - } - ], - "additionalBranches": [ - ] - } ---- -# Source: nussknacker/charts/grafana/templates/role.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -rules: - - apiGroups: [""] # "" indicates the core API group - resources: ["configmaps", "secrets"] - verbs: ["get", "watch", "list"] ---- -# Source: nussknacker/templates/role.yml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: release-name-nussknacker - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -rules: -- apiGroups: [""] - resources: ["configmaps"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: ["apps"] - resources: ["deployments"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["services"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: ["networking.k8s.io"] - resources: ["ingresses"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["resourcequotas"] - verbs: ["get", "list"] -- apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list"] ---- -# Source: nussknacker/charts/grafana/templates/rolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: release-name-grafana -subjects: -- kind: ServiceAccount - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c ---- -# Source: nussknacker/templates/rolebinding.yml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: release-name-nussknacker - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -subjects: -- kind: ServiceAccount - name: release-name-nussknacker -roleRef: - kind: Role - apiGroup: rbac.authorization.k8s.io - name: release-name-nussknacker ---- -# Source: nussknacker/charts/apicurio-registry/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/flink/templates/jobmanager-headless-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager-headless - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - clusterIP: None - ports: - - port: 6124 - targetPort: blob - protocol: TCP - name: blob - - port: 6123 - targetPort: rpc - protocol: TCP - name: rpc - - port: 8081 - targetPort: ui - protocol: TCP - name: ui - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/jobmanager-rest-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager-rest - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - type: ClusterIP - ports: - - port: 8081 - targetPort: 8081 - protocol: TCP - name: ui - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/jobmanager-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - type: ClusterIP - ports: - - port: 6124 - targetPort: blob - protocol: TCP - name: blob - - port: 6123 - targetPort: rpc - protocol: TCP - name: rpc - - port: 8081 - targetPort: ui - protocol: TCP - name: ui - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/taskmanager-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: taskmanager -spec: - type: ClusterIP - ports: - - port: 6122 - targetPort: rpc - protocol: TCP - name: rpc - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager ---- -# Source: nussknacker/charts/grafana/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - name: service - port: 80 - protocol: TCP - targetPort: 3000 - selector: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/influxdb/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - name: api - port: 8086 - targetPort: api - - name: rpc - port: 8088 - targetPort: rpc - selector: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/kafka/templates/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-kafka-headless - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - type: ClusterIP - clusterIP: None - publishNotReadyAddresses: false - ports: - - name: tcp-client - port: 9092 - protocol: TCP - targetPort: kafka-client - - name: tcp-internal - port: 9094 - protocol: TCP - targetPort: kafka-internal - selector: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka ---- -# Source: nussknacker/charts/kafka/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-client - port: 9092 - protocol: TCP - targetPort: kafka-client - nodePort: null - selector: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka ---- -# Source: nussknacker/charts/postgresql/templates/primary/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-postgresql-hl - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary - # Use this annotation in addition to the actual publishNotReadyAddresses - # field below because the annotation will stop being respected soon but the - # field is broken in some versions of Kubernetes: - # https://github.com/kubernetes/kubernetes/issues/58662 - service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" -spec: - type: ClusterIP - clusterIP: None - # We want all pods in the StatefulSet to have their addresses published for - # the sake of the other Postgresql pods even before they're ready, since they - # have to be able to talk to each other in order to become ready. - publishNotReadyAddresses: true - ports: - - name: tcp-postgresql - port: 5432 - targetPort: tcp-postgresql - selector: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary ---- -# Source: nussknacker/charts/postgresql/templates/primary/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-postgresql - port: 5432 - targetPort: tcp-postgresql - nodePort: null - selector: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary ---- -# Source: nussknacker/charts/telegraf/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.34 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - type: ClusterIP - ports: - - port: 8125 - targetPort: 8125 - protocol: "UDP" - name: "statsd" - selector: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/zookeeper/templates/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-zookeeper-headless - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -spec: - type: ClusterIP - clusterIP: None - publishNotReadyAddresses: true - ports: - - name: tcp-client - port: 2181 - targetPort: client - - name: tcp-follower - port: 2888 - targetPort: follower - - name: tcp-election - port: 3888 - targetPort: election - selector: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper ---- -# Source: nussknacker/charts/zookeeper/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-zookeeper - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-client - port: 2181 - targetPort: client - nodePort: null - - name: tcp-follower - port: 2888 - targetPort: follower - - name: tcp-election - port: 3888 - targetPort: election - selector: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper ---- -# Source: nussknacker/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm - annotations: - -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/apicurio-registry/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - template: - metadata: - labels: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - spec: - serviceAccountName: release-name-apicurio-registry - securityContext: - {} - containers: - - name: apicurio-registry - securityContext: - {} - image: "apicurio/apicurio-registry-kafkasql:2.2.5.Final" - imagePullPolicy: IfNotPresent - ports: - - name: http - containerPort: 8080 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - env: - - name: KAFKA_BOOTSTRAP_SERVERS - value: release-name-kafka:9092 - resources: - {} ---- -# Source: nussknacker/charts/flink/templates/taskmanager.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: taskmanager - annotations: - "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager - template: - metadata: - labels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager - annotations: - spec: - serviceAccountName: release-name-flink-taskmanager - securityContext: - {} - initContainers: - containers: - - name: taskmanager - image: "flink:1.16.0-scala_2.12-java11" - imagePullPolicy: IfNotPresent - workingDir: /opt/flink - command: - - "/bin/bash" - - "-c" - - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && $FLINK_HOME/bin/taskmanager.sh start-foreground;" - env: - - name: JVM_ARGS - value: "-Djava.security.properties=/opt/flink/conf/security.properties" - envFrom: - ports: - - containerPort: 6122 - name: rpc - - containerPort: 9999 - name: metrics - livenessProbe: - tcpSocket: - port: 6122 - initialDelaySeconds: 30 - periodSeconds: 60 - volumeMounts: - - name: flink-config-volume - mountPath: /opt/flink/conf - resources: - limits: - memory: 3Gi - requests: - memory: 2560Mi - - volumes: - - name: flink-config-volume - configMap: - name: release-name-flink-config - items: - - key: flink-conf-taskmanager.yaml - path: flink-conf.yaml - - key: log4j.properties - path: log4j.properties - - key: log4j.properties - path: log4j-console.properties - - key: security.properties - path: security.properties ---- -# Source: nussknacker/charts/grafana/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - strategy: - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - annotations: - checksum/config: 45292994968c494c3aaf68de82fdfb1e3602672eb983748da825f62856cfaebd - checksum/dashboards-json-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b - checksum/sc-dashboard-provider-config: 90a0f13a07e446a02df0f5b0a8258b2c0190756a76a05c868f838084509b7a55 - checksum/secret: ba085bc855a8bf05798045c837210040fb6ed89831c42a1d954512c5d455c737 - kubectl.kubernetes.io/default-container: grafana - spec: - - serviceAccountName: release-name-grafana - automountServiceAccountToken: true - securityContext: - fsGroup: 472 - runAsGroup: 472 - runAsNonRoot: true - runAsUser: 472 - enableServiceLinks: true - containers: - - name: grafana-sc-dashboard - image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" - imagePullPolicy: IfNotPresent - env: - - name: METHOD - value: WATCH - - name: LABEL - value: "grafana_dashboard" - - name: FOLDER - value: "/tmp/dashboards" - - name: RESOURCE - value: "both" - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: REQ_URL - value: http://localhost:3000/api/admin/provisioning/dashboards/reload - - name: REQ_METHOD - value: POST - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: sc-dashboard-volume - mountPath: "/tmp/dashboards" - - name: grafana-sc-datasources - image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" - imagePullPolicy: IfNotPresent - env: - - name: METHOD - value: WATCH - - name: LABEL - value: "grafana_datasource" - - name: FOLDER - value: "/etc/grafana/provisioning/datasources" - - name: RESOURCE - value: "both" - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: REQ_URL - value: http://localhost:3000/api/admin/provisioning/datasources/reload - - name: REQ_METHOD - value: POST - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" - - name: grafana - image: "docker.io/grafana/grafana:10.1.1" - imagePullPolicy: IfNotPresent - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: config - mountPath: "/etc/grafana/grafana.ini" - subPath: grafana.ini - - name: storage - mountPath: "/var/lib/grafana" - - name: sc-dashboard-volume - mountPath: "/tmp/dashboards" - - name: sc-dashboard-provider - mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" - subPath: provider.yaml - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" - ports: - - name: grafana - containerPort: 3000 - protocol: TCP - - name: gossip-tcp - containerPort: 9094 - protocol: TCP - - name: gossip-udp - containerPort: 9094 - protocol: UDP - env: - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: GF_SECURITY_ADMIN_USER - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: GF_SECURITY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: GF_PATHS_DATA - value: /var/lib/grafana/ - - name: GF_PATHS_LOGS - value: /var/log/grafana - - name: GF_PATHS_PLUGINS - value: /var/lib/grafana/plugins - - name: GF_PATHS_PROVISIONING - value: /etc/grafana/provisioning - envFrom: - - secretRef: - name: release-name-influxdb-auth - livenessProbe: - failureThreshold: 10 - httpGet: - path: /api/health - port: 3000 - initialDelaySeconds: 60 - timeoutSeconds: 30 - readinessProbe: - httpGet: - path: /api/health - port: 3000 - volumes: - - name: config - configMap: - name: release-name-grafana - - name: storage - emptyDir: {} - - name: sc-dashboard-volume - emptyDir: - {} - - name: sc-dashboard-provider - configMap: - name: release-name-grafana-config-dashboards - - name: sc-datasources-volume - emptyDir: - {} ---- -# Source: nussknacker/charts/telegraf/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.34 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name - template: - metadata: - labels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name - annotations: - checksum/config: df84be45587603f5b138e123f4100cde265232e612750cd60c6fc5bfbcea9f35 - spec: - serviceAccountName: release-name-telegraf - containers: - - name: telegraf - image: "docker.io/library/telegraf:1.28-alpine" - imagePullPolicy: "IfNotPresent" - resources: - {} - args: - - --config-directory - - /etc/telegraf/telegraf.d - env: - - name: HOSTNAME - value: telegraf-polling-service - volumeMounts: - - name: config - mountPath: /etc/telegraf - - mountPath: /etc/telegraf/telegraf.d - name: telegraf-nussknacker - volumes: - - name: config - configMap: - name: release-name-telegraf - - configMap: - name: telegraf-nussknacker - name: telegraf-nussknacker ---- -# Source: nussknacker/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - template: - metadata: - annotations: - checksum/config: 1b7022c6d68275314b51adda70dfe570ed9aa620f5f416410b3a502f0fc672b8 - labels: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - spec: - imagePullSecrets: - - name: gitlab-registry - serviceAccountName: release-name-nussknacker - securityContext: - fsGroup: 1001 - containers: - - name: nussknacker - securityContext: - runAsUser: 1001 - image: "touk/nussknacker:staging-latest" - imagePullPolicy: Always - volumeMounts: - - name: config - mountPath: /etc/nussknacker - - name: logging-config - mountPath: /etc/logging - env: - - name: JDK_JAVA_OPTIONS - value: - - name: CONFIG_FILE - value: /etc/nussknacker/application.conf - - name: HELM_RELEASE_NAME - value: release-name - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: 'release-name-postgresql' - key: postgres-password - - name: INFLUXDB_PASSWORD - valueFrom: - secretKeyRef: - name: 'release-name-influxdb-auth' - key: influxdb-password - - name: INFLUXDB_USER - valueFrom: - secretKeyRef: - name: 'release-name-influxdb-auth' - key: influxdb-user - - name: NUSSKNACKER_LOG_LEVEL - value: DEBUG - ports: - - name: http - containerPort: 8080 - protocol: TCP - - livenessProbe: - httpGet: - path: / - port: http - periodSeconds: 5 - failureThreshold: 3 - timeoutSeconds: 5 - startupProbe: - httpGet: - path: / - port: http - periodSeconds: 3 - failureThreshold: 40 - timeoutSeconds: 5 - resources: - limits: - memory: 1Gi - requests: - memory: 512Mi - volumes: - - name: config - configMap: - name: release-name-nussknacker - - name: logging-config - configMap: - name: release-name-nussknacker-logging-conf - - name: storage - emptyDir: {} ---- -# Source: nussknacker/charts/flink/templates/jobmanager.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager - annotations: -spec: - replicas: 1 - podManagementPolicy: Parallel - selector: - matchLabels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager - serviceName: release-name-flink-jobmanager-headless - template: - metadata: - labels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager - annotations: - spec: - serviceAccountName: release-name-flink-jobmanager - securityContext: - {} - initContainers: - containers: - - name: jobmanager - image: "flink:1.16.0-scala_2.12-java11" - imagePullPolicy: IfNotPresent - workingDir: /opt/flink - command: - - "/bin/bash" - - "-c" - - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && cp $FLINK_HOME/conf/flink-conf.yaml.tpl $FLINK_HOME/conf/flink-conf.yaml && $FLINK_HOME/bin/jobmanager.sh start-foreground;" - env: - - name: JVM_ARGS - value: "-Djava.security.properties=/opt/flink/conf/security.properties" - - name: FLINK_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - ports: - - containerPort: 6124 - name: blob - - containerPort: 6123 - name: rpc - - containerPort: 8081 - name: ui - - containerPort: 9999 - name: metrics - readinessProbe: - tcpSocket: - port: 6123 - periodSeconds: 10 - initialDelaySeconds: 20 - livenessProbe: - tcpSocket: - port: 6124 - initialDelaySeconds: 10 - periodSeconds: 15 - volumeMounts: - - name: flink-config-volume - mountPath: /opt/flink/conf/flink-conf.yaml.tpl - subPath: flink-conf.yaml.tpl - - name: flink-config-volume - mountPath: /opt/flink/conf/log4j.properties - subPath: log4j.properties - - name: flink-config-volume - mountPath: /opt/flink/conf/log4j-console.properties - subPath: log4j.properties - - name: flink-config-volume - mountPath: /opt/flink/conf/security.properties - subPath: security.properties - resources: - {} - - volumes: - - name: flink-config-volume - configMap: - name: release-name-flink-config - items: - - key: flink-conf.yaml - path: flink-conf.yaml.tpl - - key: log4j.properties - path: log4j.properties - - key: security.properties - path: security.properties ---- -# Source: nussknacker/charts/influxdb/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - serviceName: "release-name-influxdb" - template: - metadata: - labels: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - spec: - serviceAccountName: release-name-influxdb - containers: - - name: release-name-influxdb - image: "influxdb:1.8.10" - imagePullPolicy: "IfNotPresent" - ports: - - name: api - containerPort: 8086 - - name: rpc - containerPort: 8088 - env: - - name: INFLUXDB_DB - value: nussknacker - - name: INFLUXDB_ADMIN_USER - valueFrom: - secretKeyRef: - name: release-name-influxdb-auth - key: influxdb-user - - name: INFLUXDB_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-influxdb-auth - key: influxdb-password - livenessProbe: - httpGet: - path: /ping - port: api - scheme: HTTP - initialDelaySeconds: 30 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: /ping - port: api - scheme: HTTP - initialDelaySeconds: 5 - timeoutSeconds: 1 - volumeMounts: - - name: release-name-influxdb-data - mountPath: /var/lib/influxdb - - name: config - mountPath: /etc/influxdb - volumes: - - name: config - configMap: - name: release-name-influxdb - # Cannot use existing claim in enterprise mode - # Must use volume claim template in enterprise mode - volumeClaimTemplates: - - metadata: - name: release-name-influxdb-data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/kafka/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - podManagementPolicy: Parallel - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka - serviceName: release-name-kafka-headless - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka - annotations: - spec: - - hostNetwork: false - hostIPC: false - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - serviceAccountName: release-name-kafka - containers: - - name: kafka - image: docker.io/bitnami/kafka:3.4.1-debian-11-r0 - imagePullPolicy: "IfNotPresent" - securityContext: - allowPrivilegeEscalation: false - runAsNonRoot: true - runAsUser: 1001 - command: - - /scripts/setup.sh - env: - - name: BITNAMI_DEBUG - value: "false" - - name: MY_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: MY_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: KAFKA_CFG_ZOOKEEPER_CONNECT - value: release-name-zookeeper:2181 - - name: KAFKA_INTER_BROKER_LISTENER_NAME - value: "INTERNAL" - - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP - value: "INTERNAL:PLAINTEXT,CLIENT:PLAINTEXT" - - name: KAFKA_CFG_LISTENERS - value: "INTERNAL://:9094,CLIENT://:9092" - - name: KAFKA_CFG_ADVERTISED_LISTENERS - value: "INTERNAL://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9094,CLIENT://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9092" - - name: ALLOW_PLAINTEXT_LISTENER - value: "yes" - - name: KAFKA_ZOOKEEPER_PROTOCOL - value: PLAINTEXT - - name: KAFKA_VOLUME_DIR - value: "/bitnami/kafka" - - name: KAFKA_LOG_DIR - value: "/opt/bitnami/kafka/logs" - - name: KAFKA_CFG_DELETE_TOPIC_ENABLE - value: "false" - - name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE - value: "true" - - name: KAFKA_HEAP_OPTS - value: "-Xmx1024m -Xms1024m" - - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MESSAGES - value: "10000" - - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MS - value: "1000" - - name: KAFKA_CFG_LOG_RETENTION_BYTES - value: "1073741824" - - name: KAFKA_CFG_LOG_RETENTION_CHECK_INTERVAL_MS - value: "300000" - - name: KAFKA_CFG_LOG_RETENTION_HOURS - value: "168" - - name: KAFKA_CFG_MESSAGE_MAX_BYTES - value: "1000012" - - name: KAFKA_CFG_LOG_SEGMENT_BYTES - value: "1073741824" - - name: KAFKA_CFG_LOG_DIRS - value: "/bitnami/kafka/data" - - name: KAFKA_CFG_DEFAULT_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR - value: "1" - - name: KAFKA_CFG_NUM_IO_THREADS - value: "8" - - name: KAFKA_CFG_NUM_NETWORK_THREADS - value: "3" - - name: KAFKA_CFG_NUM_PARTITIONS - value: "1" - - name: KAFKA_CFG_NUM_RECOVERY_THREADS_PER_DATA_DIR - value: "1" - - name: KAFKA_CFG_SOCKET_RECEIVE_BUFFER_BYTES - value: "102400" - - name: KAFKA_CFG_SOCKET_REQUEST_MAX_BYTES - value: "104857600" - - name: KAFKA_CFG_SOCKET_SEND_BUFFER_BYTES - value: "102400" - - name: KAFKA_CFG_ZOOKEEPER_CONNECTION_TIMEOUT_MS - value: "6000" - - name: KAFKA_CFG_AUTHORIZER_CLASS_NAME - value: "" - - name: KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND - value: "true" - - name: KAFKA_CFG_SUPER_USERS - value: "User:admin" - - name: KAFKA_ENABLE_KRAFT - value: "false" - ports: - - name: kafka-client - containerPort: 9092 - - name: kafka-internal - containerPort: 9094 - livenessProbe: - failureThreshold: 3 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: kafka-client - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: kafka-client - resources: - limits: {} - requests: {} - volumeMounts: - - name: data - mountPath: /bitnami/kafka - - name: logs - mountPath: /opt/bitnami/kafka/logs - - name: scripts - mountPath: /scripts/setup.sh - subPath: setup.sh - volumes: - - name: scripts - configMap: - name: release-name-kafka-scripts - defaultMode: 0755 - - name: logs - emptyDir: {} - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/postgresql/templates/primary/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary -spec: - replicas: 1 - serviceName: release-name-postgresql-hl - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - selector: - matchLabels: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary - template: - metadata: - name: release-name-postgresql - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary - spec: - serviceAccountName: default - - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - hostNetwork: false - hostIPC: false - initContainers: - - name: init-chmod-data - image: docker.io/bitnami/bitnami-shell:11-debian-11-r81 - imagePullPolicy: "IfNotPresent" - resources: - limits: {} - requests: {} - command: - - /bin/sh - - -ec - - | - chown 1001:1001 /bitnami/postgresql - mkdir -p /bitnami/postgresql/data - chmod 700 /bitnami/postgresql/data - find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \ - xargs -r chown -R 1001:1001 - chmod -R 777 /dev/shm - securityContext: - runAsUser: 0 - volumeMounts: - - name: data - mountPath: /bitnami/postgresql - - name: dshm - mountPath: /dev/shm - containers: - - name: postgresql - image: docker.io/bitnami/postgresql:15.2.0-debian-11-r0 - imagePullPolicy: "IfNotPresent" - securityContext: - runAsUser: 1001 - env: - - name: BITNAMI_DEBUG - value: "false" - - name: POSTGRESQL_PORT_NUMBER - value: "5432" - - name: POSTGRESQL_VOLUME_DIR - value: "/bitnami/postgresql" - - name: PGDATA - value: "/bitnami/postgresql/data" - # Authentication - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-postgresql - key: postgres-password - # Replication - # Initdb - # Standby - # LDAP - - name: POSTGRESQL_ENABLE_LDAP - value: "no" - # TLS - - name: POSTGRESQL_ENABLE_TLS - value: "no" - # Audit - - name: POSTGRESQL_LOG_HOSTNAME - value: "false" - - name: POSTGRESQL_LOG_CONNECTIONS - value: "false" - - name: POSTGRESQL_LOG_DISCONNECTIONS - value: "false" - - name: POSTGRESQL_PGAUDIT_LOG_CATALOG - value: "off" - # Others - - name: POSTGRESQL_CLIENT_MIN_MESSAGES - value: "error" - - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES - value: "pgaudit" - ports: - - name: tcp-postgresql - containerPort: 5432 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: - - /bin/sh - - -c - - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: - - /bin/sh - - -c - - -e - - - | - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 - [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] - resources: - limits: {} - requests: - cpu: 250m - memory: 256Mi - volumeMounts: - - name: dshm - mountPath: /dev/shm - - name: data - mountPath: /bitnami/postgresql - volumes: - - name: dshm - emptyDir: - medium: Memory - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/zookeeper/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-zookeeper - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper - role: zookeeper -spec: - replicas: 1 - podManagementPolicy: Parallel - selector: - matchLabels: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper - serviceName: release-name-zookeeper-headless - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - template: - metadata: - annotations: - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper - spec: - serviceAccountName: default - - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - initContainers: - containers: - - name: zookeeper - image: docker.io/bitnami/zookeeper:3.8.0-debian-11-r74 - imagePullPolicy: "IfNotPresent" - securityContext: - allowPrivilegeEscalation: false - runAsNonRoot: true - runAsUser: 1001 - command: - - /scripts/setup.sh - resources: - limits: {} - requests: - cpu: 250m - memory: 256Mi - env: - - name: BITNAMI_DEBUG - value: "false" - - name: ZOO_DATA_LOG_DIR - value: "" - - name: ZOO_PORT_NUMBER - value: "2181" - - name: ZOO_TICK_TIME - value: "2000" - - name: ZOO_INIT_LIMIT - value: "10" - - name: ZOO_SYNC_LIMIT - value: "5" - - name: ZOO_PRE_ALLOC_SIZE - value: "65536" - - name: ZOO_SNAPCOUNT - value: "100000" - - name: ZOO_MAX_CLIENT_CNXNS - value: "60" - - name: ZOO_4LW_COMMANDS_WHITELIST - value: "srvr, mntr, ruok" - - name: ZOO_LISTEN_ALLIPS_ENABLED - value: "no" - - name: ZOO_AUTOPURGE_INTERVAL - value: "0" - - name: ZOO_AUTOPURGE_RETAIN_COUNT - value: "3" - - name: ZOO_MAX_SESSION_TIMEOUT - value: "40000" - - name: ZOO_SERVERS - value: release-name-zookeeper-0.release-name-zookeeper-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:2888:3888::1 - - name: ZOO_ENABLE_AUTH - value: "no" - - name: ZOO_ENABLE_QUORUM_AUTH - value: "no" - - name: ZOO_HEAP_SIZE - value: "1024" - - name: ZOO_LOG_LEVEL - value: "ERROR" - - name: ALLOW_ANONYMOUS_LOGIN - value: "yes" - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - ports: - - name: client - containerPort: 2181 - - name: follower - containerPort: 2888 - - name: election - containerPort: 3888 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] - volumeMounts: - - name: scripts - mountPath: /scripts/setup.sh - subPath: setup.sh - - name: data - mountPath: /bitnami/zookeeper - volumes: - - name: scripts - configMap: - name: release-name-zookeeper-scripts - defaultMode: 0755 - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/templates/ingress.yaml -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm - annotations: - cert-manager.io/cluster-issuer: letsencrypt-prod -spec: - rules: - - http: - paths: - - path: /grafana - pathType: Prefix - backend: - service: - name: release-name-grafana - port: - number: 80 - - path: / - pathType: Prefix - backend: - service: - name: release-name-nussknacker - port: - number: 80 ---- -# Source: nussknacker/templates/extra-deploy.yaml -# Pattern from bitnami ---- -# Source: nussknacker/charts/grafana/templates/tests/test-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana-test - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" ---- -# Source: nussknacker/charts/grafana/templates/tests/test-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-grafana-test - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm -data: - run.sh: |- - @test "Test Health" { - url="http://release-name-grafana/api/health" - - code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}') - [ "$code" == "200" ] - } ---- -# Source: nussknacker/charts/apicurio-registry/templates/tests/test-connection.yaml -apiVersion: v1 -kind: Pod -metadata: - name: "release-name-apicurio-registry-test-connection" - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['release-name-apicurio-registry:80'] - restartPolicy: Never ---- -# Source: nussknacker/charts/grafana/templates/tests/test.yaml -apiVersion: v1 -kind: Pod -metadata: - name: release-name-grafana-test - labels: - helm.sh/chart: grafana-6.59.4 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.1" - app.kubernetes.io/managed-by: Helm - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -spec: - serviceAccountName: release-name-grafana-test - containers: - - name: release-name-test - image: "docker.io/bats/bats:v1.4.1" - imagePullPolicy: "IfNotPresent" - command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"] - volumeMounts: - - mountPath: /tests - name: tests - readOnly: true - volumes: - - name: tests - configMap: - name: release-name-grafana-test - restartPolicy: Never ---- -# Source: nussknacker/templates/tests/test-job.yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: "release-name-nussknacker-test-job" - annotations: - "helm.sh/hook": test -spec: - activeDeadlineSeconds: 600 - backoffLimit: 0 - template: - spec: - imagePullSecrets: - - name: gitlab-registry - shareProcessNamespace: true - containers: - - name: test-job - image: touk/kafka-bats - imagePullPolicy: Always - command: - - /main-wrapper.sh - - /usr/local/bin/bats - args: - - -t - - //suites/kafka-only.bats - env: - - name: NUSSKNACKER_URL - value: "http://release-name-nussknacker:80" - - name: AUTHORIZATION - value: "Basic YWRtaW46YWRtaW4=" - - name: KAFKA_NAMESPACE - value: release-name - - name: KAFKA_BOOTSTRAP_SERVER - value: "release-name-kafka:9092" - - name: SCENARIO_TYPE - value: "StreamMetaData" - - name: SCHEMA_REGISTRY_URL - value: "http://release-name-apicurio-registry:80/apis/ccompat/v6/" - volumeMounts: - - name: suites - mountPath: /suites - - name: scripts - mountPath: /main-wrapper.sh - subPath: main-wrapper.sh - - name: pids - mountPath: /var/run/sidecars - restartPolicy: Never - volumes: - - name: pids - emptyDir: {} - - name: suites - configMap: - name: release-name-nussknacker-test-suites - - name: scripts - configMap: - name: release-name-nussknacker-test-scripts - defaultMode: 0755 From d6b9657620905ff960c7fb2e586906d2812d87fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:25:44 +0200 Subject: [PATCH 17/53] test --- .github/workflows/helm-test-workflow.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 0948f237..f75048cf 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -53,6 +53,8 @@ jobs: run: git log - name: helm version run: helm version + - name: system version + run: uname -a - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} - name: packageAll From 938c46301a967c00fbc7d7889f4df884fc4148f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:32:09 +0200 Subject: [PATCH 18/53] test --- .github/workflows/helm-test-workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index f75048cf..1ad1967a 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -49,8 +49,8 @@ jobs: run: echo "::set-output name=version::$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" - name: buildAll run: ./setup.sh - - name: git log - run: git log + - name: try to install older helm + run: apt-get install helm=3.12.2 - name: helm version run: helm version - name: system version From 1ddd22901fde257254afd25c5c8c47559f24a881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:45:30 +0200 Subject: [PATCH 19/53] test --- .github/workflows/helm-test-workflow.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 1ad1967a..c6401f31 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -27,7 +27,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - + HELM_VERSION: "version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}" defaults: run: shell: bash @@ -49,12 +49,10 @@ jobs: run: echo "::set-output name=version::$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" - name: buildAll run: ./setup.sh - - name: try to install older helm + - name: verify helm version run: apt-get install helm=3.12.2 - name: helm version - run: helm version - - name: system version - run: uname -a + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] || echo "Helm version is different that expected!" - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} - name: packageAll From 5032c1bcdb72db50d7a11f7db1ca86f8948a1a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:46:28 +0200 Subject: [PATCH 20/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index c6401f31..c1b72f20 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -27,7 +27,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: "version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}" + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}' defaults: run: shell: bash From f89f06e9344ce89ead5787f767cb6065e54a1148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:47:20 +0200 Subject: [PATCH 21/53] test --- .github/workflows/helm-test-workflow.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index c1b72f20..fee20db8 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -50,8 +50,6 @@ jobs: - name: buildAll run: ./setup.sh - name: verify helm version - run: apt-get install helm=3.12.2 - - name: helm version run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] || echo "Helm version is different that expected!" - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} From 5efcc818809e261a86e674c62a1a34893a8df5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:48:24 +0200 Subject: [PATCH 22/53] tets --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index fee20db8..ad3d669c 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -27,7 +27,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}' + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"' defaults: run: shell: bash From a7c821fc6d1aae37565f9990116b6b57567c9cbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 12:55:13 +0200 Subject: [PATCH 23/53] test --- .github/workflows/helm-test-workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index ad3d669c..04ab58a7 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -39,6 +39,8 @@ jobs: outputs: version: ${{ steps.setVersion.outputs.version }} steps: + - name: Verify helm version + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different that expected!::Helm has been updated on underlying image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v2 - name: Print Nussknacker version @@ -49,8 +51,6 @@ jobs: run: echo "::set-output name=version::$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" - name: buildAll run: ./setup.sh - - name: verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] || echo "Helm version is different that expected!" - name: checkTemplate run: helm template -f deploy-values.yaml --set "image.tag=${{env.NUSSKNACKER_VERSION}}" ${{env.CHART_SRC_DIR}} - name: packageAll From 24568f12051e7ade65485335163db9efe4bfcfc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Thu, 12 Oct 2023 13:00:59 +0200 Subject: [PATCH 24/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 04ab58a7..e569c708 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -27,7 +27,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"' + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8}"' defaults: run: shell: bash From 38113f2eef6d6848177c9ff61c515ce196204cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 08:12:30 +0200 Subject: [PATCH 25/53] fixes --- .github/workflows/helm-test-workflow.yaml | 4 ++-- out | 0 src/Chart.yaml | 1 + src/values.yaml | 26 ++++++++++++++--------- 4 files changed, 19 insertions(+), 12 deletions(-) delete mode 100644 out diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index e569c708..f3aa3079 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -35,12 +35,12 @@ defaults: jobs: build: name: build - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest outputs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different that expected!::Helm has been updated on underlying image. It could lead to unexpected behaviour during pipeline execution!" + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v2 - name: Print Nussknacker version diff --git a/out b/out deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Chart.yaml b/src/Chart.yaml index a482b8dc..81b93353 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -25,6 +25,7 @@ dependencies: version: ~11.0.3 repository: "@bitnami" condition: zookeeper.enabled + alias: zookeeper_external - name: apicurio-registry repository: "@touk" version: ~0.1.5 diff --git a/src/values.yaml b/src/values.yaml index a6fc3126..137e8fa2 100644 --- a/src/values.yaml +++ b/src/values.yaml @@ -2,6 +2,17 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. +global: + kafka: + name: kafka + port: 9092 + zookeeper: &zookeeper_ports_config + ports: + client: 2181 + schemaRegistry: + name: apicurio-registry + path: /apis/ccompat/v6/ + replicaCount: 1 image: @@ -166,7 +177,10 @@ postgresql: zookeeper: enabled: true - + +zookeeper_external: + service: *zookeeper_ports_config + kafka: enabled: true persistence: @@ -177,7 +191,7 @@ kafka: enabled: false externalZookeeper: servers: - - "{{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.service.ports.client }}" + - '{{ .Release.Name }}-zookeeper:{{ .Values.global.zookeeper.ports.client }}' apicurio-registry: enabled: true @@ -267,14 +281,6 @@ telegraf: #We suppress default influxDB configuration from chart, as we cannot easily template influxdb url outputs: [] -global: - kafka: - name: kafka - port: 9092 - schemaRegistry: - name: apicurio-registry - path: /apis/ccompat/v6/ - nussknackerInitContainers: [ ] #Extra resources to deploy From b526cd1bedfeb4ccdd1a8bd3db0f66d40d4c0a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 08:15:13 +0200 Subject: [PATCH 26/53] fix --- src/Chart.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Chart.lock b/src/Chart.lock index e7505b89..d822acfa 100644 --- a/src/Chart.lock +++ b/src/Chart.lock @@ -16,12 +16,12 @@ dependencies: version: 0.2.0 - name: grafana repository: https://grafana.github.io/helm-charts - version: 6.59.4 + version: 6.60.6 - name: influxdb repository: https://helm.influxdata.com/ version: 4.12.5 - name: telegraf repository: https://helm.influxdata.com/ - version: 1.8.34 -digest: sha256:a4235f4aca5b0785f910bc33cb813604cab949729753b88fb095814524fe269c -generated: "2023-09-13T10:29:02.122496096+02:00" + version: 1.8.35 +digest: sha256:8442dbfd35216a15e2929c58ebc8c159d76210b35c85faf6c24d4195a59eeb61 +generated: "2023-10-17T08:14:50.064086+02:00" From 706669c850b255c53b03802d9e578e648891968a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 08:28:58 +0200 Subject: [PATCH 27/53] fix --- src/Chart.yaml | 2 +- src/values.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 81b93353..d1ef79b0 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -25,7 +25,7 @@ dependencies: version: ~11.0.3 repository: "@bitnami" condition: zookeeper.enabled - alias: zookeeper_external + alias: zookeeper-external - name: apicurio-registry repository: "@touk" version: ~0.1.5 diff --git a/src/values.yaml b/src/values.yaml index 137e8fa2..ef175e6c 100644 --- a/src/values.yaml +++ b/src/values.yaml @@ -178,7 +178,7 @@ postgresql: zookeeper: enabled: true -zookeeper_external: +zookeeper-external: service: *zookeeper_ports_config kafka: From 64f773309bafc5a4257f8a77314a22126b14eb0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 08:31:16 +0200 Subject: [PATCH 28/53] fix --- src/Chart.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Chart.lock b/src/Chart.lock index d822acfa..3e38ca61 100644 --- a/src/Chart.lock +++ b/src/Chart.lock @@ -23,5 +23,5 @@ dependencies: - name: telegraf repository: https://helm.influxdata.com/ version: 1.8.35 -digest: sha256:8442dbfd35216a15e2929c58ebc8c159d76210b35c85faf6c24d4195a59eeb61 -generated: "2023-10-17T08:14:50.064086+02:00" +digest: sha256:05f1bc522e61aa06cb7d70732143ffabf828169aa93b61cc494992f044952203 +generated: "2023-10-17T08:31:03.053182+02:00" From f56d443507a2aeebc2957db71254f1e4e508046e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 10:56:01 +0200 Subject: [PATCH 29/53] Potential fix --- src/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index d1ef79b0..f3d8c9b3 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.11.1-SNAPSHOT +version: 1.11.1 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg From 2025bafc0c4a127a5d5f74e8c0e58f6d1ed8ddf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 11:44:49 +0200 Subject: [PATCH 30/53] test --- out_3.13 | 11397 ++++++++++++++++++++++++++++++++++++++++++++++ src/values.yaml | 27 +- 2 files changed, 11412 insertions(+), 12 deletions(-) create mode 100644 out_3.13 diff --git a/out_3.13 b/out_3.13 new file mode 100644 index 00000000..93d49868 --- /dev/null +++ b/out_3.13 @@ -0,0 +1,11397 @@ +--- +# Source: nussknacker/charts/telegraf/templates/pdb.yaml +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.35 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + minAvailable: 1 + selector: + matchLabels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/apicurio-registry/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/grafana/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +--- +# Source: nussknacker/charts/influxdb/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/kafka/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka + annotations: +automountServiceAccountToken: true +--- +# Source: nussknacker/charts/telegraf/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.35 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: release-name-nussknacker + labels: + + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +--- +# Source: nussknacker/charts/grafana/templates/secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +type: Opaque +data: + admin-user: "YWRtaW4=" + admin-password: "YWRtaW4=" + ldap-toml: "" +--- +# Source: nussknacker/charts/influxdb/templates/secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-influxdb-auth + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +data: + influxdb-password: "Y2hhbmdlbWU=" + influxdb-user: "bnVzc2tuYWNrZXI=" +--- +# Source: nussknacker/charts/postgresql/templates/secrets.yaml +apiVersion: v1 +kind: Secret +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm +type: Opaque +data: + postgres-password: "MXRCQUZJOEwwaw==" + # We don't auto-generate LDAP password when it's not provided as we do for other passwords +--- +# Source: nussknacker/charts/flink/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-flink-config + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm +data: + flink-conf.yaml: |+ + taskmanager.numberOfTaskSlots: 4 + blob.server.port: 6124 + taskmanager.rpc.port: 6122 + jobmanager.heap.size: 1g + taskmanager.memory.process.size: 1g + metrics.reporters: prom + metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter + metrics.reporter.prom.port: 9999 + jobmanager.rpc.address: release-name-flink-jobmanager + jobmanager.rpc.port: 6123 + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory + flink-conf-taskmanager.yaml: |+ + taskmanager.numberOfTaskSlots: 4 + blob.server.port: 6124 + taskmanager.rpc.port: 6122 + jobmanager.heap.size: 1g + taskmanager.memory.process.size: 1g + metrics.reporters: prom + metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter + metrics.reporter.prom.port: 9999 + jobmanager.rpc.address: release-name-flink-jobmanager + jobmanager.rpc.port: 6123 + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory + log4j.properties: |+ + # This affects logging for both user code and Flink + rootLogger.level = INFO + rootLogger.appenderRef.console.ref = ConsoleAppender + rootLogger.appenderRef.rolling.ref = RollingFileAppender + + # Uncomment this if you want to _only_ change Flink's logging + #logger.flink.name = org.apache.flink + #logger.flink.level = INFO + + # The following lines keep the log level of common libraries/connectors on + # log level INFO. The root logger does not override this. You have to manually + # change the log levels here. + logger.akka.name = akka + logger.akka.level = INFO + logger.kafka.name= org.apache.kafka + logger.kafka.level = INFO + logger.hadoop.name = org.apache.hadoop + logger.hadoop.level = INFO + logger.zookeeper.name = org.apache.zookeeper + logger.zookeeper.level = INFO + + # Log all infos to the console + appender.console.name = ConsoleAppender + appender.console.type = CONSOLE + appender.console.layout.type = PatternLayout + appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n + + # Log all infos in the given rolling file + appender.rolling.name = RollingFileAppender + appender.rolling.type = RollingFile + appender.rolling.append = false + appender.rolling.fileName = ${sys:log.file} + appender.rolling.filePattern = ${sys:log.file}.%i + appender.rolling.layout.type = PatternLayout + appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n + appender.rolling.policies.type = Policies + appender.rolling.policies.size.type = SizeBasedTriggeringPolicy + appender.rolling.policies.size.size=100MB + appender.rolling.strategy.type = DefaultRolloverStrategy + appender.rolling.strategy.max = 10 + + # Suppress the irrelevant (wrong) warnings from the Netty channel handler + logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline + logger.netty.level = OFF + + + security.properties: + # The java-level namelookup cache policy for successful lookups + networkaddress.cache.ttl=30 +--- +# Source: nussknacker/charts/grafana/templates/configmap-dashboard-provider.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana-config-dashboards + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +data: + provider.yaml: |- + apiVersion: 1 + providers: + - name: 'sidecarProvider' + orgId: 1 + folder: '' + type: file + disableDeletion: false + allowUiUpdates: false + updateIntervalSeconds: 30 + options: + foldersFromFilesStructure: false + path: /tmp/dashboards +--- +# Source: nussknacker/charts/grafana/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +data: + grafana.ini: | + [analytics] + check_for_updates = true + [auth.anonymous] + enabled = true + [grafana_net] + url = https://grafana.net + [log] + mode = console + [paths] + data = /var/lib/grafana/ + logs = /var/log/grafana + plugins = /var/lib/grafana/plugins + provisioning = /etc/grafana/provisioning + [security] + allow_embedding = true + [server] + domain = '' + root_url = %(protocol)s://%(domain)s/grafana + serve_from_sub_path = true +--- +# Source: nussknacker/charts/influxdb/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +data: + influxdb.conf: |+ + reporting-disabled = false + bind-address = ":8088" + + [meta] + dir = "/var/lib/influxdb/meta" + + [data] + dir = "/var/lib/influxdb/data" + wal-dir = "/var/lib/influxdb/wal" + + [coordinator] + + [retention] + + [shard-precreation] + + [monitor] + + [subscriber] + + [http] + auth-enabled = true + bind-address = ":8086" + enabled = true + flux-enabled = true + + # TODO: allow multiple graphite listeners + + [[graphite]] + + # TODO: allow multiple collectd listeners with templates + + [[collectd]] + + # TODO: allow multiple opentsdb listeners with templates + + [[opentsdb]] + + # TODO: allow multiple udp listeners with templates + + [[udp]] + + [continuous_queries] + + [logging] +--- +# Source: nussknacker/charts/kafka/templates/scripts-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-kafka-scripts + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm +data: + setup.sh: |- + #!/bin/bash + + ID="${MY_POD_NAME#"release-name-kafka-"}" + # If process.roles is not set at all, it is assumed to be in ZooKeeper mode. + # https://kafka.apache.org/documentation/#kraft_role + + if [[ -f "/bitnami/kafka/data/meta.properties" ]]; then + if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then + export KAFKA_CFG_BROKER_ID="$(grep "broker.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" + else + export KAFKA_CFG_NODE_ID="$(grep "node.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" + fi + else + if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then + export KAFKA_CFG_BROKER_ID="$((ID + 0))" + else + export KAFKA_CFG_NODE_ID="$((ID + 0))" + fi + fi + + if [[ $KAFKA_CFG_PROCESS_ROLES == *"controller"* && -z $KAFKA_CFG_CONTROLLER_QUORUM_VOTERS ]]; then + node_id=0 + pod_id=0 + while : + do + VOTERS="${VOTERS}$node_id@release-name-kafka-$pod_id.release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9093" + node_id=$(( $node_id + 1 )) + pod_id=$(( $pod_id + 1 )) + if [[ $pod_id -ge 1 ]]; then + break + else + VOTERS="$VOTERS," + fi + done + export KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=$VOTERS + fi + + # Configure zookeeper client + + exec /entrypoint.sh /run.sh +--- +# Source: nussknacker/charts/telegraf/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.35 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +data: + telegraf.conf: |+ + + [agent] + collection_jitter = "0s" + debug = false + flush_interval = "10s" + flush_jitter = "0s" + hostname = "$HOSTNAME" + interval = "10s" + logfile = "" + metric_batch_size = 1000 + metric_buffer_limit = 10000 + omit_hostname = false + precision = "" + quiet = false + round_interval = true + [[processors.enum]] + [[processors.enum.mapping]] + dest = "status_code" + field = "status" + [processors.enum.mapping.value_mappings] + critical = 3 + healthy = 1 + problem = 2 + + + + [[inputs.statsd]] + allowed_pending_messages = 10000 + metric_separator = "_" + percentile_limit = 1000 + percentiles = [ + 50.0, + 95.0, + 99.0 + ] + service_address = ":8125" + + [[inputs.internal]] + collect_memstats = false +--- +# Source: nussknacker/charts/zookeeper/templates/scripts-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-zookeeper-scripts + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +data: + init-certs.sh: |- + #!/bin/bash + setup.sh: |- + #!/bin/bash + + # Execute entrypoint as usual after obtaining ZOO_SERVER_ID + # check ZOO_SERVER_ID in persistent volume via myid + # if not present, set based on POD hostname + if [[ -f "/bitnami/zookeeper/data/myid" ]]; then + export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)" + else + HOSTNAME="$(hostname -s)" + if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then + ORD=${BASH_REMATCH[2]} + export ZOO_SERVER_ID="$((ORD + 1 ))" + else + echo "Failed to get index from hostname $HOST" + exit 1 + fi + fi + exec /entrypoint.sh /run.sh +--- +# Source: nussknacker/templates/configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: + application.conf: |- + db: {"driver":"org.postgresql.Driver","schema":"public","url":"jdbc:postgresql://release-name-postgresql/","user":"postgres"} + db.password: ${?DB_PASSWORD} + + scenarioTypes { + "default": { + deploymentConfig: { + type: "flinkStreaming" + restUrl: "http://release-name-flink-jobmanager-rest:8081" + queryableStateProxyUrl: "release-name-flink-taskmanager:6122" + } {"jobManagerTimeout":"1m"} + + modelConfig: { + classPath: ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] + components.kafka.config { + kafkaProperties { + "bootstrap.servers": "release-name-kafka:9092" + "schema.registry.url": "http://release-name-apicurio-registry:80/apis/ccompat/v6/" + } + } + rocksDB { + enable: true + } + }{"components":{"openAPI":{"url":"https://app.swaggerhub.com/apiproxy/registry/TKJ/CurrencyConverter/FINAL"}},"namespace":"release-name"} + } + } + countsSettings: { + "user": ${INFLUXDB_USER} + "password": ${INFLUXDB_PASSWORD} + "influxUrl": "http://release-name-influxdb:8086/query" + "database": "nussknacker" + metricsConfig: { "countField": "gauge"}} + metricsSettings: { + url: "/grafana/d/$dashboard?theme=dark&var-scenarioName=$scenarioName&var-env="${environment} + defaultDashboard: "nussknacker-scenario" + } + + tabs: ${tabs}[] + + usageStatisticsReports { + enabled:false + fingerprint: "" + source: "helmchart" + } + categoriesConfig: {"Default":"default"} + environment: "default" + environmentAlert: {"color":"indicator-green","content":"default"} +--- +# Source: nussknacker/templates/grafana-dashboard.yml +apiVersion: v1 +kind: ConfigMap +metadata: + name: "release-name-nussknacker-grafana-dashboard" + labels: + grafana_dashboard: "nussknacker" +data: + dashboard.json: |- + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 1, + "iteration": 1631534794448, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "source.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"source_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Source throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "end.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Events that passed whole scenario /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 5, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "dead_end.instantRate", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"dead_end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Rejected events /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "error.instantRateByNode.count.count", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"error_instantRateByNode_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 15 + }, + "hiddenSeries": false, + "id": 9, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + } + ], + "measurement": "records_lag_max", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"gauge\") FROM \"records_lag_max\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(none)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Max lag among Kafka source partitions (events)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 8, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT min(\"min\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "min" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - minimum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 22 + }, + "hiddenSeries": false, + "id": 6, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"0.5\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 7, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "max" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - maximum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 22 + }, + "hiddenSeries": false, + "id": 13, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay_minimalDelay", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT min(\"gauge\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Time from latest event", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_OK_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.5\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_OK_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.99\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "action" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "serviceInstant.OK", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_OK_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_FAIL_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.5\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.5" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service_FAIL_histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"0.99\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "0.99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "action" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "serviceInstant.FAIL", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_FAIL_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "sum" + } + ] + ], + "tags": [ + { + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + }, + { + "condition": "AND", + "key": "env", + "operator": "=~", + "value": "/^$env$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "External services", + "type": "row" + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 22, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 45 + }, + "hiddenSeries": false, + "id": 19, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.cur-size-all-mem-tables/", + "orderByTime": "ASC", + "policy": "default", + "query": "\nSELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.cur-size-all-mem-tables/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB cur-size-all-mem-tables", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 45 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.cur-size-all-mem-tables/", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-live-data-size/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB estimate-live-data-size", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "description": "Estimates on number of keys in RocksDB state. Aggregates (e.g. session windows) can have many internal states. Please remember that this is only estimate, based on internal RocksDB metrics", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 45 + }, + "hiddenSeries": false, + "id": 20, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "operator_name" + ], + "type": "tag" + }, + { + "params": [ + "slot" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "/^.*.estimate-num-keys/", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-num-keys/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "gauge" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RocksDB estimate-num-keys", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "RocksDB state", + "type": "row" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 31 + }, + "id": 28, + "panels": [], + "title": "Scenario health", + "type": "row" + }, + { + "datasource": null, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 32 + }, + "id": 30, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_uptime", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Uptime", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 32 + }, + "id": 32, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_fullRestarts", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Number of restarts", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 37 + }, + "id": 37, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_lastCheckpointDuration", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Last checkpoint duration", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 37 + }, + "id": 38, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_lastCheckpointSize", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Last checkpoint size", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "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": 1 + }, + { + "color": "#299c46", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 37 + }, + "id": 35, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_numberOfCompletedCheckpoints", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Completed checkpoints", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 37 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "jobmanager_job_numberOfFailedCheckpoints", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "last" + }, + { + "params": [], + "type": "non_negative_difference" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Failed checkpoints", + "type": "stat" + } + ], + "refresh": "30s", + "schemaVersion": 30, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "allValue": null, + "current": { + "selected": false, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "local", + "value": "local" + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": false, + "label": null, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "description": null, + "error": null, + "hide": 0, + "label": null, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Scenario", + "uid": "nussknacker-scenario", + "version": 4 + } + nussknacker-lite-scenario.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 1, + "iteration": 1638475135627, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"source.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Source throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "hide": false, + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Events that passed whole scenario /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 5, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Rejected events /s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 15 + }, + "hiddenSeries": false, + "id": 9, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_taskId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "taskId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + } + ], + "measurement": "records-lag-max", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Max lag among Kafka source partitions (events)", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 8, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "min" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - minimum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 6, + "y": 22 + }, + "hiddenSeries": false, + "id": 6, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 7, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.histogram", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "max" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Delay since event occurrence - maximum", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 22 + }, + "hiddenSeries": false, + "id": 13, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "nodeId" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "eventtimedelay.minimalDelay", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "min" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Time from latest event", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "8.0.6", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "External services", + "type": "row" + } + ], + "refresh": "30s", + "schemaVersion": 30, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "allValue": null, + "current": { + "selected": true, + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": true, + "label": null, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "local", + "value": "local" + }, + "datasource": "influx", + "definition": "", + "description": null, + "error": null, + "hide": 0, + "includeAll": false, + "label": null, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "description": null, + "error": null, + "hide": 0, + "label": null, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Lite scenario", + "uid": "nussknacker-lite-scenario", + "version": 101 + } + nussknacker-request-response-scenario.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": 1, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": "influx", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 26, + "panels": [], + "targets": [ + { + "datasource": "influx", + "refId": "A" + } + ], + "title": "Basics", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 2, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"invocation.success.histogram\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - throughput", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 3, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "hide": false, + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + }, + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "hide": false, + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Outputs/s", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 8 + }, + "hiddenSeries": false, + "id": 4, + "interval": "$interval", + "legend": { + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_nodeId]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Errors", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 27, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 15 + }, + "hiddenSeries": false, + "id": 28, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - median - 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 15 + }, + "hiddenSeries": false, + "id": 31, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 2xx - max", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 29, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - median", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 22 + }, + "hiddenSeries": false, + "id": 30, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 22 + }, + "hiddenSeries": false, + "id": 32, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - (all)", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + }, + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "hide": false, + "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Response 4/5xx - max", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": "influx", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 29 + }, + "id": 24, + "panels": [], + "targets": [ + { + "datasource": "influx", + "refId": "A" + } + ], + "title": "External services", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 30 + }, + "hiddenSeries": false, + "id": 10, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - median OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 30 + }, + "hiddenSeries": false, + "id": 11, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.OK.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - 99th percentile OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 30 + }, + "hiddenSeries": false, + "id": 12, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]]", + "datasource": "influx", + "dsType": "influxdb", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - throughput OK", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 15, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p50" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - median FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 16, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", + "datasource": "influx", + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "scenario" + ], + "type": "tag" + }, + { + "params": [ + "serviceName" + ], + "type": "tag" + }, + { + "params": [ + "instanceId" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "service.FAIL.histogram", + "orderByTime": "ASC", + "policy": "default", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "p99" + ], + "type": "field" + }, + { + "params": [], + "type": "max" + } + ] + ], + "tags": [ + { + "key": "env", + "operator": "=~", + "value": "/^$env$/" + }, + { + "condition": "AND", + "key": "scenario", + "operator": "=~", + "value": "/^$scenarioName$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - 99th percentile FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ns", + "label": "", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "influx", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 17, + "interval": "$interval", + "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 + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_scenario - $tag_serviceName", + "datasource": "influx", + "dsType": "influxdb", + "hide": false, + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Services - throughput FAIL", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "rps", + "logBase": 1, + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "30s", + "schemaVersion": 36, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allFormat": "regex wildcard", + "current": { + "selected": true, + "text": [ + "test proxy process for rr" + ], + "value": [ + "test proxy process for rr" + ] + }, + "datasource": "influx", + "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", + "hide": 0, + "includeAll": true, + "multi": true, + "multiFormat": "pipe", + "name": "scenarioName", + "options": [], + "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "influx", + "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "env", + "options": [], + "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30s", + "value": "30s" + }, + "hide": 0, + "name": "interval", + "options": [ + { + "selected": false, + "text": "10s", + "value": "10s" + }, + { + "selected": true, + "text": "30s", + "value": "30s" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "3m", + "value": "3m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "now": true, + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "RequestResponse scenario", + "uid": "nussknacker-request-response-scenario", + "version": 1, + "weekStart": "" + } +--- +# Source: nussknacker/templates/grafana-datasource.yml +apiVersion: v1 +kind: ConfigMap +metadata: + name: "release-name-influx-grafana-datasource" + labels: + grafana_datasource: "influx" +data: + datasource.yaml: |- + apiVersion: 1 + datasources: + - name: influx + type: influxdb + access: proxy + orgId: 1 + url: http://release-name-influxdb:8086 + database: nussknacker + basicAuth: true + isDefault: true + version: 1 + editable: false + basicAuthUser: ${influxdb-user} + secureJsonData: + basicAuthPassword: ${influxdb-password} +--- +# Source: nussknacker/templates/logging-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-logging-conf + labels: + nussknacker.io/resourceType: "logging-conf" + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: +--- +# Source: nussknacker/templates/telegraf-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: telegraf-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +data: + nussknacker.conf: |- + # Flink reporters for Prometheus or InfluxDB are somewhat limited: + # - no possibility of adding own tags + # - no possitility of removing Flink internal tags (like job_id, task_id, etc.) + # - metric name has all tags encoded inside + # NOTE: Prometheus has different field names than e.g. InfluxDB reporter, (count -> gauge, different percentile names, etc.) + + [global_tags] + env = "default" + + #FIXME: handle case where Flink is disabled but telegraf *is* enabled + [[inputs.prometheus]] + urls=[ + "http://release-name-flink-jobmanager-headless:9999/metrics", + "http://release-name-flink-taskmanager:9999/metrics" + ] + + [[processors.rename]] + + [[processors.rename.replace]] + tag = "job_name" + dest = "process" + + [[processors.rename.replace]] + tag = "subtask_index" + dest = "slot" + + #TODO: this is test model specific, figure out way to remove it... + [[processors.rename.replace]] + tag = "originalProcessName" + dest = "process" + + #We remove tag names from measurement names to have more stable measurement names + [[processors.strings]] + [[processors.strings.replace]] + measurement = "*" + old = "taskmanager_job_task_operator_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "flink_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "nodeId_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "serviceName_" + new = "" + + [[processors.strings.replace]] + measurement = "*" + old = "namespace_" + new = "" + [[processors.strings.replace]] + measurement = "*" + old = "originalProcessName_" + new = "" + + [[outputs.influxdb]] + urls = ["http://release-name-influxdb:8086"] + skip_database_creation = true + database = "nussknacker" +--- +# Source: nussknacker/templates/tests/test-scripts.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-test-scripts +data: + main-wrapper.sh: |- + #!/bin/sh + ($*) & + MAIN_PID=$! + echo $MAIN_PID > /var/run/sidecars/main.pid + wait $MAIN_PID + sidecar-wrapper.sh: |- + #!/bin/sh + ($*) & + MAIN_PID=$(until cat /var/run/sidecars/main.pid; do sleep 1; done) + tail --pid $MAIN_PID -f /dev/null +--- +# Source: nussknacker/templates/tests/test-suites.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-nussknacker-test-suites +data: + kafka-only.bats: | + #!/usr/bin/env bats + + : "${NUSSKNACKER_URL:?required environment value not set}" + : "${AUTHORIZATION:?required environment value not set}" + : "${KAFKA_BOOTSTRAP_SERVER:?required environment value not set}" + : "${SCHEMA_REGISTRY_URL:?required environment value not set}" + : "${SCENARIO_TYPE:?required environment value not set}" + + function curl() { + /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" + } + export -f curl + + # timeout command has different syntax in Ubuntu and BusyBox + if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then + function timeout() { + $(which timeout) -t "$@" + } + fi + + function given_a_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local SCHEMA="${2:?required}" + + kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --describe --topic "${TOPIC_FULL_NAME}" || + kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --create --topic "${TOPIC_FULL_NAME}" \ + --partitions 10 --replication-factor 1 + + kafka-consumer-groups --bootstrap-server ${KAFKA_BOOTSTRAP_SERVER} \ + --topic "${TOPIC_FULL_NAME}" \ + --group helm_test --reset-offsets --to-latest --execute + + cat << _END | curl -d @- "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions" + { "schema": "$(echo $SCHEMA | sed -e 's/"/\\"/g')" } + _END + } + + function given_a_proxy_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_OBJECT="${2:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_IMPORT_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') + + curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default + echo ${PROCESS_OBJECT} | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- + + [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) == "RUNNING" ]] && curl -X POST ${PROCESS_CANCEL_URL} + curl -X POST ${PROCESS_DEPLOY_URL} + #on smaller ci envs deployment may last some time... + timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"RUNNING\" ]]; do sleep 1 && echo -n .; done;" || true + echo "Checking after waiting for status..." + local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) + echo "Status is: $STATUS_RESPONSE" + [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] + } + + function when_a_message_has_been_posted_on_the_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local ID=${2:?required} + + local SCHEMA_ID=$(curl "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions/latest" | jq '.id') + + cat << _END | kafka-avro-console-producer \ + --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ + --topic "${TOPIC_FULL_NAME}" \ + --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ + --property "value.schema.id=${SCHEMA_ID}" + { "id": "$ID", "content": "a content", "tags": [] } + _END + } + + function then_the_message_can_be_consumed_from_the_topic() { + local TOPIC_FULL_NAME="${1:?required}" + local ID=${2:?required} + + kafka-avro-console-consumer \ + --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ + --topic "${TOPIC_FULL_NAME}" \ + --group helm_test \ + --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ + --timeout-ms 60000 \ + | (while : ; do + read MSG; + echo $MSG + if [[ -z $MSG ]]; then exit 1; fi; + if echo $MSG | jq -e ".id == \"${ID}\""; then break; fi; + done) + } + + function setup() { + export GROUP=testgroup + export INPUT_TOPIC=inputKafkaOnly + export OUTPUT_TOPIC=outputKafkaOnly + local SCHEMA=$(cat << _END + { + "namespace": "\${GROUP}", + "name": "\${TOPIC}", + "type": "record", + "doc": "This is a sample schema definition", + "fields": [ + { "name": "id", "type": "string", "doc": "Message id" }, + { "name": "content", "type": "string", "doc": "Message content" }, + { "name": "tags", "type": { "type": "array", "items": "string" }, "doc": "Message tags" } + ] + } + _END + ) + local -x PROCESS_NAME="test proxy process for kafka only" + + given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${INPUT_TOPIC} envsubst)" + given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${OUTPUT_TOPIC} envsubst)" + given_a_proxy_process "${PROCESS_NAME}" "$(cat ${BATS_TEST_DIRNAME%/}/testprocess.json | envsubst)" + } + + @test "message should pass through the kafka only proxy process" { + local ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) + when_a_message_has_been_posted_on_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" ${ID} + then_the_message_can_be_consumed_from_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" ${ID} + } + rr-only.bats: | + #!/usr/bin/env bats + + : "${NUSSKNACKER_URL:?required environment value not set}" + : "${AUTHORIZATION:?required environment value not set}" + : "${SCENARIO_TYPE:?required environment value not set}" + + function curl() { + /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" + } + export -f curl + + # timeout command has different syntax in Ubuntu and BusyBox + if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then + function timeout() { + $(which timeout) -t "$@" + } + fi + + function cancel_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') + curl -X POST ${PROCESS_CANCEL_URL} + } + + function wait_for_status() { + local PROCESS_NAME="${1:?required}" + local STATUS="${2:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"$STATUS\" ]]; do sleep 1 && echo -n .; done;" || true + } + + function given_a_proxy_process() { + local PROCESS_NAME="${1:?required}" + local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') + local PROCESS_IMPORT_URL=$( echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') + + curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default + export PROCESS_NAME GROUP INPUT_TOPIC OUTPUT_TOPIC + cat ${BATS_TEST_DIRNAME}/rr-testprocess.json | envsubst | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- + + [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) = RUNNING ]] && cancel_process "$PROCESS_NAME" + curl -X POST ${PROCESS_DEPLOY_URL} + #on smaller ci envs deployment may last some time... + wait_for_status "$PROCESS_NAME" "RUNNING" + echo "Checking after waiting for status..." + local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) + echo "Status is: $STATUS_RESPONSE" + [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] + } + + function setup() { + given_a_proxy_process "test proxy process for rr" + } + + @test "message should pass through the rr proxy process" { + local PROCESS_NAME="test proxy process for rr" + INPUT_MESSAGE='{"productId":10}' + EXPECTED_OUTPUT_MESSAGE='{"productId":20}' + + if [[ $(curl $SCENARIO_URL -d $INPUT_MESSAGE) == $EXPECTED_OUTPUT_MESSAGE ]]; then echo ok; else exit 1; fi + + cancel_process "$PROCESS_NAME" + wait_for_status "$PROCESS_NAME" "CANCELED" + } + rr-testprocess.json: "{\n \"metaData\" : {\n \"id\" : \"test-scenario-for-rr-only\",\n + \ \"typeSpecificData\" : {\n \"slug\" : \"test-scenario-for-rr-only\",\n + \ \"type\" : \"RequestResponseMetaData\"\n },\n \"additionalFields\" : + {\n \"description\" : null,\n \"properties\" : {\n \"inputSchema\" + : \"{\\n \\\"title\\\": \\\"Product\\\",\\n \\\"description\\\": \\\"A product + from Acme's catalog\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": + {\\n \\\"productId\\\": {\\n \\\"description\\\": \\\"The unique identifier + for a product\\\",\\n \\\"type\\\": \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": + [ \\\"productId\\\" ]\\n}\",\n \"outputSchema\" : \"{\\n \\\"title\\\": + \\\"Product\\\",\\n \\\"description\\\": \\\"A product from Acme's catalog\\\",\\n + \ \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"productId\\\": + {\\n \\\"description\\\": \\\"The unique identifier for a product\\\",\\n \\\"type\\\": + \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": [ \\\"productId\\\" ]\\n}\"\n + \ }\n },\n \"subprocessVersions\" : {\n \n }\n },\n \"nodes\" + : [\n {\n \"id\" : \"request\",\n \"ref\" : {\n \"typ\" : \"request\",\n + \ \"parameters\" : [\n ]\n },\n \"additionalFields\" : {\n + \ \"description\" : null,\n \"layoutData\" : {\n \"x\" : 0,\n + \ \"y\" : 0\n }\n },\n \"type\" : \"Source\"\n },\n + \ {\n \"id\" : \"response\",\n \"ref\" : {\n \"typ\" : \"response\",\n + \ \"parameters\" : [\n {\n \"name\" : \"productId\",\n + \ \"expression\" : {\n \"language\" : \"spel\",\n \"expression\" + : \"#input.productId * 2\"\n }\n }\n ]\n },\n \"endResult\" + : null,\n \"isDisabled\" : null,\n \"additionalFields\" : {\n \"description\" + : null,\n \"layoutData\" : {\n \"x\" : 1,\n \"y\" : 180\n + \ }\n },\n \"type\" : \"Sink\"\n }\n ],\n \"additionalBranches\" + : [\n ]\n}\n" + testprocess.json: | + { + "metaData": { + "id": "${PROCESS_NAME}", + "typeSpecificData": { + "parallelism": 1, + "type": "${SCENARIO_TYPE}" + }, + "isSubprocess": false, + "additionalFields": { + "description": null, + "groups": [ + ], + "properties": { + } + }, + "subprocessVersions": { + } + }, + "exceptionHandlerRef": { + "parameters": [ + ] + }, + "nodes": [ + { + "id": "kafka-source", + "ref": { + "typ": "kafka", + "parameters": [ + { + "name": "Topic", + "expression": { + "language": "spel", + "expression": "'${GROUP}.${INPUT_TOPIC}'" + } + }, + { + "name": "Schema version", + "expression": { + "language": "spel", + "expression": "'latest'" + } + } + ] + }, + "additionalFields": { + "description": null, + "layoutData": { + "x": -3, + "y": -90 + } + }, + "type": "Source" + }, + { + "id": "kafka-sink", + "ref": { + "typ": "kafka", + "parameters": [ + { + "name": "Topic", + "expression": { + "language": "spel", + "expression": "'${GROUP}.${OUTPUT_TOPIC}'" + } + }, + { + "name": "Schema version", + "expression": { + "language": "spel", + "expression": "'latest'" + } + }, + { + "name" : "Key", + "expression" : { + "language" : "spel", + "expression" : "" + } + }, + { + "name" : "Raw editor", + "expression" : { + "language" : "spel", + "expression" : "true" + } + }, + { + "name" : "Value validation mode", + "expression" : { + "language" : "spel", + "expression" : "'strict'" + } + }, + { + "name": "Value", + "expression": { + "language": "spel", + "expression": "#input" + } + } + ] + }, + "endResult": null, + "isDisabled": null, + "additionalFields": { + "description": null, + "layoutData": { + "x": 0, + "y": 135 + } + }, + "type": "Sink" + } + ], + "additionalBranches": [ + ] + } +--- +# Source: nussknacker/charts/grafana/templates/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +rules: + - apiGroups: [""] # "" indicates the core API group + resources: ["configmaps", "secrets"] + verbs: ["get", "watch", "list"] +--- +# Source: nussknacker/templates/role.yml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: release-name-nussknacker + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +rules: +- apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: ["apps"] + resources: ["deployments"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["services"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: ["networking.k8s.io"] + resources: ["ingresses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] +- apiGroups: [""] + resources: ["resourcequotas"] + verbs: ["get", "list"] +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list"] +--- +# Source: nussknacker/charts/grafana/templates/rolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: release-name-grafana +subjects: +- kind: ServiceAccount + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +--- +# Source: nussknacker/templates/rolebinding.yml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: release-name-nussknacker + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +subjects: +- kind: ServiceAccount + name: release-name-nussknacker +roleRef: + kind: Role + apiGroup: rbac.authorization.k8s.io + name: release-name-nussknacker +--- +# Source: nussknacker/charts/apicurio-registry/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/flink/templates/jobmanager-headless-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager-headless + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + clusterIP: None + ports: + - port: 6124 + targetPort: blob + protocol: TCP + name: blob + - port: 6123 + targetPort: rpc + protocol: TCP + name: rpc + - port: 8081 + targetPort: ui + protocol: TCP + name: ui + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/jobmanager-rest-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager-rest + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + type: ClusterIP + ports: + - port: 8081 + targetPort: 8081 + protocol: TCP + name: ui + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/jobmanager-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager +spec: + type: ClusterIP + ports: + - port: 6124 + targetPort: blob + protocol: TCP + name: blob + - port: 6123 + targetPort: rpc + protocol: TCP + name: rpc + - port: 8081 + targetPort: ui + protocol: TCP + name: ui + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager +--- +# Source: nussknacker/charts/flink/templates/taskmanager-service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: taskmanager +spec: + type: ClusterIP + ports: + - port: 6122 + targetPort: rpc + protocol: TCP + name: rpc + - port: 9999 + targetPort: metrics + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager +--- +# Source: nussknacker/charts/grafana/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: service + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/influxdb/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: api + port: 8086 + targetPort: api + - name: rpc + port: 8088 + targetPort: rpc + selector: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/kafka/templates/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-kafka-headless + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + type: ClusterIP + clusterIP: None + publishNotReadyAddresses: false + ports: + - name: tcp-client + port: 9092 + protocol: TCP + targetPort: kafka-client + - name: tcp-internal + port: 9094 + protocol: TCP + targetPort: kafka-internal + selector: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka +--- +# Source: nussknacker/charts/kafka/templates/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-client + port: 9092 + protocol: TCP + targetPort: kafka-client + nodePort: null + selector: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka +--- +# Source: nussknacker/charts/postgresql/templates/primary/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-postgresql-hl + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary + # Use this annotation in addition to the actual publishNotReadyAddresses + # field below because the annotation will stop being respected soon but the + # field is broken in some versions of Kubernetes: + # https://github.com/kubernetes/kubernetes/issues/58662 + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + type: ClusterIP + clusterIP: None + # We want all pods in the StatefulSet to have their addresses published for + # the sake of the other Postgresql pods even before they're ready, since they + # have to be able to talk to each other in order to become ready. + publishNotReadyAddresses: true + ports: + - name: tcp-postgresql + port: 5432 + targetPort: tcp-postgresql + selector: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary +--- +# Source: nussknacker/charts/postgresql/templates/primary/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-postgresql + port: 5432 + targetPort: tcp-postgresql + nodePort: null + selector: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary +--- +# Source: nussknacker/charts/telegraf/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.35 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + type: ClusterIP + ports: + - port: 8125 + targetPort: 8125 + protocol: "UDP" + name: "statsd" + selector: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/zookeeper/templates/svc-headless.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-zookeeper-headless + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +spec: + type: ClusterIP + clusterIP: None + publishNotReadyAddresses: true + ports: + - name: tcp-client + port: 2181 + targetPort: client + - name: tcp-follower + port: 2888 + targetPort: follower + - name: tcp-election + port: 3888 + targetPort: election + selector: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper +--- +# Source: nussknacker/charts/zookeeper/templates/svc.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-zookeeper + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper +spec: + type: ClusterIP + sessionAffinity: None + ports: + - name: tcp-client + port: 2181 + targetPort: client + nodePort: null + - name: tcp-follower + port: 2888 + targetPort: follower + - name: tcp-election + port: 3888 + targetPort: election + selector: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper +--- +# Source: nussknacker/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm + annotations: + +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name +--- +# Source: nussknacker/charts/apicurio-registry/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-apicurio-registry + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + template: + metadata: + labels: + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + spec: + serviceAccountName: release-name-apicurio-registry + securityContext: + {} + containers: + - name: apicurio-registry + securityContext: + {} + image: "apicurio/apicurio-registry-kafkasql:2.2.5.Final" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 8080 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + env: + - name: KAFKA_BOOTSTRAP_SERVERS + value: release-name-kafka:9092 + resources: + {} +--- +# Source: nussknacker/charts/flink/templates/taskmanager.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-flink-taskmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: taskmanager + annotations: + "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager + template: + metadata: + labels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: taskmanager + annotations: + spec: + serviceAccountName: release-name-flink-taskmanager + securityContext: + {} + initContainers: + containers: + - name: taskmanager + image: "flink:1.16.0-scala_2.12-java11" + imagePullPolicy: IfNotPresent + workingDir: /opt/flink + command: + - "/bin/bash" + - "-c" + - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && $FLINK_HOME/bin/taskmanager.sh start-foreground;" + env: + - name: JVM_ARGS + value: "-Djava.security.properties=/opt/flink/conf/security.properties" + envFrom: + ports: + - containerPort: 6122 + name: rpc + - containerPort: 9999 + name: metrics + livenessProbe: + tcpSocket: + port: 6122 + initialDelaySeconds: 30 + periodSeconds: 60 + volumeMounts: + - name: flink-config-volume + mountPath: /opt/flink/conf + resources: + limits: + memory: 3Gi + requests: + memory: 2560Mi + + volumes: + - name: flink-config-volume + configMap: + name: release-name-flink-config + items: + - key: flink-conf-taskmanager.yaml + path: flink-conf.yaml + - key: log4j.properties + path: log4j.properties + - key: log4j.properties + path: log4j-console.properties + - key: security.properties + path: security.properties +--- +# Source: nussknacker/charts/grafana/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-grafana + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + strategy: + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + annotations: + checksum/config: d0423afae194a521210c737c6c06b93fcd8cae4bfc3adfaf3a0ef6206a24387a + checksum/dashboards-json-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b + checksum/sc-dashboard-provider-config: 9f45e5a89f6a954007bcbe7d5e03967f0ca25ab7a7980f4ea5fbb457c5ba9330 + checksum/secret: 6a9f6db41eea25c06432a3f4bb1398d409259e212ef8c1e1a9089d5b040f34e8 + kubectl.kubernetes.io/default-container: grafana + spec: + + serviceAccountName: release-name-grafana + automountServiceAccountToken: true + securityContext: + fsGroup: 472 + runAsGroup: 472 + runAsNonRoot: true + runAsUser: 472 + enableServiceLinks: true + containers: + - name: grafana-sc-dashboard + image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" + imagePullPolicy: IfNotPresent + env: + - name: METHOD + value: WATCH + - name: LABEL + value: "grafana_dashboard" + - name: FOLDER + value: "/tmp/dashboards" + - name: RESOURCE + value: "both" + - name: REQ_USERNAME + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: REQ_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: REQ_URL + value: http://localhost:3000/api/admin/provisioning/dashboards/reload + - name: REQ_METHOD + value: POST + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: sc-dashboard-volume + mountPath: "/tmp/dashboards" + - name: grafana-sc-datasources + image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" + imagePullPolicy: IfNotPresent + env: + - name: METHOD + value: WATCH + - name: LABEL + value: "grafana_datasource" + - name: FOLDER + value: "/etc/grafana/provisioning/datasources" + - name: RESOURCE + value: "both" + - name: REQ_USERNAME + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: REQ_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: REQ_URL + value: http://localhost:3000/api/admin/provisioning/datasources/reload + - name: REQ_METHOD + value: POST + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: sc-datasources-volume + mountPath: "/etc/grafana/provisioning/datasources" + - name: grafana + image: "docker.io/grafana/grafana:10.1.5" + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: "/etc/grafana/grafana.ini" + subPath: grafana.ini + - name: storage + mountPath: "/var/lib/grafana" + - name: sc-dashboard-volume + mountPath: "/tmp/dashboards" + - name: sc-dashboard-provider + mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" + subPath: provider.yaml + - name: sc-datasources-volume + mountPath: "/etc/grafana/provisioning/datasources" + ports: + - name: grafana + containerPort: 3000 + protocol: TCP + - name: gossip-tcp + containerPort: 9094 + protocol: TCP + - name: gossip-udp + containerPort: 9094 + protocol: UDP + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: GF_SECURITY_ADMIN_USER + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-user + - name: GF_SECURITY_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-grafana + key: admin-password + - name: GF_PATHS_DATA + value: /var/lib/grafana/ + - name: GF_PATHS_LOGS + value: /var/log/grafana + - name: GF_PATHS_PLUGINS + value: /var/lib/grafana/plugins + - name: GF_PATHS_PROVISIONING + value: /etc/grafana/provisioning + envFrom: + - secretRef: + name: release-name-influxdb-auth + livenessProbe: + failureThreshold: 10 + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 60 + timeoutSeconds: 30 + readinessProbe: + httpGet: + path: /api/health + port: 3000 + volumes: + - name: config + configMap: + name: release-name-grafana + - name: storage + emptyDir: {} + - name: sc-dashboard-volume + emptyDir: + {} + - name: sc-dashboard-provider + configMap: + name: release-name-grafana-config-dashboards + - name: sc-datasources-volume + emptyDir: + {} +--- +# Source: nussknacker/charts/telegraf/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-telegraf + labels: + helm.sh/chart: telegraf-1.8.35 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name + template: + metadata: + labels: + app.kubernetes.io/name: telegraf + app.kubernetes.io/instance: release-name + annotations: + checksum/config: e1e07234c9911620d427e62fe62aad1084bd4686321bc0e1374ea6c7fa68b2c5 + spec: + serviceAccountName: release-name-telegraf + containers: + - name: telegraf + image: "docker.io/library/telegraf:1.28-alpine" + imagePullPolicy: "IfNotPresent" + resources: + {} + args: + - --config-directory + - /etc/telegraf/telegraf.d + env: + - name: HOSTNAME + value: telegraf-polling-service + volumeMounts: + - name: config + mountPath: /etc/telegraf + - mountPath: /etc/telegraf/telegraf.d + name: telegraf-nussknacker + volumes: + - name: config + configMap: + name: release-name-telegraf + - configMap: + name: telegraf-nussknacker + name: telegraf-nussknacker +--- +# Source: nussknacker/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + template: + metadata: + annotations: + checksum/config: 1b7022c6d68275314b51adda70dfe570ed9aa620f5f416410b3a502f0fc672b8 + labels: + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + spec: + imagePullSecrets: + - name: gitlab-registry + serviceAccountName: release-name-nussknacker + securityContext: + fsGroup: 1001 + containers: + - name: nussknacker + securityContext: + runAsUser: 1001 + image: "touk/nussknacker:staging-latest" + imagePullPolicy: Always + volumeMounts: + - name: config + mountPath: /etc/nussknacker + - name: logging-config + mountPath: /etc/logging + env: + - name: JDK_JAVA_OPTIONS + value: + - name: CONFIG_FILE + value: /etc/nussknacker/application.conf + - name: HELM_RELEASE_NAME + value: release-name + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: 'release-name-postgresql' + key: postgres-password + - name: INFLUXDB_PASSWORD + valueFrom: + secretKeyRef: + name: 'release-name-influxdb-auth' + key: influxdb-password + - name: INFLUXDB_USER + valueFrom: + secretKeyRef: + name: 'release-name-influxdb-auth' + key: influxdb-user + - name: NUSSKNACKER_LOG_LEVEL + value: DEBUG + ports: + - name: http + containerPort: 8080 + protocol: TCP + + livenessProbe: + httpGet: + path: / + port: http + periodSeconds: 5 + failureThreshold: 3 + timeoutSeconds: 5 + startupProbe: + httpGet: + path: / + port: http + periodSeconds: 3 + failureThreshold: 40 + timeoutSeconds: 5 + resources: + limits: + memory: 1Gi + requests: + memory: 512Mi + volumes: + - name: config + configMap: + name: release-name-nussknacker + - name: logging-config + configMap: + name: release-name-nussknacker-logging-conf + - name: storage + emptyDir: {} +--- +# Source: nussknacker/charts/flink/templates/jobmanager.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-flink-jobmanager + labels: + app.kubernetes.io/name: flink + helm.sh/chart: flink-0.2.0 + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.2" + app.kubernetes.io/managed-by: Helm + component: jobmanager + annotations: +spec: + replicas: 1 + podManagementPolicy: Parallel + selector: + matchLabels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager + serviceName: release-name-flink-jobmanager-headless + template: + metadata: + labels: + app.kubernetes.io/name: flink + app.kubernetes.io/instance: release-name + component: jobmanager + annotations: + spec: + serviceAccountName: release-name-flink-jobmanager + securityContext: + {} + initContainers: + containers: + - name: jobmanager + image: "flink:1.16.0-scala_2.12-java11" + imagePullPolicy: IfNotPresent + workingDir: /opt/flink + command: + - "/bin/bash" + - "-c" + - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && cp $FLINK_HOME/conf/flink-conf.yaml.tpl $FLINK_HOME/conf/flink-conf.yaml && $FLINK_HOME/bin/jobmanager.sh start-foreground;" + env: + - name: JVM_ARGS + value: "-Djava.security.properties=/opt/flink/conf/security.properties" + - name: FLINK_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + ports: + - containerPort: 6124 + name: blob + - containerPort: 6123 + name: rpc + - containerPort: 8081 + name: ui + - containerPort: 9999 + name: metrics + readinessProbe: + tcpSocket: + port: 6123 + periodSeconds: 10 + initialDelaySeconds: 20 + livenessProbe: + tcpSocket: + port: 6124 + initialDelaySeconds: 10 + periodSeconds: 15 + volumeMounts: + - name: flink-config-volume + mountPath: /opt/flink/conf/flink-conf.yaml.tpl + subPath: flink-conf.yaml.tpl + - name: flink-config-volume + mountPath: /opt/flink/conf/log4j.properties + subPath: log4j.properties + - name: flink-config-volume + mountPath: /opt/flink/conf/log4j-console.properties + subPath: log4j.properties + - name: flink-config-volume + mountPath: /opt/flink/conf/security.properties + subPath: security.properties + resources: + {} + + volumes: + - name: flink-config-volume + configMap: + name: release-name-flink-config + items: + - key: flink-conf.yaml + path: flink-conf.yaml.tpl + - key: log4j.properties + path: log4j.properties + - key: security.properties + path: security.properties +--- +# Source: nussknacker/charts/influxdb/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-influxdb + labels: + helm.sh/chart: influxdb-4.12.5 + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.8.10" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + serviceName: "release-name-influxdb" + template: + metadata: + labels: + app.kubernetes.io/name: influxdb + app.kubernetes.io/instance: release-name + spec: + serviceAccountName: release-name-influxdb + containers: + - name: release-name-influxdb + image: "influxdb:1.8.10" + imagePullPolicy: "IfNotPresent" + ports: + - name: api + containerPort: 8086 + - name: rpc + containerPort: 8088 + env: + - name: INFLUXDB_DB + value: nussknacker + - name: INFLUXDB_ADMIN_USER + valueFrom: + secretKeyRef: + name: release-name-influxdb-auth + key: influxdb-user + - name: INFLUXDB_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-influxdb-auth + key: influxdb-password + livenessProbe: + httpGet: + path: /ping + port: api + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /ping + port: api + scheme: HTTP + initialDelaySeconds: 5 + timeoutSeconds: 1 + volumeMounts: + - name: release-name-influxdb-data + mountPath: /var/lib/influxdb + - name: config + mountPath: /etc/influxdb + volumes: + - name: config + configMap: + name: release-name-influxdb + # Cannot use existing claim in enterprise mode + # Must use volume claim template in enterprise mode + volumeClaimTemplates: + - metadata: + name: release-name-influxdb-data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/kafka/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-kafka + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka + serviceName: release-name-kafka-headless + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: kafka + helm.sh/chart: kafka-22.1.6 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: kafka + annotations: + spec: + + hostNetwork: false + hostIPC: false + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: kafka + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: kafka + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + serviceAccountName: release-name-kafka + containers: + - name: kafka + image: docker.io/bitnami/kafka:3.4.1-debian-11-r0 + imagePullPolicy: "IfNotPresent" + securityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + command: + - /scripts/setup.sh + env: + - name: BITNAMI_DEBUG + value: "false" + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KAFKA_CFG_ZOOKEEPER_CONNECT + value: release-name-zookeeper:2181 + - name: KAFKA_INTER_BROKER_LISTENER_NAME + value: "INTERNAL" + - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP + value: "INTERNAL:PLAINTEXT,CLIENT:PLAINTEXT" + - name: KAFKA_CFG_LISTENERS + value: "INTERNAL://:9094,CLIENT://:9092" + - name: KAFKA_CFG_ADVERTISED_LISTENERS + value: "INTERNAL://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9094,CLIENT://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9092" + - name: ALLOW_PLAINTEXT_LISTENER + value: "yes" + - name: KAFKA_ZOOKEEPER_PROTOCOL + value: PLAINTEXT + - name: KAFKA_VOLUME_DIR + value: "/bitnami/kafka" + - name: KAFKA_LOG_DIR + value: "/opt/bitnami/kafka/logs" + - name: KAFKA_CFG_DELETE_TOPIC_ENABLE + value: "false" + - name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE + value: "true" + - name: KAFKA_HEAP_OPTS + value: "-Xmx1024m -Xms1024m" + - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MESSAGES + value: "10000" + - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MS + value: "1000" + - name: KAFKA_CFG_LOG_RETENTION_BYTES + value: "1073741824" + - name: KAFKA_CFG_LOG_RETENTION_CHECK_INTERVAL_MS + value: "300000" + - name: KAFKA_CFG_LOG_RETENTION_HOURS + value: "168" + - name: KAFKA_CFG_MESSAGE_MAX_BYTES + value: "1000012" + - name: KAFKA_CFG_LOG_SEGMENT_BYTES + value: "1073741824" + - name: KAFKA_CFG_LOG_DIRS + value: "/bitnami/kafka/data" + - name: KAFKA_CFG_DEFAULT_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR + value: "1" + - name: KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR + value: "1" + - name: KAFKA_CFG_NUM_IO_THREADS + value: "8" + - name: KAFKA_CFG_NUM_NETWORK_THREADS + value: "3" + - name: KAFKA_CFG_NUM_PARTITIONS + value: "1" + - name: KAFKA_CFG_NUM_RECOVERY_THREADS_PER_DATA_DIR + value: "1" + - name: KAFKA_CFG_SOCKET_RECEIVE_BUFFER_BYTES + value: "102400" + - name: KAFKA_CFG_SOCKET_REQUEST_MAX_BYTES + value: "104857600" + - name: KAFKA_CFG_SOCKET_SEND_BUFFER_BYTES + value: "102400" + - name: KAFKA_CFG_ZOOKEEPER_CONNECTION_TIMEOUT_MS + value: "6000" + - name: KAFKA_CFG_AUTHORIZER_CLASS_NAME + value: "" + - name: KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND + value: "true" + - name: KAFKA_CFG_SUPER_USERS + value: "User:admin" + - name: KAFKA_ENABLE_KRAFT + value: "false" + ports: + - name: kafka-client + containerPort: 9092 + - name: kafka-internal + containerPort: 9094 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + tcpSocket: + port: kafka-client + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + tcpSocket: + port: kafka-client + resources: + limits: {} + requests: {} + volumeMounts: + - name: data + mountPath: /bitnami/kafka + - name: logs + mountPath: /opt/bitnami/kafka/logs + - name: scripts + mountPath: /scripts/setup.sh + subPath: setup.sh + volumes: + - name: scripts + configMap: + name: release-name-kafka-scripts + defaultMode: 0755 + - name: logs + emptyDir: {} + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/postgresql/templates/primary/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-postgresql + namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary +spec: + replicas: 1 + serviceName: release-name-postgresql-hl + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary + template: + metadata: + name: release-name-postgresql + labels: + app.kubernetes.io/name: postgresql + helm.sh/chart: postgresql-12.1.15 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: primary + spec: + serviceAccountName: default + + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: postgresql + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: primary + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + hostNetwork: false + hostIPC: false + initContainers: + - name: init-chmod-data + image: docker.io/bitnami/bitnami-shell:11-debian-11-r81 + imagePullPolicy: "IfNotPresent" + resources: + limits: {} + requests: {} + command: + - /bin/sh + - -ec + - | + chown 1001:1001 /bitnami/postgresql + mkdir -p /bitnami/postgresql/data + chmod 700 /bitnami/postgresql/data + find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \ + xargs -r chown -R 1001:1001 + chmod -R 777 /dev/shm + securityContext: + runAsUser: 0 + volumeMounts: + - name: data + mountPath: /bitnami/postgresql + - name: dshm + mountPath: /dev/shm + containers: + - name: postgresql + image: docker.io/bitnami/postgresql:15.2.0-debian-11-r0 + imagePullPolicy: "IfNotPresent" + securityContext: + runAsUser: 1001 + env: + - name: BITNAMI_DEBUG + value: "false" + - name: POSTGRESQL_PORT_NUMBER + value: "5432" + - name: POSTGRESQL_VOLUME_DIR + value: "/bitnami/postgresql" + - name: PGDATA + value: "/bitnami/postgresql/data" + # Authentication + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: release-name-postgresql + key: postgres-password + # Replication + # Initdb + # Standby + # LDAP + - name: POSTGRESQL_ENABLE_LDAP + value: "no" + # TLS + - name: POSTGRESQL_ENABLE_TLS + value: "no" + # Audit + - name: POSTGRESQL_LOG_HOSTNAME + value: "false" + - name: POSTGRESQL_LOG_CONNECTIONS + value: "false" + - name: POSTGRESQL_LOG_DISCONNECTIONS + value: "false" + - name: POSTGRESQL_PGAUDIT_LOG_CATALOG + value: "off" + # Others + - name: POSTGRESQL_CLIENT_MIN_MESSAGES + value: "error" + - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES + value: "pgaudit" + ports: + - name: tcp-postgresql + containerPort: 5432 + livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: + - /bin/sh + - -c + - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: + - /bin/sh + - -c + - -e + + - | + exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 + [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] + resources: + limits: {} + requests: + cpu: 250m + memory: 256Mi + volumeMounts: + - name: dshm + mountPath: /dev/shm + - name: data + mountPath: /bitnami/postgresql + volumes: + - name: dshm + emptyDir: + medium: Memory + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/charts/zookeeper/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: release-name-zookeeper + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper + role: zookeeper +spec: + replicas: 1 + podManagementPolicy: Parallel + selector: + matchLabels: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper + serviceName: release-name-zookeeper-headless + updateStrategy: + rollingUpdate: {} + type: RollingUpdate + template: + metadata: + annotations: + labels: + app.kubernetes.io/name: zookeeper + helm.sh/chart: zookeeper-11.0.3 + app.kubernetes.io/instance: release-name + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: zookeeper + spec: + serviceAccountName: default + + affinity: + podAffinity: + + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/name: zookeeper + app.kubernetes.io/instance: release-name + app.kubernetes.io/component: zookeeper + topologyKey: kubernetes.io/hostname + weight: 1 + nodeAffinity: + + securityContext: + fsGroup: 1001 + initContainers: + containers: + - name: zookeeper + image: docker.io/bitnami/zookeeper:3.8.0-debian-11-r74 + imagePullPolicy: "IfNotPresent" + securityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1001 + command: + - /scripts/setup.sh + resources: + limits: {} + requests: + cpu: 250m + memory: 256Mi + env: + - name: BITNAMI_DEBUG + value: "false" + - name: ZOO_DATA_LOG_DIR + value: "" + - name: ZOO_PORT_NUMBER + value: "2181" + - name: ZOO_TICK_TIME + value: "2000" + - name: ZOO_INIT_LIMIT + value: "10" + - name: ZOO_SYNC_LIMIT + value: "5" + - name: ZOO_PRE_ALLOC_SIZE + value: "65536" + - name: ZOO_SNAPCOUNT + value: "100000" + - name: ZOO_MAX_CLIENT_CNXNS + value: "60" + - name: ZOO_4LW_COMMANDS_WHITELIST + value: "srvr, mntr, ruok" + - name: ZOO_LISTEN_ALLIPS_ENABLED + value: "no" + - name: ZOO_AUTOPURGE_INTERVAL + value: "0" + - name: ZOO_AUTOPURGE_RETAIN_COUNT + value: "3" + - name: ZOO_MAX_SESSION_TIMEOUT + value: "40000" + - name: ZOO_SERVERS + value: release-name-zookeeper-0.release-name-zookeeper-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:2888:3888::1 + - name: ZOO_ENABLE_AUTH + value: "no" + - name: ZOO_ENABLE_QUORUM_AUTH + value: "no" + - name: ZOO_HEAP_SIZE + value: "1024" + - name: ZOO_LOG_LEVEL + value: "ERROR" + - name: ALLOW_ANONYMOUS_LOGIN + value: "yes" + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + ports: + - name: client + containerPort: 2181 + - name: follower + containerPort: 2888 + - name: election + containerPort: 3888 + livenessProbe: + failureThreshold: 6 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] + readinessProbe: + failureThreshold: 6 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + exec: + command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] + volumeMounts: + - name: scripts + mountPath: /scripts/setup.sh + subPath: setup.sh + - name: data + mountPath: /bitnami/zookeeper + volumes: + - name: scripts + configMap: + name: release-name-zookeeper-scripts + defaultMode: 0755 + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "8Gi" +--- +# Source: nussknacker/templates/ingress.yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: release-name-nussknacker + labels: + helm.sh/chart: nussknacker-1.11.1-SNAPSHOT + app.kubernetes.io/name: nussknacker + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "1.11.3" + app.kubernetes.io/managed-by: Helm + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + rules: + - http: + paths: + - path: /grafana + pathType: Prefix + backend: + service: + name: release-name-grafana + port: + number: 80 + - path: / + pathType: Prefix + backend: + service: + name: release-name-nussknacker + port: + number: 80 +--- +# Source: nussknacker/templates/extra-deploy.yaml +# Pattern from bitnami +--- +# Source: nussknacker/charts/grafana/templates/tests/test-serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm + name: release-name-grafana-test + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" +--- +# Source: nussknacker/charts/grafana/templates/tests/test-configmap.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: release-name-grafana-test + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm +data: + run.sh: |- + @test "Test Health" { + url="http://release-name-grafana/api/health" + + code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}') + [ "$code" == "200" ] + } +--- +# Source: nussknacker/charts/apicurio-registry/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "release-name-apicurio-registry-test-connection" + labels: + helm.sh/chart: apicurio-registry-0.1.5 + app.kubernetes.io/name: apicurio-registry + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "2.2.5.Final" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['release-name-apicurio-registry:80'] + restartPolicy: Never +--- +# Source: nussknacker/charts/grafana/templates/tests/test.yaml +apiVersion: v1 +kind: Pod +metadata: + name: release-name-grafana-test + labels: + helm.sh/chart: grafana-6.60.6 + app.kubernetes.io/name: grafana + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: "10.1.5" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test-success + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" + namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c +spec: + serviceAccountName: release-name-grafana-test + containers: + - name: release-name-test + image: "docker.io/bats/bats:v1.4.1" + imagePullPolicy: "IfNotPresent" + command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"] + volumeMounts: + - mountPath: /tests + name: tests + readOnly: true + volumes: + - name: tests + configMap: + name: release-name-grafana-test + restartPolicy: Never +--- +# Source: nussknacker/templates/tests/test-job.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: "release-name-nussknacker-test-job" + annotations: + "helm.sh/hook": test +spec: + activeDeadlineSeconds: 600 + backoffLimit: 0 + template: + spec: + imagePullSecrets: + - name: gitlab-registry + shareProcessNamespace: true + containers: + - name: test-job + image: touk/kafka-bats + imagePullPolicy: Always + command: + - /main-wrapper.sh + - /usr/local/bin/bats + args: + - -t + - //suites/kafka-only.bats + env: + - name: NUSSKNACKER_URL + value: "http://release-name-nussknacker:80" + - name: AUTHORIZATION + value: "Basic YWRtaW46YWRtaW4=" + - name: KAFKA_NAMESPACE + value: release-name + - name: KAFKA_BOOTSTRAP_SERVER + value: "release-name-kafka:9092" + - name: SCENARIO_TYPE + value: "StreamMetaData" + - name: SCHEMA_REGISTRY_URL + value: "http://release-name-apicurio-registry:80/apis/ccompat/v6/" + volumeMounts: + - name: suites + mountPath: /suites + - name: scripts + mountPath: /main-wrapper.sh + subPath: main-wrapper.sh + - name: pids + mountPath: /var/run/sidecars + restartPolicy: Never + volumes: + - name: pids + emptyDir: {} + - name: suites + configMap: + name: release-name-nussknacker-test-suites + - name: scripts + configMap: + name: release-name-nussknacker-test-scripts + defaultMode: 0755 diff --git a/src/values.yaml b/src/values.yaml index 8988bf4e..b8a7f13d 100644 --- a/src/values.yaml +++ b/src/values.yaml @@ -4,6 +4,17 @@ replicaCount: 1 +global: + kafka: + name: kafka + port: 9092 + zookeeper: &zookeeper_ports_config + ports: + client: 2181 + schemaRegistry: + name: apicurio-registry + path: /apis/ccompat/v6/ + image: repository: touk/nussknacker # By default, the tag is taken from the chart's appVersion, but you can override it with this property. @@ -166,9 +177,9 @@ postgresql: zookeeper: enabled: true - service: - ports: - client: 2181 + +zookeeper-external: + service: *zookeeper_ports_config kafka: enabled: true @@ -180,7 +191,7 @@ kafka: enabled: false externalZookeeper: servers: - - "{{ .Release.Name }}-zookeeper:2181" + - "{{ .Release.Name }}-zookeeper:{{ .Values.global.zookeeper.ports.client }}" apicurio-registry: enabled: true @@ -270,14 +281,6 @@ telegraf: #We suppress default influxDB configuration from chart, as we cannot easily template influxdb url outputs: [] -global: - kafka: - name: kafka - port: 9092 - schemaRegistry: - name: apicurio-registry - path: /apis/ccompat/v6/ - nussknackerInitContainers: [ ] #Extra resources to deploy From 9fc98138bbd8a86214cdd697e73119fb88a36904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 11:50:08 +0200 Subject: [PATCH 31/53] test --- src/Chart.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Chart.yaml b/src/Chart.yaml index a482b8dc..d1ef79b0 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -25,6 +25,7 @@ dependencies: version: ~11.0.3 repository: "@bitnami" condition: zookeeper.enabled + alias: zookeeper-external - name: apicurio-registry repository: "@touk" version: ~0.1.5 From 9f65914d172bfd4199ad85166dafa1973cc4a360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Tue, 17 Oct 2023 11:51:56 +0200 Subject: [PATCH 32/53] test --- src/Chart.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Chart.lock b/src/Chart.lock index e7505b89..b75dea05 100644 --- a/src/Chart.lock +++ b/src/Chart.lock @@ -16,12 +16,12 @@ dependencies: version: 0.2.0 - name: grafana repository: https://grafana.github.io/helm-charts - version: 6.59.4 + version: 6.60.6 - name: influxdb repository: https://helm.influxdata.com/ version: 4.12.5 - name: telegraf repository: https://helm.influxdata.com/ - version: 1.8.34 -digest: sha256:a4235f4aca5b0785f910bc33cb813604cab949729753b88fb095814524fe269c -generated: "2023-09-13T10:29:02.122496096+02:00" + version: 1.8.35 +digest: sha256:05f1bc522e61aa06cb7d70732143ffabf828169aa93b61cc494992f044952203 +generated: "2023-10-17T11:51:34.229055+02:00" From b7635975cd7bcd06e6a89e240fcd7dba3617e6bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 07:34:17 +0200 Subject: [PATCH 33/53] test --- out_3.13 | 11397 ---------------------------------------------- src/Chart.lock | 6 +- src/Chart.yaml | 1 - src/values.yaml | 2 - 4 files changed, 3 insertions(+), 11403 deletions(-) delete mode 100644 out_3.13 diff --git a/out_3.13 b/out_3.13 deleted file mode 100644 index 93d49868..00000000 --- a/out_3.13 +++ /dev/null @@ -1,11397 +0,0 @@ ---- -# Source: nussknacker/charts/telegraf/templates/pdb.yaml -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.35 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - minAvailable: 1 - selector: - matchLabels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/apicurio-registry/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/flink/templates/serviceaccounts.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/grafana/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c ---- -# Source: nussknacker/charts/influxdb/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/kafka/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka - annotations: -automountServiceAccountToken: true ---- -# Source: nussknacker/charts/telegraf/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.35 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: release-name-nussknacker - labels: - - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm ---- -# Source: nussknacker/charts/grafana/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -type: Opaque -data: - admin-user: "YWRtaW4=" - admin-password: "YWRtaW4=" - ldap-toml: "" ---- -# Source: nussknacker/charts/influxdb/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-influxdb-auth - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -data: - influxdb-password: "Y2hhbmdlbWU=" - influxdb-user: "bnVzc2tuYWNrZXI=" ---- -# Source: nussknacker/charts/postgresql/templates/secrets.yaml -apiVersion: v1 -kind: Secret -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm -type: Opaque -data: - postgres-password: "MXRCQUZJOEwwaw==" - # We don't auto-generate LDAP password when it's not provided as we do for other passwords ---- -# Source: nussknacker/charts/flink/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-flink-config - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm -data: - flink-conf.yaml: |+ - taskmanager.numberOfTaskSlots: 4 - blob.server.port: 6124 - taskmanager.rpc.port: 6122 - jobmanager.heap.size: 1g - taskmanager.memory.process.size: 1g - metrics.reporters: prom - metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter - metrics.reporter.prom.port: 9999 - jobmanager.rpc.address: release-name-flink-jobmanager - jobmanager.rpc.port: 6123 - metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory - flink-conf-taskmanager.yaml: |+ - taskmanager.numberOfTaskSlots: 4 - blob.server.port: 6124 - taskmanager.rpc.port: 6122 - jobmanager.heap.size: 1g - taskmanager.memory.process.size: 1g - metrics.reporters: prom - metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter - metrics.reporter.prom.port: 9999 - jobmanager.rpc.address: release-name-flink-jobmanager - jobmanager.rpc.port: 6123 - metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory - log4j.properties: |+ - # This affects logging for both user code and Flink - rootLogger.level = INFO - rootLogger.appenderRef.console.ref = ConsoleAppender - rootLogger.appenderRef.rolling.ref = RollingFileAppender - - # Uncomment this if you want to _only_ change Flink's logging - #logger.flink.name = org.apache.flink - #logger.flink.level = INFO - - # The following lines keep the log level of common libraries/connectors on - # log level INFO. The root logger does not override this. You have to manually - # change the log levels here. - logger.akka.name = akka - logger.akka.level = INFO - logger.kafka.name= org.apache.kafka - logger.kafka.level = INFO - logger.hadoop.name = org.apache.hadoop - logger.hadoop.level = INFO - logger.zookeeper.name = org.apache.zookeeper - logger.zookeeper.level = INFO - - # Log all infos to the console - appender.console.name = ConsoleAppender - appender.console.type = CONSOLE - appender.console.layout.type = PatternLayout - appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n - - # Log all infos in the given rolling file - appender.rolling.name = RollingFileAppender - appender.rolling.type = RollingFile - appender.rolling.append = false - appender.rolling.fileName = ${sys:log.file} - appender.rolling.filePattern = ${sys:log.file}.%i - appender.rolling.layout.type = PatternLayout - appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n - appender.rolling.policies.type = Policies - appender.rolling.policies.size.type = SizeBasedTriggeringPolicy - appender.rolling.policies.size.size=100MB - appender.rolling.strategy.type = DefaultRolloverStrategy - appender.rolling.strategy.max = 10 - - # Suppress the irrelevant (wrong) warnings from the Netty channel handler - logger.netty.name = org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline - logger.netty.level = OFF - - - security.properties: - # The java-level namelookup cache policy for successful lookups - networkaddress.cache.ttl=30 ---- -# Source: nussknacker/charts/grafana/templates/configmap-dashboard-provider.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana-config-dashboards - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -data: - provider.yaml: |- - apiVersion: 1 - providers: - - name: 'sidecarProvider' - orgId: 1 - folder: '' - type: file - disableDeletion: false - allowUiUpdates: false - updateIntervalSeconds: 30 - options: - foldersFromFilesStructure: false - path: /tmp/dashboards ---- -# Source: nussknacker/charts/grafana/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -data: - grafana.ini: | - [analytics] - check_for_updates = true - [auth.anonymous] - enabled = true - [grafana_net] - url = https://grafana.net - [log] - mode = console - [paths] - data = /var/lib/grafana/ - logs = /var/log/grafana - plugins = /var/lib/grafana/plugins - provisioning = /etc/grafana/provisioning - [security] - allow_embedding = true - [server] - domain = '' - root_url = %(protocol)s://%(domain)s/grafana - serve_from_sub_path = true ---- -# Source: nussknacker/charts/influxdb/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -data: - influxdb.conf: |+ - reporting-disabled = false - bind-address = ":8088" - - [meta] - dir = "/var/lib/influxdb/meta" - - [data] - dir = "/var/lib/influxdb/data" - wal-dir = "/var/lib/influxdb/wal" - - [coordinator] - - [retention] - - [shard-precreation] - - [monitor] - - [subscriber] - - [http] - auth-enabled = true - bind-address = ":8086" - enabled = true - flux-enabled = true - - # TODO: allow multiple graphite listeners - - [[graphite]] - - # TODO: allow multiple collectd listeners with templates - - [[collectd]] - - # TODO: allow multiple opentsdb listeners with templates - - [[opentsdb]] - - # TODO: allow multiple udp listeners with templates - - [[udp]] - - [continuous_queries] - - [logging] ---- -# Source: nussknacker/charts/kafka/templates/scripts-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-kafka-scripts - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm -data: - setup.sh: |- - #!/bin/bash - - ID="${MY_POD_NAME#"release-name-kafka-"}" - # If process.roles is not set at all, it is assumed to be in ZooKeeper mode. - # https://kafka.apache.org/documentation/#kraft_role - - if [[ -f "/bitnami/kafka/data/meta.properties" ]]; then - if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then - export KAFKA_CFG_BROKER_ID="$(grep "broker.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" - else - export KAFKA_CFG_NODE_ID="$(grep "node.id" "/bitnami/kafka/data/meta.properties" | awk -F '=' '{print $2}')" - fi - else - if [[ $KAFKA_CFG_PROCESS_ROLES == "" ]]; then - export KAFKA_CFG_BROKER_ID="$((ID + 0))" - else - export KAFKA_CFG_NODE_ID="$((ID + 0))" - fi - fi - - if [[ $KAFKA_CFG_PROCESS_ROLES == *"controller"* && -z $KAFKA_CFG_CONTROLLER_QUORUM_VOTERS ]]; then - node_id=0 - pod_id=0 - while : - do - VOTERS="${VOTERS}$node_id@release-name-kafka-$pod_id.release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9093" - node_id=$(( $node_id + 1 )) - pod_id=$(( $pod_id + 1 )) - if [[ $pod_id -ge 1 ]]; then - break - else - VOTERS="$VOTERS," - fi - done - export KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=$VOTERS - fi - - # Configure zookeeper client - - exec /entrypoint.sh /run.sh ---- -# Source: nussknacker/charts/telegraf/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.35 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -data: - telegraf.conf: |+ - - [agent] - collection_jitter = "0s" - debug = false - flush_interval = "10s" - flush_jitter = "0s" - hostname = "$HOSTNAME" - interval = "10s" - logfile = "" - metric_batch_size = 1000 - metric_buffer_limit = 10000 - omit_hostname = false - precision = "" - quiet = false - round_interval = true - [[processors.enum]] - [[processors.enum.mapping]] - dest = "status_code" - field = "status" - [processors.enum.mapping.value_mappings] - critical = 3 - healthy = 1 - problem = 2 - - - - [[inputs.statsd]] - allowed_pending_messages = 10000 - metric_separator = "_" - percentile_limit = 1000 - percentiles = [ - 50.0, - 95.0, - 99.0 - ] - service_address = ":8125" - - [[inputs.internal]] - collect_memstats = false ---- -# Source: nussknacker/charts/zookeeper/templates/scripts-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-zookeeper-scripts - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -data: - init-certs.sh: |- - #!/bin/bash - setup.sh: |- - #!/bin/bash - - # Execute entrypoint as usual after obtaining ZOO_SERVER_ID - # check ZOO_SERVER_ID in persistent volume via myid - # if not present, set based on POD hostname - if [[ -f "/bitnami/zookeeper/data/myid" ]]; then - export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)" - else - HOSTNAME="$(hostname -s)" - if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then - ORD=${BASH_REMATCH[2]} - export ZOO_SERVER_ID="$((ORD + 1 ))" - else - echo "Failed to get index from hostname $HOST" - exit 1 - fi - fi - exec /entrypoint.sh /run.sh ---- -# Source: nussknacker/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: - application.conf: |- - db: {"driver":"org.postgresql.Driver","schema":"public","url":"jdbc:postgresql://release-name-postgresql/","user":"postgres"} - db.password: ${?DB_PASSWORD} - - scenarioTypes { - "default": { - deploymentConfig: { - type: "flinkStreaming" - restUrl: "http://release-name-flink-jobmanager-rest:8081" - queryableStateProxyUrl: "release-name-flink-taskmanager:6122" - } {"jobManagerTimeout":"1m"} - - modelConfig: { - classPath: ["model/defaultModel.jar", "model/flinkExecutor.jar", "components/flink", "components/common"] - components.kafka.config { - kafkaProperties { - "bootstrap.servers": "release-name-kafka:9092" - "schema.registry.url": "http://release-name-apicurio-registry:80/apis/ccompat/v6/" - } - } - rocksDB { - enable: true - } - }{"components":{"openAPI":{"url":"https://app.swaggerhub.com/apiproxy/registry/TKJ/CurrencyConverter/FINAL"}},"namespace":"release-name"} - } - } - countsSettings: { - "user": ${INFLUXDB_USER} - "password": ${INFLUXDB_PASSWORD} - "influxUrl": "http://release-name-influxdb:8086/query" - "database": "nussknacker" - metricsConfig: { "countField": "gauge"}} - metricsSettings: { - url: "/grafana/d/$dashboard?theme=dark&var-scenarioName=$scenarioName&var-env="${environment} - defaultDashboard: "nussknacker-scenario" - } - - tabs: ${tabs}[] - - usageStatisticsReports { - enabled:false - fingerprint: "" - source: "helmchart" - } - categoriesConfig: {"Default":"default"} - environment: "default" - environmentAlert: {"color":"indicator-green","content":"default"} ---- -# Source: nussknacker/templates/grafana-dashboard.yml -apiVersion: v1 -kind: ConfigMap -metadata: - name: "release-name-nussknacker-grafana-dashboard" - labels: - grafana_dashboard: "nussknacker" -data: - dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": 1, - "iteration": 1631534794448, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "source.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"source_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Source throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "end.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Events that passed whole scenario /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 5, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "dead_end.instantRate", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"dead_end_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Rejected events /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "error.instantRateByNode.count.count", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"gauge\"), 1s) AS value\n FROM \"error_instantRateByNode_count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, slot\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 15 - }, - "hiddenSeries": false, - "id": 9, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - } - ], - "measurement": "records_lag_max", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"gauge\") FROM \"records_lag_max\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(none)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Max lag among Kafka source partitions (events)", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 8, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT min(\"min\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "min" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - minimum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 22 - }, - "hiddenSeries": false, - "id": 6, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"0.5\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 12, - "y": 22 - }, - "hiddenSeries": false, - "id": 7, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "max" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - maximum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 22 - }, - "hiddenSeries": false, - "id": 13, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay_minimalDelay", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT min(\"gauge\") FROM \"eventtimedelay_histogram\" WHERE \"host\" =~ /$hosts$/ AND \"scenario\" =~ /$scenarioName$/ AND $timeFilter GROUP BY time($interval), \"scenario\" fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Time from latest event", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_OK_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.5\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_OK_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.99\") FROM \"service_OK_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "action" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "serviceInstant.OK", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_OK_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_FAIL_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.5\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.5" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (slot [[tag_slot]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service_FAIL_histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"0.99\") FROM \"service_FAIL_histogram\" WHERE \"scenario\" =~ /$scenarioName$/ AND \"env\" =~ /^$env$/ AND $timeFilter GROUP BY time($__interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "0.99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "action" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "serviceInstant.FAIL", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(gauge)\n FROM \"service_FAIL_instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, slot\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - }, - { - "condition": "AND", - "key": "env", - "operator": "=~", - "value": "/^$env$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "External services", - "type": "row" - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 22, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 45 - }, - "hiddenSeries": false, - "id": 19, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.cur-size-all-mem-tables/", - "orderByTime": "ASC", - "policy": "default", - "query": "\nSELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.cur-size-all-mem-tables/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB cur-size-all-mem-tables", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates of RocksDB state size. Aggregates (such as session windows) can have many internal states, which are reported separately. ", - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 45 - }, - "hiddenSeries": false, - "id": 39, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.cur-size-all-mem-tables/", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-live-data-size/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB estimate-live-data-size", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "description": "Estimates on number of keys in RocksDB state. Aggregates (e.g. session windows) can have many internal states. Please remember that this is only estimate, based on internal RocksDB metrics", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 45 - }, - "hiddenSeries": false, - "id": 20, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_operator_name]] ($0)", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "operator_name" - ], - "type": "tag" - }, - { - "params": [ - "slot" - ], - "type": "tag" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "/^.*.estimate-num-keys/", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"value\")\nFROM (\n SELECT mean(\"gauge\") AS \"value\"\n FROM /^.*.estimate-num-keys/ \n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter \n GROUP BY time($__interval), \"scenario\", \"operator_name\", \"slot\"\n) GROUP BY time($__interval), \"scenario\", \"operator_name\" fill(linear)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "gauge" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RocksDB estimate-num-keys", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "RocksDB state", - "type": "row" - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 31 - }, - "id": 28, - "panels": [], - "title": "Scenario health", - "type": "row" - }, - { - "datasource": null, - "fieldConfig": { - "defaults": { - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 32 - }, - "id": 30, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_uptime", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Uptime", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 1 - }, - { - "color": "#d44a3a", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 32 - }, - "id": 32, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_fullRestarts", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Number of restarts", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 37 - }, - "id": 37, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_lastCheckpointDuration", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Last checkpoint duration", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 37 - }, - "id": 38, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_lastCheckpointSize", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Last checkpoint size", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "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": 1 - }, - { - "color": "#299c46", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 12, - "y": 37 - }, - "id": 35, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_numberOfCompletedCheckpoints", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Completed checkpoints", - "type": "stat" - }, - { - "cacheTimeout": null, - "datasource": null, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 1 - }, - { - "color": "#d44a3a", - "value": 5 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 18, - "y": 37 - }, - "id": 34, - "interval": null, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jobmanager_job_numberOfFailedCheckpoints", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [], - "type": "non_negative_difference" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Failed checkpoints", - "type": "stat" - } - ], - "refresh": "30s", - "schemaVersion": 30, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "allValue": null, - "current": { - "selected": false, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "local", - "value": "local" - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"source_instantRate\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "description": null, - "error": null, - "hide": 0, - "label": null, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Scenario", - "uid": "nussknacker-scenario", - "version": 4 - } - nussknacker-lite-scenario.json: | - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": 1, - "iteration": 1638475135627, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"source.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Source throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "hide": false, - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Events that passed whole scenario /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 5, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Rejected events /s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "short", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "description": "IMPORTANT. \nThis metric does NOT show the overall lag on Kafka source; a largest lag among all the source partitions is shown.", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 15 - }, - "hiddenSeries": false, - "id": 9, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_taskId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "taskId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - } - ], - "measurement": "records-lag-max", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Max lag among Kafka source partitions (events)", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 8, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "min" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - minimum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 6, - "y": 22 - }, - "hiddenSeries": false, - "id": 6, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 12, - "y": 22 - }, - "hiddenSeries": false, - "id": 7, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.histogram", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "max" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Delay since event occurrence - maximum", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 6, - "x": 18, - "y": 22 - }, - "hiddenSeries": false, - "id": 13, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "nodeId" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "eventtimedelay.minimalDelay", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "min" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Time from latest event", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": true, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "8.0.6", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "External services", - "type": "row" - } - ], - "refresh": "30s", - "schemaVersion": 30, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "allValue": null, - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "local", - "value": "local" - }, - "datasource": "influx", - "definition": "", - "description": null, - "error": null, - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"source.instantRate\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "description": null, - "error": null, - "hide": 0, - "label": null, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "Lite scenario", - "uid": "nussknacker-lite-scenario", - "version": 101 - } - nussknacker-request-response-scenario.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": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": "influx", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 26, - "panels": [], - "targets": [ - { - "datasource": "influx", - "refId": "A" - } - ], - "title": "Basics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 2, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"invocation.success.histogram\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - throughput", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 3, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "hide": false, - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - }, - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "hide": false, - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"dead_end.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Outputs/s", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 4, - "interval": "$interval", - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_nodeId]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(value)\nFROM (\n SELECT non_negative_derivative(last(\"count\"), 1s) AS value\n FROM \"error.instantRateByNode.count\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, nodeId, instanceId\n)\nGROUP BY time($__interval), scenario, nodeId\n", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Errors", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 27, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p50\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 15 - }, - "hiddenSeries": false, - "id": 28, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p99\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - median - 99th percentile", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 15 - }, - "hiddenSeries": false, - "id": 31, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"max\") FROM \"invocation.success.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 2xx - max", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 22 - }, - "hiddenSeries": false, - "id": 29, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p50\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - median", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 22 - }, - "hiddenSeries": false, - "id": 30, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"p99\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - 99th percentile", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 22 - }, - "hiddenSeries": false, - "id": 32, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - (all)", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\" fill(null)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - }, - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "hide": false, - "query": "SELECT max(\"max\") FROM \"invocation.failure.histogram\" WHERE (\"env\" =~ /^$env$/ AND \"scenario\" =~ /^$scenarioName$/) AND $timeFilter GROUP BY time($interval), \"scenario\", \"serviceName\", \"instanceId\" fill(null)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Response 4/5xx - max", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": "influx", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 29 - }, - "id": 24, - "panels": [], - "targets": [ - { - "datasource": "influx", - "refId": "A" - } - ], - "title": "External services", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 10, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - median OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 30 - }, - "hiddenSeries": false, - "id": 11, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.OK.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - 99th percentile OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 30 - }, - "hiddenSeries": false, - "id": 12, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]]", - "datasource": "influx", - "dsType": "influxdb", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.OK.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - throughput OK", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 15, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p50" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - median FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 37 - }, - "hiddenSeries": false, - "id": 16, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "[[tag_scenario]] - [[tag_serviceName]] (instanceId [[tag_instanceId]])", - "datasource": "influx", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$interval" - ], - "type": "time" - }, - { - "params": [ - "scenario" - ], - "type": "tag" - }, - { - "params": [ - "serviceName" - ], - "type": "tag" - }, - { - "params": [ - "instanceId" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "service.FAIL.histogram", - "orderByTime": "ASC", - "policy": "default", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "p99" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "env", - "operator": "=~", - "value": "/^$env$/" - }, - { - "condition": "AND", - "key": "scenario", - "operator": "=~", - "value": "/^$scenarioName$/" - } - ] - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - 99th percentile FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ns", - "label": "", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "influx", - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 37 - }, - "hiddenSeries": false, - "id": 17, - "interval": "$interval", - "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 - }, - "percentage": false, - "pluginVersion": "9.0.5", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_scenario - $tag_serviceName", - "datasource": "influx", - "dsType": "influxdb", - "hide": false, - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(mean)\nFROM (\n SELECT mean(value)\n FROM \"service.FAIL.instantRate\"\n WHERE scenario =~ /^$scenarioName$/ AND env = '$env' AND $timeFilter\n GROUP BY time($__interval), scenario, serviceName, instanceId\n)\nGROUP BY time($__interval), scenario, serviceName", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Services - throughput FAIL", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "rps", - "logBase": 1, - "min": "0", - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": "30s", - "schemaVersion": 36, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allFormat": "regex wildcard", - "current": { - "selected": true, - "text": [ - "test proxy process for rr" - ], - "value": [ - "test proxy process for rr" - ] - }, - "datasource": "influx", - "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", - "hide": 0, - "includeAll": true, - "multi": true, - "multiFormat": "pipe", - "name": "scenarioName", - "options": [], - "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"scenario\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "default", - "value": "default" - }, - "datasource": "influx", - "definition": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "env", - "options": [], - "query": "SHOW TAG VALUES FROM \"invocation.success.histogram\" WITH KEY = \"env\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "auto": false, - "auto_count": 30, - "auto_min": "10s", - "current": { - "selected": false, - "text": "30s", - "value": "30s" - }, - "hide": 0, - "name": "interval", - "options": [ - { - "selected": false, - "text": "10s", - "value": "10s" - }, - { - "selected": true, - "text": "30s", - "value": "30s" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "3m", - "value": "3m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "10s,30s,1m,3m, 10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "skipUrlSync": false, - "type": "interval" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "RequestResponse scenario", - "uid": "nussknacker-request-response-scenario", - "version": 1, - "weekStart": "" - } ---- -# Source: nussknacker/templates/grafana-datasource.yml -apiVersion: v1 -kind: ConfigMap -metadata: - name: "release-name-influx-grafana-datasource" - labels: - grafana_datasource: "influx" -data: - datasource.yaml: |- - apiVersion: 1 - datasources: - - name: influx - type: influxdb - access: proxy - orgId: 1 - url: http://release-name-influxdb:8086 - database: nussknacker - basicAuth: true - isDefault: true - version: 1 - editable: false - basicAuthUser: ${influxdb-user} - secureJsonData: - basicAuthPassword: ${influxdb-password} ---- -# Source: nussknacker/templates/logging-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-logging-conf - labels: - nussknacker.io/resourceType: "logging-conf" - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: ---- -# Source: nussknacker/templates/telegraf-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: telegraf-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -data: - nussknacker.conf: |- - # Flink reporters for Prometheus or InfluxDB are somewhat limited: - # - no possibility of adding own tags - # - no possitility of removing Flink internal tags (like job_id, task_id, etc.) - # - metric name has all tags encoded inside - # NOTE: Prometheus has different field names than e.g. InfluxDB reporter, (count -> gauge, different percentile names, etc.) - - [global_tags] - env = "default" - - #FIXME: handle case where Flink is disabled but telegraf *is* enabled - [[inputs.prometheus]] - urls=[ - "http://release-name-flink-jobmanager-headless:9999/metrics", - "http://release-name-flink-taskmanager:9999/metrics" - ] - - [[processors.rename]] - - [[processors.rename.replace]] - tag = "job_name" - dest = "process" - - [[processors.rename.replace]] - tag = "subtask_index" - dest = "slot" - - #TODO: this is test model specific, figure out way to remove it... - [[processors.rename.replace]] - tag = "originalProcessName" - dest = "process" - - #We remove tag names from measurement names to have more stable measurement names - [[processors.strings]] - [[processors.strings.replace]] - measurement = "*" - old = "taskmanager_job_task_operator_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "flink_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "nodeId_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "serviceName_" - new = "" - - [[processors.strings.replace]] - measurement = "*" - old = "namespace_" - new = "" - [[processors.strings.replace]] - measurement = "*" - old = "originalProcessName_" - new = "" - - [[outputs.influxdb]] - urls = ["http://release-name-influxdb:8086"] - skip_database_creation = true - database = "nussknacker" ---- -# Source: nussknacker/templates/tests/test-scripts.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-test-scripts -data: - main-wrapper.sh: |- - #!/bin/sh - ($*) & - MAIN_PID=$! - echo $MAIN_PID > /var/run/sidecars/main.pid - wait $MAIN_PID - sidecar-wrapper.sh: |- - #!/bin/sh - ($*) & - MAIN_PID=$(until cat /var/run/sidecars/main.pid; do sleep 1; done) - tail --pid $MAIN_PID -f /dev/null ---- -# Source: nussknacker/templates/tests/test-suites.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-nussknacker-test-suites -data: - kafka-only.bats: | - #!/usr/bin/env bats - - : "${NUSSKNACKER_URL:?required environment value not set}" - : "${AUTHORIZATION:?required environment value not set}" - : "${KAFKA_BOOTSTRAP_SERVER:?required environment value not set}" - : "${SCHEMA_REGISTRY_URL:?required environment value not set}" - : "${SCENARIO_TYPE:?required environment value not set}" - - function curl() { - /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" - } - export -f curl - - # timeout command has different syntax in Ubuntu and BusyBox - if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then - function timeout() { - $(which timeout) -t "$@" - } - fi - - function given_a_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local SCHEMA="${2:?required}" - - kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --describe --topic "${TOPIC_FULL_NAME}" || - kafka-topics --bootstrap-server $KAFKA_BOOTSTRAP_SERVER --create --topic "${TOPIC_FULL_NAME}" \ - --partitions 10 --replication-factor 1 - - kafka-consumer-groups --bootstrap-server ${KAFKA_BOOTSTRAP_SERVER} \ - --topic "${TOPIC_FULL_NAME}" \ - --group helm_test --reset-offsets --to-latest --execute - - cat << _END | curl -d @- "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions" - { "schema": "$(echo $SCHEMA | sed -e 's/"/\\"/g')" } - _END - } - - function given_a_proxy_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_OBJECT="${2:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_IMPORT_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') - - curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default - echo ${PROCESS_OBJECT} | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- - - [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) == "RUNNING" ]] && curl -X POST ${PROCESS_CANCEL_URL} - curl -X POST ${PROCESS_DEPLOY_URL} - #on smaller ci envs deployment may last some time... - timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"RUNNING\" ]]; do sleep 1 && echo -n .; done;" || true - echo "Checking after waiting for status..." - local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) - echo "Status is: $STATUS_RESPONSE" - [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] - } - - function when_a_message_has_been_posted_on_the_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local ID=${2:?required} - - local SCHEMA_ID=$(curl "${SCHEMA_REGISTRY_URL%/}/subjects/${TOPIC_FULL_NAME}-value/versions/latest" | jq '.id') - - cat << _END | kafka-avro-console-producer \ - --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ - --topic "${TOPIC_FULL_NAME}" \ - --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ - --property "value.schema.id=${SCHEMA_ID}" - { "id": "$ID", "content": "a content", "tags": [] } - _END - } - - function then_the_message_can_be_consumed_from_the_topic() { - local TOPIC_FULL_NAME="${1:?required}" - local ID=${2:?required} - - kafka-avro-console-consumer \ - --bootstrap-server $KAFKA_BOOTSTRAP_SERVER \ - --topic "${TOPIC_FULL_NAME}" \ - --group helm_test \ - --property "schema.registry.url=${SCHEMA_REGISTRY_URL}" \ - --timeout-ms 60000 \ - | (while : ; do - read MSG; - echo $MSG - if [[ -z $MSG ]]; then exit 1; fi; - if echo $MSG | jq -e ".id == \"${ID}\""; then break; fi; - done) - } - - function setup() { - export GROUP=testgroup - export INPUT_TOPIC=inputKafkaOnly - export OUTPUT_TOPIC=outputKafkaOnly - local SCHEMA=$(cat << _END - { - "namespace": "\${GROUP}", - "name": "\${TOPIC}", - "type": "record", - "doc": "This is a sample schema definition", - "fields": [ - { "name": "id", "type": "string", "doc": "Message id" }, - { "name": "content", "type": "string", "doc": "Message content" }, - { "name": "tags", "type": { "type": "array", "items": "string" }, "doc": "Message tags" } - ] - } - _END - ) - local -x PROCESS_NAME="test proxy process for kafka only" - - given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${INPUT_TOPIC} envsubst)" - given_a_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" "$(echo $SCHEMA | TOPIC=${OUTPUT_TOPIC} envsubst)" - given_a_proxy_process "${PROCESS_NAME}" "$(cat ${BATS_TEST_DIRNAME%/}/testprocess.json | envsubst)" - } - - @test "message should pass through the kafka only proxy process" { - local ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) - when_a_message_has_been_posted_on_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$INPUT_TOPIC" ${ID} - then_the_message_can_be_consumed_from_the_topic "${KAFKA_NAMESPACE}_${GROUP}.$OUTPUT_TOPIC" ${ID} - } - rr-only.bats: | - #!/usr/bin/env bats - - : "${NUSSKNACKER_URL:?required environment value not set}" - : "${AUTHORIZATION:?required environment value not set}" - : "${SCENARIO_TYPE:?required environment value not set}" - - function curl() { - /usr/bin/curl -f -k -v -H "Content-type: application/json" -H "Authorization: ${AUTHORIZATION}" "$@" - } - export -f curl - - # timeout command has different syntax in Ubuntu and BusyBox - if [[ $(realpath $(which timeout)) =~ "busybox" ]]; then - function timeout() { - $(which timeout) -t "$@" - } - fi - - function cancel_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_CANCEL_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/cancel/${PROCESS_NAME} | sed -e 's/ /%20/g') - curl -X POST ${PROCESS_CANCEL_URL} - } - - function wait_for_status() { - local PROCESS_NAME="${1:?required}" - local STATUS="${2:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - timeout 60 /bin/sh -c "until [[ `curl ${PROCESS_URL%/}/status | jq -r .status.name` == \"$STATUS\" ]]; do sleep 1 && echo -n .; done;" || true - } - - function given_a_proxy_process() { - local PROCESS_NAME="${1:?required}" - local PROCESS_URL=$(echo ${NUSSKNACKER_URL%/}/api/processes/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_DEPLOY_URL=$(echo ${NUSSKNACKER_URL%/}/api/processManagement/deploy/${PROCESS_NAME} | sed -e 's/ /%20/g') - local PROCESS_IMPORT_URL=$( echo ${NUSSKNACKER_URL%/}/api/processes/import/${PROCESS_NAME} | sed -e 's/ /%20/g') - - curl ${PROCESS_URL} || curl -X POST ${PROCESS_URL%/}/Default - export PROCESS_NAME GROUP INPUT_TOPIC OUTPUT_TOPIC - cat ${BATS_TEST_DIRNAME}/rr-testprocess.json | envsubst | /usr/bin/curl -f -k -v -H "Authorization: ${AUTHORIZATION}" ${PROCESS_IMPORT_URL} -F process=@- | (echo '{ "comment": "created by a bats test", "process": '; cat; echo '}') | curl -X PUT ${PROCESS_URL} -d @- - - [[ $(curl ${PROCESS_URL%/}/status | jq -r .status.name) = RUNNING ]] && cancel_process "$PROCESS_NAME" - curl -X POST ${PROCESS_DEPLOY_URL} - #on smaller ci envs deployment may last some time... - wait_for_status "$PROCESS_NAME" "RUNNING" - echo "Checking after waiting for status..." - local STATUS_RESPONSE=$(curl ${PROCESS_URL%/}/status) - echo "Status is: $STATUS_RESPONSE" - [[ `echo $STATUS_RESPONSE | jq -r .status.name` == "RUNNING" ]] - } - - function setup() { - given_a_proxy_process "test proxy process for rr" - } - - @test "message should pass through the rr proxy process" { - local PROCESS_NAME="test proxy process for rr" - INPUT_MESSAGE='{"productId":10}' - EXPECTED_OUTPUT_MESSAGE='{"productId":20}' - - if [[ $(curl $SCENARIO_URL -d $INPUT_MESSAGE) == $EXPECTED_OUTPUT_MESSAGE ]]; then echo ok; else exit 1; fi - - cancel_process "$PROCESS_NAME" - wait_for_status "$PROCESS_NAME" "CANCELED" - } - rr-testprocess.json: "{\n \"metaData\" : {\n \"id\" : \"test-scenario-for-rr-only\",\n - \ \"typeSpecificData\" : {\n \"slug\" : \"test-scenario-for-rr-only\",\n - \ \"type\" : \"RequestResponseMetaData\"\n },\n \"additionalFields\" : - {\n \"description\" : null,\n \"properties\" : {\n \"inputSchema\" - : \"{\\n \\\"title\\\": \\\"Product\\\",\\n \\\"description\\\": \\\"A product - from Acme's catalog\\\",\\n \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": - {\\n \\\"productId\\\": {\\n \\\"description\\\": \\\"The unique identifier - for a product\\\",\\n \\\"type\\\": \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": - [ \\\"productId\\\" ]\\n}\",\n \"outputSchema\" : \"{\\n \\\"title\\\": - \\\"Product\\\",\\n \\\"description\\\": \\\"A product from Acme's catalog\\\",\\n - \ \\\"type\\\": \\\"object\\\",\\n \\\"properties\\\": {\\n \\\"productId\\\": - {\\n \\\"description\\\": \\\"The unique identifier for a product\\\",\\n \\\"type\\\": - \\\"integer\\\"\\n }\\n },\\n \\\"required\\\": [ \\\"productId\\\" ]\\n}\"\n - \ }\n },\n \"subprocessVersions\" : {\n \n }\n },\n \"nodes\" - : [\n {\n \"id\" : \"request\",\n \"ref\" : {\n \"typ\" : \"request\",\n - \ \"parameters\" : [\n ]\n },\n \"additionalFields\" : {\n - \ \"description\" : null,\n \"layoutData\" : {\n \"x\" : 0,\n - \ \"y\" : 0\n }\n },\n \"type\" : \"Source\"\n },\n - \ {\n \"id\" : \"response\",\n \"ref\" : {\n \"typ\" : \"response\",\n - \ \"parameters\" : [\n {\n \"name\" : \"productId\",\n - \ \"expression\" : {\n \"language\" : \"spel\",\n \"expression\" - : \"#input.productId * 2\"\n }\n }\n ]\n },\n \"endResult\" - : null,\n \"isDisabled\" : null,\n \"additionalFields\" : {\n \"description\" - : null,\n \"layoutData\" : {\n \"x\" : 1,\n \"y\" : 180\n - \ }\n },\n \"type\" : \"Sink\"\n }\n ],\n \"additionalBranches\" - : [\n ]\n}\n" - testprocess.json: | - { - "metaData": { - "id": "${PROCESS_NAME}", - "typeSpecificData": { - "parallelism": 1, - "type": "${SCENARIO_TYPE}" - }, - "isSubprocess": false, - "additionalFields": { - "description": null, - "groups": [ - ], - "properties": { - } - }, - "subprocessVersions": { - } - }, - "exceptionHandlerRef": { - "parameters": [ - ] - }, - "nodes": [ - { - "id": "kafka-source", - "ref": { - "typ": "kafka", - "parameters": [ - { - "name": "Topic", - "expression": { - "language": "spel", - "expression": "'${GROUP}.${INPUT_TOPIC}'" - } - }, - { - "name": "Schema version", - "expression": { - "language": "spel", - "expression": "'latest'" - } - } - ] - }, - "additionalFields": { - "description": null, - "layoutData": { - "x": -3, - "y": -90 - } - }, - "type": "Source" - }, - { - "id": "kafka-sink", - "ref": { - "typ": "kafka", - "parameters": [ - { - "name": "Topic", - "expression": { - "language": "spel", - "expression": "'${GROUP}.${OUTPUT_TOPIC}'" - } - }, - { - "name": "Schema version", - "expression": { - "language": "spel", - "expression": "'latest'" - } - }, - { - "name" : "Key", - "expression" : { - "language" : "spel", - "expression" : "" - } - }, - { - "name" : "Raw editor", - "expression" : { - "language" : "spel", - "expression" : "true" - } - }, - { - "name" : "Value validation mode", - "expression" : { - "language" : "spel", - "expression" : "'strict'" - } - }, - { - "name": "Value", - "expression": { - "language": "spel", - "expression": "#input" - } - } - ] - }, - "endResult": null, - "isDisabled": null, - "additionalFields": { - "description": null, - "layoutData": { - "x": 0, - "y": 135 - } - }, - "type": "Sink" - } - ], - "additionalBranches": [ - ] - } ---- -# Source: nussknacker/charts/grafana/templates/role.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -rules: - - apiGroups: [""] # "" indicates the core API group - resources: ["configmaps", "secrets"] - verbs: ["get", "watch", "list"] ---- -# Source: nussknacker/templates/role.yml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: release-name-nussknacker - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -rules: -- apiGroups: [""] - resources: ["configmaps"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: ["apps"] - resources: ["deployments"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["services"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: ["networking.k8s.io"] - resources: ["ingresses"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"] -- apiGroups: [""] - resources: ["resourcequotas"] - verbs: ["get", "list"] -- apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list"] ---- -# Source: nussknacker/charts/grafana/templates/rolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: release-name-grafana -subjects: -- kind: ServiceAccount - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c ---- -# Source: nussknacker/templates/rolebinding.yml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: release-name-nussknacker - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -subjects: -- kind: ServiceAccount - name: release-name-nussknacker -roleRef: - kind: Role - apiGroup: rbac.authorization.k8s.io - name: release-name-nussknacker ---- -# Source: nussknacker/charts/apicurio-registry/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/flink/templates/jobmanager-headless-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager-headless - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - clusterIP: None - ports: - - port: 6124 - targetPort: blob - protocol: TCP - name: blob - - port: 6123 - targetPort: rpc - protocol: TCP - name: rpc - - port: 8081 - targetPort: ui - protocol: TCP - name: ui - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/jobmanager-rest-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager-rest - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - type: ClusterIP - ports: - - port: 8081 - targetPort: 8081 - protocol: TCP - name: ui - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/jobmanager-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager -spec: - type: ClusterIP - ports: - - port: 6124 - targetPort: blob - protocol: TCP - name: blob - - port: 6123 - targetPort: rpc - protocol: TCP - name: rpc - - port: 8081 - targetPort: ui - protocol: TCP - name: ui - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager ---- -# Source: nussknacker/charts/flink/templates/taskmanager-service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: taskmanager -spec: - type: ClusterIP - ports: - - port: 6122 - targetPort: rpc - protocol: TCP - name: rpc - - port: 9999 - targetPort: metrics - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager ---- -# Source: nussknacker/charts/grafana/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - name: service - port: 80 - protocol: TCP - targetPort: 3000 - selector: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/influxdb/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - name: api - port: 8086 - targetPort: api - - name: rpc - port: 8088 - targetPort: rpc - selector: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/kafka/templates/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-kafka-headless - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - type: ClusterIP - clusterIP: None - publishNotReadyAddresses: false - ports: - - name: tcp-client - port: 9092 - protocol: TCP - targetPort: kafka-client - - name: tcp-internal - port: 9094 - protocol: TCP - targetPort: kafka-internal - selector: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka ---- -# Source: nussknacker/charts/kafka/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-client - port: 9092 - protocol: TCP - targetPort: kafka-client - nodePort: null - selector: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka ---- -# Source: nussknacker/charts/postgresql/templates/primary/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-postgresql-hl - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary - # Use this annotation in addition to the actual publishNotReadyAddresses - # field below because the annotation will stop being respected soon but the - # field is broken in some versions of Kubernetes: - # https://github.com/kubernetes/kubernetes/issues/58662 - service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" -spec: - type: ClusterIP - clusterIP: None - # We want all pods in the StatefulSet to have their addresses published for - # the sake of the other Postgresql pods even before they're ready, since they - # have to be able to talk to each other in order to become ready. - publishNotReadyAddresses: true - ports: - - name: tcp-postgresql - port: 5432 - targetPort: tcp-postgresql - selector: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary ---- -# Source: nussknacker/charts/postgresql/templates/primary/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-postgresql - port: 5432 - targetPort: tcp-postgresql - nodePort: null - selector: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary ---- -# Source: nussknacker/charts/telegraf/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.35 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - type: ClusterIP - ports: - - port: 8125 - targetPort: 8125 - protocol: "UDP" - name: "statsd" - selector: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/zookeeper/templates/svc-headless.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-zookeeper-headless - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -spec: - type: ClusterIP - clusterIP: None - publishNotReadyAddresses: true - ports: - - name: tcp-client - port: 2181 - targetPort: client - - name: tcp-follower - port: 2888 - targetPort: follower - - name: tcp-election - port: 3888 - targetPort: election - selector: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper ---- -# Source: nussknacker/charts/zookeeper/templates/svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-zookeeper - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper -spec: - type: ClusterIP - sessionAffinity: None - ports: - - name: tcp-client - port: 2181 - targetPort: client - nodePort: null - - name: tcp-follower - port: 2888 - targetPort: follower - - name: tcp-election - port: 3888 - targetPort: election - selector: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper ---- -# Source: nussknacker/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm - annotations: - -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name ---- -# Source: nussknacker/charts/apicurio-registry/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-apicurio-registry - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - template: - metadata: - labels: - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - spec: - serviceAccountName: release-name-apicurio-registry - securityContext: - {} - containers: - - name: apicurio-registry - securityContext: - {} - image: "apicurio/apicurio-registry-kafkasql:2.2.5.Final" - imagePullPolicy: IfNotPresent - ports: - - name: http - containerPort: 8080 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - env: - - name: KAFKA_BOOTSTRAP_SERVERS - value: release-name-kafka:9092 - resources: - {} ---- -# Source: nussknacker/charts/flink/templates/taskmanager.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-flink-taskmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: taskmanager - annotations: - "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager - template: - metadata: - labels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: taskmanager - annotations: - spec: - serviceAccountName: release-name-flink-taskmanager - securityContext: - {} - initContainers: - containers: - - name: taskmanager - image: "flink:1.16.0-scala_2.12-java11" - imagePullPolicy: IfNotPresent - workingDir: /opt/flink - command: - - "/bin/bash" - - "-c" - - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && $FLINK_HOME/bin/taskmanager.sh start-foreground;" - env: - - name: JVM_ARGS - value: "-Djava.security.properties=/opt/flink/conf/security.properties" - envFrom: - ports: - - containerPort: 6122 - name: rpc - - containerPort: 9999 - name: metrics - livenessProbe: - tcpSocket: - port: 6122 - initialDelaySeconds: 30 - periodSeconds: 60 - volumeMounts: - - name: flink-config-volume - mountPath: /opt/flink/conf - resources: - limits: - memory: 3Gi - requests: - memory: 2560Mi - - volumes: - - name: flink-config-volume - configMap: - name: release-name-flink-config - items: - - key: flink-conf-taskmanager.yaml - path: flink-conf.yaml - - key: log4j.properties - path: log4j.properties - - key: log4j.properties - path: log4j-console.properties - - key: security.properties - path: security.properties ---- -# Source: nussknacker/charts/grafana/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-grafana - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - strategy: - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - annotations: - checksum/config: d0423afae194a521210c737c6c06b93fcd8cae4bfc3adfaf3a0ef6206a24387a - checksum/dashboards-json-config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b - checksum/sc-dashboard-provider-config: 9f45e5a89f6a954007bcbe7d5e03967f0ca25ab7a7980f4ea5fbb457c5ba9330 - checksum/secret: 6a9f6db41eea25c06432a3f4bb1398d409259e212ef8c1e1a9089d5b040f34e8 - kubectl.kubernetes.io/default-container: grafana - spec: - - serviceAccountName: release-name-grafana - automountServiceAccountToken: true - securityContext: - fsGroup: 472 - runAsGroup: 472 - runAsNonRoot: true - runAsUser: 472 - enableServiceLinks: true - containers: - - name: grafana-sc-dashboard - image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" - imagePullPolicy: IfNotPresent - env: - - name: METHOD - value: WATCH - - name: LABEL - value: "grafana_dashboard" - - name: FOLDER - value: "/tmp/dashboards" - - name: RESOURCE - value: "both" - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: REQ_URL - value: http://localhost:3000/api/admin/provisioning/dashboards/reload - - name: REQ_METHOD - value: POST - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: sc-dashboard-volume - mountPath: "/tmp/dashboards" - - name: grafana-sc-datasources - image: "quay.io/kiwigrid/k8s-sidecar:1.25.1" - imagePullPolicy: IfNotPresent - env: - - name: METHOD - value: WATCH - - name: LABEL - value: "grafana_datasource" - - name: FOLDER - value: "/etc/grafana/provisioning/datasources" - - name: RESOURCE - value: "both" - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: REQ_URL - value: http://localhost:3000/api/admin/provisioning/datasources/reload - - name: REQ_METHOD - value: POST - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" - - name: grafana - image: "docker.io/grafana/grafana:10.1.5" - imagePullPolicy: IfNotPresent - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - volumeMounts: - - name: config - mountPath: "/etc/grafana/grafana.ini" - subPath: grafana.ini - - name: storage - mountPath: "/var/lib/grafana" - - name: sc-dashboard-volume - mountPath: "/tmp/dashboards" - - name: sc-dashboard-provider - mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" - subPath: provider.yaml - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" - ports: - - name: grafana - containerPort: 3000 - protocol: TCP - - name: gossip-tcp - containerPort: 9094 - protocol: TCP - - name: gossip-udp - containerPort: 9094 - protocol: UDP - env: - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: GF_SECURITY_ADMIN_USER - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-user - - name: GF_SECURITY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-grafana - key: admin-password - - name: GF_PATHS_DATA - value: /var/lib/grafana/ - - name: GF_PATHS_LOGS - value: /var/log/grafana - - name: GF_PATHS_PLUGINS - value: /var/lib/grafana/plugins - - name: GF_PATHS_PROVISIONING - value: /etc/grafana/provisioning - envFrom: - - secretRef: - name: release-name-influxdb-auth - livenessProbe: - failureThreshold: 10 - httpGet: - path: /api/health - port: 3000 - initialDelaySeconds: 60 - timeoutSeconds: 30 - readinessProbe: - httpGet: - path: /api/health - port: 3000 - volumes: - - name: config - configMap: - name: release-name-grafana - - name: storage - emptyDir: {} - - name: sc-dashboard-volume - emptyDir: - {} - - name: sc-dashboard-provider - configMap: - name: release-name-grafana-config-dashboards - - name: sc-datasources-volume - emptyDir: - {} ---- -# Source: nussknacker/charts/telegraf/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-telegraf - labels: - helm.sh/chart: telegraf-1.8.35 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name - template: - metadata: - labels: - app.kubernetes.io/name: telegraf - app.kubernetes.io/instance: release-name - annotations: - checksum/config: e1e07234c9911620d427e62fe62aad1084bd4686321bc0e1374ea6c7fa68b2c5 - spec: - serviceAccountName: release-name-telegraf - containers: - - name: telegraf - image: "docker.io/library/telegraf:1.28-alpine" - imagePullPolicy: "IfNotPresent" - resources: - {} - args: - - --config-directory - - /etc/telegraf/telegraf.d - env: - - name: HOSTNAME - value: telegraf-polling-service - volumeMounts: - - name: config - mountPath: /etc/telegraf - - mountPath: /etc/telegraf/telegraf.d - name: telegraf-nussknacker - volumes: - - name: config - configMap: - name: release-name-telegraf - - configMap: - name: telegraf-nussknacker - name: telegraf-nussknacker ---- -# Source: nussknacker/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - template: - metadata: - annotations: - checksum/config: 1b7022c6d68275314b51adda70dfe570ed9aa620f5f416410b3a502f0fc672b8 - labels: - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - spec: - imagePullSecrets: - - name: gitlab-registry - serviceAccountName: release-name-nussknacker - securityContext: - fsGroup: 1001 - containers: - - name: nussknacker - securityContext: - runAsUser: 1001 - image: "touk/nussknacker:staging-latest" - imagePullPolicy: Always - volumeMounts: - - name: config - mountPath: /etc/nussknacker - - name: logging-config - mountPath: /etc/logging - env: - - name: JDK_JAVA_OPTIONS - value: - - name: CONFIG_FILE - value: /etc/nussknacker/application.conf - - name: HELM_RELEASE_NAME - value: release-name - - name: DB_PASSWORD - valueFrom: - secretKeyRef: - name: 'release-name-postgresql' - key: postgres-password - - name: INFLUXDB_PASSWORD - valueFrom: - secretKeyRef: - name: 'release-name-influxdb-auth' - key: influxdb-password - - name: INFLUXDB_USER - valueFrom: - secretKeyRef: - name: 'release-name-influxdb-auth' - key: influxdb-user - - name: NUSSKNACKER_LOG_LEVEL - value: DEBUG - ports: - - name: http - containerPort: 8080 - protocol: TCP - - livenessProbe: - httpGet: - path: / - port: http - periodSeconds: 5 - failureThreshold: 3 - timeoutSeconds: 5 - startupProbe: - httpGet: - path: / - port: http - periodSeconds: 3 - failureThreshold: 40 - timeoutSeconds: 5 - resources: - limits: - memory: 1Gi - requests: - memory: 512Mi - volumes: - - name: config - configMap: - name: release-name-nussknacker - - name: logging-config - configMap: - name: release-name-nussknacker-logging-conf - - name: storage - emptyDir: {} ---- -# Source: nussknacker/charts/flink/templates/jobmanager.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-flink-jobmanager - labels: - app.kubernetes.io/name: flink - helm.sh/chart: flink-0.2.0 - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.2" - app.kubernetes.io/managed-by: Helm - component: jobmanager - annotations: -spec: - replicas: 1 - podManagementPolicy: Parallel - selector: - matchLabels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager - serviceName: release-name-flink-jobmanager-headless - template: - metadata: - labels: - app.kubernetes.io/name: flink - app.kubernetes.io/instance: release-name - component: jobmanager - annotations: - spec: - serviceAccountName: release-name-flink-jobmanager - securityContext: - {} - initContainers: - containers: - - name: jobmanager - image: "flink:1.16.0-scala_2.12-java11" - imagePullPolicy: IfNotPresent - workingDir: /opt/flink - command: - - "/bin/bash" - - "-c" - - "cp /opt/flink/opt/flink-s3-fs-presto-*.jar /opt/flink/lib/ && wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar -O /opt/flink/lib/oshi-core-3.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar -O /opt/flink/lib/jna-5.4.0.jar && wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar -O /opt/flink/lib/jna-platform-5.4.0.jar && cp $FLINK_HOME/conf/flink-conf.yaml.tpl $FLINK_HOME/conf/flink-conf.yaml && $FLINK_HOME/bin/jobmanager.sh start-foreground;" - env: - - name: JVM_ARGS - value: "-Djava.security.properties=/opt/flink/conf/security.properties" - - name: FLINK_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - ports: - - containerPort: 6124 - name: blob - - containerPort: 6123 - name: rpc - - containerPort: 8081 - name: ui - - containerPort: 9999 - name: metrics - readinessProbe: - tcpSocket: - port: 6123 - periodSeconds: 10 - initialDelaySeconds: 20 - livenessProbe: - tcpSocket: - port: 6124 - initialDelaySeconds: 10 - periodSeconds: 15 - volumeMounts: - - name: flink-config-volume - mountPath: /opt/flink/conf/flink-conf.yaml.tpl - subPath: flink-conf.yaml.tpl - - name: flink-config-volume - mountPath: /opt/flink/conf/log4j.properties - subPath: log4j.properties - - name: flink-config-volume - mountPath: /opt/flink/conf/log4j-console.properties - subPath: log4j.properties - - name: flink-config-volume - mountPath: /opt/flink/conf/security.properties - subPath: security.properties - resources: - {} - - volumes: - - name: flink-config-volume - configMap: - name: release-name-flink-config - items: - - key: flink-conf.yaml - path: flink-conf.yaml.tpl - - key: log4j.properties - path: log4j.properties - - key: security.properties - path: security.properties ---- -# Source: nussknacker/charts/influxdb/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-influxdb - labels: - helm.sh/chart: influxdb-4.12.5 - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.8.10" - app.kubernetes.io/managed-by: Helm -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - serviceName: "release-name-influxdb" - template: - metadata: - labels: - app.kubernetes.io/name: influxdb - app.kubernetes.io/instance: release-name - spec: - serviceAccountName: release-name-influxdb - containers: - - name: release-name-influxdb - image: "influxdb:1.8.10" - imagePullPolicy: "IfNotPresent" - ports: - - name: api - containerPort: 8086 - - name: rpc - containerPort: 8088 - env: - - name: INFLUXDB_DB - value: nussknacker - - name: INFLUXDB_ADMIN_USER - valueFrom: - secretKeyRef: - name: release-name-influxdb-auth - key: influxdb-user - - name: INFLUXDB_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-influxdb-auth - key: influxdb-password - livenessProbe: - httpGet: - path: /ping - port: api - scheme: HTTP - initialDelaySeconds: 30 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: /ping - port: api - scheme: HTTP - initialDelaySeconds: 5 - timeoutSeconds: 1 - volumeMounts: - - name: release-name-influxdb-data - mountPath: /var/lib/influxdb - - name: config - mountPath: /etc/influxdb - volumes: - - name: config - configMap: - name: release-name-influxdb - # Cannot use existing claim in enterprise mode - # Must use volume claim template in enterprise mode - volumeClaimTemplates: - - metadata: - name: release-name-influxdb-data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/kafka/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-kafka - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka -spec: - podManagementPolicy: Parallel - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka - serviceName: release-name-kafka-headless - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - template: - metadata: - labels: - app.kubernetes.io/name: kafka - helm.sh/chart: kafka-22.1.6 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: kafka - annotations: - spec: - - hostNetwork: false - hostIPC: false - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: kafka - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: kafka - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - serviceAccountName: release-name-kafka - containers: - - name: kafka - image: docker.io/bitnami/kafka:3.4.1-debian-11-r0 - imagePullPolicy: "IfNotPresent" - securityContext: - allowPrivilegeEscalation: false - runAsNonRoot: true - runAsUser: 1001 - command: - - /scripts/setup.sh - env: - - name: BITNAMI_DEBUG - value: "false" - - name: MY_POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: MY_POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: KAFKA_CFG_ZOOKEEPER_CONNECT - value: release-name-zookeeper:2181 - - name: KAFKA_INTER_BROKER_LISTENER_NAME - value: "INTERNAL" - - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP - value: "INTERNAL:PLAINTEXT,CLIENT:PLAINTEXT" - - name: KAFKA_CFG_LISTENERS - value: "INTERNAL://:9094,CLIENT://:9092" - - name: KAFKA_CFG_ADVERTISED_LISTENERS - value: "INTERNAL://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9094,CLIENT://$(MY_POD_NAME).release-name-kafka-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:9092" - - name: ALLOW_PLAINTEXT_LISTENER - value: "yes" - - name: KAFKA_ZOOKEEPER_PROTOCOL - value: PLAINTEXT - - name: KAFKA_VOLUME_DIR - value: "/bitnami/kafka" - - name: KAFKA_LOG_DIR - value: "/opt/bitnami/kafka/logs" - - name: KAFKA_CFG_DELETE_TOPIC_ENABLE - value: "false" - - name: KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE - value: "true" - - name: KAFKA_HEAP_OPTS - value: "-Xmx1024m -Xms1024m" - - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MESSAGES - value: "10000" - - name: KAFKA_CFG_LOG_FLUSH_INTERVAL_MS - value: "1000" - - name: KAFKA_CFG_LOG_RETENTION_BYTES - value: "1073741824" - - name: KAFKA_CFG_LOG_RETENTION_CHECK_INTERVAL_MS - value: "300000" - - name: KAFKA_CFG_LOG_RETENTION_HOURS - value: "168" - - name: KAFKA_CFG_MESSAGE_MAX_BYTES - value: "1000012" - - name: KAFKA_CFG_LOG_SEGMENT_BYTES - value: "1073741824" - - name: KAFKA_CFG_LOG_DIRS - value: "/bitnami/kafka/data" - - name: KAFKA_CFG_DEFAULT_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR - value: "1" - - name: KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR - value: "1" - - name: KAFKA_CFG_NUM_IO_THREADS - value: "8" - - name: KAFKA_CFG_NUM_NETWORK_THREADS - value: "3" - - name: KAFKA_CFG_NUM_PARTITIONS - value: "1" - - name: KAFKA_CFG_NUM_RECOVERY_THREADS_PER_DATA_DIR - value: "1" - - name: KAFKA_CFG_SOCKET_RECEIVE_BUFFER_BYTES - value: "102400" - - name: KAFKA_CFG_SOCKET_REQUEST_MAX_BYTES - value: "104857600" - - name: KAFKA_CFG_SOCKET_SEND_BUFFER_BYTES - value: "102400" - - name: KAFKA_CFG_ZOOKEEPER_CONNECTION_TIMEOUT_MS - value: "6000" - - name: KAFKA_CFG_AUTHORIZER_CLASS_NAME - value: "" - - name: KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND - value: "true" - - name: KAFKA_CFG_SUPER_USERS - value: "User:admin" - - name: KAFKA_ENABLE_KRAFT - value: "false" - ports: - - name: kafka-client - containerPort: 9092 - - name: kafka-internal - containerPort: 9094 - livenessProbe: - failureThreshold: 3 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: kafka-client - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - tcpSocket: - port: kafka-client - resources: - limits: {} - requests: {} - volumeMounts: - - name: data - mountPath: /bitnami/kafka - - name: logs - mountPath: /opt/bitnami/kafka/logs - - name: scripts - mountPath: /scripts/setup.sh - subPath: setup.sh - volumes: - - name: scripts - configMap: - name: release-name-kafka-scripts - defaultMode: 0755 - - name: logs - emptyDir: {} - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/postgresql/templates/primary/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-postgresql - namespace: "tenant-35316305-9bfa-47b7-8fef-00515524aa4c" - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary -spec: - replicas: 1 - serviceName: release-name-postgresql-hl - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - selector: - matchLabels: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary - template: - metadata: - name: release-name-postgresql - labels: - app.kubernetes.io/name: postgresql - helm.sh/chart: postgresql-12.1.15 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: primary - spec: - serviceAccountName: default - - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: postgresql - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: primary - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - hostNetwork: false - hostIPC: false - initContainers: - - name: init-chmod-data - image: docker.io/bitnami/bitnami-shell:11-debian-11-r81 - imagePullPolicy: "IfNotPresent" - resources: - limits: {} - requests: {} - command: - - /bin/sh - - -ec - - | - chown 1001:1001 /bitnami/postgresql - mkdir -p /bitnami/postgresql/data - chmod 700 /bitnami/postgresql/data - find /bitnami/postgresql -mindepth 1 -maxdepth 1 -not -name "conf" -not -name ".snapshot" -not -name "lost+found" | \ - xargs -r chown -R 1001:1001 - chmod -R 777 /dev/shm - securityContext: - runAsUser: 0 - volumeMounts: - - name: data - mountPath: /bitnami/postgresql - - name: dshm - mountPath: /dev/shm - containers: - - name: postgresql - image: docker.io/bitnami/postgresql:15.2.0-debian-11-r0 - imagePullPolicy: "IfNotPresent" - securityContext: - runAsUser: 1001 - env: - - name: BITNAMI_DEBUG - value: "false" - - name: POSTGRESQL_PORT_NUMBER - value: "5432" - - name: POSTGRESQL_VOLUME_DIR - value: "/bitnami/postgresql" - - name: PGDATA - value: "/bitnami/postgresql/data" - # Authentication - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: release-name-postgresql - key: postgres-password - # Replication - # Initdb - # Standby - # LDAP - - name: POSTGRESQL_ENABLE_LDAP - value: "no" - # TLS - - name: POSTGRESQL_ENABLE_TLS - value: "no" - # Audit - - name: POSTGRESQL_LOG_HOSTNAME - value: "false" - - name: POSTGRESQL_LOG_CONNECTIONS - value: "false" - - name: POSTGRESQL_LOG_DISCONNECTIONS - value: "false" - - name: POSTGRESQL_PGAUDIT_LOG_CATALOG - value: "off" - # Others - - name: POSTGRESQL_CLIENT_MIN_MESSAGES - value: "error" - - name: POSTGRESQL_SHARED_PRELOAD_LIBRARIES - value: "pgaudit" - ports: - - name: tcp-postgresql - containerPort: 5432 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: - - /bin/sh - - -c - - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: - - /bin/sh - - -c - - -e - - - | - exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432 - [ -f /opt/bitnami/postgresql/tmp/.initialized ] || [ -f /bitnami/postgresql/.initialized ] - resources: - limits: {} - requests: - cpu: 250m - memory: 256Mi - volumeMounts: - - name: dshm - mountPath: /dev/shm - - name: data - mountPath: /bitnami/postgresql - volumes: - - name: dshm - emptyDir: - medium: Memory - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/charts/zookeeper/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: release-name-zookeeper - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper - role: zookeeper -spec: - replicas: 1 - podManagementPolicy: Parallel - selector: - matchLabels: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper - serviceName: release-name-zookeeper-headless - updateStrategy: - rollingUpdate: {} - type: RollingUpdate - template: - metadata: - annotations: - labels: - app.kubernetes.io/name: zookeeper - helm.sh/chart: zookeeper-11.0.3 - app.kubernetes.io/instance: release-name - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: zookeeper - spec: - serviceAccountName: default - - affinity: - podAffinity: - - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - app.kubernetes.io/name: zookeeper - app.kubernetes.io/instance: release-name - app.kubernetes.io/component: zookeeper - topologyKey: kubernetes.io/hostname - weight: 1 - nodeAffinity: - - securityContext: - fsGroup: 1001 - initContainers: - containers: - - name: zookeeper - image: docker.io/bitnami/zookeeper:3.8.0-debian-11-r74 - imagePullPolicy: "IfNotPresent" - securityContext: - allowPrivilegeEscalation: false - runAsNonRoot: true - runAsUser: 1001 - command: - - /scripts/setup.sh - resources: - limits: {} - requests: - cpu: 250m - memory: 256Mi - env: - - name: BITNAMI_DEBUG - value: "false" - - name: ZOO_DATA_LOG_DIR - value: "" - - name: ZOO_PORT_NUMBER - value: "2181" - - name: ZOO_TICK_TIME - value: "2000" - - name: ZOO_INIT_LIMIT - value: "10" - - name: ZOO_SYNC_LIMIT - value: "5" - - name: ZOO_PRE_ALLOC_SIZE - value: "65536" - - name: ZOO_SNAPCOUNT - value: "100000" - - name: ZOO_MAX_CLIENT_CNXNS - value: "60" - - name: ZOO_4LW_COMMANDS_WHITELIST - value: "srvr, mntr, ruok" - - name: ZOO_LISTEN_ALLIPS_ENABLED - value: "no" - - name: ZOO_AUTOPURGE_INTERVAL - value: "0" - - name: ZOO_AUTOPURGE_RETAIN_COUNT - value: "3" - - name: ZOO_MAX_SESSION_TIMEOUT - value: "40000" - - name: ZOO_SERVERS - value: release-name-zookeeper-0.release-name-zookeeper-headless.tenant-35316305-9bfa-47b7-8fef-00515524aa4c.svc.cluster.local:2888:3888::1 - - name: ZOO_ENABLE_AUTH - value: "no" - - name: ZOO_ENABLE_QUORUM_AUTH - value: "no" - - name: ZOO_HEAP_SIZE - value: "1024" - - name: ZOO_LOG_LEVEL - value: "ERROR" - - name: ALLOW_ANONYMOUS_LOGIN - value: "yes" - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - ports: - - name: client - containerPort: 2181 - - name: follower - containerPort: 2888 - - name: election - containerPort: 3888 - livenessProbe: - failureThreshold: 6 - initialDelaySeconds: 30 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] - readinessProbe: - failureThreshold: 6 - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - exec: - command: ['/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 2181 | grep imok'] - volumeMounts: - - name: scripts - mountPath: /scripts/setup.sh - subPath: setup.sh - - name: data - mountPath: /bitnami/zookeeper - volumes: - - name: scripts - configMap: - name: release-name-zookeeper-scripts - defaultMode: 0755 - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "8Gi" ---- -# Source: nussknacker/templates/ingress.yaml -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: release-name-nussknacker - labels: - helm.sh/chart: nussknacker-1.11.1-SNAPSHOT - app.kubernetes.io/name: nussknacker - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "1.11.3" - app.kubernetes.io/managed-by: Helm - annotations: - cert-manager.io/cluster-issuer: letsencrypt-prod -spec: - rules: - - http: - paths: - - path: /grafana - pathType: Prefix - backend: - service: - name: release-name-grafana - port: - number: 80 - - path: / - pathType: Prefix - backend: - service: - name: release-name-nussknacker - port: - number: 80 ---- -# Source: nussknacker/templates/extra-deploy.yaml -# Pattern from bitnami ---- -# Source: nussknacker/charts/grafana/templates/tests/test-serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm - name: release-name-grafana-test - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" ---- -# Source: nussknacker/charts/grafana/templates/tests/test-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: release-name-grafana-test - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm -data: - run.sh: |- - @test "Test Health" { - url="http://release-name-grafana/api/health" - - code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}') - [ "$code" == "200" ] - } ---- -# Source: nussknacker/charts/apicurio-registry/templates/tests/test-connection.yaml -apiVersion: v1 -kind: Pod -metadata: - name: "release-name-apicurio-registry-test-connection" - labels: - helm.sh/chart: apicurio-registry-0.1.5 - app.kubernetes.io/name: apicurio-registry - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "2.2.5.Final" - app.kubernetes.io/managed-by: Helm - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['release-name-apicurio-registry:80'] - restartPolicy: Never ---- -# Source: nussknacker/charts/grafana/templates/tests/test.yaml -apiVersion: v1 -kind: Pod -metadata: - name: release-name-grafana-test - labels: - helm.sh/chart: grafana-6.60.6 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "10.1.5" - app.kubernetes.io/managed-by: Helm - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - namespace: tenant-35316305-9bfa-47b7-8fef-00515524aa4c -spec: - serviceAccountName: release-name-grafana-test - containers: - - name: release-name-test - image: "docker.io/bats/bats:v1.4.1" - imagePullPolicy: "IfNotPresent" - command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"] - volumeMounts: - - mountPath: /tests - name: tests - readOnly: true - volumes: - - name: tests - configMap: - name: release-name-grafana-test - restartPolicy: Never ---- -# Source: nussknacker/templates/tests/test-job.yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: "release-name-nussknacker-test-job" - annotations: - "helm.sh/hook": test -spec: - activeDeadlineSeconds: 600 - backoffLimit: 0 - template: - spec: - imagePullSecrets: - - name: gitlab-registry - shareProcessNamespace: true - containers: - - name: test-job - image: touk/kafka-bats - imagePullPolicy: Always - command: - - /main-wrapper.sh - - /usr/local/bin/bats - args: - - -t - - //suites/kafka-only.bats - env: - - name: NUSSKNACKER_URL - value: "http://release-name-nussknacker:80" - - name: AUTHORIZATION - value: "Basic YWRtaW46YWRtaW4=" - - name: KAFKA_NAMESPACE - value: release-name - - name: KAFKA_BOOTSTRAP_SERVER - value: "release-name-kafka:9092" - - name: SCENARIO_TYPE - value: "StreamMetaData" - - name: SCHEMA_REGISTRY_URL - value: "http://release-name-apicurio-registry:80/apis/ccompat/v6/" - volumeMounts: - - name: suites - mountPath: /suites - - name: scripts - mountPath: /main-wrapper.sh - subPath: main-wrapper.sh - - name: pids - mountPath: /var/run/sidecars - restartPolicy: Never - volumes: - - name: pids - emptyDir: {} - - name: suites - configMap: - name: release-name-nussknacker-test-suites - - name: scripts - configMap: - name: release-name-nussknacker-test-scripts - defaultMode: 0755 diff --git a/src/Chart.lock b/src/Chart.lock index b75dea05..4d1bf98c 100644 --- a/src/Chart.lock +++ b/src/Chart.lock @@ -16,12 +16,12 @@ dependencies: version: 0.2.0 - name: grafana repository: https://grafana.github.io/helm-charts - version: 6.60.6 + version: 6.61.0 - name: influxdb repository: https://helm.influxdata.com/ version: 4.12.5 - name: telegraf repository: https://helm.influxdata.com/ version: 1.8.35 -digest: sha256:05f1bc522e61aa06cb7d70732143ffabf828169aa93b61cc494992f044952203 -generated: "2023-10-17T11:51:34.229055+02:00" +digest: sha256:0f79e72af1530a708dd2b65389dd49a3808c36c750feca6faad8d6ec43ee2ed6 +generated: "2023-10-18T07:33:43.988697+02:00" diff --git a/src/Chart.yaml b/src/Chart.yaml index d1ef79b0..a482b8dc 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -25,7 +25,6 @@ dependencies: version: ~11.0.3 repository: "@bitnami" condition: zookeeper.enabled - alias: zookeeper-external - name: apicurio-registry repository: "@touk" version: ~0.1.5 diff --git a/src/values.yaml b/src/values.yaml index b8a7f13d..34fb90ee 100644 --- a/src/values.yaml +++ b/src/values.yaml @@ -177,8 +177,6 @@ postgresql: zookeeper: enabled: true - -zookeeper-external: service: *zookeeper_ports_config kafka: From 074c10759c82c27094faca53fdf31adc2b650fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 07:48:31 +0200 Subject: [PATCH 34/53] Updated deprecated things --- .github/workflows/helm-test-workflow.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index df360792..01f91128 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,13 +38,13 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Print Nussknacker version run: | echo "Nussknacker version: $NUSSKNACKER_VERSION" - name: setVersion id: setVersion - run: echo "::set-output name=version::$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" + run: echo "{version}={$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")}" >> $GITHUB_OUTPUT - name: buildAll run: ./setup.sh - name: checkTemplate @@ -52,7 +52,7 @@ jobs: - name: packageAll run: helm package ${{env.CHART_SRC_DIR}} -d dist --version "${{steps.setVersion.outputs.version}}" - name: Store target - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: helm-build path: "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" @@ -64,8 +64,8 @@ jobs: NUSSKNACKER_VERSION: staging-latest_scala-2.12 steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 + uses: actions/checkout@v4 + - uses: actions/download-artifact@v3 with: name: helm-build path: dist @@ -86,8 +86,8 @@ jobs: needs: [ build ] steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 + uses: actions/checkout@v4 + - uses: actions/download-artifact@v3 with: name: helm-build path: dist @@ -107,8 +107,8 @@ jobs: needs: [ build ] steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 + uses: actions/checkout@v4 + - uses: actions/download-artifact@v3 with: name: helm-build path: dist @@ -128,7 +128,7 @@ jobs: runs-on: ubuntu-latest needs: [ build, test-flink, test-streaming-lite, test-request-response ] steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v3 with: name: helm-build path: dist From 5babe31f965de6e50d90526abeed395178123040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 07:56:04 +0200 Subject: [PATCH 35/53] test --- .github/workflows/helm-test-workflow.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 01f91128..f6a773ac 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -42,6 +42,8 @@ jobs: - name: Print Nussknacker version run: | echo "Nussknacker version: $NUSSKNACKER_VERSION" + - name: test + run: echo "{version}={$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")}" - name: setVersion id: setVersion run: echo "{version}={$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")}" >> $GITHUB_OUTPUT From b120835ed473779d8921dfc528643ba1bf42bf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 08:08:27 +0200 Subject: [PATCH 36/53] test --- .github/workflows/helm-test-workflow.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index f6a773ac..3994802c 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -42,11 +42,9 @@ jobs: - name: Print Nussknacker version run: | echo "Nussknacker version: $NUSSKNACKER_VERSION" - - name: test - run: echo "{version}={$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")}" - name: setVersion id: setVersion - run: echo "{version}={$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")}" >> $GITHUB_OUTPUT + run: echo "version=$(helm show chart ${{env.CHART_SRC_DIR}} | grep ^version | sed -e "s/.*:\ //;s/SNAPSHOT/SNAPSHOT.${{github.run_id}}/")" >> $GITHUB_OUTPUT - name: buildAll run: ./setup.sh - name: checkTemplate From dbc12ad8811f65c11194cefe0861b496b1ac44d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 08:21:20 +0200 Subject: [PATCH 37/53] fix --- .github/workflows/helm-test-workflow.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 89b48518..3994802c 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -4,11 +4,9 @@ on: pull_request: branches: - main - - 'preview/*' push: branches: - main - - 'preview/*' tags: - '*' workflow_dispatch: @@ -27,7 +25,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8}"' + defaults: run: shell: bash @@ -39,8 +37,6 @@ jobs: outputs: version: ${{ steps.setVersion.outputs.version }} steps: - - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version @@ -60,7 +56,6 @@ jobs: with: name: helm-build path: "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" - - run: curl -u ${{env.CHART_REPOSITORY_AUTH}} --fail --upload-file "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" ${{env.CHARTS_PUBLIC_SNAPSHOTS_URL}} test-flink: name: test flink mode runs-on: ubuntu-latest From 2d4b58cbeb5163926f295afda7760f9315021c74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 08:23:18 +0200 Subject: [PATCH 38/53] Added helm check --- .github/workflows/helm-test-workflow.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 3994802c..36e30423 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -25,7 +25,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8}"' defaults: run: shell: bash @@ -37,6 +37,8 @@ jobs: outputs: version: ${{ steps.setVersion.outputs.version }} steps: + - name: Verify helm version + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From 102617ef7bb699e26537bd4c6ddd539444892006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 08:31:47 +0200 Subject: [PATCH 39/53] test --- src/values.yaml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/values.yaml b/src/values.yaml index b5a99210..99f3974a 100644 --- a/src/values.yaml +++ b/src/values.yaml @@ -15,17 +15,6 @@ global: replicaCount: 1 -global: - kafka: - name: kafka - port: 9092 - zookeeper: &zookeeper_ports_config - ports: - client: 2181 - schemaRegistry: - name: apicurio-registry - path: /apis/ccompat/v6/ - image: repository: touk/nussknacker # By default, the tag is taken from the chart's appVersion, but you can override it with this property. From 5e6e89bc5dd8d45b3490c3e01f924fbd8e03a3b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 08:40:03 +0200 Subject: [PATCH 40/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- src/Chart.yaml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 36e30423..36ca19bd 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: $current_helm_version" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version diff --git a/src/Chart.yaml b/src/Chart.yaml index f3d8c9b3..97665256 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -25,7 +25,6 @@ dependencies: version: ~11.0.3 repository: "@bitnami" condition: zookeeper.enabled - alias: zookeeper-external - name: apicurio-registry repository: "@touk" version: ~0.1.5 From 462abc03c9477d763cb0da17583411359b770c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:46:02 +0200 Subject: [PATCH 41/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 36ca19bd..d481b144 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: $current_helm_version" + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: $(current_helm_version)" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From 9f70a175b94926b33e691dddba60445e83933dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:48:14 +0200 Subject: [PATCH 42/53] tet --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index d481b144..24c3030d 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: $(current_helm_version)" + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: "$current_helm_version - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From a1dd13f0cd9437ec8086b2a8a43aad9db9ca5fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:49:58 +0200 Subject: [PATCH 43/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 24c3030d..044a2fbf 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution! Current version: "$current_helm_version + run: current_helm_version=$(helm version) && echo "Helm version: current_helm_version" && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From 47e1565d5c9fcfe58c663fa46926dd3c13f54b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:50:34 +0200 Subject: [PATCH 44/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 044a2fbf..36e30423 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && echo "Helm version: current_helm_version" && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" + run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From 7b4ee4d8737179bdb5ab9045ade4692594dcb447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:52:32 +0200 Subject: [PATCH 45/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- src/Chart.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 36e30423..55d476ea 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" + run: current_helm_version=$(helm version) && echo "Current helm version" && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version diff --git a/src/Chart.lock b/src/Chart.lock index a8631eee..af60c586 100644 --- a/src/Chart.lock +++ b/src/Chart.lock @@ -23,5 +23,5 @@ dependencies: - name: telegraf repository: https://helm.influxdata.com/ version: 1.8.35 -digest: sha256:d9e550b4186327276aaeb16686715ae8ea395b595ed451c87a0a7872eb83f1cf -generated: "2023-10-18T08:17:52.825537+02:00" +digest: sha256:0f79e72af1530a708dd2b65389dd49a3808c36c750feca6faad8d6ec43ee2ed6 +generated: "2023-10-18T09:52:20.811471+02:00" From 24ae00df8394c4780a7b32da34a566fdd10a1fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:53:12 +0200 Subject: [PATCH 46/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index 55d476ea..e1a9d18f 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -38,7 +38,7 @@ jobs: version: ${{ steps.setVersion.outputs.version }} steps: - name: Verify helm version - run: current_helm_version=$(helm version) && echo "Current helm version" && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" + run: current_helm_version=$(helm version) && echo "Current helm version $current_helm_version" && [ "$current_helm_version" = "$HELM_VERSION" ] && echo "Helm is in expected version" || echo "::warning title=Helm version is different than expected!::Helm has been updated on runner's image. It could lead to unexpected behaviour during pipeline execution!" - name: Checkout uses: actions/checkout@v4 - name: Print Nussknacker version From 8b57af2d6296d9b320d2382b30180b2007269214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 09:54:46 +0200 Subject: [PATCH 47/53] test --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index e1a9d18f..b40ac07a 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -25,7 +25,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8}"' + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}' defaults: run: shell: bash From 81c180e2ab58225017fe52385dd6a8a47805d2ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 18 Oct 2023 10:02:37 +0200 Subject: [PATCH 48/53] Restored -SNAPSHOT --- src/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 97665256..a482b8dc 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.11.1 +version: 1.11.1-SNAPSHOT description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg From 4e6edc5129523cd37d986bee552fe0a547875aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 25 Oct 2023 10:00:24 +0200 Subject: [PATCH 49/53] Added engineVersion parameter --- src/templates/configmap.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index 691fa282..98ba9dd7 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -21,6 +21,7 @@ data: password: {{ .Values.nussknacker.ververica.password | quote }} remoteSyslogIp: {{ .Values.nussknacker.ververica.remoteSyslogIp | quote }} remoteSyslogPort: {{ .Values.nussknacker.ververica.remoteSyslogPort }} + engineVersion: {{ .Values.nussknacker.ververica.engineVersion | quote }} } {{- else if eq .Values.nussknacker.mode "flink" }} deploymentConfig: { From 81f8c46fc50b52f3a86b88c171fc021599744a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 25 Oct 2023 10:02:35 +0200 Subject: [PATCH 50/53] Updated helm version --- .github/workflows/helm-test-workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index b40ac07a..e8c54c53 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -25,7 +25,7 @@ env: CHART_REPOSITORY_AUTH: "${{ secrets.CHARTS_PUBLIC_AUTH}}" CHARTS_PUBLIC_SNAPSHOTS_URL: "https://helm-charts.touk.pl/nexus/repository/helm-snapshots/" CHARTS_PUBLIC_RELEASES_URL: "https://helm-charts.touk.pl/nexus/repository/helm-releases/" - HELM_VERSION: 'version.BuildInfo{Version:"v3.13.0", GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}' + HELM_VERSION: 'version.BuildInfo{Version:"v3.13.1", GitCommit:"3547a4b5bf5edb5478ce352e18858d8a552a4110", GitTreeState:"clean", GoVersion:"go1.20.8"}' defaults: run: shell: bash From 0421c4ebd5aa9a0016266140bf37d47800401158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 25 Oct 2023 10:57:30 +0200 Subject: [PATCH 51/53] Added releasing to allow testing this crap --- .github/workflows/helm-test-workflow.yaml | 1 + src/Chart.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/helm-test-workflow.yaml b/.github/workflows/helm-test-workflow.yaml index e8c54c53..880f3c4e 100644 --- a/.github/workflows/helm-test-workflow.yaml +++ b/.github/workflows/helm-test-workflow.yaml @@ -58,6 +58,7 @@ jobs: with: name: helm-build path: "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" + - run: curl -u ${{env.CHART_REPOSITORY_AUTH}} --fail --upload-file "dist/${{env.NAME}}-${{steps.setVersion.outputs.version}}.tgz" ${{env.CHARTS_PUBLIC_SNAPSHOTS_URL}} test-flink: name: test flink mode runs-on: ubuntu-latest diff --git a/src/Chart.yaml b/src/Chart.yaml index a482b8dc..c55c78ee 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.11.1-SNAPSHOT +version: 1.11.1-SNAPSHOT-mpk-1 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg From a1b976e99777569d3e1e975105694ead6899ec94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Wed, 25 Oct 2023 12:34:04 +0200 Subject: [PATCH 52/53] fix --- src/Chart.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index 58a81c1f..c55c78ee 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,10 +1,6 @@ apiVersion: v2 name: nussknacker -<<<<<<< HEAD version: 1.11.1-SNAPSHOT-mpk-1 -======= -version: 1.11.1 ->>>>>>> origin/main description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg From 2753f12e75841eac3e918271535e97308ffd2145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Pi=C4=99kos?= Date: Fri, 3 Nov 2023 06:50:43 +0100 Subject: [PATCH 53/53] Added workspaceId to config --- src/Chart.yaml | 2 +- src/templates/configmap.yaml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Chart.yaml b/src/Chart.yaml index c55c78ee..c907eb28 100644 --- a/src/Chart.yaml +++ b/src/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nussknacker -version: 1.11.1-SNAPSHOT-mpk-1 +version: 1.11.1-SNAPSHOT-mpk-2 description: Nussknacker - a design, development, and deployment tool for stream processing home: https://nussknacker.io/ icon: https://nussknacker.io/wp-content/uploads/2021/10/Nussknacker-short-black.svg diff --git a/src/templates/configmap.yaml b/src/templates/configmap.yaml index 98ba9dd7..ca4b8f45 100644 --- a/src/templates/configmap.yaml +++ b/src/templates/configmap.yaml @@ -22,6 +22,9 @@ data: remoteSyslogIp: {{ .Values.nussknacker.ververica.remoteSyslogIp | quote }} remoteSyslogPort: {{ .Values.nussknacker.ververica.remoteSyslogPort }} engineVersion: {{ .Values.nussknacker.ververica.engineVersion | quote }} + {{- if .Values.nussknacker.ververica.workspaceId }} + workspaceId: {{ .Values.nussknacker.ververica.workspaceId }} + {{- end }} } {{- else if eq .Values.nussknacker.mode "flink" }} deploymentConfig: {