This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 8fad0cc8a8 Adding more access log metrics into k8s dashboards (#12018)
8fad0cc8a8 is described below
commit 8fad0cc8a822a3b266e528b30295e1376b956f1d
Author: mrproliu <[email protected]>
AuthorDate: Thu Mar 14 13:52:21 2024 +0000
Adding more access log metrics into k8s dashboards (#12018)
---
docs/en/changes/changes.md | 1 +
.../server-starter/src/main/resources/oal/ebpf.oal | 1 +
.../k8s_service/k8s-service-root.json | 16 +-
.../k8s_service/k8s-service-service.json | 350 +++++++++++++--------
4 files changed, 238 insertions(+), 130 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 379208e42a..bd17f2e32e 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -99,6 +99,7 @@
* Enhance VNode logic and support multiple Trace IDs in span's ref.
* Add the layers filed and associate layers dashboards for the service
topology nodes.
* Fix `Nginx-Instance` metrics to instance level.
+* Update tabs of the Kubernetes service page.
#### Documentation
diff --git a/oap-server/server-starter/src/main/resources/oal/ebpf.oal
b/oap-server/server-starter/src/main/resources/oal/ebpf.oal
index 6d1685807d..ce8d95069d 100644
--- a/oap-server/server-starter/src/main/resources/oal/ebpf.oal
+++ b/oap-server/server-starter/src/main/resources/oal/ebpf.oal
@@ -115,6 +115,7 @@ kubernetes_service_instance_read_netfilter_duration =
from(K8SServiceInstance.re
kubernetes_service_instance_http_call_cpm =
from(K8SServiceInstance.*).filter(detectPoint ==
DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").cpm();
kubernetes_service_instance_http_call_duration =
from(K8SServiceInstance.protocol.http.latency).filter(detectPoint ==
DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").sum();
+kubernetes_service_instance_http_call_success_count =
from(K8SServiceInstance.*).filter(detectPoint ==
DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").filter(protocol.success == true).cpm();
kubernetes_service_instance_http_req_header_size =
from(K8SServiceInstance.protocol.http.sizeOfRequestHeader).filter(detectPoint
== DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").sum();
kubernetes_service_instance_http_req_body_size =
from(K8SServiceInstance.protocol.http.sizeOfRequestBody).filter(detectPoint ==
DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").sum();
kubernetes_service_instance_http_resp_header_size =
from(K8SServiceInstance.protocol.http.sizeOfResponseHeader).filter(detectPoint
== DetectPoint.SERVER).filter(type == "protocol").filter(protocol.type ==
"http").sum();
diff --git
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-root.json
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-root.json
index 2093d99a5b..cc554c0585 100644
---
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-root.json
+++
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-root.json
@@ -47,6 +47,8 @@
"type": "Widget",
"metricMode": "Expression",
"typesOfMQE": [
+ "TIME_SERIES_VALUES",
+ "TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES",
"TIME_SERIES_VALUES"
@@ -54,7 +56,9 @@
"expressions": [
"latest(k8s_service_pod_total)",
"latest(k8s_service_cpu_cores_requests)",
- "latest(k8s_service_cpu_cores_limits)"
+ "latest(k8s_service_cpu_cores_limits)",
+ "latest(kubernetes_service_http_call_cpm)",
+
"latest(kubernetes_service_http_call_success_count/kubernetes_service_http_call_cpm*100)"
],
"graph": {
"type": "ServiceList",
@@ -75,6 +79,14 @@
{
"label": "CPU Limits",
"unit": "m"
+ },
+ {
+ "label": "HTTP Load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "HTTP Success Rate",
+ "unit": "%"
}
]
}
@@ -211,4 +223,4 @@
"path": "/Kubernetes/Service"
}
}
-]
+]
\ No newline at end of file
diff --git
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-service.json
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-service.json
index b6b4ed27d9..ec6ad8b0dd 100644
---
a/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-service.json
+++
b/oap-server/server-starter/src/main/resources/ui-initialized-templates/k8s_service/k8s-service-service.json
@@ -236,106 +236,118 @@
]
},
{
- "name": "eBPF Profiling",
- "children": [
- {
- "x": 0,
- "y": 2,
- "w": 24,
- "h": 47,
- "i": "0",
- "type": "Ebpf"
- },
- {
- "x": 0,
- "y": 0,
- "w": 24,
- "h": 2,
- "i": "2",
- "type": "Text",
- "graph": {
- "fontColor": "theme",
- "backgroundColor": "theme",
- "content": "eBPF Profiling support services written in C,
C++, Golang, and Rust. SkyWalking Rover provides this profiling capability. ",
- "fontSize": 14,
- "textAlign": "left",
- "url":
"https://skywalking.apache.org/docs/skywalking-rover/next/readme/"
- }
- }
- ]
- },
- {
- "name": "Pods",
+ "name": "Topology",
"children": [
{
"x": 0,
"y": 0,
"w": 24,
- "h": 31,
- "i": "1",
- "type": "Widget",
- "graph": {
- "type": "InstanceList",
- "dashboardName": "K8S-Service-Pods",
- "fontSize": 12
- }
- }
- ]
- },
- {
- "name": "Endpoint",
- "children": [
- {
- "x": 0,
- "y": 0,
- "w": 24,
- "h": 49,
+ "h": 41,
"i": "0",
- "type": "Widget",
+ "type": "Topology",
"graph": {
- "type": "EndpointList",
- "dashboardName": "K8S-Endpoint",
- "fontSize": 12,
- "showXAxis": false,
- "showYAxis": false
+ "showDepth": true
},
- "metricConfig": [
+ "metricMode": "Expression",
+ "linkDashboard": "K8S-Service-Relation",
+ "nodeDashboard": [
+
+ ],
+ "linkServerMetrics": [
+
+ ],
+ "linkClientMetrics": [
+
+ ],
+ "nodeMetrics": [
+
+ ],
+ "linkServerExpressions": [
+
"avg(kubernetes_service_relation_server_write_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_duration/kubernetes_service_relation_client_http_call_cpm)/1000000"
+ ],
+ "linkClientExpressions": [
+
"avg(kubernetes_service_relation_client_write_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_duration/kubernetes_service_relation_server_http_call_cpm)/1000000"
+ ],
+ "nodeExpressions": [
+ "avg(kubernetes_service_write_package_size)/60",
+ "avg(kubernetes_service_read_package_size)/60",
+ "avg(kubernetes_service_http_call_cpm)",
+
"avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm)/1000000",
+ "avg(kubernetes_service_http_call_success_count /
kubernetes_service_http_call_cpm*100)"
+ ],
+ "legend": [
+
+ ],
+ "legendMQE": {
+ "expression":
"avg(kubernetes_service_http_call_success_count /
kubernetes_service_http_call_cpm*100) < 95 and
avg(kubernetes_service_http_call_cpm) > 1"
+ },
+ "description": {
+ "healthy": "Healthy",
+ "unhealthy": "HTTP Success Rate < 95% and HTTP Traffic > 1
calls / min"
+ },
+ "linkServerMetricConfig": [
{
- "label": "Load",
- "detailLabel": "load",
- "unit": "calls / min"
+ "label": "Server Write",
+ "unit": "bytes / s"
},
{
- "label": "Success Rate",
- "detailLabel": "success_rate",
- "unit": "%"
+ "label": "Server Read",
+ "unit": "bytes / s"
},
{
- "label": "Latency",
- "detailLabel": "latency",
+ "label": "Server HTTP Load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "Server HTTP Latency",
"unit": "ms"
}
],
- "metricMode": "Expression",
- "expressions": [
- "avg(kubernetes_service_endpoint_call_cpm)",
-
"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)"
- ],
- "subExpressions": [
- "kubernetes_service_endpoint_call_cpm",
-
"kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100",
-
"kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm/1000000"
- ],
- "subTypesOfMQE": [
- "",
- "",
- ""
+ "linkClientMetricConfig": [
+ {
+ "label": "Client Write",
+ "unit": "bytes / s"
+ },
+ {
+ "label": "Client Read",
+ "unit": "bytes / s"
+ },
+ {
+ "label": "Client HTTP Load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "Client HTTP Latency",
+ "unit": "ms"
+ }
],
- "typesOfMQE": [
- "",
- "",
- ""
+ "nodeMetricConfig": [
+ {
+ "label": "Write",
+ "unit": "bytes / s"
+ },
+ {
+ "label": "Read",
+ "unit": "bytes / s"
+ },
+ {
+ "label": "HTTP Load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "HTTP Latency",
+ "unit": "ms"
+ },
+ {
+ "label": "HTTP Success Rate",
+ "unit": "%"
+ }
]
}
]
@@ -1930,6 +1942,131 @@
]
}
]
+ },
+ {
+ "name": "Pods",
+ "children": [
+ {
+ "x": 0,
+ "y": 0,
+ "w": 24,
+ "h": 31,
+ "i": "1",
+ "type": "Widget",
+ "graph": {
+ "type": "InstanceList",
+ "dashboardName": "K8S-Service-Pods",
+ "fontSize": 12
+ },
+ "metricMode": "Expression",
+ "metricConfig": [
+ {
+ "label": "HTTP Load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "HTTP Latency",
+ "unit": "ms"
+ },
+ {
+ "label": "HTTP Success Rate",
+ "unit": "%"
+ }
+ ],
+ "expressions": [
+ "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_success_count/kubernetes_service_instance_http_call_cpm*100)"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Endpoint",
+ "children": [
+ {
+ "x": 0,
+ "y": 0,
+ "w": 24,
+ "h": 49,
+ "i": "0",
+ "type": "Widget",
+ "graph": {
+ "type": "EndpointList",
+ "dashboardName": "K8S-Endpoint",
+ "fontSize": 12,
+ "showXAxis": false,
+ "showYAxis": false
+ },
+ "metricConfig": [
+ {
+ "label": "Load",
+ "detailLabel": "load",
+ "unit": "calls / min"
+ },
+ {
+ "label": "Success Rate",
+ "detailLabel": "success_rate",
+ "unit": "%"
+ },
+ {
+ "label": "Latency",
+ "detailLabel": "latency",
+ "unit": "ms"
+ }
+ ],
+ "metricMode": "Expression",
+ "expressions": [
+ "avg(kubernetes_service_endpoint_call_cpm)",
+
"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)"
+ ],
+ "subExpressions": [
+ "kubernetes_service_endpoint_call_cpm",
+
"kubernetes_service_endpoint_call_success_cpm/kubernetes_service_endpoint_call_cpm*100",
+
"kubernetes_service_endpoint_call_duration/kubernetes_service_endpoint_call_cpm/1000000"
+ ],
+ "subTypesOfMQE": [
+ "",
+ "",
+ ""
+ ],
+ "typesOfMQE": [
+ "",
+ "",
+ ""
+ ]
+ }
+ ]
+ },
+ {
+ "name": "eBPF Profiling",
+ "children": [
+ {
+ "x": 0,
+ "y": 2,
+ "w": 24,
+ "h": 47,
+ "i": "0",
+ "type": "Ebpf"
+ },
+ {
+ "x": 0,
+ "y": 0,
+ "w": 24,
+ "h": 2,
+ "i": "2",
+ "type": "Text",
+ "graph": {
+ "fontColor": "theme",
+ "backgroundColor": "theme",
+ "content": "eBPF Profiling support services written in C,
C++, Golang, and Rust. SkyWalking Rover provides this profiling capability. ",
+ "fontSize": 14,
+ "textAlign": "left",
+ "url":
"https://skywalking.apache.org/docs/skywalking-rover/next/readme/"
+ }
+ }
+ ]
}
]
}
@@ -1937,50 +2074,7 @@
"layer": "K8S_SERVICE",
"entity": "Service",
"name": "K8S-Service-Service",
- "isDefault": true,
- "expressions": [
- "latest(k8s_service_pod_total)",
- "latest(k8s_service_cpu_cores_requests)",
- "latest(k8s_service_cpu_cores_limits)",
- "avg(kubernetes_service_write_package_size)/60",
- "avg(kubernetes_service_read_package_size)/60",
- "avg(kubernetes_service_http_call_cpm)",
-
"avg(kubernetes_service_http_call_duration/kubernetes_service_http_call_cpm/1000000)",
- "avg(kubernetes_service_http_call_success_count /
kubernetes_service_http_call_cpm*100)"
- ],
- "expressionsConfig": [
- {
- "label": "Pod Total"
- },
- {
- "unit": "m",
- "label": "CPU Requests"
- },
- {
- "unit": "m",
- "label": "CPU Limits"
- },
- {
- "unit": "bytes / s",
- "label": "Write"
- },
- {
- "unit": "bytes / s",
- "label": "Read"
- },
- {
- "label": "HTTP Load",
- "unit": "calls / min"
- },
- {
- "label": "HTTP Latency",
- "unit": "ms"
- },
- {
- "label": "HTTP Success Rate",
- "unit": "%"
- }
- ]
+ "id": "K8S-Service-Service"
}
}
-]
+]
\ No newline at end of file