diff --git a/NEZHA/alert-rule.json b/NEZHA/alert-rule.json
new file mode 100644
index 0000000..d7b1671
--- /dev/null
+++ b/NEZHA/alert-rule.json
@@ -0,0 +1,362 @@
+[
+ {
+ "Name":"TSG-X_firewall_container_status",
+ "Type":"1",
+ "Evaluation interval ":"0",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_pod_container_status_running{project=\"TSG-X\",container=\"firewall\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"!=\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Container firewall status is not running.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":"
"
+ },
+ {
+ "Name":"TSG-X_proxy_container_status",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_pod_container_status_running{project=\"TSG-X\",container=\"proxy\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"!=\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Container proxy status is not running.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_certstore_container_status",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_pod_container_status_running{project=\"TSG-X\",container=\"certstore\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"!=\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Container certstore process != 1.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_cert_redis_container_status",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_pod_container_status_running{project=\"TSG-X\",container=\"cert-redis\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"!=\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Container cert-redis status is not running.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_telegraf_container_status",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_pod_container_status_running{project=\"TSG-X\",container=\"telegraf\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"!=\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Container telegraf status is not running.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_traffic_steering_too_high",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"irate(phy_rx_bits_total{project=\"TSG-X\",dev!~\"virtio_dign_(.*)\"}[1m])\n",
+ "Condition":"[{\"id\":2,\"weight\":1,\"operator\":\">=\",\"value\":\"160000000000\"}]",
+ "Extension Label":"",
+ "Unit":"bits/sec",
+ "Duration (s)":"60",
+ "Summary":"Physical trafific steering to high.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_packet_io_rx_missed",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"irate(phy_rx_missed_total{project=\"TSG-X\",dev!~\"virtio_dign_(.*)\"}[1m])",
+ "Condition":"[{\"id\":2,\"weight\":1,\"operator\":\">\",\"value\":\"0.0\"}]",
+ "Extension Label":"",
+ "Unit":"packets/sec",
+ "Duration (s)":"60",
+ "Summary":"Packet drops by NIC cards.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_packet_io_rx_error",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"irate(phy_rx_error_total{project=\"TSG-X\",dev!~\"virtio_dign_(.*)\"}[1m])",
+ "Condition":"[{\"id\":2,\"weight\":1,\"operator\":\">\",\"value\":\"0.0\"}]",
+ "Extension Label":"",
+ "Unit":"packets/sec",
+ "Duration (s)":"60",
+ "Summary":"Packet drops by CRC errors.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_physical_component_too_hot",
+ "Type":"1",
+ "Evaluation interval ":"0",
+ "Timeout(s)":"300",
+ "Expression/OID":"node_hwmon_temp_celsius{project=\"TSG-X\"}",
+ "Condition":"[{\"id\":3,\"weight\":1,\"operator\":\">\",\"value\":\"75.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Host physical component too hot (instance {{ $labels.instance }})",
+ "Description":"Physical hardware component too hot\nVALUE = {{ $value }}\nLABELS: {{ $labels }}",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_node_memory_pressure",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_node_status_condition{condition=\"MemoryPressure\",status=\"true\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"==\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Node memory pressure (instance {{ $labels.instance }})",
+ "Description":"{{ $labels.node }} has MemoryPressure condition\\n VALUE = {{ $value }}\\n LABELS = {{ $labels }}",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_node_disk_pressure",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"kube_node_status_condition{condition=\"DiskPressure\",status=\"true\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\"==\",\"value\":\"1.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Node disk pressure (instance {{ $labels.instance }})",
+ "Description":"{{ $labels.node }} has DiskPressure condition\\n VALUE = {{ $value }}\\n LABELS = {{ $labels }}",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_host_high_cpu_load",
+ "Type":"1",
+ "Evaluation interval ":"0",
+ "Timeout(s)":"300",
+ "Expression/OID":"100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) * 100) > 80",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\">\",\"value\":\"80.0\"}]",
+ "Extension Label":"",
+ "Unit":"percent(0-100)",
+ "Duration (s)":"60",
+ "Summary":"Host high CPU load (instance {{ $labels.instance }})",
+ "Description":"CPU load is > 80%\\n VALUE = {{ $value }}\\n LABELS = {{ $labels }}",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_packet_io_rxdrop",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"irate(rx_drops_total{project=\"TSG-X\"}[1m])",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\">\",\"value\":\"0.0\"}]",
+ "Extension Label":"",
+ "Unit":"packets/sec",
+ "Duration (s)":"60",
+ "Summary":"Packet drops by application for the poor performance.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_packet_tx_missed",
+ "Type":"1",
+ "Evaluation interval ":"60",
+ "Timeout(s)":"300",
+ "Expression/OID":"phy_tx_error_total{project=\"TSG-X\"}",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\">\",\"value\":\"0.0\"}]",
+ "Extension Label":"",
+ "Unit":"packets/sec",
+ "Duration (s)":"60",
+ "Summary":"Packet I/O TX missed.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ },
+ {
+ "Name":"TSG-X_packet_io_tx_drops",
+ "Type":"1",
+ "Evaluation interval ":"0",
+ "Timeout(s)":"300",
+ "Expression/OID":"irate(tx_drops_total{project=\"TSG-X\"}[1m]) + irate(ftx_missed_total{project=\"TSG-X\"}[1m])",
+ "Condition":"[{\"id\":1,\"weight\":1,\"operator\":\">\",\"value\":\"0.0\"}]",
+ "Extension Label":"",
+ "Unit":"short",
+ "Duration (s)":"60",
+ "Summary":"Packet TX Drops by applicaton poor performance.",
+ "Description":"",
+ "Receiver":"",
+ "Notices":"",
+ "State":"1",
+ "Automatic expired":"1",
+ "Schedule":"0",
+ "Effective times":"",
+ "Start time":"00:00",
+ "End time":"23:59",
+ "Active notification":"0",
+ "Expired notification":"0",
+ "Trouble shooting":""
+ }
+]
\ No newline at end of file
diff --git a/NEZHA/asset-chart.json b/NEZHA/asset-chart.json
new file mode 100644
index 0000000..305650f
--- /dev/null
+++ b/NEZHA/asset-chart.json
@@ -0,0 +1,2234 @@
+[
+ {
+ "name":"TSG-X",
+ "type":"template",
+ "varType":1,
+ "param":{
+ "chartShare":"none",
+ "variables":[
+ {
+ "regex":"^tsg-traffic-engine-(.*)",
+ "expression":"label_values(function)",
+ "show":true,
+ "name":"service_function",
+ "allOption":false,
+ "type":"query",
+ "multi":false
+ }
+ ],
+ "report":{
+ "schedule":{
+ "repeat":1,
+ "etime":"",
+ "stime":"",
+ "type":2,
+ "nums":[]
+ },
+ "receivers":[],
+ "enable":false,
+ "range":{
+ "unit":"day",
+ "interval":1,
+ "type":"previous"
+ }
+ }
+ },
+ "remark":"",
+ "charts":[
+ {
+ "name":"TSG-X-SERVICE-FUNCTION",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":0,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"1.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"CPU",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":1,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#3ee0d8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(container_cpu_usage_seconds_total{ asset=\"{{asset.name}}\",function=\"$service_function\",container=~\"firewall|proxy\"}[2m])) by(container)",
+ "state":1,
+ "legend":"{{container}}",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Memory",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bytes",
+ "weight":2,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#b52247"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(container_memory_working_set_bytes{asset=\"{{asset.name}}\",function=\"$service_function\",container=~\"firewall|proxy\"} ) by (container)",
+ "state":1,
+ "legend":"{{container}}",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Traffic (Drop)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"packets/sec",
+ "weight":3,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#860ed1"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"irate(rx_drops_total{ asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\", function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"firewall(rx)",
+ "name":"A"
+ },
+ {
+ "expression":"irate(tx_drops_total{asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\", function=\"$service_function\"}[1m])+ irate(ftx_missed_total{asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\", function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"firewall(tx)",
+ "name":"B"
+ },
+ {
+ "expression":"irate(container_network_receive_packets_dropped_total{asset=\"{{asset.name}}\",function=\"$service_function\",interface=\"tap0\"}[1m])",
+ "state":1,
+ "legend":"proxy(rx)",
+ "name":"C"
+ },
+ {
+ "expression":"irate(container_network_transmit_packets_dropped_total{asset=\"{{asset.name}}\",function=\"$service_function\",interface=\"tap0\"}[1m])",
+ "state":1,
+ "legend":"proxy(tx)",
+ "name":"D"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Traffic (Rx)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":4,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#eeeeeeff"
+ }
+ ],
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"irate(rx_bits_total{ asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\", function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"firewall",
+ "name":"A"
+ },
+ {
+ "expression":"irate(container_network_receive_bytes_total{asset=\"{{asset.name}}\",function=\"$service_function\",interface=\"tap0\"}[1m])*8",
+ "state":1,
+ "legend":"proxy",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Traffic (Tx)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":5,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#eeeeeeff"
+ }
+ ],
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"irate(ftx_bits_total{asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\", function=\"$service_function\"}[1m])+irate(tx_total_len{asset=\"{{asset.name}}\", service=\"mrzcpd-exporter\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"firewall",
+ "name":"B"
+ },
+ {
+ "expression":"irate(container_network_transmit_bytes_total{asset=\"{{asset.name}}\",function=\"$service_function\",interface=\"tap0\"}[1m])*8",
+ "state":1,
+ "legend":"proxy",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ },
+ {
+ "name":"TSG-X-FIREWALL",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":7,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"5.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"Connections/s (Open/Close)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"packets/sec",
+ "weight":8,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#5edb87"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"irate(sapp_Tcp_Link_New{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"open",
+ "name":"A"
+ },
+ {
+ "expression":"irate(sapp_Tcp_Link_Del{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"close",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":9,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#f21ae3"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"Number of intercept hit connections per second, including the following:\nReady to intercept(total): the number of connections per second when hit security \npolicy intercept action;\nReady to intercept(duplicate traffic): the number of connections per second",
+ "x":"6.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"irate(fs2_kni_intcp_rdy_stm{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Ready to intercept (Total)",
+ "name":"A"
+ },
+ {
+ "expression":"irate(fs2_kni_dup_tfc_stm{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Ready to intercept (Duplicate Traffic)",
+ "name":"B"
+ },
+ {
+ "expression":"irate(fs2_kni_intcp_stm{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Intercepted",
+ "name":"C"
+ },
+ {
+ "expression":"irate(fs2_kni_byp_intcp_err{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Intercept Failed",
+ "name":"D"
+ },
+ {
+ "expression":"irate(fs2_kni_dy_pass_stm{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Dynamic Bypass (Offload)",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept Failed",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":10,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#356bc4"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"The number of connections per second that the blade failed to intercept for different \nreasons is as follows:\nAsymmetric traffic-asymmetric traffic, unsupported tunnel – unsupported tunnel \ntype,\nduplicated traffic - duplicated traffic,\nno available L7 mod",
+ "x":"9.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"irate(fs2_kni_e_asym_route{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"asymetric traffic",
+ "name":"A"
+ },
+ {
+ "expression":"irate(fs2_kni_e_type_tun{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"unsupported tunnel",
+ "name":"B"
+ },
+ {
+ "expression":"irate(fs2_kni_e_exc_mtu{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"packet oversize",
+ "name":"C"
+ },
+ {
+ "expression":"irate(fs2_kni_dy_pass_stm{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"dynamic bypass (offload)",
+ "name":"D"
+ },
+ {
+ "expression":"irate(fs2_kni_e_lkmd_not_syn{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$function\"}[1m])",
+ "state":1,
+ "legend":"no SYN",
+ "name":"E"
+ },
+ {
+ "expression":"irate(fs2_kni_e_no_s_a{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"no SYN/ACK",
+ "name":"F"
+ },
+ {
+ "expression":"irate(fs2_kni_e_ip_hdr{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$function\"}[1m])",
+ "state":1,
+ "legend":"packet invalid",
+ "name":"G"
+ },
+ {
+ "expression":"irate(fs2_kni_e_no_tfe{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"no available L7 modules",
+ "name":"H"
+ },
+ {
+ "expression":"irate(fs2_kni_e_lkmd_get{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m]) + irate(fs2_kni_e_tfe_tx{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m]) + irate(fs2_kni_e_cmsg_add{asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m]) + irate(fs2_kni_e_tuntype_get{ asset=\"{{asset.name}}\", app_name=\"fs2_kni\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"internal error",
+ "name":"I"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Logs",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":11,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#d25ae8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Number of logs per second sent by the blade to OLMP",
+ "x":"3.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"irate(tsg_master_success_log{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"success",
+ "name":"A"
+ },
+ {
+ "expression":"irate(tsg_master_drop_log{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])+irate(tsg_master_failed_log{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"drop",
+ "name":"B"
+ },
+ {
+ "expression":"irate(tsg_master_abort_allow{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])+irate(tsg_master_abort_deny{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])+irate(tsg_master_abort_monitor{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])+irate(tsg_master_abort_intercept{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])+irate(tsg_master_abort_unknown{asset=\"{{asset.name}}\", app_name=\"tsg_master\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"abort",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Throughtput (by Protocol)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":12,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#e82741"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"The traffic volume of the different protocols handled by the blade.",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"irate(sapp_Ipv4_Bit{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"IPv4",
+ "name":"A"
+ },
+ {
+ "expression":"irate(sapp_Ipv6_Bit{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"IPv6",
+ "name":"B"
+ },
+ {
+ "expression":"irate(sapp_Udp_Bit{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"UDP",
+ "name":"C"
+ },
+ {
+ "expression":"irate(sapp_Unknown_Bit{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"Unknown",
+ "name":"D"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Overload Protection",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"packets/sec",
+ "weight":13,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#760fc4"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"The number of connections per second that bypassed by the firewall for DDOS \nprotection.",
+ "x":"0.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"sum(irate(sapp_Tcp_Bypass_STM{app_name=\"sapp\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"TCP",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(sapp_Udp_Bypass_STM{app_name=\"sapp\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"UDP",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Policy Hits (Action)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":14,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#0ef99b"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"Number of connections for each action of the blade no hit/hit security policy",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"irate(statistic_default_conn_num{ asset=\"{{asset.name}}\", app_name=\"statistic\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"default",
+ "name":"A"
+ },
+ {
+ "expression":"irate(statistic_allow_conn_num{ asset=\"{{asset.name}}\", app_name=\"statistic\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"allow",
+ "name":"B"
+ },
+ {
+ "expression":"irate(statistic_monitor_conn_num{ asset=\"{{asset.name}}\", app_name=\"statistic\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"monitor",
+ "name":"C"
+ },
+ {
+ "expression":"irate(statistic_deny_conn_num{ asset=\"{{asset.name}}\", app_name=\"statistic\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"deny",
+ "name":"D"
+ },
+ {
+ "expression":"irate(statistic_intercept_conn_num{ asset=\"{{asset.name}}\", app_name=\"statistic\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"intercept",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Duplicated Traffic",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"packets/sec",
+ "weight":15,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#51b215"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"sum(irate(sapp_Dup_Tcp_Pkt{app_name=\"sapp\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"TCP",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(sapp_Dup_Udp_Pkt{app_name=\"sapp\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"UDP",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections/s (by Direction)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":16,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#6323a3"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"The number of connections/second of asymmetric/symmetric traffic in different \ndirections handled by blade",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"irate(sapp_Tcp_Link_Double{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"C<=>S",
+ "name":"A"
+ },
+ {
+ "expression":"irate(sapp_Tcp_Link_C2S{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"only C=>S",
+ "name":"B"
+ },
+ {
+ "expression":"irate(sapp_Tcp_Link_S2C{asset=\"{{asset.name}}\",function=\"$service_function\"}[1m])",
+ "state":1,
+ "legend":"only S=>C",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections (Concurrent)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":17,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#faffa8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"The number of concurrent connections at the current moment in the blade",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sapp_Tcp_Concurrent{asset=\"{{asset.name}}\",function=\"$service_function\"}",
+ "state":1,
+ "legend":"concurrent",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ },
+ {
+ "name":"TSG-X-PROXY",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":18,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"6.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"SSL Stream (New/Close)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":19,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#672aa8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_ussl_new{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"upStreamNew",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_ussl_clsd{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"upStreamClose",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_dssl_new{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"downStreamNew",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(tfe3a_dssl_clsd{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"downStreamClose",
+ "name":"D"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"SSL Stream (Error)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":20,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#bf03bf"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"SSL errors per second for proxy and upstream",
+ "x":"3.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_ussl_e_ciph{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"ErrorCipher",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_ussl_e_prt{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"ErrorProtocol",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_dssl_e_cert{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"ErrorCert",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections/s (Bypass/Intercept)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":21,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#47efdc"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Bypass success/ intercept success connections per second",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_stm_byp{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Bypass Success",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_stm_incpt{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Intercept Success",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Dynamic Bypass (Reason)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":22,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#c4174b"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"The current chart is used to calculate the traffic \ncharacteristics of SSL in proxy,with these \ncharacteristics traffic could be \ndynamic bypass (need to configure the decryption \nprofile)",
+ "x":"0.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_ssl_ct_crt{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"CT Cert",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_ssl_ev_crt{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"EV Cert",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_ssl_mauth{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Mauth Auth",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(tfe3a_ssl_pinning{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Pinning",
+ "name":"D"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections (SSL/Plain)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":23,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#d30015"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"New HTTPS/HTTP created per second",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_ssl{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"SSL",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_plain{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"plain",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Keyring Cache Num",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":24,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#f082ff"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Average number of faked server certificates cached by ADC devices",
+ "x":"6.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"avg(tfe3a_kyr_cache{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"})",
+ "state":1,
+ "legend":"Num",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Keyring Cache Hit Ratio",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":25,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#1e49b5"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"The hit ratio of a faked server certificate cached by proxy device",
+ "x":"9.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"(sum(tfe3a_kyr_ask{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"})-sum(tfe3a_kyr_new{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}))/sum(tfe3a_kyr_ask{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"})",
+ "state":1,
+ "legend":"Rate",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Proxy Policy Hit (Action)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":26,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#fcbdd9"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Logs hit when there are different actions in proxy policies",
+ "x":"3.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_log_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Proxy Logs",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_mon_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Monitor",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_deny_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Deny",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_rdirt_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Redirect",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_repl_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Replace",
+ "name":"E"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_hijk_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Hijack",
+ "name":"F"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_ins_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Insert",
+ "name":"G"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_allow_num{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Allow",
+ "name":"H"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Handshake Event",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":27,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#0f6de0"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"Abnormal of proxy SSL handshake at various stages",
+ "x":"6.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(FP_futures{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"FP_futures",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(FP_ssl_up_fail{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"SSL Up Fail",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(FP_peek_sni_fail{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Peek SNI Fail",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(FP_ssl_down_fail{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"SSL Down Fail",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(FP_ask_kyr_fail{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Ask Keyring Fail",
+ "name":"E"
+ },
+ {
+ "expression":"sum(irate(FP_crt_store_fail{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"Cert Store Fail",
+ "name":"F"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections (Concurrent)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":28,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ffc6e8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Number of concurrent connections per second",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(tfe3a_stm_open{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"})-sum(tfe3a_stm_cls{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"})",
+ "state":1,
+ "legend":"concurrent",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Handshake Latency",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"milliseconds",
+ "weight":29,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#e83c92"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Proxy SSL handshake latency (including upstream SSL handshake + downstream SSL handshake)",
+ "x":"9.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"avg(FP_ssl_up_ms{app_name=\"FP\",asset=\"{{asset.name}}\",function=\"$service_function\"}) by (quantile)",
+ "state":1,
+ "legend":"{{quantile}}",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections/s (Open/Close)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"packets/sec",
+ "weight":30,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ffc6e8"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Number of concurrent connections per second",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_stm_open{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"open",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_stm_cls{app_name=\"tfe3a\",asset=\"{{asset.name}}\",function=\"$service_function\"}[1m]))",
+ "state":1,
+ "legend":"close",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ },
+ {
+ "name":"TSG-X-NODE",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":31,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"6.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"Memory",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0-100)",
+ "weight":32,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#5deaf7"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Calculate memory usage of the blade",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"(1 - (node_memory_MemAvailable_bytes{ asset=\"{{asset.name}}\"} / (node_memory_MemTotal_bytes{ asset=\"{{asset.name}}\"})))* 100",
+ "state":1,
+ "legend":"usage",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Disk",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":33,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#5348c9"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Calculate disk usage of the blade",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"1-(node_filesystem_free_bytes{ asset=\"{{asset.name}}\", mountpoint=\"/\"}) / node_filesystem_size_bytes{ asset=\"{{asset.name}}\", mountpoint=\"/\"}",
+ "state":1,
+ "legend":"sys",
+ "name":"A"
+ },
+ {
+ "expression":"1-(node_filesystem_free_bytes{ asset=\"{{asset.name}}\", mountpoint=\"/data\"}) / node_filesystem_size_bytes{ asset=\"{{asset.name}}\", mountpoint=\"/data\"}",
+ "state":1,
+ "legend":"data",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"CPU",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":34,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#51e886"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Calculate CPU usage of the blade",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"1 - avg(irate(node_cpu_seconds_total{ asset=\"{{asset.name}}\", mode=\"idle\"}[1m]))",
+ "state":1,
+ "legend":"usage",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"PSI",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":35,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#e02f9c"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Pressure Stall Information (PSI)",
+ "x":"6.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"rate(node_pressure_cpu_waiting_seconds_total{ asset=\"{{asset.name}}\"}[1m])*1000",
+ "state":1,
+ "legend":"cpu-waiting",
+ "name":"A"
+ },
+ {
+ "expression":"rate(node_pressure_io_stalled_seconds_total{ asset=\"{{asset.name}}\"}[1m])*1000",
+ "state":1,
+ "legend":"io-stalled",
+ "name":"B"
+ },
+ {
+ "expression":"rate(node_pressure_io_waiting_seconds_total{ asset=\"{{asset.name}}\"}[1m])*1000",
+ "state":1,
+ "legend":"io-waiting",
+ "name":"C"
+ },
+ {
+ "expression":"rate(node_pressure_memory_stalled_seconds_total{ asset=\"{{asset.name}}\"}[1m])*1000",
+ "state":1,
+ "legend":"memory-stalled",
+ "name":"D"
+ },
+ {
+ "expression":"rate(node_pressure_memory_waiting_seconds_total{ asset=\"{{asset.name}}\"}[1m])*1000",
+ "state":1,
+ "legend":"memory-waiting",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Temperature",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":36,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#771bad"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"Calculate temperature of the blade",
+ "x":"9.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"max(node_hwmon_temp_celsius{ asset=\"{{asset.name}}\",chip=\"platform_coretemp_0\"})",
+ "state":1,
+ "legend":"platform0",
+ "name":"A"
+ },
+ {
+ "expression":"max(node_hwmon_temp_celsius{ asset=\"{{asset.name}}\",chip=\"platform_coretemp_1\"})",
+ "state":1,
+ "legend":"platform1",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Interface (Drop/Error)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":37,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#860ed1"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(phy_rx_missed_total{ asset=\"{{asset.name}}\",dev!~\"virtio_dign_(.*)\"}[1m])) by (dev)",
+ "state":1,
+ "legend":"RxMissed ({{dev}})",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(phy_rx_error_total{ asset=\"{{asset.name}}\",dev!~\"virtio_dign_(.*)\"}[1m])) by(dev)",
+ "state":1,
+ "legend":"RxErrors ({{dev}})",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Interface (Tx)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":38,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#1ace1a"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(phy_tx_bits_total{asset=\"{{asset.name}}\",dev!~\"virtio_dign_(.*)\"}[1m])) by (dev)",
+ "state":1,
+ "legend":"{{dev}}",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Interface (Rx)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":39,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#1ace1a"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(phy_rx_bits_total{asset=\"{{asset.name}}\",dev!~\"virtio_dign_(.*)\"}[1m])) by (dev)",
+ "state":1,
+ "legend":"{{dev}}",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ }
+ ],
+ "children":[]
+ }
+]
\ No newline at end of file
diff --git a/NEZHA/global-chart.json b/NEZHA/global-chart.json
new file mode 100644
index 0000000..9b6f185
--- /dev/null
+++ b/NEZHA/global-chart.json
@@ -0,0 +1,1514 @@
+[
+ {
+ "name":"TSG-X Status (Global)",
+ "type":"dashboard",
+ "varType":0,
+ "param":{
+ "chartShare":"none",
+ "variables":[],
+ "report":{
+ "schedule":{
+ "repeat":1,
+ "etime":"",
+ "stime":"",
+ "type":2,
+ "nums":[]
+ },
+ "receivers":[],
+ "enable":false,
+ "range":{
+ "unit":"day",
+ "interval":1,
+ "type":"previous"
+ }
+ }
+ },
+ "remark":"",
+ "charts":[
+ {
+ "name":"Traffic",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":0,
+ "param":{
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "showHeader":1,
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"1.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"Throughtput - DP1/L4",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Area chart",
+ "unit":"bits/sec",
+ "weight":1,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#5aaa0f"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(rx_bits_total{project=\"TSG-X\",service=\"mrzcpd-exporter\"}[1m]))",
+ "state":1,
+ "legend":"RxBits",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(ftx_bits_total{project=\"TSG-X\",service=\"mrzcpd-exporter\"}[1m]))+sum(irate(tx_total_len{project=\"TSG-X\",service=\"mrzcpd-exporter\"}[1m]))",
+ "state":1,
+ "legend":"TxBits",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Throughput - DP1/L7",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Area chart",
+ "unit":"bits/sec",
+ "weight":2,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ce1e18"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(container_network_receive_bytes_total{interface=\"tap0\"}[1m])*8)",
+ "state":1,
+ "legend":"RxBits",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Drops/Errors",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":3,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ea38be"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(rate(phy_rx_missed_total{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Drops (by NICs)",
+ "name":"A"
+ },
+ {
+ "expression":"sum(rate(rx_drops_total{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Drops (by Apps)",
+ "name":"B"
+ },
+ {
+ "expression":"sum(rate(phy_rx_error_total{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Errors",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":4,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ef20f9"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(rate(sapp_Tcp_Link_New{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Open",
+ "name":"A"
+ },
+ {
+ "expression":"sum(rate(sapp_Tcp_Link_Del{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Close",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections (Concurrent)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":5,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ca46f2"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(sapp_Tcp_Concurrent{project=\"TSG-X\"})",
+ "state":1,
+ "legend":"Concurrent",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Connections/s (precent)",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":6,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#c90a20"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"(sum(irate(sapp_Tcp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_C2S{project=\"TSG-X\"}[2m])))/(sum(irate(sapp_Tcp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_S2C{project=\"TSG-X\"}[2m]))+sum(irate(sapp_Udp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_S2C{project=\"TSG-X\"}[2m])))",
+ "state":1,
+ "legend":"Only C=>S",
+ "name":"A"
+ },
+ {
+ "expression":"(sum(irate(sapp_Tcp_Link_S2C{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_S2C{project=\"TSG-X\"}[2m])))/(sum(irate(sapp_Tcp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_S2C{project=\"TSG-X\"}[2m]))+sum(irate(sapp_Udp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_S2C{project=\"TSG-X\"}[2m])))",
+ "state":1,
+ "legend":"Only S=>C",
+ "name":"B"
+ },
+ {
+ "expression":"(sum(irate(sapp_Tcp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_Double{project=\"TSG-X\"}[2m])))/(sum(irate(sapp_Tcp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Tcp_Link_S2C{project=\"TSG-X\"}[2m]))+sum(irate(sapp_Udp_Link_Double{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_C2S{project=\"TSG-X\"}[2m])) + sum(irate(sapp_Udp_Link_S2C{project=\"TSG-X\"}[2m])))",
+ "state":1,
+ "legend":"C<=>S",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Protocol",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":7,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#8134bc"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(sapp_Ipv4_Bit{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"IPv4",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(sapp_Ipv6_Bit{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"IPv6",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(sapp_Tcp_Bit{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"TCP",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(sapp_Udp_Bit{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"UDP",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(sapp_Unknown_Bit{project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Unknown",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ },
+ {
+ "name":"Firewall (L4)",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":8,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"5.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"Logs/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":9,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#db1139"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tsg_master_success_log{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]) or irate(tsg_master_T_success_log{project=\"TSG-X\", app_name=\"tsg_master\",line_name=\"SUM\"}[2m]))",
+ "state":1,
+ "legend":"Success",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tsg_master_drop_log{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]) or irate(tsg_master_T_drop_log{project=\"TSG-X\", app_name=\"tsg_master\",line_name=\"SUM\"}[2m]) or irate(tsg_master_failed_log{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]) or irate(tsg_master_T_failed_log{project=\"TSG-X\", app_name=\"tsg_master\",line_name=\"SUM\"}[2m]))",
+ "state":1,
+ "legend":"Failed",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tsg_master_abort_allow{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]))+sum(irate(tsg_master_abort_deny{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]))+sum(irate(tsg_master_abort_monitor{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]))+sum(irate(tsg_master_abort_intercept{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]))+sum(irate(tsg_master_abort_unknown{project=\"TSG-X\", app_name=\"tsg_master\"}[2m]))",
+ "state":1,
+ "legend":"Abort",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Policy Hits/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":10,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#e23b9a"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(statistic_default_conn_num{project=\"TSG-X\", app_name=\"statistic\"}[2m]))",
+ "state":1,
+ "legend":"Default",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(statistic_allow_conn_num{project=\"TSG-X\", app_name=\"statistic\"}[2m]))",
+ "state":1,
+ "legend":"Allow",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(statistic_deny_conn_num{project=\"TSG-X\", app_name=\"statistic\"}[2m]))",
+ "state":1,
+ "legend":"Deny",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(statistic_monitor_conn_num{project=\"TSG-X\", app_name=\"statistic\"}[2m]))",
+ "state":1,
+ "legend":"Monitor",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(statistic_intercept_conn_num{project=\"TSG-X\", app_name=\"statistic\"}[2m]))",
+ "state":1,
+ "legend":"Intercept",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":11,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#c6d106"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(fs2_kni_intcp_rdy_stm{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Ready to intercept (Total)",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_dup_tfc_stm{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Ready to intercept (Duplicate Traffic)",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_intcp_stm{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Intercepted",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_byp_intcp_err{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Intercept Failed",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_dy_pass_stm{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Dynamic Bypass (Offload)",
+ "name":"E"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept Failed/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":12,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#c77fff"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(fs2_kni_e_asym_route{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Asymetric Traffic",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_type_tun{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Unsupported Tunnel",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_exc_mtu{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Packet Oversize",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_dup_tfc{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Duplicated Traffic",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_no_tfe{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"No available L7 modules",
+ "name":"E"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_lkmd_not_syn{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"No SYN",
+ "name":"F"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_no_s_a{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"No SYN/ACK",
+ "name":"G"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_ip_hdr{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Packet Invalid",
+ "name":"H"
+ },
+ {
+ "expression":"sum(irate(fs2_kni_e_lkmd_get{project=\"TSG-X\",app_name=\"fs2_kni\"}[2m])) + sum(irate(fs2_kni_e_tfe_tx{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m])) + sum(irate(fs2_kni_e_cmsg_add{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m])) + sum(irate(fs2_kni_e_tuntype_get{project=\"TSG-X\", app_name=\"fs2_kni\"}[2m]))",
+ "state":1,
+ "legend":"Internal Error",
+ "name":"I"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ },
+ {
+ "name":"Proxy (L7)",
+ "span":"12.0",
+ "height":"1.0",
+ "type":"Group",
+ "unit":"short",
+ "weight":13,
+ "param":{
+ "thresholds":[],
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "enable":{
+ "visibility":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "collapse":true
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"8.0",
+ "datasource":"misc",
+ "children":[
+ {
+ "name":"Connections/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":14,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#f9b3cd"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_stm_open{app_name=\"tfe3a\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Open",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_stm_cls{app_name=\"tfe3a\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Close",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Concurrent",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":15,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#551fd3"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(tfe3a_stm_open{app_name=\"tfe3a\",project=\"TSG-X\"})-sum(tfe3a_stm_cls{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"concurrent",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Protocol/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":16,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ef1ccc"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_ssl{app_name=\"tfe3a\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"SSL",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_plain{app_name=\"tfe3a\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Plain",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept Status/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":17,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ef73ab"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"0.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_stm_byp{project=\"TSG-X\",app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Bypass Success",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_stm_incpt{project=\"TSG-X\",app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Intercept Success",
+ "name":"B"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Intercept Traffic/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"bits/sec",
+ "weight":18,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#339df4"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_stm_incpt_B{app_name=\"tfe3a\",project=\"TSG-X\"}[2m]))*8",
+ "state":1,
+ "legend":"traffic",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Handshake Latency - AVG",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"milliseconds",
+ "weight":19,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ea4fa4"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"avg(FP_ssl_up_ms{app_name=\"FP\",project=\"TSG-X\"}) by (quantile)",
+ "state":1,
+ "legend":"{{quantile}}",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Proxy Policy Hits/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":20,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#c5f99d"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_intcp_mon_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":" Monitor",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_deny_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Deny",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_rdirt_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Replace",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_hijk_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Hijack",
+ "name":"D"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_ins_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Insert",
+ "name":"E"
+ },
+ {
+ "expression":"sum(irate(tfe3a_intcp_allow_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Allow",
+ "name":"F"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Proxy Logs/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":21,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#ea7d62"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"2.0",
+ "elements":[
+ {
+ "expression":"sum(irate(tfe3a_log_num{project=\"TSG-X\", app_name=\"tfe3a\"}[2m]))",
+ "state":1,
+ "legend":"Proxy Logs",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Trusted Cert Num",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":22,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#f24fc1"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"null"
+ },
+ "remark":"",
+ "x":"3.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"max(tfe3a_trusted_cert_nums{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"max",
+ "name":"A"
+ },
+ {
+ "expression":"min(tfe3a_trusted_cert_nums{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"min",
+ "name":"B"
+ },
+ {
+ "expression":"stddev(tfe3a_trusted_cert_nums{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"stddev",
+ "name":"C"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Keyring Cache Num - AVG",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":23,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#b083ea"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"6.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"avg(tfe3a_kyr_cache{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"Num",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"Keyring Cache Hit - AVG",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"percent(0.0-1.0)",
+ "weight":24,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#7e48ea"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"show",
+ "varName":"",
+ "varValue":"",
+ "operator":"equal"
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"9.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"(sum(tfe3a_kyr_ask{app_name=\"tfe3a\",project=\"TSG-X\"})-sum(tfe3a_kyr_new{app_name=\"tfe3a\",project=\"TSG-X\"}))/sum(tfe3a_kyr_ask{app_name=\"tfe3a\",project=\"TSG-X\"})",
+ "state":1,
+ "legend":"Rate",
+ "name":"A"
+ }
+ ],
+ "datasource":"metrics"
+ },
+ {
+ "name":"СertStore Event/s",
+ "span":"3.0",
+ "height":"2.0",
+ "type":"Line chart",
+ "unit":"short",
+ "weight":25,
+ "param":{
+ "stack":0,
+ "thresholds":[
+ {
+ "color":"#f98bb6"
+ }
+ ],
+ "thresholdShow":true,
+ "visibility":{
+ "result":"",
+ "varName":"",
+ "varValue":"",
+ "operator":""
+ },
+ "legend":{
+ "values":[],
+ "show":true,
+ "placement":"bottom"
+ },
+ "enable":{
+ "thresholds":false,
+ "visibility":false,
+ "legend":true,
+ "valueMapping":false
+ },
+ "showHeader":1,
+ "link":"",
+ "valueMapping":[],
+ "nullType":"zero"
+ },
+ "remark":"",
+ "x":"0.0",
+ "y":"4.0",
+ "elements":[
+ {
+ "expression":"sum(irate(certstore_ask_kyr_req{app_name=\"certstore\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Ask Req",
+ "name":"A"
+ },
+ {
+ "expression":"sum(irate(certstore_rd_cache{app_name=\"certstore\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Redis Cache",
+ "name":"B"
+ },
+ {
+ "expression":"sum(irate(certstore_x509_sign{app_name=\"certstore\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"X509 Sign",
+ "name":"C"
+ },
+ {
+ "expression":"sum(irate(certstore_ask_kyr_fail{app_name=\"certstore\",project=\"TSG-X\"}[2m]))",
+ "state":1,
+ "legend":"Ask Fail",
+ "name":"D"
+ }
+ ],
+ "datasource":"metrics"
+ }
+ ]
+ }
+ ],
+ "children":[]
+ }
+]
\ No newline at end of file