Add hierarchy relations auto-matching for MYSQL/POSTGRESQL/SO11Y_OAP/VIRTUAL_DATABASE. Fix MQE in dashboards when using `Card widget`. (#11818)

This commit is contained in:
Wan Kai 2024-01-24 15:03:45 +08:00 committed by GitHub
parent a9128e0cef
commit 2f4f4a1275
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 585 additions and 220 deletions

View File

@ -15,7 +15,11 @@
* Support build Service/Instance Hierarchy and query. * Support build Service/Instance Hierarchy and query.
* Change the string field in Elasticsearch storage from **keyword** type to **text** type if it set more than `32766` length. * Change the string field in Elasticsearch storage from **keyword** type to **text** type if it set more than `32766` length.
* [Break Change] Change the configuration field of `ui_template` and `ui_menu` in Elasticsearch storage from **keyword** type to **text**. * [Break Change] Change the configuration field of `ui_template` and `ui_menu` in Elasticsearch storage from **keyword** type to **text**.
* Support Service Hierarchy auto matching. * Support Service Hierarchy auto matching, add auto matching layer relationships (upper -> lower) as following:
- MESH -> MESH_DP
- MESH -> K8S_SERVICE
- MESH_DP -> K8S_SERVICE
- GENERAL -> K8S_SERVICE
* Add `namespace` suffix for `K8S_SERVICE_NAME_RULE/ISTIO_SERVICE_NAME_RULE` and `metadata-service-mapping.yaml` as default. * Add `namespace` suffix for `K8S_SERVICE_NAME_RULE/ISTIO_SERVICE_NAME_RULE` and `metadata-service-mapping.yaml` as default.
* Allow using a dedicated port for ALS receiver. * Allow using a dedicated port for ALS receiver.
* Fix log query by traceId in `JDBCLogQueryDAO`. * Fix log query by traceId in `JDBCLogQueryDAO`.
@ -24,6 +28,12 @@
* Remove unnecessary annotations and functions from Meter Functions. * Remove unnecessary annotations and functions from Meter Functions.
* Add `max` and `min` functions for MAL down sampling. * Add `max` and `min` functions for MAL down sampling.
* Fix critical bug of uncontrolled memory cost of TopN statistics. Change topN group key from `StorageId` to `entityId + timeBucket`. * Fix critical bug of uncontrolled memory cost of TopN statistics. Change topN group key from `StorageId` to `entityId + timeBucket`.
* Add Service Hierarchy auto matching layer relationships (upper -> lower) as following:
- MYSQL -> K8S_SERVICE
- POSTGRESQL -> K8S_SERVICE
- SO11Y_OAP -> K8S_SERVICE
- VIRTUAL_DATABASE -> MYSQL
- VIRTUAL_DATABASE -> POSTGRESQL
#### UI #### UI
@ -40,6 +50,7 @@
* Update Kubernetes related UI templates for adapt data from eBPF access log. * Update Kubernetes related UI templates for adapt data from eBPF access log.
* Fix dashboard `K8S-Service-Root` metrics expression. * Fix dashboard `K8S-Service-Root` metrics expression.
* Add dashboards for Service/Instance Hierarchy. * Add dashboards for Service/Instance Hierarchy.
* Fix MQE in dashboards when using `Card widget`.
#### Documentation #### Documentation

View File

@ -19,26 +19,39 @@ hierarchy:
K8S_SERVICE: lower-short-name-remove-ns K8S_SERVICE: lower-short-name-remove-ns
MYSQL: MYSQL:
K8S_SERVICE: ~ K8S_SERVICE: short-name
POSTGRESQL:
K8S_SERVICE: short-name
SO11Y_OAP:
K8S_SERVICE: short-name
VIRTUAL_DATABASE: VIRTUAL_DATABASE:
MYSQL: ~ MYSQL: lower-short-name-with-fqdn
POSTGRESQL: lower-short-name-with-fqdn
auto-matching-rules: auto-matching-rules:
# the name of the upper service is equal to the name of the lower service # the name of the upper service is equal to the name of the lower service
name: "{ (u, l) -> u.name == l.name }" name: "{ (u, l) -> u.name == l.name }"
# the short name of the upper service is equal to the short name of the lower service # the short name of the upper service is equal to the short name of the lower service
short-name: "{ (u, l) -> u.shortName == l.shortName }" short-name: "{ (u, l) -> u.shortName == l.shortName }"
# remove the namespace from the lower service short name # remove the k8s namespace from the lower service short name
# this rule is only works on k8s env.
lower-short-name-remove-ns: "{ (u, l) -> u.shortName == l.shortName.substring(0, l.shortName.lastIndexOf('.')) }" lower-short-name-remove-ns: "{ (u, l) -> u.shortName == l.shortName.substring(0, l.shortName.lastIndexOf('.')) }"
# the short name of the upper remove port is equal to the short name of the lower service with fqdn suffix
# this rule is only works on k8s env.
lower-short-name-with-fqdn: "{ (u, l) -> u.shortName.substring(0, u.shortName.lastIndexOf(':')) == l.shortName.concat('.svc.cluster.local') }"
layer-levels: layer-levels:
# The hierarchy level of the service layer, the level is used to define the order of the service layer for UI presentation. # The hierarchy level of the service layer, the level is used to define the order of the service layer for UI presentation.
# The level of the upper service should greater than the level of the lower service in `hierarchy` section. # The level of the upper service should greater than the level of the lower service in `hierarchy` section.
MESH: 3 MESH: 3
GENERAL: 3 GENERAL: 3
SO11Y_OAP: 3
VIRTUAL_DATABASE: 3 VIRTUAL_DATABASE: 3
MYSQL: 2 MYSQL: 2
POSTGRESQL: 2
MESH_DP: 1 MESH_DP: 1
K8S_SERVICE: 0 K8S_SERVICE: 0
``` ```
@ -51,11 +64,14 @@ layer-levels:
- All the layers are defined in the file `org.apache.skywalking.oap.server.core.analysis.Layers.java`. - All the layers are defined in the file `org.apache.skywalking.oap.server.core.analysis.Layers.java`.
- If the hierarchy is not defined, the service hierarchy relationship will not be built. - If the hierarchy is not defined, the service hierarchy relationship will not be built.
- If you want to add a new relationship, you should certainly know they can be matched automatically by [Auto Matching Rules](#auto-matching-rules). - If you want to add a new relationship, you should certainly know they can be matched automatically by [Auto Matching Rules](#auto-matching-rules).
- Notice: some hierarchy relations and auto matching rules are only works on k8s env.
### Auto Matching Rules ### Auto Matching Rules
- The auto matching rules are defined in the `auto-matching-rules` section. - The auto matching rules are defined in the `auto-matching-rules` section.
- 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, - 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. which are used to match the relation between the upper service(u) and the lower service(l) on the different layers.
- The default matching rules required the service name configured as SkyWalking default and follow the [Showcase](https://github.com/apache/skywalking-showcase).
If you customized the service name in any layer, you should customize the related matching rules according your service name rules.
### Layer Levels ### Layer Levels
- Define the hierarchy level of the service layer in the `layer-levels` section. - Define the hierarchy level of the service layer in the `layer-levels` section.

View File

@ -7,16 +7,97 @@ There 2 ways to detect the connections:
1. Automatically matching through OAP internal mechanism, no extra work is required. 1. Automatically matching through OAP internal mechanism, no extra work is required.
2. Build the connections through specific agents. 2. Build the connections through specific agents.
**Note:** All the relationships should be defined in the `config/hierarchy-definition.yml` file. **Note:** All the relationships and auto-matching rules should be defined in the `config/hierarchy-definition.yml` file.
If you want to customize it according to your own needs, please refer to [Service Hierarchy Configuration](service-hierarchy-configuration.md).
### Automatically Matching ### Automatically Matching
| Upper layer | Lower layer | Matching rule |
|-------------------|--------------|-------------------------------------------------------------------|
| MESH | MESH_DP | [MESH On MESH_DP](#mesh-on-mesh_dp) |
| MESH | K8S_SERVICE | [MESH On K8S_SERVICE](#mesh-on-k8s_service) |
| MESH_DP | K8S_SERVICE | [MESH_DP On K8S_SERVICE](#mesh_dp-on-k8s_service) |
| GENERAL | K8S_SERVICE | [GENERAL On K8S_SERVICE](#general-on-k8s_service) |
| MYSQL | K8S_SERVICE | [MYSQL On K8S_SERVICE](#mysql-on-k8s_service) |
| POSTGRESQL | K8S_SERVICE | [POSTGRESQL On K8S_SERVICE](#postgresql-on-k8s_service) |
| SO11Y_OAP | K8S_SERVICE | [SO11Y_OAP On K8S_SERVICE](#so11y_oap-on-k8s_service) |
| VIRTUAL_DATABASE | MYSQL | [VIRTUAL_DATABASE On MYSQL](#virtual_database-on-mysql) |
| VIRTUAL_DATABASE | POSTGRESQL | [VIRTUAL_DATABASE On POSTGRESQL](#virtual_database-on-postgresql) |
| Upper layer | Lower layer | Matching rule | - 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.
| MESH | MESH_DP | upper service name equals lower service name | - In SkyWalking the service name could be composed of `group` and `short name` with `::` separator.
| MESH | K8S_SERVICE | upper service short name equals lower service short name |
| MESH_DP | K8S_SERVICE | upper service short name equals lower service short name | #### MESH On MESH_DP
| GENERAL | K8S_SERVICE | upper service short name equals lower service name without namespace | - Rule name: `name`
- Groovy script: `{ (u, l) -> u.name == l.name }`
- Description: MESH.service.name == MESH_DP.service.name
- Matched Example:
- MESH.service.name: `mesh-svr::songs.sample-services`
- MESH_DP.service.name: `mesh-svr::songs.sample-services`
#### MESH On K8S_SERVICE
- Rule name: `short-name`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
- Description: MESH.service.shortName == K8S_SERVICE.service.shortName
- Matched Example:
- MESH.service.name: `mesh-svr::songs.sample-services`
- K8S_SERVICE.service.name: `skywalking-showcase::songs.sample-services`
#### MESH_DP On K8S_SERVICE
- Rule name: `short-name`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
- Description: MESH_DP.service.shortName == K8S_SERVICE.service.shortName
- Matched Example:
- MESH_DP.service.name: `mesh-svr::songs.sample-services`
- K8S_SERVICE.service.name: `skywalking-showcase::songs.sample-services`
#### GENERAL On K8S_SERVICE
- Rule name: `lower-short-name-remove-ns`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName.substring(0, l.shortName.lastIndexOf('.')) }`
- Description: GENERAL.service.shortName == K8S_SERVICE.service.shortName without namespace
- Matched Example:
- GENERAL.service.name: `agent::songs`
- K8S_SERVICE.service.name: `skywalking-showcase::songs.sample-services`
#### MYSQL On K8S_SERVICE
- Rule name: `short-name`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
- Description: MYSQL.service.shortName == K8S_SERVICE.service.shortName
- Matched Example:
- MYSQL.service.name: `mysql::mysql.skywalking-showcase`
- K8S_SERVICE.service.name: `skywalking-showcase::mysql.skywalking-showcase`
#### POSTGRESQL On K8S_SERVICE
- Rule name: `short-name`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
- Description: POSTGRESQL.service.shortName == K8S_SERVICE.service.shortName
- Matched Example:
- POSTGRESQL.service.name: `postgresql::psql.skywalking-showcase`
- K8S_SERVICE.service.name: `skywalking-showcase::psql.skywalking-showcase`
#### SO11Y_OAP On K8S_SERVICE
- Rule name: `short-name`
- Groovy script: `{ (u, l) -> u.shortName == l.shortName }`
- Description: SO11Y_OAP.service.shortName == K8S_SERVICE.service.shortName
- Matched Example:
- SO11Y_OAP.service.name: `demo-oap.skywalking-showcase`
- K8S_SERVICE.service.name: `skywalking-showcase::demo-oap.skywalking-showcase`
#### VIRTUAL_DATABASE On MYSQL
- 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_DATABASE.service.shortName remove port == MYSQL.service.shortName with fqdn suffix
- Matched Example:
- VIRTUAL_DATABASE.service.name: `mysql.skywalking-showcase.svc.cluster.local:3306`
- MYSQL.service.name: `mysql::mysql.skywalking-showcase`
#### VIRTUAL_DATABASE On POSTGRESQL
- 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_DATABASE.service.shortName remove port == POSTGRESQL.service.shortName with fqdn suffix
- Matched Example:
- VIRTUAL_DATABASE.service.name: `psql.skywalking-showcase.svc.cluster.local:5432`
- POSTGRESQL.service.name: `postgresql::psql.skywalking-showcase`
### Build Through Specific Agents ### 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. Use agent tech involved(such as eBPF) and deployment tools(such as operator and agent injector) detect the service hierarchy relations.

View File

@ -189,24 +189,45 @@ public class HierarchyService implements org.apache.skywalking.oap.server.librar
serviceLayer); serviceLayer);
Map<String, HierarchyDefinitionService.MatchingRule> comparedLowerLayers = getHierarchyDefinition().get( Map<String, HierarchyDefinitionService.MatchingRule> comparedLowerLayers = getHierarchyDefinition().get(
comparedServiceLayer); comparedServiceLayer);
if (lowerLayers != null if (lowerLayers != null && lowerLayers.get(comparedServiceLayer) != null) {
&& lowerLayers.get(comparedServiceLayer) != null try {
&& lowerLayers.get(comparedServiceLayer) if (lowerLayers.get(comparedServiceLayer)
.getClosure() .getClosure()
.call(service, comparedService)) { .call(service, comparedService)) {
autoMatchingServiceRelation(service.getName(), Layer.nameOf(serviceLayer), autoMatchingServiceRelation(service.getName(), Layer.nameOf(serviceLayer),
comparedService.getName(), comparedService.getName(),
Layer.nameOf(comparedServiceLayer) Layer.nameOf(comparedServiceLayer)
); );
} else if (comparedLowerLayers != null }
&& comparedLowerLayers.get(serviceLayer) != null } catch (Throwable e) {
&& comparedLowerLayers.get(serviceLayer) log.error(
.getClosure() "Auto matching service hierarchy from service traffic failure. Upper layer {}, lower layer {}, closure{}",
.call(comparedService, service)) { serviceLayer,
autoMatchingServiceRelation(comparedService.getName(), Layer.nameOf(comparedServiceLayer), comparedServiceLayer,
service.getName(), lowerLayers.get(comparedServiceLayer).getExpression(), e
Layer.nameOf(serviceLayer) );
); }
} else if (comparedLowerLayers != null && comparedLowerLayers.get(serviceLayer) != null) {
try {
if (comparedLowerLayers.get(serviceLayer)
.getClosure()
.call(comparedService, service)) {
autoMatchingServiceRelation(
comparedService.getName(),
Layer.nameOf(comparedServiceLayer),
service.getName(),
Layer.nameOf(serviceLayer)
);
}
} catch (Throwable e) {
log.error(
"Auto matching service hierarchy from service traffic failure. Upper layer {}, lower layer {}, closure{}",
comparedServiceLayer,
serviceLayer,
comparedLowerLayers.get(serviceLayer).getExpression(), e
);
}
} }
} }
} }

View File

@ -16,6 +16,7 @@
# Define the hierarchy of service layers, the layers under the specific layer are related lower of the layer. # Define the hierarchy of service layers, the layers under the specific layer are related lower of the layer.
# The relation could have a matching rule for auto matching, which are defined in the `auto-matching-rules` section. # The relation could have a matching rule for auto matching, which are defined in the `auto-matching-rules` section.
# All the layers are defined in the file `org.apache.skywalking.oap.server.core.analysis.Layers.java`. # All the layers are defined in the file `org.apache.skywalking.oap.server.core.analysis.Layers.java`.
# Notice: some hierarchy relations and auto matching rules are only works on k8s env.
hierarchy: hierarchy:
MESH: MESH:
@ -29,10 +30,17 @@ hierarchy:
K8S_SERVICE: lower-short-name-remove-ns K8S_SERVICE: lower-short-name-remove-ns
MYSQL: MYSQL:
K8S_SERVICE: ~ K8S_SERVICE: short-name
POSTGRESQL:
K8S_SERVICE: short-name
SO11Y_OAP:
K8S_SERVICE: short-name
VIRTUAL_DATABASE: VIRTUAL_DATABASE:
MYSQL: ~ MYSQL: lower-short-name-with-fqdn
POSTGRESQL: 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, # 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. # which are used to match the relation between the upper service(u) and the lower service(l) on the different layers.
@ -41,17 +49,23 @@ auto-matching-rules:
name: "{ (u, l) -> u.name == l.name }" name: "{ (u, l) -> u.name == l.name }"
# the short name of the upper service is equal to the short name of the lower service # the short name of the upper service is equal to the short name of the lower service
short-name: "{ (u, l) -> u.shortName == l.shortName }" short-name: "{ (u, l) -> u.shortName == l.shortName }"
# remove the namespace from the lower service short name # remove the k8s namespace from the lower service short name
# this rule is only works on k8s env.
lower-short-name-remove-ns: "{ (u, l) -> u.shortName == l.shortName.substring(0, l.shortName.lastIndexOf('.')) }" lower-short-name-remove-ns: "{ (u, l) -> u.shortName == l.shortName.substring(0, l.shortName.lastIndexOf('.')) }"
# the short name of the upper remove port is equal to the short name of the lower service with fqdn suffix
# this rule is only works on k8s env.
lower-short-name-with-fqdn: "{ (u, l) -> u.shortName.substring(0, u.shortName.lastIndexOf(':')) == l.shortName.concat('.svc.cluster.local') }"
# The hierarchy level of the service layer, the level is used to define the order of the service layer for UI presentation. # The hierarchy level of the service layer, the level is used to define the order of the service layer for UI presentation.
# The level of the upper service should greater than the level of the lower service in `hierarchy` section. # The level of the upper service should greater than the level of the lower service in `hierarchy` section.
layer-levels: layer-levels:
MESH: 3 MESH: 3
GENERAL: 3 GENERAL: 3
SO11Y_OAP: 3
VIRTUAL_DATABASE: 3 VIRTUAL_DATABASE: 3
MYSQL: 2 MYSQL: 2
POSTGRESQL: 2
MESH_DP: 1 MESH_DP: 1

View File

@ -494,11 +494,11 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"meter_apisix_instance_etcd_reachable" "latest(meter_apisix_instance_etcd_reachable)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"associate": [ "associate": [
{ {

View File

@ -21,7 +21,7 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"aws_s3_4xx" "latest(aws_s3_4xx)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
@ -45,7 +45,7 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"aws_s3_5xx" "latest(aws_s3_5xx)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
@ -69,7 +69,7 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"aws_s3_all_requests" "latest(aws_s3_all_requests)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
@ -93,7 +93,7 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"aws_s3_request_latency" "avg(aws_s3_request_latency)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [

View File

@ -57,7 +57,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_nodes" "latest(meter_elasticsearch_cluster_nodes)"
] ]
}, },
{ {
@ -78,7 +78,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_nodes" "latest(meter_elasticsearch_cluster_nodes)"
] ]
}, },
{ {
@ -99,7 +99,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_pending_tasks_total" "avg(meter_elasticsearch_cluster_pending_tasks_total)"
] ]
}, },
{ {
@ -120,7 +120,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_primary_shards_total" "latest(meter_elasticsearch_cluster_primary_shards_total)"
] ]
}, },
{ {
@ -141,10 +141,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_shards_total" "latest(meter_elasticsearch_cluster_shards_total)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -165,7 +165,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_initializing_shards_total" "latest(meter_elasticsearch_cluster_initializing_shards_total)"
] ]
}, },
{ {
@ -186,7 +186,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_delayed_unassigned_shards_total" "latest(meter_elasticsearch_cluster_delayed_unassigned_shards_total)"
] ]
}, },
{ {
@ -207,7 +207,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_relocating_shards_total" "latest(meter_elasticsearch_cluster_relocating_shards_total)"
] ]
}, },
{ {
@ -228,7 +228,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_unassigned_shards_total" "latest(meter_elasticsearch_cluster_unassigned_shards_total)"
] ]
}, },
{ {
@ -249,10 +249,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_breakers_tripped" "latest(meter_elasticsearch_cluster_breakers_tripped)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -269,14 +269,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"CPU Usage Avg. (%)" "title":"CPU Usage Avg"
}, },
"metricConfig": [
{
"unit": "%"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_cpu_usage_avg" "avg(meter_elasticsearch_cluster_cpu_usage_avg)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -293,14 +298,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"JVM Memory Used Avg. (%)" "title":"JVM Memory Used Avg"
}, },
"metricConfig": [
{
"unit": "%"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_jvm_memory_used_avg" "avg(meter_elasticsearch_cluster_jvm_memory_used_avg)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -321,7 +331,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_cluster_open_file_count" "avg(meter_elasticsearch_cluster_open_file_count)"
] ]
}, },
{ {
@ -372,4 +382,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -534,7 +534,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_docs_primary" "latest(meter_elasticsearch_index_indices_docs_primary)"
] ]
}, },
{ {
@ -551,11 +551,16 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Data (GB)" "title":"Data"
}, },
"metricConfig": [
{
"unit": "GB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_store_size_bytes_total/1024/1024/1024" "latest(meter_elasticsearch_index_indices_store_size_bytes_total)/1024/1024/1024"
] ]
}, },
{ {
@ -572,14 +577,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Data (Primary Shards) (GB)" "title":"Data (Primary Shards)"
}, },
"metricConfig": [
{
"unit": "GB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_store_size_bytes_primary/1024/1024/1024" "latest(meter_elasticsearch_index_indices_store_size_bytes_primary)/1024/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -600,7 +610,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_segment_count_total" "latest(meter_elasticsearch_index_indices_segment_count_total)"
] ]
}, },
{ {
@ -621,7 +631,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_segment_count_primary" "latest(meter_elasticsearch_index_indices_segment_count_primary)"
] ]
}, },
{ {
@ -638,14 +648,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Segments Memory (MB)" "title":"Segments Memory"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_segment_memory_bytes_primary/1024/1024" "latest(meter_elasticsearch_index_indices_segment_memory_bytes_primary)/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -666,7 +681,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_docs_primary" "latest(meter_elasticsearch_index_indices_docs_primary)"
] ]
}, },
{ {
@ -683,11 +698,16 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Segments Memory (Primary Shards) (MB)" "title":"Segments Memory (Primary Shards)"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_index_indices_segment_memory_bytes_primary/1024/1024" "latest(meter_elasticsearch_index_indices_segment_memory_bytes_primary)/1024/1024"
] ]
}, },
{ {
@ -721,4 +741,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -592,7 +592,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_indices_docs" "latest(meter_elasticsearch_node_indices_docs)"
] ]
}, },
{ {
@ -614,8 +614,13 @@
} }
}, },
"widget":{ "widget":{
"title":"OS CPU Usage Persent (%)" "title":"OS CPU Usage Percent"
}, },
"metricConfig": [
{
"unit": "%"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"metricConfig":[ "metricConfig":[
{ {
@ -751,7 +756,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_segment_count" "latest(meter_elasticsearch_node_segment_count)"
] ]
}, },
{ {
@ -772,7 +777,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_open_file_count" "avg(meter_elasticsearch_node_open_file_count)"
] ]
}, },
{ {
@ -794,8 +799,13 @@
} }
}, },
"widget":{ "widget":{
"title":"Disk Write (KBs)" "title":"Disk Write"
}, },
"metricConfig": [
{
"unit": "KB/s"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"metricConfig":[ "metricConfig":[
{ {
@ -825,12 +835,17 @@
"widget":{ "widget":{
"title":"JVM Memory Used (MB)" "title":"JVM Memory Used (MB)"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_jvm_memory_used/1024/1024" "avg(meter_elasticsearch_node_jvm_memory_used)/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -847,11 +862,16 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"CPU Usage (%)" "title":"CPU Usage"
}, },
"metricConfig": [
{
"unit": "%"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_process_cpu_percent" "avg(meter_elasticsearch_node_process_cpu_percent)"
] ]
}, },
{ {
@ -868,14 +888,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Disk Free Space (GB)" "title":"Disk Free Space"
}, },
"metricConfig": [
{
"unit": "GB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_elasticsearch_node_all_disk_free_space/1024/1024/1024" "latest(meter_elasticsearch_node_all_disk_free_space)/1024/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -1081,4 +1106,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -298,11 +298,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_container_total" "latest(k8s_cluster_container_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -322,11 +322,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_pod_total" "latest(k8s_cluster_pod_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -346,11 +346,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_service_total" "latest(k8s_cluster_service_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -370,11 +370,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_node_total" "latest(k8s_cluster_node_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -394,11 +394,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_namespace_total" "latest(k8s_cluster_namespace_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -418,11 +418,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_deployment_total" "latest(k8s_cluster_deployment_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -442,11 +442,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_statefulset_total" "latest(k8s_cluster_statefulset_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -466,11 +466,11 @@
"showUint": true "showUint": true
}, },
"expressions": [ "expressions": [
"k8s_cluster_daemonset_total" "latest(k8s_cluster_daemonset_total)"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
} }
] ]

View File

@ -24,7 +24,7 @@
"type":"Widget", "type":"Widget",
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"aggregate_labels(meter_mongodb_cluster_uptime,max)/3600/24" "latest(aggregate_labels(meter_mongodb_cluster_uptime,max))/3600/24"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -53,7 +53,7 @@
"type":"Widget", "type":"Widget",
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"aggregate_labels(meter_mongodb_cluster_data_size,sum)/1024/1024/1024" "latest(aggregate_labels(meter_mongodb_cluster_data_size,sum))/1024/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -82,7 +82,7 @@
"type":"Widget", "type":"Widget",
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"aggregate_labels(meter_mongodb_cluster_collection_count,sum)" "latest(aggregate_labels(meter_mongodb_cluster_collection_count,sum))"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -106,7 +106,7 @@
"type":"Widget", "type":"Widget",
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"aggregate_labels(meter_mongodb_cluster_object_count,sum)" "latest(aggregate_labels(meter_mongodb_cluster_object_count,sum))"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -396,4 +396,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -27,7 +27,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_mongodb_node_uptime/3600/24" "latest(meter_mongodb_node_uptime)/3600/24"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -50,7 +50,7 @@
"title":"QPS" "title":"QPS"
}, },
"expressions":[ "expressions":[
"meter_mongodb_node_qps" "avg(meter_mongodb_node_qps)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -74,7 +74,7 @@
"title":"Latency" "title":"Latency"
}, },
"expressions":[ "expressions":[
"meter_mongodb_node_latency" "avg(meter_mongodb_node_latency)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -109,7 +109,7 @@
"title":"Memory Usage" "title":"Memory Usage"
}, },
"expressions":[ "expressions":[
"meter_mongodb_node_memory_usage" "avg(meter_mongodb_node_memory_usage)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -763,4 +763,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -1,7 +1,7 @@
[ [
{ {
"id":"mysql-instance ", "id":"MySQL-Instance",
"configuration":{ "configuration":{
"children":[ "children":[
{ {
@ -18,14 +18,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"MySQL Uptime (day)" "title":"MySQL Uptime"
}, },
"metricConfig": [
{
"unit": "day"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_mysql_instance_uptime/3600/24" "latest(meter_mysql_instance_uptime)/3600/24"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -53,7 +58,7 @@
} }
], ],
"expressions":[ "expressions":[
"meter_mysql_instance_qps" "avg(meter_mysql_instance_qps)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "TIME_SERIES_VALUES"
@ -73,14 +78,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Innodb Buffer Pool Size (MB)" "title":"Innodb Buffer Pool Size"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_mysql_instance_innodb_buffer_pool_size/1024/1024" "latest(meter_mysql_instance_innodb_buffer_pool_size)/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -101,10 +111,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_mysql_instance_max_connections" "latest(meter_mysql_instance_max_connections)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -125,10 +135,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_mysql_instance_thread_cache_size" "latest(meter_mysql_instance_thread_cache_size)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -357,8 +367,33 @@
"layer":"MYSQL", "layer":"MYSQL",
"entity":"ServiceInstance", "entity":"ServiceInstance",
"name":"MySQL-Instance", "name":"MySQL-Instance",
"id":"mysql-instance ", "id":"mysql-instance",
"isRoot":false "isRoot":false,
"isDefault": true,
"expressions": [
"avg(meter_mysql_instance_commands_select_rate)",
"avg(meter_mysql_instance_commands_insert_rate)",
"avg(meter_mysql_instance_commands_update_rate)",
"avg(meter_mysql_instance_commands_delete_rate)"
],
"expressionsConfig": [
{
"unit": "rows / s",
"label": "Fetch"
},
{
"unit": "rows / s",
"label": "Insert"
},
{
"unit": "rows / s",
"label": "Update"
},
{
"unit": "rows / s",
"label": "Delete"
}
]
} }
} }
] ]

View File

@ -1,7 +1,7 @@
[ [
{ {
"id":"mysql-service", "id":"MySQL-Service",
"configuration":{ "configuration":{
"children":[ "children":[
{ {
@ -340,8 +340,32 @@
"layer":"MYSQL", "layer":"MYSQL",
"entity":"Service", "entity":"Service",
"name":"MySQL-Service", "name":"MySQL-Service",
"id":"mysql-service", "isRoot":false,
"isRoot":false "isDefault": true,
"expressions": [
"avg(meter_mysql_commands_select_rate)",
"avg(meter_mysql_commands_insert_rate)",
"avg(meter_mysql_commands_update_rate)",
"avg(meter_mysql_commands_delete_rate)"
],
"expressionsConfig": [
{
"unit": "rows / s",
"label": "Fetch"
},
{
"unit": "rows / s",
"label": "Insert"
},
{
"unit": "rows / s",
"label": "Update"
},
{
"unit": "rows / s",
"label": "Delete"
}
]
} }
} }
] ]

View File

@ -339,11 +339,11 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"meter_vm_memory_swap_percentage/100" "avg(meter_vm_memory_swap_percentage)/100"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [ "metricConfig": [
{ {
@ -368,11 +368,11 @@
"showUnit": true "showUnit": true
}, },
"expressions": [ "expressions": [
"meter_vm_memory_used/1024/1024" "avg(meter_vm_memory_used)/1024/1024"
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [ "metricConfig": [
{ {
@ -401,7 +401,7 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [ "metricConfig": [
{ {

View File

@ -182,7 +182,7 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [{ "metricConfig": [{
"unit": "%" "unit": "%"
@ -209,7 +209,7 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [{ "metricConfig": [{
"unit": "MB" "unit": "MB"
@ -236,7 +236,7 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
], ],
"metricConfig": [{ "metricConfig": [{
"unit": "%" "unit": "%"

View File

@ -1,7 +1,7 @@
[ [
{ {
"id":"postgresql-instance", "id":"PostgreSQL-Instance",
"configuration":{ "configuration":{
"children":[ "children":[
{ {
@ -18,14 +18,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Shared Buffers (MB)" "title":"Shared Buffers"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_shared_buffers/1024/1024" "latest(meter_pg_instance_shared_buffers)/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -42,14 +47,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Effective Cache (GB)" "title":"Effective Cache"
}, },
"metricConfig": [
{
"unit": "GB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_effective_cache/1024/1024/1024" "latest(meter_pg_instance_effective_cache)/1024/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -66,14 +76,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Maintenance Work Mem (MB)" "title":"Maintenance Work Mem"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_maintenance_work_mem/1024/1024" "latest(meter_pg_instance_maintenance_work_mem)/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -90,11 +105,16 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Work Mem (MB)" "title":"Work Mem"
}, },
"metricConfig": [
{
"unit": "MB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_work_mem/1024/1024" "latest(meter_pg_instance_work_mem)/1024/1024"
] ]
}, },
{ {
@ -115,7 +135,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_seq_page_cost" "latest(meter_pg_instance_seq_page_cost)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"UNKNOWN" "UNKNOWN"
@ -139,10 +159,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_random_page_cost" "latest(meter_pg_instance_random_page_cost)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -159,14 +179,19 @@
"showUnit":true "showUnit":true
}, },
"widget":{ "widget":{
"title":"Max WAL Size (GB)" "title":"Max WAL Size"
}, },
"metricConfig": [
{
"unit": "GB"
}
],
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_max_wal_size/1024/1024/1024" "latest(meter_pg_instance_max_wal_size)/1024/1024/1024"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -187,10 +212,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_max_parallel_workers" "latest(meter_pg_instance_max_parallel_workers)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -211,7 +236,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_pg_instance_max_worker_processes" "latest(meter_pg_instance_max_worker_processes)"
] ]
}, },
{ {
@ -644,7 +669,32 @@
"layer":"POSTGRESQL", "layer":"POSTGRESQL",
"entity":"ServiceInstance", "entity":"ServiceInstance",
"name":"PostgreSQL-Instance", "name":"PostgreSQL-Instance",
"id":"postgresql-instance" "isRoot": false,
"isDefault": true,
"expressions": [
"avg(aggregate_labels(meter_pg_instance_fetched_rows_rate,sum))",
"avg(aggregate_labels(meter_pg_instance_inserted_rows_rate,sum))",
"avg(aggregate_labels(meter_pg_instance_updated_rows_rate,sum))",
"avg(aggregate_labels(meter_pg_instance_deleted_rows_rate,sum))"
],
"expressionsConfig": [
{
"unit": "rows / s",
"label": "Fetch"
},
{
"unit": "rows / s",
"label": "Insert"
},
{
"unit": "rows / s",
"label": "Update"
},
{
"unit": "rows / s",
"label": "Delete"
}
]
} }
} }
] ]

View File

@ -1,7 +1,7 @@
[ [
{ {
"id":"postgresql-root", "id":"PostgreSQL-Root",
"configuration":{ "configuration":{
"children":[ "children":[
{ {
@ -41,8 +41,7 @@
"layer":"POSTGRESQL", "layer":"POSTGRESQL",
"entity":"All", "entity":"All",
"name":"PostgreSQL-Root", "name":"PostgreSQL-Root",
"id":"postgresql-root",
"isRoot":true "isRoot":true
} }
} }
] ]

View File

@ -1,7 +1,7 @@
[ [
{ {
"id":"postgresql-service", "id":"PostgreSQL-Service",
"configuration":{ "configuration":{
"children":[ "children":[
{ {
@ -498,7 +498,31 @@
"layer":"POSTGRESQL", "layer":"POSTGRESQL",
"entity":"Service", "entity":"Service",
"name":"PostgreSQL-Service", "name":"PostgreSQL-Service",
"id":"postgresql-service" "isDefault": true,
"expressions": [
"avg(meter_pg_fetched_rows_rate)",
"avg(meter_pg_inserted_rows_rate)",
"avg(meter_pg_updated_rows_rate)",
"avg(meter_pg_deleted_rows_rate)"
],
"expressionsConfig": [
{
"unit": "rows / s",
"label": "Fetch"
},
{
"unit": "rows / s",
"label": "Insert"
},
{
"unit": "rows / s",
"label": "Update"
},
{
"unit": "rows / s",
"label": "Delete"
}
]
} }
} }
] ]

View File

@ -26,10 +26,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_queue_messages_ready" "latest(meter_rabbitmq_node_queue_messages_ready)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -55,10 +55,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_incoming_messages" "latest(meter_rabbitmq_node_incoming_messages)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -84,10 +84,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_unacknowledged_messages" "latest(meter_rabbitmq_node_unacknowledged_messages)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -113,10 +113,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_outgoing_messages_total" "latest(meter_rabbitmq_node_outgoing_messages_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -142,10 +142,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_connections_total" "latest(meter_rabbitmq_node_connections_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -171,10 +171,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_publisher_total" "latest(meter_rabbitmq_node_publisher_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -200,10 +200,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_consumer_total" "latest(meter_rabbitmq_node_consumer_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -229,10 +229,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_channel_total" "latest(meter_rabbitmq_node_channel_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -258,10 +258,10 @@
"metricMode": "Expression", "metricMode": "Expression",
"metricConfig": [], "metricConfig": [],
"expressions": [ "expressions": [
"meter_rabbitmq_node_queue_total" "latest(meter_rabbitmq_node_queue_total)"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -291,10 +291,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_allocated_used_percent/100" "latest(meter_rabbitmq_node_allocated_used_percent)/100"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -324,10 +324,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_allocated_used_bytes/1024/1204" "latest(meter_rabbitmq_node_allocated_used_bytes)/1024/1204"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -357,10 +357,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_allocated_unused_bytes/1024/1024" "latest(meter_rabbitmq_node_allocated_unused_bytes)/1024/1024"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -390,10 +390,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_process_resident_memory_bytes/1024/1024" "latest(meter_rabbitmq_node_process_resident_memory_bytes)/1024/1024"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -423,10 +423,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_allocated_unused_percent/100" "latest(meter_rabbitmq_node_allocated_unused_percent)/100"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -456,10 +456,10 @@
], ],
"metricMode": "Expression", "metricMode": "Expression",
"expressions": [ "expressions": [
"meter_rabbitmq_node_allocated_total_bytes/1024/1024" "latest(meter_rabbitmq_node_allocated_total_bytes)/1024/1024"
], ],
"typesOfMQE": [ "typesOfMQE": [
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {

View File

@ -22,10 +22,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_redis_instance_uptime/3600/24" "latest(meter_redis_instance_uptime)/3600/24"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -46,10 +46,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_redis_instance_connected_clients" "latest(meter_redis_instance_connected_clients)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -156,10 +156,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_redis_instance_memory_max_bytes/1000/1000" "latest(meter_redis_instance_memory_max_bytes)/1000/1000"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -257,10 +257,10 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"meter_redis_instance_redis_blocked_clients" "latest(meter_redis_instance_redis_blocked_clients)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "SINGLE_VALUE"
] ]
}, },
{ {
@ -323,4 +323,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -33,7 +33,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"max(meter_redis_uptime)/3600/24" "latest(meter_redis_uptime)/3600/24"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -57,7 +57,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"avg(meter_redis_connected_clients)" "latest(meter_redis_connected_clients)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"TIME_SERIES_VALUES" "TIME_SERIES_VALUES"
@ -244,7 +244,7 @@
}, },
"metricMode":"Expression", "metricMode":"Expression",
"expressions":[ "expressions":[
"avg(meter_redis_blocked_clients)" "latest(meter_redis_blocked_clients)"
], ],
"typesOfMQE":[ "typesOfMQE":[
"SINGLE_VALUE" "SINGLE_VALUE"
@ -360,4 +360,4 @@
"isRoot":false "isRoot":false
} }
} }
] ]

View File

@ -561,7 +561,22 @@
"entity": "ServiceInstance", "entity": "ServiceInstance",
"name": "Self-Observability-OAP-Instance", "name": "Self-Observability-OAP-Instance",
"id": "Self-Observability-OAP-Instance", "id": "Self-Observability-OAP-Instance",
"isRoot": false "isRoot": false,
"isDefault": true,
"expressions": [
"avg(meter_oap_instance_cpu_percentage)",
"avg(meter_oap_instance_persistence_execute_count)"
],
"expressionsConfig": [
{
"unit": "%",
"label": "CPU Avg Usage"
},
{
"unit": "count / 5min",
"label": "Persistence Count"
}
]
} }
} }
] ]

View File

@ -63,7 +63,8 @@
"layer": "SO11Y_OAP", "layer": "SO11Y_OAP",
"entity": "Service", "entity": "Service",
"name": "Self-Observability-OAP-Service", "name": "Self-Observability-OAP-Service",
"isRoot": true "isRoot": true,
"isDefault": true
} }
} }
] ]

View File

@ -195,8 +195,27 @@
"layer": "VIRTUAL_DATABASE", "layer": "VIRTUAL_DATABASE",
"entity": "Service", "entity": "Service",
"name": "Virtual-Database-Service", "name": "Virtual-Database-Service",
"id": "Virtual-Database-Service", "isRoot": false,
"isRoot": false "isDefault": true,
"expressions": [
"avg(database_access_resp_time)",
"avg(database_access_sla)/100",
"avg(database_access_cpm)"
],
"expressionsConfig": [
{
"unit": "ms",
"label": "Latency"
},
{
"unit": "%",
"label": "Successful Rate"
},
{
"unit": "calls / min",
"label": "Traffic"
}
]
} }
} }
] ]

View File

@ -14,7 +14,7 @@
# limitations under the License. # limitations under the License.
# Use the Bitnami Kafka image as the base image # Use the Bitnami Kafka image as the base image
FROM bitnami/kafka:latest FROM bitnami/kafka:2.4.1
# Download the JMX Prometheus Java Agent and config file # Download the JMX Prometheus Java Agent and config file
ADD https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar /etc/jmx_prometheus_javaagent-0.18.0.jar ADD https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar /etc/jmx_prometheus_javaagent-0.18.0.jar

View File

@ -26,7 +26,7 @@ services:
- e2e - e2e
zookeeper: zookeeper:
image: zookeeper:latest image: zookeeper:3.4
expose: expose:
- 2181 - 2181
networks: networks:
@ -94,7 +94,7 @@ services:
retries: 120 retries: 120
kafka-producer-perf-test: kafka-producer-perf-test:
image: bitnami/kafka:latest image: bitnami/kafka:2.4.1
networks: networks:
- e2e - e2e
depends_on: depends_on:
@ -107,7 +107,7 @@ services:
kafka-producer-perf-test.sh --topic perftest --num-records 100000 --record-size 100 --throughput 500 --producer-props bootstrap.servers=broker1:9092,broker2:9093 kafka-producer-perf-test.sh --topic perftest --num-records 100000 --record-size 100 --throughput 500 --producer-props bootstrap.servers=broker1:9092,broker2:9093
kafka-consumer-perf-test: kafka-consumer-perf-test:
image: bitnami/kafka:latest image: bitnami/kafka:2.4.1
networks: networks:
- e2e - e2e
depends_on: depends_on: