@@ -72,19 +72,23 @@ func TestNewMeter(t *testing.T) {
7272func TestWrite (t * testing.T ) {
7373 m , reader := createLocalMeter (t , t .TempDir ())
7474 ts := time .Now ().Unix () / 60 * 60
75- m .IncTraffic ("cluster-1" , 100 , 200 )
76- m .IncTraffic ("cluster-2" , 200 , 300 )
75+ m .IncTraffic ("cluster-1" , 100 , 200 , false )
76+ m .IncTraffic ("cluster-2" , 200 , 300 , false )
77+ m .IncTraffic ("cluster-1" , 500 , 200 , true )
78+ m .IncTraffic ("cluster-2" , 600 , 300 , true )
7779 m .flush (ts , time .Second )
7880
7981 data := readMeteringData (t , reader , ts )
8082 require .Len (t , data , 2 )
81- resp , crossAZ := getValuesFromData (t , data , "cluster-1" )
82- require .Equal (t , int64 (100 ), resp )
83- require .Equal (t , int64 (200 ), crossAZ )
84-
85- resp , crossAZ = getValuesFromData (t , data , "cluster-2" )
86- require .Equal (t , int64 (200 ), resp )
87- require .Equal (t , int64 (300 ), crossAZ )
83+ publicResp , privateResp , crossAZ := getValuesFromData (t , data , "cluster-1" )
84+ require .Equal (t , int64 (500 ), publicResp )
85+ require .Equal (t , int64 (100 ), privateResp )
86+ require .Equal (t , int64 (400 ), crossAZ )
87+
88+ publicResp , privateResp , crossAZ = getValuesFromData (t , data , "cluster-2" )
89+ require .Equal (t , int64 (600 ), publicResp )
90+ require .Equal (t , int64 (200 ), privateResp )
91+ require .Equal (t , int64 (600 ), crossAZ )
8892}
8993
9094func TestLoop (t * testing.T ) {
@@ -97,34 +101,40 @@ func TestLoop(t *testing.T) {
97101 for range 10 {
98102 wg .Run (func () {
99103 for range 100 {
100- m .IncTraffic ("cluster-1" , 1 , 2 )
101- m .IncTraffic ("cluster-2" , 1 , 2 )
104+ m .IncTraffic ("cluster-1" , 1 , 2 , false )
105+ m .IncTraffic ("cluster-2" , 1 , 2 , false )
106+ m .IncTraffic ("cluster-1" , 10 , 2 , true )
107+ m .IncTraffic ("cluster-2" , 10 , 2 , true )
102108 time .Sleep (time .Millisecond )
103109 }
104110 }, nil )
105111 }
106112 wg .Wait ()
107113 require .NoError (t , m .Close ())
108114
109- totalResp , totalCrossAZ := make (map [string ]int64 ), make (map [string ]int64 )
115+ totalPublicResp , totalPrivateResp , totalCrossAZ := make ( map [ string ] int64 ), make (map [string ]int64 ), make (map [string ]int64 )
110116 for ts := startTime / 60 * 60 ; ts <= startTime / 60 * 60 + 60 ; ts += 60 {
111117 data := readMeteringData (t , reader , ts )
112118 if len (data ) == 0 {
113119 continue
114120 }
115121 require .Len (t , data , 2 )
116- resp , crossAZ := getValuesFromData (t , data , "cluster-1" )
117- totalResp ["cluster-1" ] += resp
122+ publicResp , privateResp , crossAZ := getValuesFromData (t , data , "cluster-1" )
123+ totalPublicResp ["cluster-1" ] += publicResp
124+ totalPrivateResp ["cluster-1" ] += privateResp
118125 totalCrossAZ ["cluster-1" ] += crossAZ
119- resp , crossAZ = getValuesFromData (t , data , "cluster-2" )
120- totalResp ["cluster-2" ] += resp
126+ publicResp , privateResp , crossAZ = getValuesFromData (t , data , "cluster-2" )
127+ totalPublicResp ["cluster-2" ] += publicResp
128+ totalPrivateResp ["cluster-2" ] += privateResp
121129 totalCrossAZ ["cluster-2" ] += crossAZ
122130 }
123131
124- require .Equal (t , int64 (1000 ), totalResp ["cluster-1" ])
125- require .Equal (t , int64 (2000 ), totalCrossAZ ["cluster-1" ])
126- require .Equal (t , int64 (1000 ), totalResp ["cluster-2" ])
127- require .Equal (t , int64 (2000 ), totalCrossAZ ["cluster-2" ])
132+ require .Equal (t , int64 (10000 ), totalPublicResp ["cluster-1" ])
133+ require .Equal (t , int64 (1000 ), totalPrivateResp ["cluster-1" ])
134+ require .Equal (t , int64 (4000 ), totalCrossAZ ["cluster-1" ])
135+ require .Equal (t , int64 (10000 ), totalPublicResp ["cluster-2" ])
136+ require .Equal (t , int64 (1000 ), totalPrivateResp ["cluster-2" ])
137+ require .Equal (t , int64 (4000 ), totalCrossAZ ["cluster-2" ])
128138}
129139
130140func createLocalMeter (t * testing.T , dir string ) (* Meter , * meteringreader.MeteringReader ) {
@@ -183,17 +193,20 @@ func readMeteringData(t *testing.T, reader *meteringreader.MeteringReader, ts in
183193 return meteringData .Data
184194}
185195
186- func getValuesFromData (t * testing.T , data []map [string ]any , clusterID string ) (int64 , int64 ) {
196+ func getValuesFromData (t * testing.T , data []map [string ]any , clusterID string ) (int64 , int64 , int64 ) {
187197 for i := range data {
188198 if data [i ]["cluster_id" ] == clusterID {
189- outBound , ok := data [i ]["outBound_bytes" ].(map [string ]any )
199+ publicOutBound , ok := data [i ][publicEndpointKey ].(map [string ]any )
200+ require .True (t , ok )
201+ privateOutBound , ok := data [i ][privateEndpointKey ].(map [string ]any )
190202 require .True (t , ok )
191- crossZone , ok := data [i ]["crossZone_bytes" ].(map [string ]any )
203+ crossZone , ok := data [i ][crossAZKey ].(map [string ]any )
192204 require .True (t , ok )
193- require .Equal (t , "bytes" , outBound ["unit" ])
205+ require .Equal (t , "bytes" , publicOutBound ["unit" ])
206+ require .Equal (t , "bytes" , privateOutBound ["unit" ])
194207 require .Equal (t , "bytes" , crossZone ["unit" ])
195- return int64 (outBound ["value" ].(float64 )), int64 (crossZone ["value" ].(float64 ))
208+ return int64 (publicOutBound [ "value" ].( float64 )), int64 ( privateOutBound ["value" ].(float64 )), int64 (crossZone ["value" ].(float64 ))
196209 }
197210 }
198- return 0 , 0
211+ return 0 , 0 , 0
199212}
0 commit comments