This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-showcase.git


The following commit(s) were added to refs/heads/main by this push:
     new bc8c357  Add MySQL monitoring in showcase. (#63)
bc8c357 is described below

commit bc8c357cd0bbce7a59cba637e8f576b38f2493cf
Author: yswdqz <[email protected]>
AuthorDate: Mon Aug 15 18:51:51 2022 +0800

    Add MySQL monitoring in showcase. (#63)
    
    Co-authored-by: kezhenxu94 <[email protected]>
---
 Makefile.in                                        |   4 +-
 deploy/platform/docker/Makefile.in                 |   2 +-
 .../docker/config/mysql-otel-collector-config.yaml |  42 ++++++
 deploy/platform/docker/docker-compose.cluster.yaml |   2 +-
 deploy/platform/docker/docker-compose.mysql.yaml   |  72 +++++++++
 .../docker/docker-compose.single-node.yaml         |   2 +-
 deploy/platform/docker/resource/mock.sql           |  41 +++++
 deploy/platform/kubernetes/Makefile.in             |   2 +-
 .../kubernetes/feature-cluster/resources.yaml      |   7 +-
 .../platform/kubernetes/feature-mysql/mysql.yaml   | 167 +++++++++++++++++++++
 .../kubernetes/feature-mysql/open-telemetry.yaml   | 101 +++++++++++++
 .../permissions.yaml}                              |  34 ++++-
 .../kubernetes/feature-single-node/resources.yaml  |   5 +-
 scripts/make/help.mk                               |   6 +-
 14 files changed, 467 insertions(+), 20 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index d8a6091..1ec24f2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -26,8 +26,8 @@ TAG ?= $(shell git rev-parse --short HEAD)
 
 ES_IMAGE ?= docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.0
 
-SW_OAP_IMAGE ?= 
ghcr.io/apache/skywalking/oap:e26f63f3b97eb9b58e114db7ee19ab6ec399c676
-SW_UI_IMAGE ?= 
ghcr.io/apache/skywalking/ui:e26f63f3b97eb9b58e114db7ee19ab6ec399c676
+SW_OAP_IMAGE ?= 
ghcr.io/apache/skywalking/oap:6ab00031a04bbece05dbcf9edd6a2deb7d99a0b2
+SW_UI_IMAGE ?= 
ghcr.io/apache/skywalking/ui:6ab00031a04bbece05dbcf9edd6a2deb7d99a0b2
 SW_CLI_IMAGE ?= 
ghcr.io/apache/skywalking-cli/skywalking-cli:bdcba1c93b1ad702a88f30b798df5e99d963689d
 SW_EVENT_EXPORTER_IMAGE ?= 
ghcr.io/apache/skywalking-kubernetes-event-exporter/skywalking-kubernetes-event-exporter:8a012a3f968cb139f817189afb9b3748841bba22
 SW_AGENT_JAVA_IMAGE ?= 
ghcr.io/apache/skywalking-java/skywalking-java:d75cdf51e1088a9cf2289b5588e8114fcf3099d7-java8
diff --git a/deploy/platform/docker/Makefile.in 
b/deploy/platform/docker/Makefile.in
index 1c5ba3c..c9a2788 100644
--- a/deploy/platform/docker/Makefile.in
+++ b/deploy/platform/docker/Makefile.in
@@ -17,4 +17,4 @@
 #
 
 .EXPORT_ALL_VARIABLES:
-FEATURE_FLAGS ?= agent,cluster,so11y,vm,event
+FEATURE_FLAGS ?= agent,cluster,so11y,vm,event,mysql
diff --git a/deploy/platform/docker/config/mysql-otel-collector-config.yaml 
b/deploy/platform/docker/config/mysql-otel-collector-config.yaml
new file mode 100644
index 0000000..ce35ee3
--- /dev/null
+++ b/deploy/platform/docker/config/mysql-otel-collector-config.yaml
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+receivers:
+  prometheus:
+    config: 
+     scrape_configs:
+       - job_name: 'mysql-monitoring'
+         scrape_interval: 10s
+         static_configs:
+           - targets: ['mysql-service:9104']
+             labels: 
+               host_name: showcase
+processors:
+  batch:
+
+exporters:
+  opencensus:
+    endpoint: oap:11800
+    tls:
+      insecure: true
+service:
+  pipelines:
+    metrics:
+      receivers:
+      - prometheus
+      processors:
+      - batch
+      exporters:
+      - opencensus
\ No newline at end of file
diff --git a/deploy/platform/docker/docker-compose.cluster.yaml 
b/deploy/platform/docker/docker-compose.cluster.yaml
index 89a2c71..d0a268b 100644
--- a/deploy/platform/docker/docker-compose.cluster.yaml
+++ b/deploy/platform/docker/docker-compose.cluster.yaml
@@ -53,7 +53,7 @@ services:
       SW_CLUSTER_ZK_HOST_PORT: zookeeper:2181 # @feature: cluster; set up the 
cluster coordinator address
       SW_HEALTH_CHECKER: default # @feature: health-check;
       SW_OTEL_RECEIVER: default # @feature: vm; enable the OC receiver that 
receives the VM metrics
-      SW_OTEL_RECEIVER_ENABLED_OC_RULES: vm # @feature: vm; enable the OC 
rules that analyse the VM metrics
+      SW_OTEL_RECEIVER_ENABLED_OC_RULES: vm,mysql # @feature: vm; enable the 
OC rules that analyse the VM metrics
       SW_STORAGE: elasticsearch
       SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
       SW_TELEMETRY: prometheus # @feature: so11y; expose the metrics of self 
o11y through prometheus
diff --git a/deploy/platform/docker/docker-compose.mysql.yaml 
b/deploy/platform/docker/docker-compose.mysql.yaml
new file mode 100644
index 0000000..d6e07c4
--- /dev/null
+++ b/deploy/platform/docker/docker-compose.mysql.yaml
@@ -0,0 +1,72 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# @feature: mysql; set up mysqld_exporter and OpenTelemetry collector
+
+version: '2.1'
+
+services:
+  mysql:
+    image: mysql:8.0.30 
+    networks:
+      - sw
+    ports:
+      - 3306
+    environment:
+      - MYSQL_ROOT_PASSWORD=password
+
+  mysql-load:
+    image: mysql:8.0.30 
+    depends_on:
+      - otel-collector
+    networks:
+      - sw
+    entrypoint: bash
+    volumes:
+     - ../docker/resource:/docker
+    command:
+      - -c
+      - "mysql -h mysql -uroot -ppassword < /docker/mock.sql"
+      
+  mysql-service:
+    image: prom/mysqld-exporter:v0.14.0
+    ports:
+      - 9104
+    environment:
+      - DATA_SOURCE_NAME=root:password@(mysql:3306)/
+    networks:
+      - sw
+    depends_on:
+      - mysql
+    
+
+  otel-collector:
+    image: otel/opentelemetry-collector:0.50.0
+    networks:
+      - sw
+    command: [ "--config=/etc/mysql-otel-collector-config.yaml" ]
+    volumes:
+      - 
./config/mysql-otel-collector-config.yaml:/etc/mysql-otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+  
+networks:
+  sw:
\ No newline at end of file
diff --git a/deploy/platform/docker/docker-compose.single-node.yaml 
b/deploy/platform/docker/docker-compose.single-node.yaml
index b6ddbd0..56d5984 100644
--- a/deploy/platform/docker/docker-compose.single-node.yaml
+++ b/deploy/platform/docker/docker-compose.single-node.yaml
@@ -43,7 +43,7 @@ services:
     environment:
       SW_HEALTH_CHECKER: default # @feature: health-check;
       SW_OTEL_RECEIVER: default # @feature: vm; enable the OC receiver that 
receives the VM metrics
-      SW_OTEL_RECEIVER_ENABLED_OC_RULES: vm # @feature: vm; enable the OC 
rules that analyse the VM metrics
+      SW_OTEL_RECEIVER_ENABLED_OC_RULES: vm,mysql # @feature: vm; enable the 
OC rules that analyse the VM metrics
       SW_STORAGE: elasticsearch
       SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
       SW_TELEMETRY: prometheus # @feature: so11y; expose the metrics of self 
o11y through prometheus
diff --git a/deploy/platform/docker/resource/mock.sql 
b/deploy/platform/docker/resource/mock.sql
new file mode 100644
index 0000000..be4db72
--- /dev/null
+++ b/deploy/platform/docker/resource/mock.sql
@@ -0,0 +1,41 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+CREATE DATABASE IF NOT EXISTS test;
+USE test;
+CREATE TABLE IF NOT EXISTS `t1`(
+   `te1` VARCHAR(100) NOT NULL
+)ENGINE=InnoDB DEFAULT CHARSET=utf8;
+SET GLOBAL event_scheduler = 1;
+
+CREATE EVENT `event_1` 
+ON SCHEDULE EVERY 3 SECOND 
+DO INSERT INTO t1 values('test');
+
+CREATE EVENT `event_2` 
+ON SCHEDULE EVERY 2 SECOND 
+DO UPDATE t1 SET `te1` = 1;
+
+CREATE EVENT `event_3` 
+ON SCHEDULE EVERY 4 SECOND 
+DO DELETE FROM t1;
+
+CREATE EVENT `event_4` 
+ON SCHEDULE EVERY 5 SECOND 
+DO COMMIT;
+
+CREATE EVENT `event_5` 
+ON SCHEDULE EVERY 1 SECOND 
+DO SELECT * FROM t1;
diff --git a/deploy/platform/kubernetes/Makefile.in 
b/deploy/platform/kubernetes/Makefile.in
index 74c7d9d..5155da7 100644
--- a/deploy/platform/kubernetes/Makefile.in
+++ b/deploy/platform/kubernetes/Makefile.in
@@ -22,4 +22,4 @@ NAMESPACE ?= default
 AGENTLESS ?= false
 BACKEND_SERVICE ?= oap
 
-FEATURE_FLAGS ?= 
java-agent-injector,cluster,kubernetes-monitor,so11y,vm,als,event,istiod-monitor,satellite,rover,trace-profiling
+FEATURE_FLAGS ?= 
java-agent-injector,cluster,kubernetes-monitor,so11y,vm,als,event,istiod-monitor,satellite,rover,trace-profiling,mysql
diff --git a/deploy/platform/kubernetes/feature-cluster/resources.yaml 
b/deploy/platform/kubernetes/feature-cluster/resources.yaml
index c2bcbea..55ad0d3 100644
--- a/deploy/platform/kubernetes/feature-cluster/resources.yaml
+++ b/deploy/platform/kubernetes/feature-cluster/resources.yaml
@@ -154,7 +154,7 @@ spec:
             - name: SW_OTEL_RECEIVER
               value: default
             - name: SW_OTEL_RECEIVER_ENABLED_OC_RULES
-              value: vm,oap
+              value: vm,oap,mysql
             - name: SW_STORAGE
               value: elasticsearch
             - name: SW_STORAGE_ES_CLUSTER_NODES
@@ -230,13 +230,14 @@ spec:
             - name: SW_HEALTH_CHECKER
               value: default
             - name: SW_OTEL_RECEIVER
-              value: default # @feature: so11y;vm;kubernetes-monitor enable 
OpenTelemetry receiver to receive OpenTelemetry metrics
+              value: default # @feature: so11y;,mysql;kubernetes-monitor 
enable OpenTelemetry receiver to receive OpenTelemetry metrics
             - name: SW_OTEL_RECEIVER_ENABLED_OC_RULES
               # @feature: vm; enable vm rules to analyze VM metrics
               # @feature: so11y; enable oap rules to analyze OAP metrics
               # @feature: kubernetes-monitor; enable rules to analyze 
Kubernetes Cluster/Node/Service metrics
               # @feature: istiod-monitor; enable rules to analyze Istio 
control plane metrics
-              value: 
vm,oap,k8s-cluster,k8s-node,k8s-service,k8s-instance,istio-controlplane
+              # @feature: mysql; enable mysql rules to analyze MySQL metrics
+              value: 
vm,oap,k8s-cluster,k8s-node,k8s-service,k8s-instance,istio-controlplane,mysql
             - name: SW_STORAGE
               value: elasticsearch
             - name: SW_STORAGE_ES_CLUSTER_NODES
diff --git a/deploy/platform/kubernetes/feature-mysql/mysql.yaml 
b/deploy/platform/kubernetes/feature-mysql/mysql.yaml
new file mode 100644
index 0000000..63f3677
--- /dev/null
+++ b/deploy/platform/kubernetes/feature-mysql/mysql.yaml
@@ -0,0 +1,167 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: mock-sql-mysql
+  labels:
+    app: mysql-load
+data:
+  mock-sql: |
+    CREATE DATABASE IF NOT EXISTS test;
+    USE test;
+    CREATE TABLE IF NOT EXISTS `t1`(
+       `te1` VARCHAR(100) NOT NULL
+    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
+    SET GLOBAL event_scheduler = 1;
+
+    CREATE EVENT `event_1`
+    ON SCHEDULE EVERY 1 SECOND
+    DO INSERT INTO t1 values('test');
+
+    CREATE EVENT `event_2`
+    ON SCHEDULE EVERY 1 SECOND
+    DO UPDATE t1 SET `te1` = 1;
+
+    CREATE EVENT `event_3`
+    ON SCHEDULE EVERY 1 SECOND
+    DO DELETE FROM t1;
+
+    CREATE EVENT `event_4`
+    ON SCHEDULE EVERY 1 SECOND
+    DO COMMIT;
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mysql
+spec:
+  selector:
+    app: mysql
+  ports:
+    - protocol: TCP
+      port: 3306
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: mysql-deployment
+  labels:
+    app: mysql
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: mysql
+  template:
+    metadata:
+      labels:
+        app: mysql
+      annotations:
+        sidecar.istio.io/inject: "false"
+    spec:
+      containers:
+        - name: mysql
+          image: mysql:8.0.30
+          env:
+            - name: MYSQL_ROOT_PASSWORD
+              value: password
+          ports:
+            - containerPort: 3306
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: mysql-service
+spec:
+  selector:
+    app: mysql-service
+  ports:
+    - protocol: TCP
+      port: 9104
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: mysql-service-deployment
+  labels:
+    app: mysql-service
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: mysql-service
+  template:
+    metadata:
+      labels:
+        app: mysql-service
+      annotations:
+        sidecar.istio.io/inject: "false"
+    spec:
+      containers:
+        - name: mysql
+          image: prom/mysqld-exporter:v0.14.0
+          env:
+            - name: DATA_SOURCE_NAME
+              value: root:password@(mysql:3306)/
+          resources:
+            limits:
+              cpu: 100m
+              memory: "128Mi"
+          ports:
+            - containerPort: 9104
+              name: metrics
+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: mysql-load-deployment # @feature: mysql; set up job to trigger mysql 
commands, you don't need this in production env.
+spec:
+  template:
+    metadata:
+      name: mysql-load-deployment
+      annotations:
+        sidecar.istio.io/inject: "false"
+    spec:
+      restartPolicy: Never
+      initContainers:
+        - name: wait-for-mysql
+          image: busybox
+          command:  ["sh", "-c", "until nc -z mysql 3306 > /dev/null; do echo 
Waiting for mysql.; sleep 2; done;"]
+      containers:
+        - name: mysql-load
+          image: mysql:8.0.30
+          command:
+            - bash
+            - -c
+            - mysql -hmysql -uroot -ppassword < /conf/mock.sql
+          volumeMounts:
+            - name: mock-sql-vol-mysql
+              mountPath: /conf
+      volumes:
+        - name: mock-sql-vol-mysql
+          configMap:
+            name: mock-sql-mysql
+            items:
+              - key: mock-sql
+                path: mock.sql
diff --git a/deploy/platform/kubernetes/feature-mysql/open-telemetry.yaml 
b/deploy/platform/kubernetes/feature-mysql/open-telemetry.yaml
new file mode 100644
index 0000000..3e7644f
--- /dev/null
+++ b/deploy/platform/kubernetes/feature-mysql/open-telemetry.yaml
@@ -0,0 +1,101 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# @feature: mysql-monitor; set OpenTelemetry config to scrape the mysql metrics
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: otel-collector-conf-mysql
+  labels:
+    app: otel-mysql
+data:
+  otel-collector-config: |
+    receivers:
+      prometheus:
+        config:
+         scrape_configs:
+            # @feature: mysql; this is only for demo, in real scenarios the 
mysql addresses should be static, not via service discovery
+            - job_name: 'mysql-monitoring'
+              metrics_path: '/metrics'
+              kubernetes_sd_configs:
+                - role: pod
+              relabel_configs:
+                - source_labels: [__meta_kubernetes_pod_container_name, 
__meta_kubernetes_pod_container_port_name]
+                  action: keep
+                  regex: mysql;metrics # @feature: mysql; reference the name 
of the metrics port
+                - source_labels: [__meta_kubernetes_pod_name]
+                  target_label: host_name
+                  regex: (.+)
+                  replacement: $$1
+
+    processors:
+      batch:
+    exporters:
+      opencensus:
+        endpoint: oap:11800
+        tls:
+          insecure: true
+      logging:
+        logLevel: debug
+    service:
+      pipelines:
+        metrics:
+          receivers:
+          - prometheus
+          processors:
+          - batch
+          exporters:
+          - opencensus
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: otel-deployment-mysql
+  labels:
+    app: otel-mysql
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: otel-mysql
+  template:
+    metadata:
+      labels:
+        app: otel-mysql
+      annotations:
+        sidecar.istio.io/inject: "false"
+    spec:
+      serviceAccountName: otel-sa-mysql
+      containers:
+        - name: otel-mysql
+          image: otel/opentelemetry-collector:0.50.0
+          command:
+            - "/otelcol"
+            - "--config=/conf/otel-collector-config.yaml"
+          volumeMounts:
+            - name: otel-collector-config-vol-mysql
+              mountPath: /conf
+      volumes:
+        - name: otel-collector-config-vol-mysql
+          configMap:
+            name: otel-collector-conf-mysql
+            items:
+              - key: otel-collector-config
+                path: otel-collector-config.yaml
diff --git a/deploy/platform/kubernetes/Makefile.in 
b/deploy/platform/kubernetes/feature-mysql/permissions.yaml
similarity index 58%
copy from deploy/platform/kubernetes/Makefile.in
copy to deploy/platform/kubernetes/feature-mysql/permissions.yaml
index 74c7d9d..d5ed9d4 100644
--- a/deploy/platform/kubernetes/Makefile.in
+++ b/deploy/platform/kubernetes/feature-mysql/permissions.yaml
@@ -15,11 +15,33 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: otel-sa-mysql
 
-.EXPORT_ALL_VARIABLES:
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: otel-role-mysql
+rules:
+  - apiGroups: [ "" ]
+    resources:
+      - "pods"
+    verbs: [ "get", "watch", "list" ]
 
-NAMESPACE ?= default
-AGENTLESS ?= false
-BACKEND_SERVICE ?= oap
-
-FEATURE_FLAGS ?= 
java-agent-injector,cluster,kubernetes-monitor,so11y,vm,als,event,istiod-monitor,satellite,rover,trace-profiling
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: otel-role-binding-mysql
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: otel-role-mysql
+subjects:
+  - kind: ServiceAccount
+    name: otel-sa-mysql
+    namespace: ${NAMESPACE}
diff --git a/deploy/platform/kubernetes/feature-single-node/resources.yaml 
b/deploy/platform/kubernetes/feature-single-node/resources.yaml
index bb8b419..d6ccf26 100644
--- a/deploy/platform/kubernetes/feature-single-node/resources.yaml
+++ b/deploy/platform/kubernetes/feature-single-node/resources.yaml
@@ -162,13 +162,14 @@ spec:
             - name: SW_HEALTH_CHECKER
               value: default
             - name: SW_OTEL_RECEIVER
-              value: default # @feature: so11y;vm;kubernetes-monitor enable 
OpenTelemetry receiver to receive OpenTelemetry metrics
+              value: default # @feature: so11y;mysql;vm;kubernetes-monitor 
enable OpenTelemetry receiver to receive OpenTelemetry metrics
             - name: SW_OTEL_RECEIVER_ENABLED_OC_RULES
               # @feature: vm; enable vm rules to analyze VM metrics
               # @feature: so11y; enable oap rules to analyze OAP metrics
               # @feature: kubernetes-monitor; enable rules to analyze 
Kubernetes Cluster/Node/Service metrics
               # @feature: istiod-monitor; enable rules to analyze Istio metrics
-              value: 
vm,oap,k8s-cluster,k8s-node,k8s-service,k8s-instance,istio-controlplane
+              # @feature: mysql; enable rules to analyze MySQL metrics
+              value: 
vm,oap,k8s-cluster,k8s-node,k8s-service,k8s-instance,istio-controlplane,mysql
             - name: SW_STORAGE
               value: elasticsearch
             - name: SW_STORAGE_ES_CLUSTER_NODES
diff --git a/scripts/make/help.mk b/scripts/make/help.mk
index 5d4f0e4..b089357 100644
--- a/scripts/make/help.mk
+++ b/scripts/make/help.mk
@@ -22,12 +22,12 @@ define usage
   You can customize the settings in Makefile.in
   by specifying the variable in make command:
 
-  $$ make deploy.docker FEATURE_FLAGS=agent,vm
+  $$ make deploy.docker FEATURE_FLAGS=agent,vm,mysql
 
   or via environment variable:
 
-  $$ export FEATURE_FLAGS=single-node,agent,vm && make deploy.docker
-  $$ export FEATURE_FLAGS=cluster,agent,vm && make deploy.docker
+  $$ export FEATURE_FLAGS=single-node,agent,vm,mysql && make deploy.docker
+  $$ export FEATURE_FLAGS=cluster,agent,vm,mysql && make deploy.docker
 endef
 
 export usage

Reply via email to