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 ac49470  RabbitMQ monitoring showcase (#134)
ac49470 is described below

commit ac494708985035910b0c2d840f933a6ef29bcda9
Author: Harry <[email protected]>
AuthorDate: Fri Jun 23 19:00:31 2023 +0800

    RabbitMQ monitoring showcase (#134)
---
 Makefile.in                                        |   4 +-
 .../config/rabbitmq/otel-collector-config.yaml     |  54 +++++++
 .../rabbitmq/rabbitmq-overview-definitions.json    |  49 ++++++
 .../docker/config/rabbitmq/rabbitmq-overview.conf  |  32 ++++
 deploy/platform/docker/docker-compose.cluster.yaml |   2 +-
 .../docker/docker-compose.rabbitmq-monitor.yaml    | 176 +++++++++++++++++++++
 .../docker/docker-compose.single-node.yaml         |   2 +-
 deploy/platform/kubernetes/Chart.yaml              |   5 +
 deploy/platform/kubernetes/Makefile                |   9 +-
 deploy/platform/kubernetes/Makefile.in             |   2 +-
 .../opentelemetry-config.yaml}                     |  26 ++-
 .../feature-rabbitmq-monitor/rabbitmq.yaml         |  66 ++++++++
 .../templates/otel-collector-config.yaml           |   1 +
 deploy/platform/kubernetes/values.yaml             |  22 ++-
 14 files changed, 435 insertions(+), 15 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 4121e95..654414d 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 ?= f587da584030d7e675252be11e4871c2ea99d71d
+SW_OAP_IMAGE_TAG ?= b5a2766cc1e4ad97d5bb8dd9fccf3419332584df
 
 SW_UI_IMAGE ?= ghcr.io/apache/skywalking/ui
-SW_UI_IMAGE_TAG ?= f587da584030d7e675252be11e4871c2ea99d71d
+SW_UI_IMAGE_TAG ?= b5a2766cc1e4ad97d5bb8dd9fccf3419332584df
 
 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/config/rabbitmq/otel-collector-config.yaml 
b/deploy/platform/docker/config/rabbitmq/otel-collector-config.yaml
new file mode 100644
index 0000000..46f71cd
--- /dev/null
+++ b/deploy/platform/docker/config/rabbitmq/otel-collector-config.yaml
@@ -0,0 +1,54 @@
+# 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: 'rabbitmq-monitoring'
+          scrape_interval: 30s
+          static_configs:
+            - targets:
+                - rmq0:15692
+          relabel_configs:
+            - source_labels: [ ]
+              target_label: cluster
+              replacement: rabbitmq-cluster
+            - source_labels: [ __address__ ]
+              regex: (.+)
+              target_label: node
+              replacement: $$1
+
+processors:
+  batch:
+
+exporters:
+  
####################################################################################
+  # If you want to use otlp exporter please ensure that your OAP version is >= 
9.2.0 #
+  
####################################################################################
+  otlp:
+    endpoint: oap:11800
+    tls:
+      insecure: true
+
+service:
+  pipelines:
+    metrics:
+      receivers:
+        - prometheus
+      processors:
+        - batch
+      exporters:
+        - otlp
\ No newline at end of file
diff --git 
a/deploy/platform/docker/config/rabbitmq/rabbitmq-overview-definitions.json 
b/deploy/platform/docker/config/rabbitmq/rabbitmq-overview-definitions.json
new file mode 100644
index 0000000..0d58b23
--- /dev/null
+++ b/deploy/platform/docker/config/rabbitmq/rabbitmq-overview-definitions.json
@@ -0,0 +1,49 @@
+{
+  "global_parameters": [
+    {"name": "cluster_name", "value": "rabbitmq-overview"}
+  ],
+  "permissions": [
+    {
+      "configure": ".*",
+      "read": ".*",
+      "user": "guest",
+      "vhost": "/",
+      "write": ".*"
+    }
+  ],
+  "policies": [
+    {
+      "apply-to": "queues",
+      "definition": {"ha-mode": "exactly", "ha-params": 1},
+      "name": "ha1",
+      "pattern": "ha1.*",
+      "priority": 0,
+      "vhost": "/"
+    },
+    {
+      "apply-to": "queues",
+      "definition": {"ha-mode": "exactly", "ha-params": 2},
+      "name": "ha2",
+      "pattern": "ha2.*",
+      "priority": 0,
+      "vhost": "/"
+    },
+    {
+      "apply-to": "queues",
+      "definition": {"ha-mode": "exactly", "ha-params": 3},
+      "name": "ha3",
+      "pattern": "ha3.*",
+      "priority": 0,
+      "vhost": "/"
+    }
+  ],
+  "users": [
+    {
+      "hashing_algorithm": "rabbit_password_hashing_sha256",
+      "name": "guest",
+      "password_hash": "hENva+fxJ7gnmaBK/WhwNHOYbvB53/QjNcqhtF4KqF7p21+x",
+      "tags": "administrator"
+    }
+  ],
+  "vhosts": [{"name": "/"}]
+}
diff --git a/deploy/platform/docker/config/rabbitmq/rabbitmq-overview.conf 
b/deploy/platform/docker/config/rabbitmq/rabbitmq-overview.conf
new file mode 100644
index 0000000..d6f87af
--- /dev/null
+++ b/deploy/platform/docker/config/rabbitmq/rabbitmq-overview.conf
@@ -0,0 +1,32 @@
+# 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.
+
+# 
https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example
+loopback_users.guest = false
+listeners.tcp.default = 5672
+management.listener.port = 15672
+management.listener.ssl = false
+
+vm_memory_high_watermark.absolute = 768MiB
+vm_memory_high_watermark_paging_ratio = 0.2
+
+cluster_name = rabbitmq-overview
+
+cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
+cluster_formation.classic_config.nodes.1 = rabbit@rmq0
+
+load_definitions = /etc/rabbitmq/rabbitmq-definitions.json
+
+collect_statistics_interval = 10000
diff --git a/deploy/platform/docker/docker-compose.cluster.yaml 
b/deploy/platform/docker/docker-compose.cluster.yaml
index 5cd5934..6bf0cbd 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,elasticsearch/* # @feature: vm; enable the OC 
rules that analyse the VM metrics
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: 
vm,mysql/*,postgresql/*,apisix,elasticsearch/*,rabbitmq/* # @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.rabbitmq-monitor.yaml 
b/deploy/platform/docker/docker-compose.rabbitmq-monitor.yaml
new file mode 100644
index 0000000..c57592b
--- /dev/null
+++ b/deploy/platform/docker/docker-compose.rabbitmq-monitor.yaml
@@ -0,0 +1,176 @@
+# 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:
+  rmq0: &rabbitmq
+    image: rabbitmq:3.11.14-management
+    networks:
+      - sw
+    ports:
+      - "15673:15672"
+      - "15693:15692"
+    cap_add:
+      - ALL
+    hostname: rmq0
+    environment:
+      RABBITMQ_ERLANG_COOKIE: rabbitmq-prometheus
+    volumes:
+      - ./config/rabbitmq/rabbitmq-overview.conf:/etc/rabbitmq/rabbitmq.conf:ro
+      - 
./config/rabbitmq/rabbitmq-overview-definitions.json:/etc/rabbitmq/rabbitmq-definitions.json:ro
+    ulimits:
+      nofile:
+        soft: 2000
+        hard: 2000
+
+  # The following services are used for mocking test data
+  basic-get:
+    image: &perf-test-image pivotalrabbitmq/perf-test:2.15.0-ubuntu
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: basic-get
+      ROUTING_KEY: basic-get
+      VARIABLE_RATE: "1:1,0:30"
+      POLLING: "true"
+      POLLING_INTERVAL: 5000
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: &startup_timeout 60
+      METRICS_PROMETHEUS: "true"
+  basic-get-auto:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: basic-get
+      ROUTING_KEY: basic-get
+      PRODUCERS: 0
+      POLLING: "true"
+      POLLING_INTERVAL: 5000
+      AUTOACK: "true"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  greedy-consumer:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: greedy-consumer
+      ROUTING_KEY: greedy-consumer
+      VARIABLE_RATE: "100:20,0:20"
+      CONSUMER_RATE: 50
+      QOS: 2000
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  publisher-confirms:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: publisher-confirms
+      ROUTING_KEY: publisher-confirms
+      AUTOACK: "true"
+      VARIABLE_RATE: "12:30,25:30,50:30,100:30"
+      CONFIRM: 1
+      CONFIRM_TIMEOUT: 1
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  slow-consumer-persistent:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: ha3-slow-consumer-persistent
+      ROUTING_KEY: slow-consumer-persistent
+      QUEUE_ARGS: x-max-length=10000
+      FLAG: persistent
+      AUTO_DELETE: "false"
+      SIZE: 51200
+      VARIABLE_RATE: "100:20,0:20"
+      CONSUMER_RATE: 50
+      QOS: 50
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  nack:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    entrypoint: []
+    command: /bin/bash -c "while true; do bin/runjava 
com.rabbitmq.perf.PerfTest; sleep 10; done"
+    environment:
+      TIME: 60
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      VARIABLE_RATE: "1:10,0:20"
+      QUEUE: nack
+      QUEUE_ARGS: x-max-length=100
+      ROUTING_KEY: nack
+      AUTOACK: "false"
+      NACK: "true"
+      QOS: 5
+      CONSUMER_LATENCY: 3000000
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  unroutable-return:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      VARIABLE_RATE: "2:30,4:30,10:30"
+      VARIABLE_SIZE: "100:30,200:30"
+      CONSUMERS: 0
+      FLAG: mandatory
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  unroutable-drop:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      VARIABLE_RATE: "5:30,10:30,20:30"
+      VARIABLE_SIZE: "100:30,200:30"
+      CONSUMERS: 0
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+
+  otel-collector:
+    image: ${OTEL_COLLECTOR_IMAGE}:${OTEL_COLLECTOR_IMAGE_TAG}
+    networks:
+      - sw
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
./config/rabbitmq/otel-collector-config.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 c45a0bf..caabd2d 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/*,elasticsearch/* # @feature: 
vm,mysql,postgresql,elasticsearch; enable the OC rules that analyse the metrics
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: 
vm,mysql/*,postgresql/*,elasticsearch/*,rabbitmq/* # @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 dd59072..bae834d 100644
--- a/deploy/platform/kubernetes/Chart.yaml
+++ b/deploy/platform/kubernetes/Chart.yaml
@@ -50,6 +50,11 @@ dependencies:
     repository: https://prometheus-community.github.io/helm-charts
     condition: prometheus-elasticsearch-exporter.enabled
 
+  - name: rabbitmq
+    version: 12.0.1
+    repository: https://charts.bitnami.com/bitnami
+    condition: rabbitmq.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 cf698fa..25570b0 100644
--- a/deploy/platform/kubernetes/Makefile
+++ b/deploy/platform/kubernetes/Makefile
@@ -142,9 +142,12 @@ feature-kubernetes-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-rabbitmq-monitor
+feature-rabbitmq-monitor:
+       $(eval HELM_OPTIONS := $(HELM_OPTIONS) --set 
features.rabbitmqMonitor.enabled=true)
+       $(eval HELM_OPTIONS := $(HELM_OPTIONS) --set rabbitmq.enabled=true)
        $(eval HELM_OPTIONS := $(HELM_OPTIONS) --set opentelemetry.enabled=true)
 
 .PHONY: feature-function
diff --git a/deploy/platform/kubernetes/Makefile.in 
b/deploy/platform/kubernetes/Makefile.in
index 4ac8e3b..9860066 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,elasticsearch-monitor
+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,rabbitmq-monitor
diff --git a/deploy/platform/kubernetes/Makefile.in 
b/deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/opentelemetry-config.yaml
similarity index 56%
copy from deploy/platform/kubernetes/Makefile.in
copy to 
deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/opentelemetry-config.yaml
index 4ac8e3b..16142b7 100644
--- a/deploy/platform/kubernetes/Makefile.in
+++ 
b/deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/opentelemetry-config.yaml
@@ -16,11 +16,25 @@
 # under the License.
 #
 
-.EXPORT_ALL_VARIABLES:
+{{- define "opentelemetry-config-rabbitmq-monitor" }}
+{{- if .Values.features.rabbitmqMonitor.enabled }}
 
-NAMESPACE ?= skywalking-showcase
-SAMPLE_SERVICES_NAMESPACE ?= sample-services
-RELEASE ?= demo
-AGENTLESS ?= false
+- job_name: rabbitmq-monitoring
+  scrape_interval: 30s
+  kubernetes_sd_configs:
+    - role: pod
+  relabel_configs:
+    - source_labels: [ __meta_kubernetes_pod_container_name, 
__meta_kubernetes_pod_container_port_name ]
+      action: keep
+      regex: rabbitmq;metrics
+    - source_labels: [ ]
+      target_label: cluster
+      replacement: rabbitmq-cluster
+    - source_labels: [ __address__ ]
+      target_label: node
+      regex: (.+)
+      replacement: $$1
+      action: replace
 
-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
+{{- end }}
+{{- end }}
diff --git 
a/deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/rabbitmq.yaml 
b/deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/rabbitmq.yaml
new file mode 100644
index 0000000..c2af758
--- /dev/null
+++ 
b/deploy/platform/kubernetes/templates/feature-rabbitmq-monitor/rabbitmq.yaml
@@ -0,0 +1,66 @@
+# 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.
+#
+{{- if .Values.features.rabbitmqMonitor.enabled }}
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: rabbitmq-mock-client
+spec:
+  replicas: 1
+  strategy:
+    type: Recreate
+  selector:
+    matchLabels:
+      app: mock-client
+  template:
+    metadata:
+      labels:
+        app: mock-client
+    spec:
+      containers:
+        - env:
+            - name: URI
+              value: "amqp://guest:guest@demo-rabbitmq:5672/%2f"
+            - name: QUEUE
+              value: basic-get
+            - name: ROUTING_KEY
+              value: basic-get
+            - name: VARIABLE_RATE
+              value: "1:1,0:30"
+            - name: POLLING
+              value: "true"
+            - name: POLLING_INTERVAL
+              value: "5000"
+            - name: AUTOACK
+              value: "5000"
+            - name: SERVERS_STARTUP_TIMEOUT
+              value: "60"
+            - name: METRICS_PROMETHEUS
+              value: "true"
+          image: pivotalrabbitmq/perf-test:2.15.0-ubuntu
+          imagePullPolicy: IfNotPresent
+          name: install
+          ports:
+            - containerPort: 8080
+              name: http
+              protocol: TCP
+      restartPolicy: Always
+      securityContext: { }
+
+{{- end }}
diff --git a/deploy/platform/kubernetes/templates/otel-collector-config.yaml 
b/deploy/platform/kubernetes/templates/otel-collector-config.yaml
index 1c4f31e..7ab890e 100644
--- a/deploy/platform/kubernetes/templates/otel-collector-config.yaml
+++ b/deploy/platform/kubernetes/templates/otel-collector-config.yaml
@@ -36,6 +36,7 @@ data:
             {{- include "opentelemetry-config-so11y" . | indent 12 }}
             {{- include "opentelemetry-config-vm" . | indent 12 }}
             {{- include "opentelemetry-config-elasticsearch-monitor" . | 
indent 12 }}
+            {{- include "opentelemetry-config-rabbitmq-monitor" . | indent 12 
}}
 
     exporters:
       otlp:
diff --git a/deploy/platform/kubernetes/values.yaml 
b/deploy/platform/kubernetes/values.yaml
index 6fb5e36..1792aa5 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,elasticsearch/*
+      SW_OTEL_RECEIVER_ENABLED_OTEL_RULES: 
vm,oap,k8s/*,istio-controlplane,mysql/*,postgresql/*,apisix,elasticsearch/*,rabbitmq/*
       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,8 +206,25 @@ istiod:
 kube-state-metrics:
   enabled: false
 
+rabbitmq:
+  enabled: false
+  replicaCount: 1
+  persistence:
+    enabled: false
+  metrics:
+    enabled: true
+  auth:
+    username: guest
+    password: guest
+
 prometheus-elasticsearch-exporter:
   enabled: false
+  fullnameOverride: prometheus-elasticsearch-exporter
+  service:
+    httpPort: 9114
+  es:
+    uri: "http://elasticsearch-master:9200";
+
 
 opentelemetry:
   enabled: false
@@ -259,6 +276,9 @@ features:
   elasticsearchMonitor:
     enabled: false
 
+  rabbitmqMonitor:
+    enabled: false
+
   mysqlMonitor:
     enabled: false
 

Reply via email to