2234 lines
55 KiB
JSON
2234 lines
55 KiB
JSON
[
|
||
{
|
||
"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":[]
|
||
}
|
||
] |