Skip to content

Commit 284ee39

Browse files
author
kishan
committed
bug 9842: Added task to update user stats agg bytes in sync with aggregation range
status 9842: resolved fixed
1 parent f34ec52 commit 284ee39

14 files changed

Lines changed: 277 additions & 99 deletions

core/src/com/cloud/user/UserStatisticsVO.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,13 @@ public class UserStatisticsVO {
6262
private long currentBytesReceived;
6363

6464
@Column(name="current_bytes_sent")
65-
private long currentBytesSent;
65+
private long currentBytesSent;
66+
67+
@Column(name="agg_bytes_received")
68+
private long aggBytesReceived;
69+
70+
@Column(name="agg_bytes_sent")
71+
private long aggBytesSent;
6672

6773
protected UserStatisticsVO() {
6874
}
@@ -77,7 +83,7 @@ public UserStatisticsVO(long accountId, long dcId, String publicIpAddress, Long
7783
this.netBytesReceived = 0;
7884
this.netBytesSent = 0;
7985
this.currentBytesReceived = 0;
80-
this.currentBytesSent = 0;
86+
this.currentBytesSent = 0;
8187
}
8288

8389
public long getAccountId() {
@@ -139,5 +145,21 @@ public void setNetBytesReceived(long netBytesReceived) {
139145
public void setNetBytesSent(long netBytesSent) {
140146
this.netBytesSent = netBytesSent;
141147
}
148+
149+
public long getAggBytesReceived() {
150+
return aggBytesReceived;
151+
}
152+
153+
public void setAggBytesReceived(long aggBytesReceived) {
154+
this.aggBytesReceived = aggBytesReceived;
155+
}
156+
157+
public long getAggBytesSent() {
158+
return aggBytesSent;
159+
}
160+
161+
public void setAggBytesSent(long aggBytesSent) {
162+
this.aggBytesSent = aggBytesSent;
163+
}
142164

143165
}

server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@
1818
package com.cloud.network.router;
1919

2020
import java.util.ArrayList;
21+
import java.util.Calendar;
2122
import java.util.Collections;
2223
import java.util.Comparator;
24+
import java.util.Date;
2325
import java.util.HashMap;
2426
import java.util.HashSet;
2527
import java.util.List;
2628
import java.util.Map;
2729
import java.util.Set;
30+
import java.util.TimeZone;
2831
import java.util.concurrent.Executors;
2932
import java.util.concurrent.ScheduledExecutorService;
3033
import java.util.concurrent.TimeUnit;
@@ -337,10 +340,13 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
337340

338341
private boolean _disable_rp_filter = false;
339342
int _routerExtraPublicNics = 2;
343+
private int _usageAggregationRange = 1440;
344+
private String _usageTimeZone = "GMT";
340345
private long mgmtSrvrId = MacAddress.getMacAddress().toLong();
341346

342347
ScheduledExecutorService _executor;
343348
ScheduledExecutorService _checkExecutor;
349+
ScheduledExecutorService _networkStatsUpdateExecutor;
344350

345351
Account _systemAcct;
346352

@@ -592,6 +598,7 @@ public boolean configure(final String name, final Map<String, Object> params) th
592598

593599
_executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterMonitor"));
594600
_checkExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterStatusMonitor"));
601+
_networkStatsUpdateExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("NetworkStatsUpdater"));
595602

596603
final ComponentLocator locator = ComponentLocator.getCurrentLocator();
597604

@@ -645,6 +652,13 @@ public boolean configure(final String name, final Map<String, Object> params) th
645652

646653
_systemAcct = _accountService.getSystemAccount();
647654

655+
String aggregationRange = configs.get("usage.stats.job.aggregation.range");
656+
_usageAggregationRange = NumbersUtil.parseInt(aggregationRange, 1440);
657+
_usageTimeZone = configs.get("usage.aggregation.timezone");
658+
if(_usageTimeZone == null){
659+
_usageTimeZone = "GMT";
660+
}
661+
648662
_agentMgr.registerForHostEvents(this, true, false, false);
649663

650664
s_logger.info("DomainRouterManager is configured.");
@@ -661,10 +675,41 @@ public String getName() {
661675
public boolean start() {
662676
if (_routerStatsInterval > 0){
663677
_executor.scheduleAtFixedRate(new NetworkUsageTask(), _routerStatsInterval, _routerStatsInterval, TimeUnit.SECONDS);
678+
679+
//Schedule Network stats update task
680+
TimeZone usageTimezone = TimeZone.getTimeZone(_usageTimeZone);
681+
Calendar cal = Calendar.getInstance(usageTimezone);
682+
cal.setTime(new Date());
683+
long endDate = 0;
684+
int HOURLY_TIME = 60;
685+
final int DAILY_TIME = 60 * 24;
686+
if (_usageAggregationRange == DAILY_TIME) {
687+
cal.roll(Calendar.DAY_OF_YEAR, false);
688+
cal.set(Calendar.HOUR_OF_DAY, 0);
689+
cal.set(Calendar.MINUTE, 0);
690+
cal.set(Calendar.SECOND, 0);
691+
cal.set(Calendar.MILLISECOND, 0);
692+
cal.roll(Calendar.DAY_OF_YEAR, true);
693+
cal.add(Calendar.MILLISECOND, -1);
694+
endDate = cal.getTime().getTime();
695+
} else if (_usageAggregationRange == HOURLY_TIME) {
696+
cal.roll(Calendar.HOUR_OF_DAY, false);
697+
cal.set(Calendar.MINUTE, 0);
698+
cal.set(Calendar.SECOND, 0);
699+
cal.set(Calendar.MILLISECOND, 0);
700+
cal.roll(Calendar.HOUR_OF_DAY, true);
701+
cal.add(Calendar.MILLISECOND, -1);
702+
endDate = cal.getTime().getTime();
703+
} else {
704+
endDate = cal.getTime().getTime();
705+
}
706+
707+
_networkStatsUpdateExecutor.scheduleAtFixedRate(new NetworkStatsUpdateTask(), (endDate - System.currentTimeMillis()), (_usageAggregationRange * 60 * 1000), TimeUnit.MILLISECONDS);
664708
}else{
665709
s_logger.debug("router.stats.interval - " + _routerStatsInterval+ " so not scheduling the router stats thread");
666710
}
667-
_checkExecutor.scheduleAtFixedRate(new CheckRouterTask(), _checkRouterInterval, _checkRouterInterval, TimeUnit.SECONDS);
711+
_checkExecutor.scheduleAtFixedRate(new CheckRouterTask(), _checkRouterInterval, _checkRouterInterval, TimeUnit.SECONDS);
712+
668713
return true;
669714
}
670715

@@ -791,6 +836,27 @@ public void run() {
791836
}
792837
}
793838

839+
protected class NetworkStatsUpdateTask implements Runnable {
840+
841+
public NetworkStatsUpdateTask() {
842+
}
843+
844+
@Override
845+
public void run() {
846+
try{
847+
if(_statsDao.updateAggStats()){
848+
s_logger.debug("Succussfully updated aggregate network stats");
849+
} else {
850+
s_logger.debug("Failed to update aggregate network stats");
851+
}
852+
} catch (Exception e){
853+
s_logger.debug("Failed to update aggregate network stats", e);
854+
}
855+
}
856+
857+
}
858+
859+
794860
protected void updateRoutersRedundantState(List<DomainRouterVO> routers) {
795861
boolean updated = false;
796862
for (DomainRouterVO router : routers) {

server/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@
2727
import com.cloud.upgrade.dao.Upgrade2210to2211;
2828
import com.cloud.upgrade.dao.Upgrade2211to2212Premium;
2929
import com.cloud.upgrade.dao.Upgrade2212to2213;
30+
import com.cloud.upgrade.dao.Upgrade2213to30Premium;
3031
import com.cloud.upgrade.dao.Upgrade221to222Premium;
3132
import com.cloud.upgrade.dao.Upgrade222to224Premium;
3233
import com.cloud.upgrade.dao.Upgrade224to225;
3334
import com.cloud.upgrade.dao.Upgrade225to226;
3435
import com.cloud.upgrade.dao.Upgrade227to228Premium;
3536
import com.cloud.upgrade.dao.Upgrade228to229;
3637
import com.cloud.upgrade.dao.Upgrade229to2210;
37-
import com.cloud.upgrade.dao.Upgrade2213to30;
3838
import com.cloud.upgrade.dao.UpgradeSnapshot217to224;
3939
import com.cloud.upgrade.dao.UpgradeSnapshot223to224;
4040
import com.cloud.upgrade.dao.VersionDaoImpl;
@@ -46,23 +46,23 @@ public class PremiumDatabaseUpgradeChecker extends DatabaseUpgradeChecker {
4646
public PremiumDatabaseUpgradeChecker() {
4747
_dao = ComponentLocator.inject(VersionDaoImpl.class);
4848
_upgradeMap.put("2.1.7", new DbUpgrade[] { new Upgrade217to218(), new Upgrade218to22Premium(), new Upgrade221to222Premium(), new UpgradeSnapshot217to224(), new Upgrade222to224Premium(),
49-
new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
49+
new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
5050
_upgradeMap.put("2.1.8", new DbUpgrade[] { new Upgrade218to22Premium(), new Upgrade221to222Premium(), new UpgradeSnapshot217to224(), new Upgrade222to224Premium(),
51-
new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213() , new Upgrade2213to30()});
51+
new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213() , new Upgrade2213to30Premium()});
5252
_upgradeMap.put("2.1.9", new DbUpgrade[] { new Upgrade218to22Premium(), new Upgrade221to222Premium(), new UpgradeSnapshot217to224(), new Upgrade222to224Premium(),
53-
new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
54-
_upgradeMap.put("2.2.1", new DbUpgrade[] { new Upgrade221to222Premium(), new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
55-
_upgradeMap.put("2.2.2", new DbUpgrade[] { new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
56-
_upgradeMap.put("2.2.3", new DbUpgrade[] { new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
57-
_upgradeMap.put("2.2.4", new DbUpgrade[] { new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
58-
_upgradeMap.put("2.2.5", new DbUpgrade[] { new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
59-
_upgradeMap.put("2.2.6", new DbUpgrade[] { new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
60-
_upgradeMap.put("2.2.7", new DbUpgrade[] { new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
61-
_upgradeMap.put("2.2.8", new DbUpgrade[] { new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
62-
_upgradeMap.put("2.2.9", new DbUpgrade[] { new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
63-
_upgradeMap.put("2.2.10", new DbUpgrade[] { new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
64-
_upgradeMap.put("2.2.11", new DbUpgrade[] { new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30()});
65-
_upgradeMap.put("2.2.12", new DbUpgrade[] { new Upgrade2212to2213(), new Upgrade2213to30()});
66-
_upgradeMap.put("2.2.13", new DbUpgrade[] { new Upgrade2213to30()});
53+
new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
54+
_upgradeMap.put("2.2.1", new DbUpgrade[] { new Upgrade221to222Premium(), new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
55+
_upgradeMap.put("2.2.2", new DbUpgrade[] { new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
56+
_upgradeMap.put("2.2.3", new DbUpgrade[] { new Upgrade222to224Premium(), new UpgradeSnapshot223to224(), new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
57+
_upgradeMap.put("2.2.4", new DbUpgrade[] { new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
58+
_upgradeMap.put("2.2.5", new DbUpgrade[] { new Upgrade225to226(), new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
59+
_upgradeMap.put("2.2.6", new DbUpgrade[] { new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
60+
_upgradeMap.put("2.2.7", new DbUpgrade[] { new Upgrade227to228Premium(), new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
61+
_upgradeMap.put("2.2.8", new DbUpgrade[] { new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
62+
_upgradeMap.put("2.2.9", new DbUpgrade[] { new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
63+
_upgradeMap.put("2.2.10", new DbUpgrade[] { new Upgrade2210to2211(), new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
64+
_upgradeMap.put("2.2.11", new DbUpgrade[] { new Upgrade2211to2212Premium(), new Upgrade2212to2213(), new Upgrade2213to30Premium()});
65+
_upgradeMap.put("2.2.12", new DbUpgrade[] { new Upgrade2212to2213(), new Upgrade2213to30Premium()});
66+
_upgradeMap.put("2.2.13", new DbUpgrade[] { new Upgrade2213to30Premium()});
6767
}
6868
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/**
2+
* Copyright (C) 2011 Citrix Systems, Inc. All rights reserved
3+
*
4+
* This software is licensed under the GNU General Public License v3 or later.
5+
*
6+
* It is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or any later version.
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16+
*
17+
*/
18+
package com.cloud.upgrade.dao;
19+
20+
import java.io.File;
21+
import java.sql.Connection;
22+
23+
import org.apache.log4j.Logger;
24+
25+
import com.cloud.utils.exception.CloudRuntimeException;
26+
import com.cloud.utils.script.Script;
27+
28+
public class Upgrade2213to30Premium implements DbUpgrade {
29+
final static Logger s_logger = Logger.getLogger(Upgrade2213to30Premium.class);
30+
31+
@Override
32+
public String[] getUpgradableVersionRange() {
33+
return new String[] { "2.2.13", "3.0.0"};
34+
}
35+
36+
@Override
37+
public String getUpgradedVersion() {
38+
return "3.0.0";
39+
}
40+
41+
@Override
42+
public boolean supportsRollingUpgrade() {
43+
return true;
44+
}
45+
46+
@Override
47+
public File[] getPrepareScripts() {
48+
String script = Script.findScript("", "db/db/schema-2213to30-premium.sql");
49+
if (script == null) {
50+
throw new CloudRuntimeException("Unable to find db/schema-2213to30-premium.sql");
51+
}
52+
53+
return new File[] { new File(script) };
54+
}
55+
56+
@Override
57+
public void performDataMigration(Connection conn) {
58+
}
59+
60+
@Override
61+
public File[] getCleanupScripts() {
62+
return null;
63+
}
64+
65+
}

server/src/com/cloud/usage/UsageNetworkVO.java

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -50,37 +50,28 @@ public class UsageNetworkVO {
5050
@Column(name="bytes_received")
5151
private long bytesReceived;
5252

53-
@Column(name="net_bytes_received")
54-
private long netBytesReceived;
53+
@Column(name="agg_bytes_received")
54+
private long aggBytesReceived;
5555

56-
@Column(name="net_bytes_sent")
57-
private long netBytesSent;
56+
@Column(name="agg_bytes_sent")
57+
private long aggBytesSent;
5858

59-
@Column(name="current_bytes_received")
60-
private long currentBytesReceived;
61-
62-
@Column(name="current_bytes_sent")
63-
private long currentBytesSent;
64-
6559
@Column(name="event_time_millis")
6660
private long eventTimeMillis = 0;
6761

6862
protected UsageNetworkVO() {
6963
}
7064

71-
public UsageNetworkVO(Long accountId, long zoneId, long hostId, String hostType, Long networkId, long bytesSent, long bytesReceived, long netBytesReceived, long netBytesSent, long currentBytesReceived,
72-
long currentBytesSent, long eventTimeMillis) {
65+
public UsageNetworkVO(Long accountId, long zoneId, long hostId, String hostType, Long networkId, long bytesSent, long bytesReceived, long aggBytesReceived, long aggBytesSent, long eventTimeMillis) {
7366
this.accountId = accountId;
7467
this.zoneId = zoneId;
7568
this.hostId = hostId;
7669
this.hostType = hostType;
7770
this.networkId = networkId;
7871
this.bytesSent = bytesSent;
7972
this.bytesReceived = bytesReceived;
80-
this.netBytesReceived = netBytesReceived;
81-
this.netBytesSent = netBytesSent;
82-
this.currentBytesReceived = currentBytesReceived;
83-
this.currentBytesSent = currentBytesSent;
73+
this.aggBytesReceived = aggBytesReceived;
74+
this.aggBytesSent = aggBytesSent;
8475
this.eventTimeMillis = eventTimeMillis;
8576
}
8677

@@ -115,22 +106,6 @@ public void setBytes(Long bytesReceived) {
115106
this.bytesReceived = bytesReceived;
116107
}
117108

118-
public long getCurrentBytesReceived() {
119-
return currentBytesReceived;
120-
}
121-
122-
public long getCurrentBytesSent() {
123-
return currentBytesSent;
124-
}
125-
126-
public long getNetBytesReceived() {
127-
return netBytesReceived;
128-
}
129-
130-
public long getNetBytesSent() {
131-
return netBytesSent;
132-
}
133-
134109
public long getEventTimeMillis() {
135110
return eventTimeMillis;
136111
}
@@ -152,5 +127,21 @@ public String getHostType() {
152127

153128
public Long getNetworkId() {
154129
return networkId;
155-
}
130+
}
131+
132+
public long getAggBytesReceived() {
133+
return aggBytesReceived;
134+
}
135+
136+
public void setAggBytesReceived(long aggBytesReceived) {
137+
this.aggBytesReceived = aggBytesReceived;
138+
}
139+
140+
public long getAggBytesSent() {
141+
return aggBytesSent;
142+
}
143+
144+
public void setAggBytesSent(long aggBytesSent) {
145+
this.aggBytesSent = aggBytesSent;
146+
}
156147
}

0 commit comments

Comments
 (0)