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 2024/03/08 01:34:09 UTC
(skywalking) branch master updated: Add hierarchy for Pulsar (#11971)
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new c5e0f5f5a6 Add hierarchy for Pulsar (#11971)
c5e0f5f5a6 is described below
commit c5e0f5f5a6d62580c62d6c28d8a6cbbfc590f296
Author: Starry <co...@163.com>
AuthorDate: Fri Mar 8 09:34:03 2024 +0800
Add hierarchy for Pulsar (#11971)
---
docs/en/changes/changes.md | 3 +++
docs/en/concepts-and-designs/service-hierarchy.md | 22 ++++++++++++++++--
.../src/main/resources/hierarchy-definition.yml | 5 ++++
.../pulsar/pulsar-cluster.json | 27 +++++++++++++++++++++-
4 files changed, 54 insertions(+), 3 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 6b2faf9217..b15ae208a0 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -72,6 +72,9 @@
* Add Service Hierarchy auto matching layer relationships (upper -> lower) as following:
- CLICKHOUSE -> K8S_SERVICE
- VIRTUAL_DATABASE -> CLICKHOUSE
+* Add Service Hierarchy auto matching layer relationships (upper -> lower) as following:
+ - PULSAR -> K8S_SERVICE
+ - VIRTUAL_MQ -> PULSAR
#### UI
diff --git a/docs/en/concepts-and-designs/service-hierarchy.md b/docs/en/concepts-and-designs/service-hierarchy.md
index fc75485204..e43693ef6f 100644
--- a/docs/en/concepts-and-designs/service-hierarchy.md
+++ b/docs/en/concepts-and-designs/service-hierarchy.md
@@ -30,10 +30,12 @@ If you want to customize it according to your own needs, please refer to [Servic
| KAFKA | K8S_SERVICE | [KAFKA On K8S_SERVICE](#kafka-on-k8s_service) |
| VIRTUAL_MQ | RABBITMQ | [VIRTUAL_MQ On RABBITMQ](#virtual_mq-on-rabbitmq) |
| VIRTUAL_MQ | ROCKETMQ | [VIRTUAL_MQ On K8S_SERVICE](#virtual_mq-on-rocketmq) |
-| VIRTUAL_MQ | KAFKA | [VIRTUAL_MQ On KAFKA](#virtual_mq-on-kafka) |
-| VIRTUAL_MQ | RABBITMQ | [VIRTUAL_MQ On RABBITMQ](#virtual_mq-on-rabbitmq) |
+| VIRTUAL_MQ | KAFKA | [VIRTUAL_MQ On KAFKA](#virtual_mq-on-kafka) |
+| VIRTUAL_MQ | RABBITMQ | [VIRTUAL_MQ On RABBITMQ](#virtual_mq-on-rabbitmq) |
| CLICKHOUSE | K8S_SERVICE | [CLICKHOUSE On K8S_SERVICE](#clickhouse-on-k8s_service) |
| VIRTUAL_DATABASE | CLICKHOUSE | [VIRTUAL_DATABASE On CLICKHOUSE](#virtual_database-on-clickhouse) |
+| PULSAR | K8S_SERVICE | [PULSAR On K8S_SERVICE](#pulsar-on-k8s_service) |
+| VIRTUAL_MQ | PULSAR | [VIRTUAL_MQ On PULSAR](#virtual_mq-on-pulsar) |
- The following sections will describe the **default matching rules** in detail and use the `upper-layer On lower-layer` format.
- The example service name are based on SkyWalking [Showcase](https://github.com/apache/skywalking-showcase) default deployment.
@@ -199,6 +201,22 @@ If you want to customize it according to your own needs, please refer to [Servic
- VIRTUAL_DATABASE.service.name: `clickhouse.skywalking-showcase.svc.cluster.local:8123`
- CLICKHOUSE.service.name: `clickhouse::clickhouse.skywalking-showcase`
+#### PULSAR On K8S_SERVICE
+- Rule name: `short-name`
+- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
+- Description: PULSAR.service.shortName == K8S_SERVICE.service.shortName
+- Matched Example:
+ - PULSAR.service.name: `pulsar::pulsar.skywalking-showcase`
+ - K8S_SERVICE.service.name: `skywalking-showcase::pulsar.skywalking-showcase`
+
+#### VIRTUAL_MQ On PULSAR
+- Rule name: `lower-short-name-with-fqdn`
+- Groovy script: `{ (u, l) -> u.shortName.substring(0, u.shortName.lastIndexOf(':')) == l.shortName.concat('.svc.cluster.local') }`
+- Description: VIRTUAL_MQ.service.shortName remove port == PULSAR.service.shortName with fqdn suffix
+- Matched Example:
+ - VIRTUAL_MQ.service.name: `pulsar.skywalking-showcase.svc.cluster.local:6650`
+ - PULSAR.service.name: `pulsar::pulsar.skywalking-showcase`
+
### Build Through Specific Agents
Use agent tech involved(such as eBPF) and deployment tools(such as operator and agent injector) detect the service hierarchy relations.
diff --git a/oap-server/server-starter/src/main/resources/hierarchy-definition.yml b/oap-server/server-starter/src/main/resources/hierarchy-definition.yml
index 6cd9b9d947..3ddb09058e 100644
--- a/oap-server/server-starter/src/main/resources/hierarchy-definition.yml
+++ b/oap-server/server-starter/src/main/resources/hierarchy-definition.yml
@@ -56,6 +56,9 @@ hierarchy:
CLICKHOUSE:
K8S_SERVICE: short-name
+
+ PULSAR:
+ K8S_SERVICE: short-name
VIRTUAL_DATABASE:
MYSQL: lower-short-name-with-fqdn
@@ -66,6 +69,7 @@ hierarchy:
ROCKETMQ: lower-short-name-with-fqdn
RABBITMQ: lower-short-name-with-fqdn
KAFKA: lower-short-name-with-fqdn
+ PULSAR: lower-short-name-with-fqdn
# Use Groovy script to define the matching rules, the input parameters are the upper service(u) and the lower service(l) and the return value is a boolean,
# which are used to match the relation between the upper service(u) and the lower service(l) on the different layers.
@@ -98,6 +102,7 @@ layer-levels:
CLICKHOUSE: 2
RABBITMQ: 2
KAFKA: 2
+ PULSAR: 2
MESH_DP: 1
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/pulsar/pulsar-cluster.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/pulsar/pulsar-cluster.json
index 71003854b7..8b8da74c73 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/pulsar/pulsar-cluster.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/pulsar/pulsar-cluster.json
@@ -429,7 +429,32 @@
"entity": "Service",
"name": "Pulsar-Cluster",
"id": "Pulsar-Cluster",
- "isRoot": false
+ "isRoot": false,
+ "isDefault": true,
+ "expressions": [
+ "avg(meter_pulsar_total_topics)",
+ "avg(meter_pulsar_total_subscriptions)",
+ "avg(meter_pulsar_message_rate_in)",
+ "avg(meter_pulsar_message_rate_out)",
+ "avg(meter_pulsar_storage_size)"
+ ],
+ "expressionsConfig": [
+ {
+ "label": "total topics"
+ },
+ {
+ "label": "total subscriptions"
+ },
+ {
+ "label": "message rate in"
+ },
+ {
+ "label": "message rate out"
+ },
+ {
+ "label": "storage size"
+ }
+ ]
}
}
]
\ No newline at end of file