Convert Kubernetes HTTP latency related metrics unit from ns to ms (#12436)

This commit is contained in:
mrproliu 2024-07-13 22:34:48 +08:00 committed by GitHub
parent 61b4674c16
commit 5a7c53b1b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 34 additions and 29 deletions

View File

@ -32,6 +32,7 @@
* Support tracing logs query for debugging. * Support tracing logs query for debugging.
* BanyanDB: fix Tag autocomplete data storage and query. * BanyanDB: fix Tag autocomplete data storage and query.
* Support aggregation operators in PromQL query. * Support aggregation operators in PromQL query.
* Update the kubernetes HTTP latency related metrics source unit from `ns` to `ms`.
#### UI #### UI
* Highlight search log keywords. * Highlight search log keywords.

View File

@ -87,9 +87,9 @@ Based on each transfer data analysis, extract the information of the 7-layer net
#### HTTP/1.x or HTTP/2.x #### HTTP/1.x or HTTP/2.x
| Name | Init | Description | | Name | Init | Description |
|----------------------|-------------|--------------------------------------------------| |----------------------|--------------|--------------------------------------------------|
| Call CPM | Count | HTTP Request calls per minutes. | | Call CPM | Count | HTTP Request calls per minutes. |
| Duration | Nanoseconds | Total HTTP Response use duration. | | Duration | Milliseconds | Total HTTP Response use duration. |
| Success CPM | Count | Total HTTP Response success(status < 500) count. | | Success CPM | Count | Total HTTP Response success(status < 500) count. |
| Request Header Size | Bytes | Total Request Header size. | | Request Header Size | Bytes | Total Request Header size. |
| Request Body Size | Bytes | Total Request Body size. | | Request Body Size | Bytes | Total Request Body size. |

View File

@ -300,7 +300,8 @@ public class AccessLogServiceHandler extends EBPFAccessLogServiceGrpc.EBPFAccess
protocol.setHttp(new K8SMetrics.ProtocolHTTP()); protocol.setHttp(new K8SMetrics.ProtocolHTTP());
protocol.setSuccess(success); protocol.setSuccess(success);
protocol.getHttp().setLatency(getDurationFromTimestamp(node, http.getStartTime(), http.getEndTime())); duration = convertNsToMs(getDurationFromTimestamp(node, http.getStartTime(), http.getEndTime()));
protocol.getHttp().setLatency(duration);
protocol.getHttp().setUrl(http.getRequest().getPath()); protocol.getHttp().setUrl(http.getRequest().getPath());
protocol.getHttp().setMethod(http.getRequest().getMethod().name()); protocol.getHttp().setMethod(http.getRequest().getMethod().name());
protocol.getHttp().setStatusCode(http.getResponse().getStatusCode()); protocol.getHttp().setStatusCode(http.getResponse().getStatusCode());
@ -308,7 +309,6 @@ public class AccessLogServiceHandler extends EBPFAccessLogServiceGrpc.EBPFAccess
protocol.getHttp().setSizeOfRequestBody(http.getRequest().getSizeOfBodyBytes()); protocol.getHttp().setSizeOfRequestBody(http.getRequest().getSizeOfBodyBytes());
protocol.getHttp().setSizeOfResponseHeader(http.getResponse().getSizeOfHeadersBytes()); protocol.getHttp().setSizeOfResponseHeader(http.getResponse().getSizeOfHeadersBytes());
protocol.getHttp().setSizeOfResponseBody(http.getResponse().getSizeOfBodyBytes()); protocol.getHttp().setSizeOfResponseBody(http.getResponse().getSizeOfBodyBytes());
duration = protocol.getHttp().getLatency();
break; break;
} }
@ -716,4 +716,8 @@ public class AccessLogServiceHandler extends EBPFAccessLogServiceGrpc.EBPFAccess
count.incrementAndGet(); count.incrementAndGet();
} }
} }
protected long convertNsToMs(long latency) {
return TimeUnit.NANOSECONDS.toMillis(latency);
}
} }

