@@ -25,20 +25,20 @@ import (
2525 "time"
2626)
2727
28- func prometheus (services map [netip.Addr ][]Serv , summary Summary , vips map [netip.Addr ]State ) []string {
29- r := []string {help ()}
28+ func prometheus (p string , services map [netip.Addr ][]Serv , summary Summary , vips map [netip.Addr ]State ) []string {
29+ r := []string {help (p )}
3030
3131 var defcon uint8
3232
33- r = append (r , fmt .Sprintf (`vc5_uptime %d` , summary .Uptime ))
34- r = append (r , fmt .Sprintf (`vc5_defcon %d` , defcon ))
35- r = append (r , fmt .Sprintf (`vc5_latency %d` , summary .Latency ))
36- r = append (r , fmt .Sprintf (`vc5_sessions %d` , summary .Current ))
37- r = append (r , fmt .Sprintf (`vc5_session_total %d` , summary .Flows ))
38- r = append (r , fmt .Sprintf (`vc5_rx_packets %d` , summary .IngressPackets ))
39- r = append (r , fmt .Sprintf (`vc5_rx_octets %d` , summary .IngressOctets ))
40- r = append (r , fmt .Sprintf (`vc5_tx_packets %d` , summary .EgressPackets ))
41- r = append (r , fmt .Sprintf (`vc5_tx_octets %d` , summary .EgressOctets ))
33+ r = append (r , fmt .Sprintf (p + `_uptime %d` , summary .Uptime ))
34+ r = append (r , fmt .Sprintf (p + `_defcon %d` , defcon ))
35+ r = append (r , fmt .Sprintf (p + `_latency %d` , summary .Latency ))
36+ r = append (r , fmt .Sprintf (p + `_sessions %d` , summary .Current ))
37+ r = append (r , fmt .Sprintf (p + `_session_total %d` , summary .Flows ))
38+ r = append (r , fmt .Sprintf (p + `_rx_packets %d` , summary .IngressPackets ))
39+ r = append (r , fmt .Sprintf (p + `_rx_octets %d` , summary .IngressOctets ))
40+ r = append (r , fmt .Sprintf (p + `_tx_packets %d` , summary .EgressPackets ))
41+ r = append (r , fmt .Sprintf (p + `_tx_octets %d` , summary .EgressOctets ))
4242
4343 zeroone := func (u bool ) uint8 {
4444 if u {
@@ -57,8 +57,8 @@ func prometheus(services map[netip.Addr][]Serv, summary Summary, vips map[netip.
5757 now := time .Now ()
5858
5959 for vip , s := range vips {
60- r = metric (r , `vc5_vip_status {vip="%s"} %d` , vip , zeroone (s .up ))
61- r = metric (r , `vc5_vip_status_duration {vip="%s",status="%s"} %d` , vip , updown (s .up ), now .Sub (s .time )/ time .Second )
60+ r = metric (r , p + `_vip_status {vip="%s"} %d` , vip , zeroone (s .up ))
61+ r = metric (r , p + `_vip_status_duration {vip="%s",status="%s"} %d` , vip , updown (s .up ), now .Sub (s .time )/ time .Second )
6262 }
6363
6464 for _ , x := range services {
@@ -72,29 +72,29 @@ func prometheus(services map[netip.Addr][]Serv, summary Summary, vips map[netip.
7272 name = strings .ReplaceAll (name , `\` , `\\` )
7373 name = strings .ReplaceAll (name , `"` , `\"` )
7474
75- r = metric (r , `vc5_service_sessions {service="%s",name="%s"} %d` , serv , name , stat .Current )
76- r = metric (r , `vc5_service_sessions_total {service="%s",name="%s"} %d` , serv , name , stat .Flows )
77- r = metric (r , `vc5_service_rx_packets {service="%s",name="%s"} %d` , serv , name , stat .IngressPackets )
78- r = metric (r , `vc5_service_rx_octets {service="%s",name="%s"} %d` , serv , name , stat .IngressOctets )
79- r = metric (r , `vc5_service_tx_packets {service="%s",name="%s"} %d` , serv , name , stat .EgressPackets )
80- r = metric (r , `vc5_service_tx_octets {service="%s",name="%s"} %d` , serv , name , stat .EgressOctets )
81- r = metric (r , `vc5_service_status {service="%s",name="%s"} %d` , serv , name , up )
82- r = metric (r , `vc5_service_status_duration {service="%s",name="%s",status="%s"} %d` , serv , name , updown (s .Up ), s .For )
83- r = metric (r , `vc5_service_reserves_used {service="%s",name="%s"} %d` , serv , name , 666 )
75+ r = metric (r , p + `_service_sessions {service="%s",name="%s"} %d` , serv , name , stat .Current )
76+ r = metric (r , p + `_service_sessions_total {service="%s",name="%s"} %d` , serv , name , stat .Flows )
77+ r = metric (r , p + `_service_rx_packets {service="%s",name="%s"} %d` , serv , name , stat .IngressPackets )
78+ r = metric (r , p + `_service_rx_octets {service="%s",name="%s"} %d` , serv , name , stat .IngressOctets )
79+ r = metric (r , p + `_service_tx_packets {service="%s",name="%s"} %d` , serv , name , stat .EgressPackets )
80+ r = metric (r , p + `_service_tx_octets {service="%s",name="%s"} %d` , serv , name , stat .EgressOctets )
81+ r = metric (r , p + `_service_status {service="%s",name="%s"} %d` , serv , name , up )
82+ r = metric (r , p + `_service_status_duration {service="%s",name="%s",status="%s"} %d` , serv , name , updown (s .Up ), s .For )
83+ r = metric (r , p + `_service_reserves_used {service="%s",name="%s"} %d` , serv , name , 666 )
8484
8585 for _ , d := range s .Destinations {
8686 real := fmt .Sprintf ("%s:%d" , d .Address , d .Port )
8787 up := zeroone (d .Up )
8888
89- r = metric (r , `vc5_backend_sessions {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .Current )
90- r = metric (r , `vc5_backend_sessions_total {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .Flows )
91- r = metric (r , `vc5_backend_rx_packets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .IngressPackets )
92- r = metric (r , `vc5_backend_rx_octets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .IngressOctets )
93- r = metric (r , `vc5_backend_tx_packets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .EgressPackets )
94- r = metric (r , `vc5_backend_tx_octets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .EgressOctets )
95- r = metric (r , `vc5_backend_status {service="%s",name="%s",backend="%s"} %d` , serv , name , real , up )
96- r = metric (r , `vc5_backend_status_duration {service="%s",name="%s",backend="%s",status="%s"} %d` , serv , name , real , updown (d .Up ), d .For )
97- r = metric (r , `vc5_backend_reserves_used {service="%s",name="%s",backend="%s"} %d` , serv , name , real , 666 )
89+ r = metric (r , p + `_backend_sessions {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .Current )
90+ r = metric (r , p + `_backend_sessions_total {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .Flows )
91+ r = metric (r , p + `_backend_rx_packets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .IngressPackets )
92+ r = metric (r , p + `_backend_rx_octets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .IngressOctets )
93+ r = metric (r , p + `_backend_tx_packets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .EgressPackets )
94+ r = metric (r , p + `_backend_tx_octets {service="%s",name="%s",backend="%s"} %d` , serv , name , real , stat .EgressOctets )
95+ r = metric (r , p + `_backend_status {service="%s",name="%s",backend="%s"} %d` , serv , name , real , up )
96+ r = metric (r , p + `_backend_status_duration {service="%s",name="%s",backend="%s",status="%s"} %d` , serv , name , real , updown (d .Up ), d .For )
97+ r = metric (r , p + `_backend_reserves_used {service="%s",name="%s",backend="%s"} %d` , serv , name , real , 666 )
9898
9999 }
100100 }
@@ -108,61 +108,61 @@ func metric(l []string, f string, a ...any) []string {
108108 return append (l , fmt .Sprintf (f , a ... ))
109109}
110110
111- func help () string {
112- return `# TYPE vc5_uptime counter
113- # TYPE vc5_defcon gauge
114- # TYPE vc5_latency gauge
115- # TYPE vc5_sessions gauge
116- # TYPE vc5_session_total counter
117- # TYPE vc5_rx_packets counter
118- # TYPE vc5_rx_octets counter
119- # TYPE vc5_tx_packets counter
120- # TYPE vc5_tx_octets counter
121- # TYPE vc5_vip_status gauge
122- # TYPE vc5_vip_status_duration gauge
123- # TYPE vc5_service_sessions gauge
124- # TYPE vc5_service_sessions_total counter
125- # TYPE vc5_service_rx_packets counter
126- # TYPE vc5_service_rx_octets counter
127- # TYPE vc5_service_tx_packets counter
128- # TYPE vc5_service_tx_octets counter
129- # TYPE vc5_service_status gauge
130- # TYPE vc5_service_status_duration gauge
131- # TYPE vc5_service_reserves_used gauge
132- # TYPE vc5_backend_sessions gauge
133- # TYPE vc5_backend_sessions_total counter
134- # TYPE vc5_backend_rx_packets counter
135- # TYPE vc5_backend_rx_octets counter
136- # TYPE vc5_backend_tx_packets counter
137- # TYPE vc5_backend_tx_octets counter
138- # TYPE vc5_backend_status gauge
139- # TYPE vc5_backend_status_duration gauge
140- # HELP vc5_uptime Uptime in seconds
141- # HELP vc5_defcon Readiness level
142- # HELP vc5_latency Average packet processing latency in nanoseconds
143- # HELP vc5_sessions Estimated number of current active sessions
144- # HELP vc5_session_total Total number of new sessions written to state tracking table
145- # HELP vc5_rx_packets Total number of incoming packets
146- # HELP vc5_rx_octets Total number incoming bytes
147- # HELP vc5_tx_packets Total number of outgoing packets
148- # HELP vc5_tx_octets Total number outgoing bytes
149- # HELP vc5_vip_status gauge
150- # HELP vc5_vip_status_duration gauge
151- # HELP vc5_service_sessions gauge
152- # HELP vc5_service_sessions_total counter
153- # HELP vc5_service_rx_packets counter
154- # HELP vc5_service_rx_octets counter
155- # HELP vc5_service_tx_packets counter
156- # HELP vc5_service_tx_octets counter
157- # HELP vc5_service_status gauge
158- # HELP vc5_service_status_duration gauge
159- # HELP vc5_service_reserves_used gauge
160- # HELP vc5_backend_sessions gauge
161- # HELP vc5_backend_sessions_total counter
162- # HELP vc5_backend_rx_packets counter
163- # HELP vc5_backend_rx_octets counter
164- # HELP vc5_backend_tx_packets counter
165- # HELP vc5_backend_tx_octets counter
166- # HELP vc5_backend_status gauge
167- # HELP vc5_backend_status_duration gauge`
111+ func help (p string ) string {
112+ return `# TYPE ` + p + `_uptime counter
113+ # TYPE ` + p + `_defcon gauge
114+ # TYPE ` + p + `_latency gauge
115+ # TYPE ` + p + `_sessions gauge
116+ # TYPE ` + p + `_session_total counter
117+ # TYPE ` + p + `_rx_packets counter
118+ # TYPE ` + p + `_rx_octets counter
119+ # TYPE ` + p + `_tx_packets counter
120+ # TYPE ` + p + `_tx_octets counter
121+ # TYPE ` + p + `_vip_status gauge
122+ # TYPE ` + p + `_vip_status_duration gauge
123+ # TYPE ` + p + `_service_sessions gauge
124+ # TYPE ` + p + `_service_sessions_total counter
125+ # TYPE ` + p + `_service_rx_packets counter
126+ # TYPE ` + p + `_service_rx_octets counter
127+ # TYPE ` + p + `_service_tx_packets counter
128+ # TYPE ` + p + `_service_tx_octets counter
129+ # TYPE ` + p + `_service_status gauge
130+ # TYPE ` + p + `_service_status_duration gauge
131+ # TYPE ` + p + `_service_reserves_used gauge
132+ # TYPE ` + p + `_backend_sessions gauge
133+ # TYPE ` + p + `_backend_sessions_total counter
134+ # TYPE ` + p + `_backend_rx_packets counter
135+ # TYPE ` + p + `_backend_rx_octets counter
136+ # TYPE ` + p + `_backend_tx_packets counter
137+ # TYPE ` + p + `_backend_tx_octets counter
138+ # TYPE ` + p + `_backend_status gauge
139+ # TYPE ` + p + `_backend_status_duration gauge
140+ # HELP ` + p + `_uptime Uptime in seconds
141+ # HELP ` + p + `_defcon Readiness level
142+ # HELP ` + p + `_latency Average packet processing latency in nanoseconds
143+ # HELP ` + p + `_sessions Estimated number of current active sessions
144+ # HELP ` + p + `_session_total Total number of new sessions written to state tracking table
145+ # HELP ` + p + `_rx_packets Total number of incoming packets
146+ # HELP ` + p + `_rx_octets Total number incoming bytes
147+ # HELP ` + p + `_tx_packets Total number of outgoing packets
148+ # HELP ` + p + `_tx_octets Total number outgoing bytes
149+ # HELP ` + p + `_vip_status gauge
150+ # HELP ` + p + `_vip_status_duration gauge
151+ # HELP ` + p + `_service_sessions gauge
152+ # HELP ` + p + `_service_sessions_total counter
153+ # HELP ` + p + `_service_rx_packets counter
154+ # HELP ` + p + `_service_rx_octets counter
155+ # HELP ` + p + `_service_tx_packets counter
156+ # HELP ` + p + `_service_tx_octets counter
157+ # HELP ` + p + `_service_status gauge
158+ # HELP ` + p + `_service_status_duration gauge
159+ # HELP ` + p + `_service_reserves_used gauge
160+ # HELP ` + p + `_backend_sessions gauge
161+ # HELP ` + p + `_backend_sessions_total counter
162+ # HELP ` + p + `_backend_rx_packets counter
163+ # HELP ` + p + `_backend_rx_octets counter
164+ # HELP ` + p + `_backend_tx_packets counter
165+ # HELP ` + p + `_backend_tx_octets counter
166+ # HELP ` + p + `_backend_status gauge
167+ # HELP ` + p + `_backend_status_duration gauge`
168168}
0 commit comments