From cdd01e6940a77f1f62bc95b346d131b71e85ad98 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 10:22:11 +0800
Subject: [PATCH 01/15] [MAL] fix mysql mal
---
.../src/main/resources/otel-rules/mysql/mysql-service.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
index 814f390d08bb..f7a85aeb3f46 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
@@ -44,7 +44,7 @@ metricsRules:
- name: qps
exp: mysql_global_status_queries.rate('PT1M')
- name: tps
- exp: mysql_global_status_commands_total.tagMatch('command','rollback|commit').sum(['host_name']).rate('PT1M')
+ exp: mysql_global_status_commands_total.tagMatch('command','rollback|commit').sum(['host_name', 'service_instance_id']).rate('PT1M')
# connections
## threads
@@ -60,7 +60,7 @@ metricsRules:
- name: connects_aborted
exp: mysql_global_status_aborted_connects
- name: connects_available
- exp: mysql_global_variables_max_connections.sum(['host_name']) - mysql_global_status_threads_connected.sum(['host_name'])
+ exp: mysql_global_variables_max_connections.sum(['host_name','service_instance_id']) - mysql_global_status_threads_connected.sum(['host_name','service_instance_id'])
- name: connection_errors_max_connections
exp: mysql_global_status_connection_errors_total.tagEqual('error','max_connection')
- name: connection_errors_internal
From 1d846be41fb0d9a84e18b9e7b092ba8775147e58 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 14:08:21 +0800
Subject: [PATCH 02/15] [MAL] fix mysql/redis mal error,
---
.../otel-rules/mysql/mysql-service.yaml | 6 ++--
.../otel-rules/redis/redis-service.yaml | 28 +++++++++++--------
2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
index f7a85aeb3f46..01d21a7a705c 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
@@ -59,8 +59,10 @@ metricsRules:
## connect
- name: connects_aborted
exp: mysql_global_status_aborted_connects
- - name: connects_available
- exp: mysql_global_variables_max_connections.sum(['host_name','service_instance_id']) - mysql_global_status_threads_connected.sum(['host_name','service_instance_id'])
+ - name: max_connections
+ exp: mysql_global_variables_max_connections.sum(['host_name','service_instance_id'])
+ - name: status_thread_connected
+ exp: mysql_global_status_threads_connected.sum(['host_name','service_instance_id'])
- name: connection_errors_max_connections
exp: mysql_global_status_connection_errors_total.tagEqual('error','max_connection')
- name: connection_errors_internal
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
index 0a9d4b9b5263..82c29b7721c7 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
@@ -33,15 +33,17 @@ expSuffix: tag({tags -> tags.host_name = 'redis::' + tags.host_name}).service([
metricPrefix: meter_redis
metricsRules:
- name: uptime
- exp: redis_uptime_in_seconds.max(['host_name'])
+ exp: redis_uptime_in_seconds.max(['host_name','service_instance_id'])
- name: connected_clients
- exp: redis_connected_clients.sum(['host_name'])
+ exp: redis_connected_clients.sum(['host_name','service_instance_id'])
- name: blocked_clients
- exp: redis_blocked_clients.sum(['host_name'])
- - name: memory_usage
- exp: redis_memory_used_bytes.sum(['host_name']) * 100 / redis_memory_max_bytes.sum(['host_name'])
+ exp: redis_blocked_clients.sum(['host_name','service_instance_id'])
+ - name: memory_used_bytes
+ exp: redis_memory_used_bytes.sum(['host_name','service_instance_id'])
+ - name: memory_max_bytes
+ exp: redis_memory_max_bytes.sum(['host_name','service_instance_id'])
- name: total_commands_rate
- exp: redis_commands_total.sum(['cmd','host_name']).rate('PT1M')
+ exp: redis_commands_total.sum(['cmd','host_name','service_instance_id']).rate('PT1M')
- name: hit_rate
exp: redis_keyspace_hits_total * 100 / (redis_keyspace_misses_total + redis_keyspace_hits_total)
@@ -51,16 +53,18 @@ metricsRules:
exp: redis_net_output_bytes_total.sum(['host_name']).rate('PT5M')
- name: db_keys
- exp: redis_db_keys.sum(['host_name'])
+ exp: redis_db_keys.sum(['host_name','service_instance_id'])
- name: expired_keys_total
- exp: redis_expired_keys_total.sum(['host_name'])
+ exp: redis_expired_keys_total.sum(['host_name','service_instance_id'])
- name: evicted_keys_total
- exp: redis_evicted_keys_total.sum(['host_name'])
+ exp: redis_evicted_keys_total.sum(['host_name','service_instance_id'])
- - name: average_time_spent_by_command
- exp: (redis_commands_duration_seconds_total.sum(['host_name','cmd']) / redis_commands_total.sum(['host_name','cmd'])).rate('PT1M')
+ - name: commands_duration
+ exp: redis_commands_duration_seconds_total.sum(['host_name','cmd','service_instance_id'])
+ - name: commands_total
+ exp: redis_commands_total.sum(['host_name','cmd','service_instance_id']))
- name: commands_duration_seconds_total_rate
- exp: redis_commands_duration_seconds_total.sum(['host_name','cmd']).rate('PT1M')
+ exp: redis_commands_duration_seconds_total.sum(['host_name','cmd','service_instance_id']).rate('PT1M')
From fb1e9bb31885e0f82c541ea62beffb4c6c8236ee Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 17:38:52 +0800
Subject: [PATCH 03/15] [e2e/ui] mysql fix
---
.../setup/backend/backend-mysql-monitoring.md | 24 +++++-----
.../otel-rules/redis/redis-service.yaml | 2 +-
.../mysql/mysql-service.json | 34 +++-----------
.../metrics-has-value-metric-null.yml | 45 +++++++++++++++++++
test/e2e-v2/cases/mysql/mysql-cases.yaml | 6 +--
5 files changed, 66 insertions(+), 45 deletions(-)
create mode 100644 test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
diff --git a/docs/en/setup/backend/backend-mysql-monitoring.md b/docs/en/setup/backend/backend-mysql-monitoring.md
index 79e636515dcd..262737c9f5da 100644
--- a/docs/en/setup/backend/backend-mysql-monitoring.md
+++ b/docs/en/setup/backend/backend-mysql-monitoring.md
@@ -17,19 +17,19 @@ SkyWalking leverages prometheus/mysqld_exporter for collecting metrics data. It
MySQL/MariaDB monitoring provides monitoring of the status and resources of the MySQL/MariaDB server. MySQL/MariaDB cluster is cataloged as a `Layer: MYSQL` `Service` in OAP.
Each MySQL/MariaDB server is cataloged as an `Instance` in OAP.
#### Supported Metrics
-| Monitoring Panel | Unit | Metric Name | Description | Data Source |
-|-----|------|-----|-----|-----|
-| MySQL Uptime | day | meter_mysql_uptime | The MySQL startup time | mysqld_exporter|
-| Max Connections | | meter_mysql_max_connections | The max number of connections. | mysqld_exporter|
-| Innodb Buffer Pool Size | MB | meter_mysql_innodb_buffer_pool_size | The buffer pool size in Innodb engine | mysqld_exporter|
-| Thread Cache Size | | meter_mysql_thread_cache_size | The size of thread cache | mysqld_exporter|
-| Current QPS| | meter_mysql_qps | Queries Per Second | mysqld_exporter|
-| Current TPS | | meter_mysql_tps | Transactions Per Second | mysqld_exporter|
+| Monitoring Panel | Unit | Metric Name | Description | Data Source |
+|-----|------|--------------------------------------------------------------------------------------------------------------------------------------------------|-----|-----|
+| MySQL Uptime | day | meter_mysql_uptime | The MySQL startup time | mysqld_exporter|
+| Max Connections | | meter_mysql_max_connections | The max number of connections. | mysqld_exporter|
+| Innodb Buffer Pool Size | MB | meter_mysql_innodb_buffer_pool_size | The buffer pool size in Innodb engine | mysqld_exporter|
+| Thread Cache Size | | meter_mysql_thread_cache_size | The size of thread cache | mysqld_exporter|
+| Current QPS| | meter_mysql_qps | Queries Per Second | mysqld_exporter|
+| Current TPS | | meter_mysql_tps | Transactions Per Second | mysqld_exporter|
| Commands Rate | | meter_mysql_commands_insert_rate
meter_mysql_commands_select_rate
meter_mysql_commands_delete_rate
meter_mysql_commands_update_rate | The rate of total number of insert/select/delete/update executed by the current server | mysqld_exporter|
-| Threads | | meter_mysql_threads_connected
meter_mysql_threads_created
meter_mysql_threads_cached
meter_mysql_threads_running | The number of currently open connections(threads_connected)
The number of threads created(threads_created)
The number of threads in the thread cache(threads_cached)
The number of threads that are not sleeping(threads_running) | mysqld_exporter|
-| Connects | | meter_mysql_connects_available
meter_mysql_connects_aborted | The number of available connections(connects_available)
The number of MySQL instance connection rejections(connects_aborted)| mysqld_exporter|
-| Connection Errors | | meter_mysql_connection_errors_internal meter_mysql_connection_errors_max_connections | Errors due to exceeding the max_connections(connection_errors_max_connections) Error caused by internal system(connection_errors_internal) | mysqld_exporter|
-| Slow Queries Rate | | meter_mysql_slow_queries_rate | The rate of slow queries | mysqld_exporter|
+| Threads | | meter_mysql_threads_connected
meter_mysql_threads_created
meter_mysql_threads_cached
meter_mysql_threads_running | The number of currently open connections(threads_connected)
The number of threads created(threads_created)
The number of threads in the thread cache(threads_cached)
The number of threads that are not sleeping(threads_running) | mysqld_exporter|
+| Connects | | meter_mysql_max_connections
meter_mysql_status_thread_connected
meter_mysql_connects_aborted | The number of available connections(connects_available)
The number of MySQL instance connection rejections(connects_aborted)| mysqld_exporter|
+| Connection Errors | | meter_mysql_connection_errors_internal meter_mysql_connection_errors_max_connections | Errors due to exceeding the max_connections(connection_errors_max_connections) Error caused by internal system(connection_errors_internal) | mysqld_exporter|
+| Slow Queries Rate | | meter_mysql_slow_queries_rate | The rate of slow queries | mysqld_exporter|
### Customizations
You can customize your own metrics/expression/dashboard panel.
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
index 82c29b7721c7..1269b30e3bce 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
@@ -62,7 +62,7 @@ metricsRules:
- name: commands_duration
exp: redis_commands_duration_seconds_total.sum(['host_name','cmd','service_instance_id'])
- name: commands_total
- exp: redis_commands_total.sum(['host_name','cmd','service_instance_id']))
+ exp: redis_commands_total.sum(['host_name','cmd','service_instance_id'])
- name: commands_duration_seconds_total_rate
exp: redis_commands_duration_seconds_total.sum(['host_name','cmd','service_instance_id']).rate('PT1M')
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
index 30a8eabaff33..97a82dabbdfb 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
@@ -65,7 +65,7 @@
}
],
"expressions": [
- "meter_mysql_tps"
+ "aggregate_labels(meter_mysql_tps,sum)"
]
},
{
@@ -169,7 +169,7 @@
}
],
"expressions": [
- "meter_mysql_connects_available",
+ "aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)",
"meter_mysql_connects_aborted"
]
},
@@ -292,32 +292,8 @@
"layer": "MYSQL",
"entity": "Service",
"name": "MySQL-Service",
- "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"
- }
- ]
+ "id": "MySQL-Service",
+ "isRoot": false
}
}
-]
+]
\ No newline at end of file
diff --git a/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml b/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
new file mode 100644
index 000000000000..1893b0c154b2
--- /dev/null
+++ b/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
@@ -0,0 +1,45 @@
+# 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.
+
+# 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.
+
+type: TIME_SERIES_VALUES
+results:
+ {{- contains .results }}
+ - metric: null
+ values:
+ {{- contains .values }}
+ - id: {{ notEmpty .id }}
+ value: {{ .value }}
+ traceid: null
+ - id: {{ notEmpty .id }}
+ value: null
+ traceid: null
+ {{- end}}
+ {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/mysql/mysql-cases.yaml b/test/e2e-v2/cases/mysql/mysql-cases.yaml
index 2a6fcb17b411..b19407f89450 100644
--- a/test/e2e-v2/cases/mysql/mysql-cases.yaml
+++ b/test/e2e-v2/cases/mysql/mysql-cases.yaml
@@ -30,7 +30,7 @@ cases:
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_qps --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_tps --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_tps,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_connected --service-name=mysql::root[root]
@@ -42,8 +42,8 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_aborted --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_available --service-name=mysql::root[root]
- expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::root[root]
+ expected: expected/metrics-has-value-metric-null.yml
# instance metrics
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_instance_uptime --service-name=mysql::root[root] --instance-name=mysql-service:9104
expected: expected/metrics-has-value.yml
From d8aca5b00eacb1be0699650b86634c01e1ab1374 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 19:07:59 +0800
Subject: [PATCH 04/15] [e2e/ui] redis and mariadb
---
.../redis/redis-service.json | 30 ++++++-------
.../metrics-has-value-metric-null.yml | 45 +++++++++++++++++++
test/e2e-v2/cases/mariadb/mariadb-cases.yaml | 6 +--
.../metrics-signle-value-metric-null.yml | 27 +++++++++++
.../redis/expected/metrics-single-value.yml | 28 ++++++++++++
test/e2e-v2/cases/redis/redis-cases.yaml | 16 +++----
6 files changed, 126 insertions(+), 26 deletions(-)
create mode 100644 test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
create mode 100644 test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml
create mode 100644 test/e2e-v2/cases/redis/expected/metrics-single-value.yml
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
index 17588dd72dcc..c924a1ee3b31 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
@@ -31,7 +31,7 @@
"title": "Uptime (day)"
},
"expressions": [
- "latest(meter_redis_uptime)/3600/24"
+ "latest(aggregate_labels(meter_redis_uptime,max))/3600/24"
]
},
{
@@ -51,7 +51,7 @@
"title": "Connected Clients"
},
"expressions": [
- "latest(meter_redis_connected_clients)"
+ "latest(aggregate_labels(meter_redis_connected_clients,sum))"
]
},
{
@@ -62,10 +62,10 @@
"i": "2",
"type": "Widget",
"graph": {
- "type": "Area",
- "opacity": 0.4,
- "showXAxis": true,
- "showYAxis": true
+ "type": "Card",
+ "fontSize": 14,
+ "textAlign": "center",
+ "showUnit": true
},
"widget": {
"title": "Memory Usage (%)"
@@ -76,7 +76,7 @@
}
],
"expressions": [
- "meter_redis_memory_usage"
+ "latest(aggregate_labels(meter_redis_memory_used_bytes,sum)/aggregate_labels(meter_redis_memory_max_bytes,sum))*100"
]
},
{
@@ -98,7 +98,7 @@
"title": "Total Commands Trend"
},
"expressions": [
- "meter_redis_total_commands_rate"
+ "aggregate_labels(meter_redis_total_commands_rate,sum(cmd))"
]
},
{
@@ -189,9 +189,9 @@
}
],
"expressions": [
- "meter_redis_db_keys",
- "meter_redis_evicted_keys_total",
- "meter_redis_expired_keys_total"
+ "aggregate_labels(meter_redis_db_keys,sum)",
+ "aggregate_labels(meter_redis_evicted_keys_total,sum)",
+ "aggregate_labels(meter_redis_expired_keys_total,sum)"
]
},
{
@@ -211,7 +211,7 @@
"title": "Blocked Clients"
},
"expressions": [
- "latest(meter_redis_blocked_clients)"
+ "latest(aggregate_labels(meter_redis_blocked_clients,sum))"
]
},
{
@@ -233,7 +233,7 @@
"title": "Total Time Spent by Command Trend (sec)"
},
"expressions": [
- "meter_redis_commands_duration_seconds_total_rate"
+ "aggregate_labels(meter_redis_commands_duration_seconds_total_rate,sum(cmd))"
]
},
{
@@ -255,7 +255,7 @@
"title": "Average Time Spent by Command / sec"
},
"expressions": [
- "meter_redis_average_time_spent_by_command"
+ "aggregate_labels(meter_redis_commands_duration,sum(cmd))/aggregate_labels(meter_redis_commands_total,sum(cmd))"
]
}
]
@@ -311,4 +311,4 @@
"isRoot": false
}
}
-]
+]
\ No newline at end of file
diff --git a/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml b/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
new file mode 100644
index 000000000000..1893b0c154b2
--- /dev/null
+++ b/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
@@ -0,0 +1,45 @@
+# 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.
+
+# 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.
+
+type: TIME_SERIES_VALUES
+results:
+ {{- contains .results }}
+ - metric: null
+ values:
+ {{- contains .values }}
+ - id: {{ notEmpty .id }}
+ value: {{ .value }}
+ traceid: null
+ - id: {{ notEmpty .id }}
+ value: null
+ traceid: null
+ {{- end}}
+ {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
index 28bb2f4bf26a..56b77b1f9ffd 100644
--- a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
+++ b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
@@ -30,7 +30,7 @@ cases:
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_qps --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_tps --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_tps,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_connected --service-name=mysql::db
@@ -42,8 +42,8 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_aborted --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_available --service-name=mysql::db
- expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::db
+ expected: expected/metrics-has-value-metric-null.yml
# instance metrics
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_instance_uptime --service-name=mysql::db --instance-name=mariadb-service:9104
expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml b/test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml
new file mode 100644
index 000000000000..fe7ea19cf9ed
--- /dev/null
+++ b/test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml
@@ -0,0 +1,27 @@
+# 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.
+
+type: SINGLE_VALUE
+results:
+ {{- contains .results }}
+ - metric: null
+ values:
+ {{- contains .values }}
+ - id: {{ notEmpty .id }}
+ value: {{ .value }}
+ traceid: null
+ {{- end}}
+ {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/redis/expected/metrics-single-value.yml b/test/e2e-v2/cases/redis/expected/metrics-single-value.yml
new file mode 100644
index 000000000000..1a70151859c6
--- /dev/null
+++ b/test/e2e-v2/cases/redis/expected/metrics-single-value.yml
@@ -0,0 +1,28 @@
+# 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.
+
+type: SINGLE_VALUE
+results:
+ {{- contains .results }}
+ - metric:
+ labels: []
+ values:
+ {{- contains .values }}
+ - id: {{ notEmpty .id }}
+ value: {{ .value }}
+ traceid: null
+ {{- end}}
+ {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/redis/redis-cases.yaml b/test/e2e-v2/cases/redis/redis-cases.yaml
index bb7f8e59fa31..40bf060a1626 100644
--- a/test/e2e-v2/cases/redis/redis-cases.yaml
+++ b/test/e2e-v2/cases/redis/redis-cases.yaml
@@ -20,21 +20,21 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls
expected: expected/service.yml
# service metrics
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_uptime --service-name=redis::root[root]
- expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_connected_clients --service-name=redis::root[root]
- expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_memory_usage --service-name=redis::root[root]
- expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_uptime,max))' --service-name=redis::root[root]
+ expected: expected/metrics-single-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_connected_clients,sum))' --service-name=redis::root[root]
+ expected: expected/metrics-single-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_memory_used_bytes,sum)/aggregate_labels(meter_redis_memory_max_bytes,sum))' --service-name=redis::root[root]
+ expected: expected/metrics-single-value-metric-null.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_hit_rate --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_net_input_bytes_total --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_net_output_bytes_total --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_db_keys --service-name=redis::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_db_keys,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_expired_keys_total --service-name=redis::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_expired_keys_total,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_instance_uptime --service-name=redis::root[root] --instance-name=redis_exporter_1:9121
expected: expected/metrics-has-value.yml
From 521662622241cca64c1e22586f34a4a6dd993139 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 19:27:54 +0800
Subject: [PATCH 05/15] [doc] fix redis doc
---
.../setup/backend/backend-redis-monitoring.md | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/docs/en/setup/backend/backend-redis-monitoring.md b/docs/en/setup/backend/backend-redis-monitoring.md
index ef5a2198bcfd..54b1f931af24 100644
--- a/docs/en/setup/backend/backend-redis-monitoring.md
+++ b/docs/en/setup/backend/backend-redis-monitoring.md
@@ -17,19 +17,19 @@ SkyWalking leverages redis-exporter for collecting metrics data from Redis. It l
Redis monitoring provides monitoring of the status and resources of the Redis server. Redis cluster is cataloged as a `Layer: REDIS` `Service` in OAP.
Each Redis server is cataloged as an `Instance` in OAP.
#### Supported Metrics
-| Monitoring Panel | Unit | Metric Name | Description | Data Source |
-|-----------------------------------|--------|---------------------------------------------------------------------------------------------------|----------------------------------------------------|----------------|
-| Uptime | day | meter_redis_uptime | The uptime of Redis. | redis-exporter |
-| Connected Clients | | meter_redis_connected_clients | The number of connected clients. | redis-exporter |
-| Blocked Clients | | meter_redis_blocked_clients | The number of blocked clients. | redis-exporter |
-| Memory Max Bytes | MB | meter_redis_memory_max_bytes | The max bytes of memory. | redis-exporter |
-| Hits Rate | % | meter_redis_hit_rate | Hit rate of redis when used as a cache. | redis-exporter |
-| Average Time Spend By Command | second | meter_redis_average_time_spent_by_command | Average time to execute various types of commands. | redis-exporter |
-| Total Commands Trend | | meter_redis_total_commands_rate | The Trend of total commands. | redis-exporter |
+| Monitoring Panel | Unit | Metric Name | Description | Data Source |
+|-----------------------------------|--------|--------------------------------------------------------------------------------------------------|----------------------------------------------------|----------------|
+| Uptime | day | meter_redis_uptime | The uptime of Redis. | redis-exporter |
+| Connected Clients | | meter_redis_connected_clients | The number of connected clients. | redis-exporter |
+| Blocked Clients | | meter_redis_blocked_clients | The number of blocked clients. | redis-exporter |
+| Memory Max Bytes | MB | meter_redis_memory_max_bytes | The max bytes of memory. | redis-exporter |
+| Hits Rate | % | meter_redis_hit_rate | Hit rate of redis when used as a cache. | redis-exporter |
+| Average Time Spend By Command | second | meter_redis_average_time_spent_by_command | Average time to execute various types of commands. | redis-exporter |
+| Total Commands Trend | | meter_redis_total_commands_rate | The Trend of total commands. | redis-exporter |
| DB keys | | meter_redis_evicted_keys_total meter_redis_expired_keys_total meter_redis_db_keys | The number of Expired / Evicted / total keys. | redis-exporter |
-| Net Input/Output Bytes | KB | meter_redis_net_input_bytes meter_redis_net_output_bytes | Total bytes of input / output of redis net. | redis-exporter |
-| Memory Usage | % | meter_redis_memory_usage | Percentage of used memory. | redis-exporter |
-| Total Time Spend By Command Trend | | meter_redis_commands_duration_seconds_total_rate | The trend of total time spend by command | redis-exporter |
+| Net Input/Output Bytes | KB | meter_redis_net_input_bytes meter_redis_net_output_bytes | Total bytes of input / output of redis net. | redis-exporter |
+| Memory Usage | % | meter_redis_memory_used_bytes meter_redis_memory_max_bytes | Percentage of used memory. | redis-exporter |
+| Total Time Spend By Command Trend | | meter_redis_commands_duration meter_redis_commands_total | The trend of total time spend by command | redis-exporter |
### Customizations
You can customize your own metrics/expression/dashboard panel.
From 7515442f9034fd0c342cf90643505144a108ce7d Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Thu, 18 Apr 2024 19:29:59 +0800
Subject: [PATCH 06/15] Update changes.md
---
docs/en/changes/changes.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 96182ba96aec..85d9c3c4674c 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -106,6 +106,7 @@
* Fix/Change UI init setting for Windows Swap -> Virtual Memory
* Fix `Memory Swap Usage`/`Virtual Memory Usage` display with UI init.(Linux/Windows)
* Fix inaccurate APISIX metrics
+* Fix inaccurate MySQL/MariaDB, Redis metrics
#### UI
From 44401359fa4546397b8280bb224fe574a7120902 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Fri, 19 Apr 2024 00:42:21 +0800
Subject: [PATCH 07/15] [e2e] fix redis e2e [UI] update progresql ui
---
docs/en/changes/changes.md | 2 +-
.../postgresql/postgresql-service.json | 52 +++++--------------
...l => metrics-single-value-metric-null.yml} | 0
3 files changed, 15 insertions(+), 39 deletions(-)
rename test/e2e-v2/cases/redis/expected/{metrics-signle-value-metric-null.yml => metrics-single-value-metric-null.yml} (100%)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 85d9c3c4674c..60e7d51f0271 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -106,7 +106,7 @@
* Fix/Change UI init setting for Windows Swap -> Virtual Memory
* Fix `Memory Swap Usage`/`Virtual Memory Usage` display with UI init.(Linux/Windows)
* Fix inaccurate APISIX metrics
-* Fix inaccurate MySQL/MariaDB, Redis metrics
+* Fix inaccurate MySQL/MariaDB, Redis, PostgreSQL metrics
#### UI
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
index 6a16add84c40..841d54057b52 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
@@ -31,7 +31,7 @@
"title": "Fetched Rows Trend (rows per second)"
},
"expressions": [
- "meter_pg_fetched_rows_rate"
+ "aggregate_labels(meter_pg_fetched_rows_rate,sum(service_instance_id))"
]
},
{
@@ -51,7 +51,7 @@
"title": "Inserted Rows Trend (rows per second)"
},
"expressions": [
- "meter_pg_inserted_rows_rate"
+ "aggregate_labels(meter_pg_inserted_rows_rate,sum(service_instance_id))"
]
},
{
@@ -116,7 +116,7 @@
"title": "Updated Rows Trend (rows per second)"
},
"expressions": [
- "meter_pg_updated_rows_rate"
+ "aggregate_labels(meter_pg_updated_rows_rate,sum(service_instance_id))"
]
},
{
@@ -136,7 +136,7 @@
"title": "Deleted Rows Trend (rows per second)"
},
"expressions": [
- "meter_pg_deleted_rows_rate"
+ "aggregate_labels(meter_pg_deleted_rows_rate,sum(service_instance_id))"
]
},
{
@@ -156,7 +156,7 @@
"title": "Returned Rows Trend (rows per second)"
},
"expressions": [
- "meter_pg_returned_rows_rate"
+ "aggregate_labels(meter_pg_returned_rows_rate,sum(service_instance_id))"
]
},
{
@@ -178,7 +178,7 @@
"title": "Temporary Files Trend (per second)"
},
"expressions": [
- "meter_pg_temporary_files_rate"
+ "aggregate_labels(meter_pg_temporary_files_rate,sum(service_instance_id))"
]
},
{
@@ -200,7 +200,7 @@
"title": "Committed Transactions Trend (per second)"
},
"expressions": [
- "meter_pg_committed_transactions_rate"
+ "aggregate_labels(meter_pg_committed_transactions_rate,sum(service_instance_id))"
]
},
{
@@ -222,7 +222,7 @@
"title": "Rolled Back Transactions Trend (per second)"
},
"expressions": [
- "meter_pg_rolled_back_transactions_rate"
+ "aggregate_labels(meter_pg_rolled_back_transactions_rate,sum(service_instance_id))"
]
},
{
@@ -244,7 +244,7 @@
"title": "Cache Hit Rate (%)"
},
"expressions": [
- "meter_pg_cache_hit_rate"
+ "aggregate_labels(meter_pg_cache_hit_rate,sum(service_instance_id))"
]
},
{
@@ -305,7 +305,7 @@
"title": "Conflicts Trend (per second)"
},
"expressions": [
- "meter_pg_conflicts_rate"
+ "aggregate_labels(meter_pg_conflicts_rate,sum(service_instance_id))"
]
},
{
@@ -327,7 +327,7 @@
"title": "Deadlocks Trend (per second)"
},
"expressions": [
- "meter_pg_deadlocks_rate"
+ "aggregate_labels(meter_pg_deadlocks_rate,sum(service_instance_id))"
]
},
{
@@ -371,7 +371,7 @@
"title": "Locks"
},
"expressions": [
- "meter_pg_locks_count"
+ "aggregate_labels(meter_pg_locks_count,sum(service_instance_id))"
]
},
{
@@ -448,31 +448,7 @@
"layer": "POSTGRESQL",
"entity": "Service",
"name": "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"
- }
- ]
+ "id": "PostgreSQL-Service"
}
}
-]
+]
\ No newline at end of file
diff --git a/test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml b/test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml
similarity index 100%
rename from test/e2e-v2/cases/redis/expected/metrics-signle-value-metric-null.yml
rename to test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml
From ce3960bd166d8bea25b3b943e03fd2d53ca8aa93 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Fri, 19 Apr 2024 14:12:25 +0800
Subject: [PATCH 08/15] [UI] fix mysql/postgresql UI
---
.../mysql/mysql-service.json | 31 +++++++++++++++++--
.../postgresql/postgresql-service.json | 25 +++++++++++++++
2 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
index 97a82dabbdfb..8d41f6b7e45a 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
@@ -289,11 +289,36 @@
]
}
],
+ "name": "MySQL-Service",
"layer": "MYSQL",
"entity": "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"
+ }
+ ],
+ "id": "MySQL-Service"
}
}
]
\ No newline at end of file
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
index 841d54057b52..ca2dbaf98b01 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
@@ -448,6 +448,31 @@
"layer": "POSTGRESQL",
"entity": "Service",
"name": "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"
+ }
+ ],
"id": "PostgreSQL-Service"
}
}
From bd88de478255cbb8871df7723855ca74b326b45b Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Sun, 21 Apr 2024 22:59:54 +0800
Subject: [PATCH 09/15] [MAL] fix wrong MAL
---
.../otel-rules/mysql/mysql-service.yaml | 26 +++++++++----------
.../postgresql/postgresql-service.yaml | 20 +++++++-------
.../otel-rules/redis/redis-service.yaml | 6 ++---
3 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
index 01d21a7a705c..642a08591871 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/mysql/mysql-service.yaml
@@ -34,41 +34,41 @@ metricPrefix: meter_mysql
metricsRules:
# database throughput
- name: commands_insert_rate
- exp: mysql_global_status_commands_total.tagEqual('command','insert').rate('PT1M')
+ exp: mysql_global_status_commands_total.tagEqual('command','insert').sum(['service_instance_id','host_name']).rate('PT1M')
- name: commands_select_rate
- exp: mysql_global_status_commands_total.tagEqual('command','select').rate('PT1M')
+ exp: mysql_global_status_commands_total.tagEqual('command','select').sum(['service_instance_id','host_name']).rate('PT1M')
- name: commands_delete_rate
- exp: mysql_global_status_commands_total.tagEqual('command','delete').rate('PT1M')
+ exp: mysql_global_status_commands_total.tagEqual('command','delete').sum(['service_instance_id','host_name']).rate('PT1M')
- name: commands_update_rate
- exp: mysql_global_status_commands_total.tagEqual('command','update').rate('PT1M')
+ exp: mysql_global_status_commands_total.tagEqual('command','update').sum(['service_instance_id','host_name']).rate('PT1M')
- name: qps
- exp: mysql_global_status_queries.rate('PT1M')
+ exp: mysql_global_status_queries.rate('PT1M').sum(['service_instance_id','host_name'])
- name: tps
exp: mysql_global_status_commands_total.tagMatch('command','rollback|commit').sum(['host_name', 'service_instance_id']).rate('PT1M')
# connections
## threads
- name: threads_connected
- exp: mysql_global_status_threads_connected
+ exp: mysql_global_status_threads_connected.sum(['service_instance_id','host_name'])
- name: threads_created
- exp: mysql_global_status_threads_created
+ exp: mysql_global_status_threads_created.sum(['service_instance_id','host_name'])
- name: threads_running
- exp: mysql_global_status_threads_running
+ exp: mysql_global_status_threads_running.sum(['service_instance_id','host_name'])
- name: threads_cached
- exp: mysql_global_status_threads_cached
+ exp: mysql_global_status_threads_cached.sum(['service_instance_id','host_name'])
## connect
- name: connects_aborted
- exp: mysql_global_status_aborted_connects
+ exp: mysql_global_status_aborted_connects.sum(['service_instance_id','host_name'])
- name: max_connections
exp: mysql_global_variables_max_connections.sum(['host_name','service_instance_id'])
- name: status_thread_connected
exp: mysql_global_status_threads_connected.sum(['host_name','service_instance_id'])
- name: connection_errors_max_connections
- exp: mysql_global_status_connection_errors_total.tagEqual('error','max_connection')
+ exp: mysql_global_status_connection_errors_total.tagEqual('error','max_connection').sum(['service_instance_id','host_name'])
- name: connection_errors_internal
- exp: mysql_global_status_connection_errors_total.tagEqual('error','internal')
+ exp: mysql_global_status_connection_errors_total.tagEqual('error','internal').sum(['service_instance_id','host_name'])
# slow queries
- name: slow_queries_rate
- exp: mysql_global_status_slow_queries.rate('PT1M')
+ exp: mysql_global_status_slow_queries.sum(['service_instance_id','host_name']).rate('PT1M')
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
index 1dc9e3e388fb..d71098fe2eb2 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
@@ -46,7 +46,7 @@ metricsRules:
exp: pg_stat_database_tup_returned.sum(['service_instance_id','host_name']).rate('PT1M')
## locks
- name: locks_count
- exp: pg_locks_count.tag({tags -> tags.mode = tags.datname + ":" + tags.mode}).sum(['service_instance_id','host_name'])
+ exp: pg_locks_count.sum(['service_instance_id','host_name'])
## sessions
- name: active_sessions
@@ -68,13 +68,13 @@ metricsRules:
## checkpoint
- name: checkpoint_write_time_rate
- exp: pg_stat_bgwriter_checkpoint_write_time_total.rate('PT1M')
+ exp: pg_stat_bgwriter_checkpoint_write_time_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: checkpoint_sync_time_rate
- exp: pg_stat_bgwriter_checkpoint_sync_time_total.rate('PT1M')
+ exp: pg_stat_bgwriter_checkpoint_sync_time_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: checkpoint_req_rate
- exp: pg_stat_bgwriter_checkpoints_req_total.rate('PT1M')
+ exp: pg_stat_bgwriter_checkpoints_req_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: checkpoints_timed_rate
- exp: pg_stat_bgwriter_checkpoints_timed_total.rate('PT1M')
+ exp: pg_stat_bgwriter_checkpoints_timed_total.rate('PT1M').sum(['service_instance_id','host_name'])
## conflicts and deadlocks
- name: conflicts_rate
@@ -84,12 +84,12 @@ metricsRules:
## buffers
- name: buffers_checkpoint
- exp: pg_stat_bgwriter_buffers_checkpoint.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_checkpoint.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_clean
- exp: pg_stat_bgwriter_buffers_clean.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_clean.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_backend_fsync
- exp: pg_stat_bgwriter_buffers_backend_fsync.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_backend_fsync.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_alloc
- exp: pg_stat_bgwriter_buffers_alloc.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_alloc.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_backend
- exp: pg_stat_bgwriter_buffers_backend.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_backend.rate('PT1M').sum(['service_instance_id','host_name'])
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
index 1269b30e3bce..8181ac0ccee4 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/redis/redis-service.yaml
@@ -45,12 +45,12 @@ metricsRules:
- name: total_commands_rate
exp: redis_commands_total.sum(['cmd','host_name','service_instance_id']).rate('PT1M')
- name: hit_rate
- exp: redis_keyspace_hits_total * 100 / (redis_keyspace_misses_total + redis_keyspace_hits_total)
+ exp: (redis_keyspace_hits_total * 100 / (redis_keyspace_misses_total + redis_keyspace_hits_total)).sum(['service_instance_id','host_name'])
- name: net_input_bytes_total
- exp: redis_net_input_bytes_total.sum(['host_name']).rate('PT5M')
+ exp: redis_net_input_bytes_total.sum(['host_name','service_instance_id']).rate('PT5M')
- name: net_output_bytes_total
- exp: redis_net_output_bytes_total.sum(['host_name']).rate('PT5M')
+ exp: redis_net_output_bytes_total.sum(['host_name','service_instance_id']).rate('PT5M')
- name: db_keys
exp: redis_db_keys.sum(['host_name','service_instance_id'])
From 17a01fc42c29b997636548a723ac4b37cf152d3e Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Mon, 22 Apr 2024 11:08:31 +0800
Subject: [PATCH 10/15] [fix] fix pgsql MAL and UI
---
.../postgresql/postgresql-service.yaml | 10 +-
.../postgresql/postgresql-service.json | 129 ++++++++++++++----
2 files changed, 105 insertions(+), 34 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
index d71098fe2eb2..60b705a97107 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-service.yaml
@@ -84,12 +84,12 @@ metricsRules:
## buffers
- name: buffers_checkpoint
- exp: pg_stat_bgwriter_buffers_checkpoint.rate('PT1M').sum(['service_instance_id','host_name'])
+ exp: pg_stat_bgwriter_buffers_checkpoint_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_clean
- exp: pg_stat_bgwriter_buffers_clean.rate('PT1M').sum(['service_instance_id','host_name'])
+ exp: pg_stat_bgwriter_buffers_clean_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_backend_fsync
- exp: pg_stat_bgwriter_buffers_backend_fsync.rate('PT1M').sum(['service_instance_id','host_name'])
+ exp: pg_stat_bgwriter_buffers_backend_fsync_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_alloc
- exp: pg_stat_bgwriter_buffers_alloc.rate('PT1M').sum(['service_instance_id','host_name'])
+ exp: pg_stat_bgwriter_buffers_alloc_total.rate('PT1M').sum(['service_instance_id','host_name'])
- name: buffers_backend
- exp: pg_stat_bgwriter_buffers_backend.rate('PT1M').sum(['service_instance_id','host_name'])
+ exp: pg_stat_bgwriter_buffers_backend_total.rate('PT1M').sum(['service_instance_id','host_name'])
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
index ca2dbaf98b01..2c37473d47ab 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/postgresql/postgresql-service.json
@@ -31,7 +31,12 @@
"title": "Fetched Rows Trend (rows per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_fetched_rows_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_fetched_rows_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Feched Rows Rate"
+ }
]
},
{
@@ -51,7 +56,12 @@
"title": "Inserted Rows Trend (rows per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_inserted_rows_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_inserted_rows_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Inserted Rows Rate"
+ }
]
},
{
@@ -90,11 +100,11 @@
}
],
"expressions": [
- "meter_pg_buffers_checkpoint",
- "meter_pg_buffers_clean",
- "meter_pg_buffers_backend_fsync",
- "meter_pg_buffers_alloc",
- "meter_pg_buffers_backend"
+ "aggregate_labels(meter_pg_buffers_checkpoint,sum)",
+ "aggregate_labels(meter_pg_buffers_clean,sum)",
+ "aggregate_labels(meter_pg_buffers_backend_fsync,sum)",
+ "aggregate_labels(meter_pg_buffers_alloc,sum)",
+ "aggregate_labels(meter_pg_buffers_backend,sum)"
]
},
{
@@ -116,7 +126,12 @@
"title": "Updated Rows Trend (rows per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_updated_rows_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_updated_rows_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Updated Rows Rate"
+ }
]
},
{
@@ -136,7 +151,12 @@
"title": "Deleted Rows Trend (rows per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_deleted_rows_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_deleted_rows_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Deleted Rows Rate"
+ }
]
},
{
@@ -156,7 +176,12 @@
"title": "Returned Rows Trend (rows per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_returned_rows_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_returned_rows_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Returned Rows Rate"
+ }
]
},
{
@@ -178,7 +203,12 @@
"title": "Temporary Files Trend (per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_temporary_files_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_temporary_files_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Temporary Files Trend"
+ }
]
},
{
@@ -200,7 +230,12 @@
"title": "Committed Transactions Trend (per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_committed_transactions_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_committed_transactions_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Committed Transactions Rate"
+ }
]
},
{
@@ -222,7 +257,12 @@
"title": "Rolled Back Transactions Trend (per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_rolled_back_transactions_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_rolled_back_transactions_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Rolled Back Transactions Rate"
+ }
]
},
{
@@ -244,7 +284,12 @@
"title": "Cache Hit Rate (%)"
},
"expressions": [
- "aggregate_labels(meter_pg_cache_hit_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_cache_hit_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Cache Hit Rate"
+ }
]
},
{
@@ -280,10 +325,10 @@
}
],
"expressions": [
- "meter_pg_checkpoint_sync_time_rate",
- "meter_pg_checkpoints_timed_rate",
- "meter_pg_checkpoint_req_rate",
- "meter_pg_checkpoint_write_time_rate"
+ "aggregate_labels(meter_pg_checkpoint_sync_time_rate,sum)",
+ "aggregate_labels(meter_pg_checkpoints_timed_rate,sum)",
+ "aggregate_labels(meter_pg_checkpoint_req_rate,sum)",
+ "aggregate_labels(meter_pg_checkpoint_write_time_rate,sum)"
]
},
{
@@ -305,7 +350,12 @@
"title": "Conflicts Trend (per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_conflicts_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_conflicts_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Conflicts Rate"
+ }
]
},
{
@@ -327,7 +377,12 @@
"title": "Deadlocks Trend (per second)"
},
"expressions": [
- "aggregate_labels(meter_pg_deadlocks_rate,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_deadlocks_rate,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Deadlocks Rate"
+ }
]
},
{
@@ -349,7 +404,12 @@
"title": "Active Sessions"
},
"expressions": [
- "meter_pg_active_sessions"
+ "aggregate_labels(meter_pg_active_sessions,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Active Sessions"
+ }
]
},
{
@@ -371,7 +431,12 @@
"title": "Locks"
},
"expressions": [
- "aggregate_labels(meter_pg_locks_count,sum(service_instance_id))"
+ "aggregate_labels(meter_pg_locks_count,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Locks Count"
+ }
]
},
{
@@ -393,7 +458,12 @@
"title": "Idle Sessions"
},
"expressions": [
- "meter_pg_idle_sessions"
+ "aggregate_labels(meter_pg_idle_sessions,sum)"
+ ],
+ "metricConfig": [
+ {
+ "label": "Idle Sessions"
+ }
]
}
]
@@ -448,12 +518,14 @@
"layer": "POSTGRESQL",
"entity": "Service",
"name": "PostgreSQL-Service",
+ "id": "PostgreSQL-Service",
+ "isRoot": false,
"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)"
+ "avg(aggregate_labels(meter_pg_fetched_rows_rate,sum))",
+ "avg(aggregate_labels(meter_pg_inserted_rows_rate,sum))",
+ "avg(aggregate_labels(meter_pg_updated_rows_rate,sum))",
+ "avg(aggregate_labels(meter_pg_deleted_rows_rate,sum))"
],
"expressionsConfig": [
{
@@ -472,8 +544,7 @@
"unit": "rows / s",
"label": "Delete"
}
- ],
- "id": "PostgreSQL-Service"
+ ]
}
}
]
\ No newline at end of file
From 8d31c61a895cb6c1393593f7515f29f8bdbc94f5 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Mon, 22 Apr 2024 13:27:51 +0800
Subject: [PATCH 11/15] [e2e/ui] fix pgsql redis ui and e2e.
---
.../postgresql/postgresql-instance.yaml | 10 +++---
.../mysql/mysql-service.json | 36 +++++++++----------
.../redis/redis-service.json | 6 ++--
test/e2e-v2/cases/mysql/mysql-cases.yaml | 18 +++++-----
.../cases/postgresql/postgresql-cases.yaml | 28 +++++++--------
test/e2e-v2/cases/redis/redis-cases.yaml | 6 ++--
6 files changed, 52 insertions(+), 52 deletions(-)
diff --git a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-instance.yaml b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-instance.yaml
index b36349c0ffd1..2005cce99bfd 100644
--- a/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-instance.yaml
+++ b/oap-server/server-starter/src/main/resources/otel-rules/postgresql/postgresql-instance.yaml
@@ -104,12 +104,12 @@ metricsRules:
## buffers
- name: instance_buffers_checkpoint
- exp: pg_stat_bgwriter_buffers_checkpoint.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_checkpoint_total.rate('PT1M')
- name: instance_buffers_clean
- exp: pg_stat_bgwriter_buffers_clean.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_clean_total.rate('PT1M')
- name: instance_buffers_backend_fsync
- exp: pg_stat_bgwriter_buffers_backend_fsync.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_backend_fsync_total.rate('PT1M')
- name: instance_buffers_alloc
- exp: pg_stat_bgwriter_buffers_alloc.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_alloc_total.rate('PT1M')
- name: instance_buffers_backend
- exp: pg_stat_bgwriter_buffers_backend.rate('PT1M')
+ exp: pg_stat_bgwriter_buffers_backend_total.rate('PT1M')
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
index 8d41f6b7e45a..d0b16e64a415 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-service.json
@@ -38,7 +38,7 @@
}
],
"expressions": [
- "meter_mysql_qps"
+ "aggregate_labels(meter_mysql_qps,sum)"
]
},
{
@@ -99,10 +99,10 @@
}
],
"expressions": [
- "meter_mysql_commands_insert_rate",
- "meter_mysql_commands_delete_rate",
- "meter_mysql_commands_select_rate",
- "meter_mysql_commands_update_rate"
+ "aggregate_labels(meter_mysql_commands_insert_rate,sum)",
+ "aggregate_labels(meter_mysql_commands_delete_rate,sum)",
+ "aggregate_labels(meter_mysql_commands_select_rate,sum)",
+ "aggregate_labels(meter_mysql_commands_update_rate,sum)"
]
},
{
@@ -136,10 +136,10 @@
}
],
"expressions": [
- "meter_mysql_threads_cached",
- "meter_mysql_threads_running",
- "meter_mysql_threads_created",
- "meter_mysql_threads_connected"
+ "aggregate_labels(meter_mysql_threads_cached,sum)",
+ "aggregate_labels(meter_mysql_threads_running,sum)",
+ "aggregate_labels(meter_mysql_threads_created,sum)",
+ "aggregate_labels(meter_mysql_threads_connected,sum)"
]
},
{
@@ -170,7 +170,7 @@
],
"expressions": [
"aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)",
- "meter_mysql_connects_aborted"
+ "aggregate_labels(meter_mysql_connects_aborted,sum)"
]
},
{
@@ -197,7 +197,7 @@
}
],
"expressions": [
- "meter_mysql_slow_queries_rate"
+ "aggregate_labels(meter_mysql_slow_queries_rate,sum)"
]
},
{
@@ -227,8 +227,8 @@
}
],
"expressions": [
- "meter_mysql_connection_errors_internal",
- "meter_mysql_connection_errors_max_connections"
+ "aggregate_labels(meter_mysql_connection_errors_internal,sum)",
+ "aggregate_labels(meter_mysql_connection_errors_max_connections,sum)"
]
}
]
@@ -289,16 +289,16 @@
]
}
],
- "name": "MySQL-Service",
"layer": "MYSQL",
"entity": "Service",
+ "name": "MySQL-Service",
"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)"
+ "avg(aggregate_labels(meter_mysql_commands_select_rate,sum))",
+ "avg(aggregate_labels(meter_mysql_commands_insert_rate,sum))",
+ "avg(aggregate_labels(meter_mysql_commands_update_rate,sum))",
+ "avg(aggregate_labels(meter_mysql_commands_delete_rate,sum))"
],
"expressionsConfig": [
{
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
index c924a1ee3b31..7408dcb9fe5f 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/redis/redis-service.json
@@ -125,7 +125,7 @@
}
],
"expressions": [
- "meter_redis_hit_rate"
+ "aggregate_labels(meter_redis_hit_rate,sum)"
]
},
{
@@ -155,8 +155,8 @@
"title": "Net Input / Output Bytes (KB)"
},
"expressions": [
- "meter_redis_net_input_bytes_total/1024",
- "meter_redis_net_output_bytes_total/1024"
+ "aggregate_labels(meter_redis_net_input_bytes_total,sum)/1024",
+ "aggregate_labels(meter_redis_net_output_bytes_total,sum)/1024"
]
},
{
diff --git a/test/e2e-v2/cases/mysql/mysql-cases.yaml b/test/e2e-v2/cases/mysql/mysql-cases.yaml
index b19407f89450..83680f714db2 100644
--- a/test/e2e-v2/cases/mysql/mysql-cases.yaml
+++ b/test/e2e-v2/cases/mysql/mysql-cases.yaml
@@ -20,27 +20,27 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls
expected: expected/service.yml
# service metrics
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_select_rate --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_select_rate,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_insert_rate --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_insert_rate,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_update_rate --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_update_rate,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_delete_rate --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_delete_rate,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_qps --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_qps,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_tps,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_connected --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_connected,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_created --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_created,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_running --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_running,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_aborted --service-name=mysql::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_connects_aborted,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value-metric-null.yml
diff --git a/test/e2e-v2/cases/postgresql/postgresql-cases.yaml b/test/e2e-v2/cases/postgresql/postgresql-cases.yaml
index 8aeacbcfacd9..b309d318aa7b 100644
--- a/test/e2e-v2/cases/postgresql/postgresql-cases.yaml
+++ b/test/e2e-v2/cases/postgresql/postgresql-cases.yaml
@@ -20,21 +20,21 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls
expected: expected/service.yml
# service metrics
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_cache_hit_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_fetched_rows_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_inserted_rows_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_updated_rows_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_returned_rows_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_deleted_rows_rate --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_cache_hit_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_fetched_rows_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_inserted_rows_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_updated_rows_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_returned_rows_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_deleted_rows_rate,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_active_sessions --service-name=postgresql::postgres:5432
- expected: expected/metrics-has-value-label.yml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="aggregate_labels(meter_pg_active_sessions,sum)" --service-name=postgresql::postgres:5432
+ expected: expected/metrics-has-value.yml
# instance metrics
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_pg_instance_shared_buffers --service-name=postgresql::postgres:5432 --instance-name=postgres-exporter:9187
expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/redis/redis-cases.yaml b/test/e2e-v2/cases/redis/redis-cases.yaml
index 40bf060a1626..7947e31cab5f 100644
--- a/test/e2e-v2/cases/redis/redis-cases.yaml
+++ b/test/e2e-v2/cases/redis/redis-cases.yaml
@@ -26,11 +26,11 @@ cases:
expected: expected/metrics-single-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_memory_used_bytes,sum)/aggregate_labels(meter_redis_memory_max_bytes,sum))' --service-name=redis::root[root]
expected: expected/metrics-single-value-metric-null.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_hit_rate --service-name=redis::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_hit_rate,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_net_input_bytes_total --service-name=redis::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_net_input_bytes_total,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_redis_net_output_bytes_total --service-name=redis::root[root]
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_net_output_bytes_total,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_db_keys,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
From 3a6183644d4327de74d5a448a844786d60b0c55a Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Mon, 22 Apr 2024 13:54:48 +0800
Subject: [PATCH 12/15] [fix] fix e2e
---
.../metrics-has-value-metric-null.yml | 45 -------------------
test/e2e-v2/cases/mariadb/mariadb-cases.yaml | 2 +-
.../metrics-has-value-metric-null.yml | 45 -------------------
test/e2e-v2/cases/mysql/mysql-cases.yaml | 2 +-
.../metrics-single-value-metric-null.yml | 27 -----------
test/e2e-v2/cases/redis/redis-cases.yaml | 2 +-
6 files changed, 3 insertions(+), 120 deletions(-)
delete mode 100644 test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
delete mode 100644 test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
delete mode 100644 test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml
diff --git a/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml b/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
deleted file mode 100644
index 1893b0c154b2..000000000000
--- a/test/e2e-v2/cases/mariadb/expected/metrics-has-value-metric-null.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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.
-
-# 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.
-
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric: null
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
diff --git a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
index 56b77b1f9ffd..4834923dec82 100644
--- a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
+++ b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
@@ -43,7 +43,7 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_aborted --service-name=mysql::db
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::db
- expected: expected/metrics-has-value-metric-null.yml
+ expected: expected/metrics-has-value.yml
# instance metrics
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_instance_uptime --service-name=mysql::db --instance-name=mariadb-service:9104
expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml b/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
deleted file mode 100644
index 1893b0c154b2..000000000000
--- a/test/e2e-v2/cases/mysql/expected/metrics-has-value-metric-null.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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.
-
-# 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.
-
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric: null
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
diff --git a/test/e2e-v2/cases/mysql/mysql-cases.yaml b/test/e2e-v2/cases/mysql/mysql-cases.yaml
index 83680f714db2..4d7c4fcdade0 100644
--- a/test/e2e-v2/cases/mysql/mysql-cases.yaml
+++ b/test/e2e-v2/cases/mysql/mysql-cases.yaml
@@ -43,7 +43,7 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_connects_aborted,sum)' --service-name=mysql::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::root[root]
- expected: expected/metrics-has-value-metric-null.yml
+ expected: expected/metrics-has-value.yml
# instance metrics
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_instance_uptime --service-name=mysql::root[root] --instance-name=mysql-service:9104
expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml b/test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml
deleted file mode 100644
index fe7ea19cf9ed..000000000000
--- a/test/e2e-v2/cases/redis/expected/metrics-single-value-metric-null.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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.
-
-type: SINGLE_VALUE
-results:
- {{- contains .results }}
- - metric: null
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- traceid: null
- {{- end}}
- {{- end}}
-error: null
diff --git a/test/e2e-v2/cases/redis/redis-cases.yaml b/test/e2e-v2/cases/redis/redis-cases.yaml
index 7947e31cab5f..40ca06184cb3 100644
--- a/test/e2e-v2/cases/redis/redis-cases.yaml
+++ b/test/e2e-v2/cases/redis/redis-cases.yaml
@@ -25,7 +25,7 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_connected_clients,sum))' --service-name=redis::root[root]
expected: expected/metrics-single-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='latest(aggregate_labels(meter_redis_memory_used_bytes,sum)/aggregate_labels(meter_redis_memory_max_bytes,sum))' --service-name=redis::root[root]
- expected: expected/metrics-single-value-metric-null.yml
+ expected: expected/metrics-single-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_hit_rate,sum)' --service-name=redis::root[root]
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_redis_net_input_bytes_total,sum)' --service-name=redis::root[root]
From cf2081a33edac18b7931269a4f10450a96c53aef Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Mon, 22 Apr 2024 14:38:49 +0800
Subject: [PATCH 13/15] [e2e] fix mariadb e2e
---
test/e2e-v2/cases/mariadb/mariadb-cases.yaml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
index 4834923dec82..62f1d18b548e 100644
--- a/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
+++ b/test/e2e-v2/cases/mariadb/mariadb-cases.yaml
@@ -20,27 +20,27 @@ cases:
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls
expected: expected/service.yml
# service metrics
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_select_rate --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_select_rate,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_insert_rate --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_insert_rate,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_update_rate --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_update_rate,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_commands_delete_rate --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_commands_delete_rate,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_qps --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_qps,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_tps,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_connected --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_connected,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_created --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_created,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_threads_running --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_threads_running,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_mysql_connects_aborted --service-name=mysql::db
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_connects_aborted,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression='aggregate_labels(meter_mysql_max_connections,sum)-aggregate_labels(meter_mysql_status_thread_connected,sum)' --service-name=mysql::db
expected: expected/metrics-has-value.yml
From 4b73a4c12a84728dc6a56fbf8d56132cf4900ff6 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Tue, 23 Apr 2024 16:37:44 +0800
Subject: [PATCH 14/15] Replace '.' to '_' at OTEL metrics-attributes.
---
.../receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java
index a32805b2d7e3..3e4acbe65478 100644
--- a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java
+++ b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java
@@ -135,7 +135,7 @@ private static Map buildLabels(List kvs) {
return kvs
.stream()
.collect(toMap(
- KeyValue::getKey,
+ it -> it.getKey().replaceAll("\\.", "_"),
it -> it.getValue().getStringValue()
));
}
From 5b7d4024b69c4d33702aa255d5ea94838d413297 Mon Sep 17 00:00:00 2001
From: yswdqz <74546965+yswdqz@users.noreply.github.com>
Date: Tue, 23 Apr 2024 16:40:24 +0800
Subject: [PATCH 15/15] Update changes.md
---
docs/en/changes/changes.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index a4f630c562f0..f89f13647ad7 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -116,6 +116,7 @@
* MQE labeled metrics Binary Operation: return empty value if the labels not match rather than report error.
* Fix inaccurate Hierarchy of RabbitMQ Server monitoring metrics.
* Fix inaccurate MySQL/MariaDB, Redis, PostgreSQL metrics.
+* Replace '.' to '_' at OTEL metrics attributes.
#### UI