View File

@ -64,7 +64,7 @@
"i": "1", "i": "1",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_endpoint_http_call_duration/kubernetes_service_endpoint_http_call_cpm/1000000" "kubernetes_service_endpoint_http_call_duration/kubernetes_service_endpoint_http_call_cpm"
], ],
"metricConfig": [ "metricConfig": [
{ {

View File

@ -3286,7 +3286,7 @@
"i": "1", "i": "1",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_instance_relation_client_http_call_duration/kubernetes_service_instance_relation_client_http_call_cpm/1000000" "kubernetes_service_instance_relation_client_http_call_duration/kubernetes_service_instance_relation_client_http_call_cpm"
], ],
"graph": { "graph": {
"type": "Line", "type": "Line",
@ -3400,7 +3400,7 @@
"i": "3", "i": "3",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_instance_relation_server_http_call_duration/kubernetes_service_instance_relation_server_http_call_cpm/1000000" "kubernetes_service_instance_relation_server_http_call_duration/kubernetes_service_instance_relation_server_http_call_cpm"
], ],
"graph": { "graph": {
"type": "Line", "type": "Line",

View File

@ -3286,7 +3286,7 @@
"i": "1", "i": "1",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_client_http_call_cpm/1000000" "kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_client_http_call_cpm"
], ],
"graph": { "graph": {
"type": "Line", "type": "Line",
@ -3400,7 +3400,7 @@
"i": "3", "i": "3",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_server_http_call_cpm/1000000" "kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_server_http_call_cpm"
], ],
"graph": { "graph": {
"type": "Line", "type": "Line",

View File

@ -1336,7 +1336,7 @@
"i": "1", "i": "1",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm/1000000" "kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm"
], ],
"metricConfig": [ "metricConfig": [
{ {
@ -1533,7 +1533,7 @@
"avg(kubernetes_service_instance_write_package_size)/60", "avg(kubernetes_service_instance_write_package_size)/60",
"avg(kubernetes_service_instance_read_package_size)/60", "avg(kubernetes_service_instance_read_package_size)/60",
"avg(kubernetes_service_instance_http_call_cpm)", "avg(kubernetes_service_instance_http_call_cpm)",
"avg(kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm/1000000)", "avg(kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm)",
"avg(kubernetes_service_instance_http_call_success_count / kubernetes_service_instance_http_call_cpm*100)" "avg(kubernetes_service_instance_http_call_success_count / kubernetes_service_instance_http_call_cpm*100)"
], ],
"expressionsConfig": [ "expressionsConfig": [

View File

@ -104,19 +104,19 @@
"avg(kubernetes_service_relation_server_write_package_size)/60", "avg(kubernetes_service_relation_server_write_package_size)/60",
"avg(kubernetes_service_relation_server_read_package_size)/60", "avg(kubernetes_service_relation_server_read_package_size)/60",
"avg(kubernetes_service_relation_client_http_call_cpm)/60", "avg(kubernetes_service_relation_client_http_call_cpm)/60",
"avg(kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_client_http_call_cpm)/1000000" "avg(kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_client_http_call_cpm)"
], ],
"linkClientExpressions": [ "linkClientExpressions": [
"avg(kubernetes_service_relation_client_write_package_size)/60", "avg(kubernetes_service_relation_client_write_package_size)/60",
"avg(kubernetes_service_relation_client_read_package_size)/60", "avg(kubernetes_service_relation_client_read_package_size)/60",
"avg(kubernetes_service_relation_server_http_call_cpm)/60", "avg(kubernetes_service_relation_server_http_call_cpm)/60",
"avg(kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_server_http_call_cpm)/1000000" "avg(kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_server_http_call_cpm)"
], ],
"nodeExpressions": [ "nodeExpressions": [
"avg(kubernetes_service_write_package_size)/60", "avg(kubernetes_service_write_package_size)/60",
"avg(kubernetes_service_read_package_size)/60", "avg(kubernetes_service_read_package_size)/60",
"avg(kubernetes_service_http_call_cpm)", "avg(kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)/1000000", "avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)" "avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)"
], ],
"legendMQE": { "legendMQE": {

View File

@ -220,19 +220,19 @@
"avg(kubernetes_service_relation_server_write_package_size)/60", "avg(kubernetes_service_relation_server_write_package_size)/60",
"avg(kubernetes_service_relation_server_read_package_size)/60", "avg(kubernetes_service_relation_server_read_package_size)/60",
"avg(kubernetes_service_relation_server_http_call_cpm)/60", "avg(kubernetes_service_relation_server_http_call_cpm)/60",
"avg(kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_client_http_call_cpm)/1000000" "avg(kubernetes_service_relation_server_http_call_duration/kubernetes_service_relation_client_http_call_cpm)"
], ],
"linkClientExpressions": [ "linkClientExpressions": [
"avg(kubernetes_service_relation_client_write_package_size)/60", "avg(kubernetes_service_relation_client_write_package_size)/60",
"avg(kubernetes_service_relation_client_read_package_size)/60", "avg(kubernetes_service_relation_client_read_package_size)/60",
"avg(kubernetes_service_relation_client_http_call_cpm)/60", "avg(kubernetes_service_relation_client_http_call_cpm)/60",
"avg(kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_server_http_call_cpm)/1000000" "avg(kubernetes_service_relation_client_http_call_duration/kubernetes_service_relation_server_http_call_cpm)"
], ],
"nodeExpressions": [ "nodeExpressions": [
"avg(kubernetes_service_write_package_size)/60", "avg(kubernetes_service_write_package_size)/60",
"avg(kubernetes_service_read_package_size)/60", "avg(kubernetes_service_read_package_size)/60",
"avg(kubernetes_service_http_call_cpm)", "avg(kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)/1000000", "avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)" "avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)"
], ],
"legendMQE": { "legendMQE": {
@ -1601,7 +1601,7 @@
"i": "1", "i": "1",
"type": "Widget", "type": "Widget",
"expressions": [ "expressions": [
"kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm/1000000" "kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm"
], ],
"metricConfig": [ "metricConfig": [
{ {
@ -1818,7 +1818,7 @@
], ],
"expressions": [ "expressions": [
"latest(kubernetes_service_instance_http_call_cpm)", "latest(kubernetes_service_instance_http_call_cpm)",
"latest(kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm)/1000000", "latest(kubernetes_service_instance_http_call_duration/kubernetes_service_instance_http_call_cpm)",
"latest(kubernetes_service_instance_http_call_success_count/kubernetes_service_instance_http_call_cpm*100)" "latest(kubernetes_service_instance_http_call_success_count/kubernetes_service_instance_http_call_cpm*100)"
] ]
} }
@ -1861,12 +1861,12 @@
"expressions": [ "expressions": [
"avg(kubernetes_service_endpoint_call_cpm)", "avg(kubernetes_service_endpoint_call_cpm)",
"avg(kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100)", "avg(kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100)",
"avg(kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm/1000000)" "avg(kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm)"
], ],
"subExpressions": [ "subExpressions": [
"kubernetes_service_endpoint_call_cpm", "kubernetes_service_endpoint_call_cpm",
"kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100", "kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100",
"kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm/1000000" "kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm"
] ]
} }
] ]
@ -1915,7 +1915,7 @@
"avg(kubernetes_service_write_package_size)/60", "avg(kubernetes_service_write_package_size)/60",
"avg(kubernetes_service_read_package_size)/60", "avg(kubernetes_service_read_package_size)/60",
"avg(kubernetes_service_http_call_cpm)", "avg(kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm/1000000)", "avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)",
"avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)" "avg(kubernetes_service_http_call_success_count / kubernetes_service_http_call_cpm*100)"
], ],
"expressionsConfig": [ "expressionsConfig": [