You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2023/04/24 09:23:07 UTC

[skywalking-showcase] branch main updated: elasticsearch monitoring showcase (#125)

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

wusheng 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 c53a35d  elasticsearch monitoring showcase (#125)
c53a35d is described below

commit c53a35d92f5513c2b44e180f6257915b27ad7e7c
Author: innerpeacez <in...@gmail.com>
AuthorDate: Mon Apr 24 17:23:02 2023 +0800

    elasticsearch monitoring showcase (#125)
---
 Makefile.in                                        |  4 +-
 deploy/platform/docker/Makefile.in                 |  2 +-
 .../otel-collector-config-elasticsearch.yaml       | 46 +++++++++++++++
 deploy/platform/docker/docker-compose.cluster.yaml |  2 +-
 .../docker-compose.elasticsearch-monitor.yaml      | 65 ++++++++++++++++++++++
 .../docker/docker-compose.single-node.yaml         |  2 +-
 deploy/platform/kubernetes/Chart.yaml              |  5 ++
 deploy/platform/kubernetes/Makefile                | 11 +++-
 deploy/platform/kubernetes/Makefile.in             |  2 +-
 .../opentelemetry-config.yaml}                     | 19 +++++--
 .../templates/otel-collector-config.yaml           |  1 +
 deploy/platform/kubernetes/values.yaml             |  8 ++-
 docs/readme.md                                     | 47 ++++++++--------
 13 files changed, 177 insertions(+), 37 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index b01f631..740dfc6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -29,10 +29,10 @@ ES_IMAGE ?= docker.elastic.co/elasticsearch/elasticsearch-oss
 ES_IMAGE_TAG ?= 7.10.2
 
 SW_OAP_IMAGE ?= ghcr.io/apache/skywalking/oap
-SW_OAP_IMAGE_TAG ?= 935efe9f451868c92f6ce10d7cd6db889fc40cb5
+SW_OAP_IMAGE_TAG ?= cce87a99175cfb149ff2a3fe077f876313f72a9d
 
 SW_UI_IMAGE ?= ghcr.io/apache/skywalking/ui
-SW_UI_IMAGE_TAG ?= 935efe9f451868c92f6ce10d7cd6db889fc40cb5
+SW_UI_IMAGE_TAG ?= cce87a99175cfb149ff2a3fe077f876313f72a9d
 
 SW_CLI_IMAGE ?= ghcr.io/apache/skywalking-cli/skywalking-cli:0883266bfaa36612927b69e35781b64ea181758d
 SW_EVENT_EXPORTER_IMAGE ?= ghcr.io/apache/skywalking-kubernetes-event-exporter/skywalking-kubernetes-event-exporter:8a012a3f968cb139f817189afb9b3748841bba22
diff --git a/deploy/platform/docker/Makefile.in b/deploy/platform/docker/Makefile.in
index 6c8ef8f..37a4d4f 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-monitor,event,mysql-monitor,apisix-monitor,promql
+FEATURE_FLAGS ?= agent,cluster,so11y,vm-monitor,event,mysql-monitor,apisix-monitor,promql,elasticsearch-monitor
diff --git a/deploy/platform/docker/config/otel-collector-config-elasticsearch.yaml b/deploy/platform/docker/config/otel-collector-config-elasticsearch.yaml
new file mode 100644
index 0000000..055c4a3
--- /dev/null
+++ b/deploy/platform/docker/config/otel-collector-config-elasticsearch.yaml
@@ -0,0 +1,46 @@
+# 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: elasticsearch-monitoring
+receivers:
+  prometheus:
+    config:
+      scrape_configs:
+        - job_name: 'elasticsearch-monitoring'
+          scrape_interval: 30s
+          static_configs:
+            - targets: ['es-exporter:9114']
+
+processors:
+  batch:
+
+exporters:
+  otlp:
+    endpoint: oap:11800
+    tls:
+      insecure: true
+  logging:
+    loglevel: debug
+
+service:
+  pipelines:
+    metrics:
+      receivers:
+        - prometheus
+      processors:
+        - batch
+      exporters:
+        - otlp
+        - logging
diff --git a/deploy/platform/docker/docker-compose.cluster.yaml b/deploy/platform/docker/docker-compose.cluster.yaml
index 5e35746..5cd5934 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_OTEL_RULES: vm,mysql/*,postgresql/*,apisix # @feature: vm; enable the OC rules that analyse the VM metrics
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: vm,mysql/*,postgresql/*,apisix,elasticsearch/* # @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.elasticsearch-monitor.yaml b/deploy/platform/docker/docker-compose.elasticsearch-monitor.yaml
new file mode 100644
index 0000000..6f0b483
--- /dev/null
+++ b/deploy/platform/docker/docker-compose.elasticsearch-monitor.yaml
@@ -0,0 +1,65 @@
+# 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: elasticsearch; set up prometheus_elasticsearch_exporter and OpenTelemetry collector
+
+version: '2.1'
+
+services:
+  es-exporter:
+    image: quay.io/prometheuscommunity/elasticsearch-exporter:v1.5.0
+    expose:
+      - 9114
+    networks:
+      - sw
+    depends_on:
+      elasticsearch:
+        condition: service_healthy
+    command:
+      - '--log.format=logfmt'
+      - '--log.level=info'
+      - '--es.uri=http://elasticsearch:9200'
+      - '--es.all'
+      - '--es.indices'
+      - '--es.indices_settings'
+      - '--es.indices_mappings'
+      - '--es.shards'
+      - '--es.snapshots'
+      - '--es.timeout=30s'
+      - '--web.telemetry-path=/metrics'
+    healthcheck:
+      interval: 5s
+      timeout: 60s
+      retries: 120
+      test: ["CMD", "sh", "-c", "nc -vz localhost 9114"]
+
+  otel-collector:
+    image: ${OTEL_COLLECTOR_IMAGE}:${OTEL_COLLECTOR_IMAGE_TAG}
+    networks:
+      - sw
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - ./config/otel-collector-config-elasticsearch.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  sw:
diff --git a/deploy/platform/docker/docker-compose.single-node.yaml b/deploy/platform/docker/docker-compose.single-node.yaml
index 9ef58a4..c45a0bf 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_OTEL_RULES: vm,mysql/*,postgresql/* # @feature: vm,mysql,postgresql; enable the OC rules that analyse the metrics
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: vm,mysql/*,postgresql/*,elasticsearch/* # @feature: vm,mysql,postgresql,elasticsearch; enable the OC rules that analyse the 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/kubernetes/Chart.yaml b/deploy/platform/kubernetes/Chart.yaml
index a525e16..004b672 100644
--- a/deploy/platform/kubernetes/Chart.yaml
+++ b/deploy/platform/kubernetes/Chart.yaml
@@ -45,6 +45,11 @@ dependencies:
     repository: https://prometheus-community.github.io/helm-charts
     condition: kube-state-metrics.enabled
 
+  - name: prometheus-elasticsearch-exporter
+    version: 5.1.1
+    repository: https://prometheus-community.github.io/helm-charts
+    condition: prometheus-elasticsearch-exporter.enabled
+
   - name: base
     version: 1.14.4
     repository: https://istio-release.storage.googleapis.com/charts
diff --git a/deploy/platform/kubernetes/Makefile b/deploy/platform/kubernetes/Makefile
index 48f415c..43c3599 100644
--- a/deploy/platform/kubernetes/Makefile
+++ b/deploy/platform/kubernetes/Makefile
@@ -40,7 +40,7 @@ HELM_OPTIONS := $(HELM_OPTIONS) --set features.rover.image=$(SW_ROVER_IMAGE)
 HELM_OPTIONS := $(HELM_OPTIONS) --set features.promql.grafana.image=$(GRAFANA_IMAGE)
 
 ifeq ($(DEBUG),true)
-	HELM_OPTIONS := $(HELM_OPTIONS) --dry-run
+	HELM_OPTIONS := $(HELM_OPTIONS) --dry-run --debug
 endif
 
 BACKEND_SERVICE := $(RELEASE)-oap.$(NAMESPACE).svc:11800
@@ -137,6 +137,15 @@ feature-kubernetes-monitor:
 	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set kube-state-metrics.enabled=true)
 	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set opentelemetry.enabled=true)
 
+.PHONY: feature-elasticsearch-monitor
+feature-elasticsearch-monitor:
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set features.elasticsearchMonitor.enabled=true)
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set prometheus-elasticsearch-exporter.enabled=true)
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set prometheus-elasticsearch-exporter.fullnameOverride=prometheus-elasticsearch-exporter)
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set prometheus-elasticsearch-exporter.service.httpPort=9114)
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set prometheus-elasticsearch-exporter.es.uri=http://elasticsearch-master:9200)
+	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set opentelemetry.enabled=true)
+
 .PHONY: feature-function
 feature-function:
 	$(eval HELM_OPTIONS := $(HELM_OPTIONS) --set features.function.enabled=true)
diff --git a/deploy/platform/kubernetes/Makefile.in b/deploy/platform/kubernetes/Makefile.in
index 24ac366..4ac8e3b 100644
--- a/deploy/platform/kubernetes/Makefile.in
+++ b/deploy/platform/kubernetes/Makefile.in
@@ -23,4 +23,4 @@ SAMPLE_SERVICES_NAMESPACE ?= sample-services
 RELEASE ?= demo
 AGENTLESS ?= false
 
-FEATURE_FLAGS ?= java-agent-injector,cluster,elasticsearch,kubernetes-monitor,so11y,vm-monitor,als,event,istiod-monitor,satellite,rover,trace-profiling,mysql-monitor,postgresql-monitor,apisix-monitor,promql
+FEATURE_FLAGS ?= java-agent-injector,cluster,elasticsearch,kubernetes-monitor,so11y,vm-monitor,als,event,istiod-monitor,satellite,rover,trace-profiling,mysql-monitor,postgresql-monitor,apisix-monitor,promql,elasticsearch-monitor
diff --git a/deploy/platform/kubernetes/Makefile.in b/deploy/platform/kubernetes/templates/feature-elasticseasrch-monitor/opentelemetry-config.yaml
similarity index 63%
copy from deploy/platform/kubernetes/Makefile.in
copy to deploy/platform/kubernetes/templates/feature-elasticseasrch-monitor/opentelemetry-config.yaml
index 24ac366..ebc298d 100644
--- a/deploy/platform/kubernetes/Makefile.in
+++ b/deploy/platform/kubernetes/templates/feature-elasticseasrch-monitor/opentelemetry-config.yaml
@@ -16,11 +16,18 @@
 # under the License.
 #
 
-.EXPORT_ALL_VARIABLES:
+{{- define "opentelemetry-config-elasticsearch-monitor" }}
+{{- if .Values.features.elasticsearchMonitor.enabled }}
 
-NAMESPACE ?= skywalking-showcase
-SAMPLE_SERVICES_NAMESPACE ?= sample-services
-RELEASE ?= demo
-AGENTLESS ?= false
+- job_name: 'elasticsearch-monitoring'
+  scrape_interval: 30s
+  metrics_path: "/metrics"
+  kubernetes_sd_configs:
+    - role: service
+  relabel_configs:
+    - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_service_port_name]
+      action: keep
+      regex: prometheus-elasticsearch-exporter;http
 
-FEATURE_FLAGS ?= java-agent-injector,cluster,elasticsearch,kubernetes-monitor,so11y,vm-monitor,als,event,istiod-monitor,satellite,rover,trace-profiling,mysql-monitor,postgresql-monitor,apisix-monitor,promql
+{{- end }}
+{{- end }}
diff --git a/deploy/platform/kubernetes/templates/otel-collector-config.yaml b/deploy/platform/kubernetes/templates/otel-collector-config.yaml
index 3831ee2..1c4f31e 100644
--- a/deploy/platform/kubernetes/templates/otel-collector-config.yaml
+++ b/deploy/platform/kubernetes/templates/otel-collector-config.yaml
@@ -35,6 +35,7 @@ data:
             {{- include "opentelemetry-config-postgresql-monitor" . | indent 12 }}
             {{- include "opentelemetry-config-so11y" . | indent 12 }}
             {{- include "opentelemetry-config-vm" . | indent 12 }}
+            {{- include "opentelemetry-config-elasticsearch-monitor" . | indent 12 }}
 
     exporters:
       otlp:
diff --git a/deploy/platform/kubernetes/values.yaml b/deploy/platform/kubernetes/values.yaml
index 31d45d5..e2db355 100644
--- a/deploy/platform/kubernetes/values.yaml
+++ b/deploy/platform/kubernetes/values.yaml
@@ -39,7 +39,7 @@ skywalking:
       # @feature: istiod-monitor; enable rules to analyze Istio control plane metrics
       # @feature: mysql; enable mysql rules to analyze MySQL metrics
       # @feature: apisix-monitor; enable APISIX rules to analyze APISIX metrics
-      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: vm,oap,k8s/*,istio-controlplane,mysql/*,postgresql/*,apisix
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: vm,oap,k8s/*,istio-controlplane,mysql/*,postgresql/*,apisix,elasticsearch/*
       SW_TELEMETRY: prometheus # @feature: so11y; expose the metrics of self o11y through prometheus
       SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS: "mx-mesh,persistence" # @feature: als; enable mesh analyzer (mx-mesh) to analyze ALS logs
       K8S_SERVICE_NAME_RULE: "mesh-svr::${service.metadata.name}"
@@ -206,6 +206,9 @@ istiod:
 kube-state-metrics:
   enabled: false
 
+prometheus-elasticsearch-exporter:
+  enabled: false
+
 opentelemetry:
   enabled: false
 
@@ -252,6 +255,9 @@ features:
   kubernetesMonitor:
     enabled: false
 
+  elasticsearchMonitor:
+    enabled: false
+
   mysqlMonitor:
     enabled: false
 
diff --git a/docs/readme.md b/docs/readme.md
index cefcab8..c6cda23 100644
--- a/docs/readme.md
+++ b/docs/readme.md
@@ -84,29 +84,30 @@ necessarily the same so make sure to specify the right feature flags.
 
 Currently, the features supported are:
 
-| Name                  | Description                                                                                                                                                                            | Note                                                                                                                                  |
-|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
-| `java-agent-injector` | Use the java agent injector to inject the Skywalking Java agent and deploy microservices with other SkyWalking agent enabled.                                                          | The microservices include agents for Java, NodeJS server, browser, Python.                                                            |
-| `agent`               | Deploy microservices with SkyWalking agent pre-installed.                                                                                                                              | In Kubernetes scenarios, please use `java-agent-injector` instead of this, if possible.                                               |
-| `cluster`             | Deploy SkyWalking OAP in cluster mode, with 2 nodes, and SkyWalking UI.                                                                                                                | Only one of `cluster` or `single-node` can be enabled.                                                                                |
-| `single-node`         | Deploy only one single node of SkyWalking OAP, and SkyWalking UI, ElasticSearch as storage.                                                                                            | Only one of `cluster` or `single-node` can be enabled.                                                                                |
-| `elasticsearch`       | Deploy ElasticSearch as storage, you may want to disable this if you want to use your own ElasticSearch deployments.                                                                   |                                                                                                                                       |
-| `postgresql`          | Deploy PostgreSQL as storage, you may want to disable this if you want to use your own PostgreSQL deployments.                                                                         |                                                                                                                                       |
-| `so11y`               | Enable SkyWalking self observability.                                                                                                                                                  | This is enabled by default for platform [Docker Compose](#docker-compose).                                                            |
-| `vm-monitor`          | Start 2 virtual machines and export their metrics to SkyWalking.                                                                                                                       | The "virtual machines" are mimicked by Docker containers or Pods.                                                                     |
-| `als`                 | Start microservices WITHOUT SkyWalking agent enabled, and configure SkyWalking to analyze the topology and metrics from their access logs.                                             | Command `istioctl` is required to run this feature. The agentless microservices will be running at namespace `${NAMESPACE}-agentless` |
-| `kubernetes-monitor`  | Deploy OpenTelemetry and export Kubernetes monitoring metrics to SkyWalking for analysis and display on UI.                                                                            |                                                                                                                                       |
-| `istiod-monitor`      | Deploy OpenTelemetry and export Istio control plane metrics to SkyWalking for analysis and display on UI.                                                                              |                                                                                                                                       |
-| `event`               | Deploy tools to trigger events, and SkyWalking Kubernetes event exporter to export events into SkyWalking.                                                                             |                                                                                                                                       |
-| `satellite`           | Deploy SkyWalking Satellite to load balance the monitoring data.                                                                                                                       |                                                                                                                                       |
-| `function`            | Deploy [OpenFunction](https://openfunction.dev/) and export trace to SkyWalking.                                                                                                       | Command `helm` is required to run this feature.                                                                                       |
-| `trace-profiling`     | Deploy tools to submit trace profiling tasks.                                                                                                                                          | Only support deployment with SkyWalking agents installed, currently Java agent and Python agent support trace profiling.              |
-| `rover`               | Deploy SkyWalking Rover and detect the processes in the Kubernetes environment.                                                                                                        | Only support deployment in the Kubernetes environment, docker is not supported.                                                       |
-| `mysql-monitor`       | Start a MySQL server and load generator to execute the sample SQLs periodically, set up fluent bit to fetch slow logs and export to OAP, and export their metrics to SkyWalking.       |                                                                                                                                       |
-| `postgresql-monitor`  | Start a PostgreSQL server, and load generator to execute the sample SQLs periodically, set up fluent bit to fetch slow logs and export to OAP, and export their metrics to SkyWalking. |                                                                                                                                       |
-| `apisix-monitor`      | Deploy OpenTelemetry and export APISIX metrics to SkyWalking for analysis and display on UI                                                                                            |                                                                                                                                       |
-| `mesh-with-agent`     | Deploy services with java agent in the service mesh environment.                                                                                                                       | Only support deployment in the Kubernetes environment, docker is not supported.                                                       |
-| `promql`              | Deploy a Grafana to use promql service and show SkyWalking UI on the Grafana.                                                                                                          | Feel free to modify the Grafana config when deploy your own environment.                                                              |
+| Name                    | Description                                                                                                                                                                            | Note                                                                                                                                  |
+|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
+| `java-agent-injector`   | Use the java agent injector to inject the Skywalking Java agent and deploy microservices with other SkyWalking agent enabled.                                                          | The microservices include agents for Java, NodeJS server, browser, Python.                                                            |
+| `agent`                 | Deploy microservices with SkyWalking agent pre-installed.                                                                                                                              | In Kubernetes scenarios, please use `java-agent-injector` instead of this, if possible.                                               |
+| `cluster`               | Deploy SkyWalking OAP in cluster mode, with 2 nodes, and SkyWalking UI.                                                                                                                | Only one of `cluster` or `single-node` can be enabled.                                                                                |
+| `single-node`           | Deploy only one single node of SkyWalking OAP, and SkyWalking UI, ElasticSearch as storage.                                                                                            | Only one of `cluster` or `single-node` can be enabled.                                                                                |
+| `elasticsearch`         | Deploy ElasticSearch as storage, you may want to disable this if you want to use your own ElasticSearch deployments.                                                                   |                                                                                                                                       |
+| `postgresql`            | Deploy PostgreSQL as storage, you may want to disable this if you want to use your own PostgreSQL deployments.                                                                         |                                                                                                                                       |
+| `so11y`                 | Enable SkyWalking self observability.                                                                                                                                                  | This is enabled by default for platform [Docker Compose](#docker-compose).                                                            |
+| `vm-monitor`            | Start 2 virtual machines and export their metrics to SkyWalking.                                                                                                                       | The "virtual machines" are mimicked by Docker containers or Pods.                                                                     |
+| `als`                   | Start microservices WITHOUT SkyWalking agent enabled, and configure SkyWalking to analyze the topology and metrics from their access logs.                                             | Command `istioctl` is required to run this feature. The agentless microservices will be running at namespace `${NAMESPACE}-agentless` |
+| `kubernetes-monitor`    | Deploy OpenTelemetry and export Kubernetes monitoring metrics to SkyWalking for analysis and display on UI.                                                                            |                                                                                                                                       |
+| `istiod-monitor`        | Deploy OpenTelemetry and export Istio control plane metrics to SkyWalking for analysis and display on UI.                                                                              |                                                                                                                                       |
+| `event`                 | Deploy tools to trigger events, and SkyWalking Kubernetes event exporter to export events into SkyWalking.                                                                             |                                                                                                                                       |
+| `satellite`             | Deploy SkyWalking Satellite to load balance the monitoring data.                                                                                                                       |                                                                                                                                       |
+| `function`              | Deploy [OpenFunction](https://openfunction.dev/) and export trace to SkyWalking.                                                                                                       | Command `helm` is required to run this feature.                                                                                       |
+| `trace-profiling`       | Deploy tools to submit trace profiling tasks.                                                                                                                                          | Only support deployment with SkyWalking agents installed, currently Java agent and Python agent support trace profiling.              |
+| `rover`                 | Deploy SkyWalking Rover and detect the processes in the Kubernetes environment.                                                                                                        | Only support deployment in the Kubernetes environment, docker is not supported.                                                       |
+| `mysql-monitor`         | Start a MySQL server and load generator to execute the sample SQLs periodically, set up fluent bit to fetch slow logs and export to OAP, and export their metrics to SkyWalking.       |                                                                                                                                       |
+| `postgresql-monitor`    | Start a PostgreSQL server, and load generator to execute the sample SQLs periodically, set up fluent bit to fetch slow logs and export to OAP, and export their metrics to SkyWalking. |                                                                                                                                       |
+| `elasticsearch-monitor` | Deploy OpenTelemetry and export Elasticsearch monitoring metrics to SkyWalking for analysis and display on UI.                                                                         |                                                                                                                                       |
+| `apisix-monitor`        | Deploy OpenTelemetry and export APISIX metrics to SkyWalking for analysis and display on UI                                                                                            |                                                                                                                                       |
+| `mesh-with-agent`       | Deploy services with java agent in the service mesh environment.                                                                                                                       | Only support deployment in the Kubernetes environment, docker is not supported.                                                       |
+| `promql`                | Deploy a Grafana to use promql service and show SkyWalking UI on the Grafana.                                                                                                          | Feel free to modify the Grafana config when deploy your own environment.                                                              |
 
 ### Kubernetes