Added performance logging in ServerMonitor
Added date tracking for gem/coin/account transactions in preparation for Customer Support server.
This commit is contained in:
parent
8aec9e345e
commit
d73ffcccfd
@ -8,5 +8,6 @@ public class DonorToken
|
||||
public boolean Donated;
|
||||
public List<Integer> SalesPackages;
|
||||
public List<String> UnknownSalesPackages;
|
||||
public List<TransactionToken> Transactions;
|
||||
public int Coins;
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
package mineplex.core.donation.repository.token;
|
||||
|
||||
public class TransactionToken
|
||||
{
|
||||
public long Date;
|
||||
public String SalesPackageName;
|
||||
public int Gems;
|
||||
public int Coins;
|
||||
}
|
@ -45,8 +45,8 @@ public class DDoSProtectionSwitcher
|
||||
_repository = new DnsMadeEasyRepository();
|
||||
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
|
||||
|
||||
while (true)
|
||||
{
|
||||
//while (true)
|
||||
//{
|
||||
if (_repository.switchToDDOSProt())
|
||||
{
|
||||
System.out.println("Starting DDoS Protection Switch at " + dateFormat.format(new Date()));
|
||||
@ -203,7 +203,7 @@ public class DDoSProtectionSwitcher
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
//}
|
||||
/*
|
||||
* // Switch off ddos protection for (DnsRecord record : records.data) {
|
||||
* if (record.type.equalsIgnoreCase("CNAME")) { if
|
||||
|
@ -9,7 +9,8 @@ import java.text.SimpleDateFormat;
|
||||
|
||||
public class DnsMadeEasyRepository
|
||||
{
|
||||
private String _connectionString = "jdbc:mysql://db.mineplex.com:3306/BungeeServers?autoReconnect=true&failOverReadOnly=false&maxReconnects=10";
|
||||
// Yip Yip actual IP because if null route happens we can't resolve the HOSTNAME DERP FACE DEFEK7!!! -defek7
|
||||
private String _connectionString = "jdbc:mysql://10.35.74.133:3306/BungeeServers?autoReconnect=true&failOverReadOnly=false&maxReconnects=10";
|
||||
private String _userName = "root";
|
||||
private String _password = "tAbechAk3wR7tuTh";
|
||||
|
||||
@ -119,6 +120,9 @@ public class DnsMadeEasyRepository
|
||||
}
|
||||
}
|
||||
|
||||
return countOffline >= 20;
|
||||
//if (countOffline > 5)
|
||||
System.out.println(countOffline + " offline bungees.");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ public class ServerMonitor
|
||||
|
||||
for (MinecraftServer deadServer : _repository.getDeadServers())
|
||||
{
|
||||
killServer(deadServer.getName(), deadServer.getPublicAddress(), true);
|
||||
killServer(deadServer.getName(), deadServer.getPublicAddress(), "[KILLED] [DEAD] " + deadServer.getName() + ":" + deadServer.getPublicAddress(), true);
|
||||
}
|
||||
|
||||
List<DedicatedServer> dedicatedServers = new ArrayList<DedicatedServer>(_repository.getDedicatedServers());
|
||||
@ -139,11 +139,9 @@ public class ServerMonitor
|
||||
iterator.remove();
|
||||
else if (System.currentTimeMillis() - entry.getValue().getValue() > 20000)
|
||||
{
|
||||
System.out.println("-=[SERVER STARTUP TOO SLOW]=- " + entry.getKey());
|
||||
|
||||
String serverName = entry.getKey();
|
||||
String serverAddress = entry.getValue().getKey();
|
||||
killServer(serverName, serverAddress, true);
|
||||
killServer(serverName, serverAddress, "[KILLED] [SLOW-STARTUP] " + serverName + ":" + serverAddress, true);
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
@ -220,7 +218,6 @@ public class ServerMonitor
|
||||
private static void handleGroupChanges(List<DedicatedServer> dedicatedServers, HashMap<String, Entry<String, Long>> serverTracker, ServerGroup serverGroup, boolean free)
|
||||
{
|
||||
int serverNum = 0;
|
||||
//GroupStatusData groupStatus = groupStatusList.get(serverGroup.Name);
|
||||
int requiredTotal = serverGroup.getRequiredTotalServers();
|
||||
int requiredJoinable = serverGroup.getRequiredJoinableServers();
|
||||
int joinableServers = serverGroup.getJoinableCount();
|
||||
@ -231,8 +228,12 @@ public class ServerMonitor
|
||||
// Minimum 1500 slot bufferzone
|
||||
if (serverGroup.getName().equalsIgnoreCase("Lobby"))
|
||||
{
|
||||
if (serverGroup.getMaxPlayerCount() - serverGroup.getPlayerCount() < 1500)
|
||||
serversToAdd = requiredJoinable;
|
||||
int availableSlots = serverGroup.getMaxPlayerCount() - serverGroup.getPlayerCount();
|
||||
|
||||
if (availableSlots < 1500)
|
||||
serversToAdd = Math.max(1, (1500 / availableSlots) - serverGroup.getMaxPlayers());
|
||||
else if (serversToKill > 0)
|
||||
serversToKill = Math.min(serversToKill, (availableSlots - 1500) / 80);
|
||||
}
|
||||
|
||||
while (serversToAdd > 0)
|
||||
@ -262,12 +263,12 @@ public class ServerMonitor
|
||||
{
|
||||
List<MinecraftServer> emptyServers = new ArrayList<MinecraftServer>(serverGroup.getEmptyServers());
|
||||
MinecraftServer emptyServer = emptyServers.get(serversToKill - 1);
|
||||
killServer(emptyServer);
|
||||
killServer(emptyServer, "[KILLED] [EXCESS] " + emptyServer.getName() + ":" + emptyServer.getPublicAddress());
|
||||
serversToKill--;
|
||||
}
|
||||
}
|
||||
|
||||
private static void killServer(final String serverName, final String serverAddress, final boolean announce)
|
||||
private static void killServer(final String serverName, final String serverAddress, final String message, final boolean announce)
|
||||
{
|
||||
String cmd = "/home/mineplex/easyRemoteKillServer.sh";
|
||||
|
||||
@ -291,7 +292,7 @@ public class ServerMonitor
|
||||
if (error)
|
||||
System.out.println("[" + serverName + ":" + serverAddress + "] Kill errored.");
|
||||
else
|
||||
System.out.println("Sent kill command to " + serverAddress + " for " + serverName + " completed");
|
||||
System.out.println(message);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -366,9 +367,9 @@ public class ServerMonitor
|
||||
return bestServer;
|
||||
}
|
||||
|
||||
private static void killServer(final MinecraftServer serverToKill)
|
||||
private static void killServer(final MinecraftServer serverToKill, String message)
|
||||
{
|
||||
killServer(serverToKill.getName(), serverToKill.getPublicAddress(), true);
|
||||
killServer(serverToKill.getName(), serverToKill.getPublicAddress(), message, true);
|
||||
}
|
||||
|
||||
private static void startServer(final DedicatedServer serverSpace, final ServerGroup serverGroup, final int serverNum, final boolean free)
|
||||
|
@ -82,6 +82,7 @@
|
||||
<Compile Include="Model\Server\PvpServer\Weapon.cs" />
|
||||
<Compile Include="Tokens\AccountBatchToken.cs" />
|
||||
<Compile Include="Tokens\AccountNameToken.cs" />
|
||||
<Compile Include="Tokens\Client\AccountTransactionToken.cs" />
|
||||
<Compile Include="Tokens\Client\RankUpdateToken.cs" />
|
||||
<Compile Include="Tokens\Client\DonationBenefitToken.cs" />
|
||||
<Compile Include="Model\Server\PetExtra.cs" />
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
public Account.Account Account { get; set; }
|
||||
|
||||
public long Date { get; set; }
|
||||
|
||||
public string SalesPackageName { get; set; }
|
||||
|
||||
public int Gems { get; set; }
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
public Account.Account Account { get; set; }
|
||||
|
||||
public long Date { get; set; }
|
||||
|
||||
public string Source { get; set; }
|
||||
|
||||
public int Amount { get; set; }
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
public Account.Account Account { get; set; }
|
||||
|
||||
public long Date { get; set; }
|
||||
|
||||
public string Source { get; set; }
|
||||
|
||||
public int Amount { get; set; }
|
||||
|
26
Website/LOC.Core/Tokens/Client/AccountTransactionToken.cs
Normal file
26
Website/LOC.Core/Tokens/Client/AccountTransactionToken.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace LOC.Core.Tokens.Client
|
||||
{
|
||||
public class AccountTransactionToken
|
||||
{
|
||||
public long Date { get; set; }
|
||||
|
||||
public string SalesPackageName { get; set; }
|
||||
|
||||
public int Gems { get; set; }
|
||||
|
||||
public int Coins { get; set; }
|
||||
|
||||
public AccountTransactionToken(Model.Sales.AccountTransaction transaction)
|
||||
{
|
||||
SalesPackageName = transaction.SalesPackageName;
|
||||
Date = transaction.Date;
|
||||
Gems = transaction.Gems;
|
||||
Coins = transaction.Coins;
|
||||
}
|
||||
}
|
||||
}
|
@ -42,6 +42,7 @@
|
||||
Donated = account.Donated,
|
||||
SalesPackages = new List<int>(),
|
||||
UnknownSalesPackages = new List<string>(),
|
||||
Transactions = new List<AccountTransactionToken>(),
|
||||
CustomBuilds = new List<CustomBuildToken>(),
|
||||
Pets = new List<PetToken>(),
|
||||
PetNameTagCount = account.PetNameTagCount
|
||||
@ -86,6 +87,7 @@
|
||||
foreach (var transaction in account.AccountTransactions)
|
||||
{
|
||||
DonorToken.UnknownSalesPackages.Add(transaction.SalesPackageName);
|
||||
DonorToken.Transactions.Add(new AccountTransactionToken(transaction));
|
||||
}
|
||||
|
||||
if (account.CustomBuilds == null)
|
||||
|
@ -9,6 +9,7 @@
|
||||
public bool Donated { get; set; }
|
||||
public List<int> SalesPackages { get; set; }
|
||||
public List<string> UnknownSalesPackages { get; set; }
|
||||
public List<AccountTransactionToken> Transactions { get; set; }
|
||||
public List<CustomBuildToken> CustomBuilds { get; set; }
|
||||
public List<PetToken> Pets { get; set; }
|
||||
public int PetNameTagCount { get; set; }
|
||||
|
@ -207,7 +207,8 @@
|
||||
{
|
||||
Source = token.Source,
|
||||
Account = account,
|
||||
Amount = token.Amount
|
||||
Amount = token.Amount,
|
||||
Date = (long)TimeUtil.GetCurrentMilliseconds()
|
||||
};
|
||||
|
||||
repository.Add<GemTransaction>(gemTransaction);
|
||||
@ -238,7 +239,8 @@
|
||||
{
|
||||
Source = token.Source,
|
||||
Account = account,
|
||||
Amount = token.Amount
|
||||
Amount = token.Amount,
|
||||
Date = (long)TimeUtil.GetCurrentMilliseconds()
|
||||
};
|
||||
|
||||
repository.Add<CoinTransaction>(coinTransaction);
|
||||
@ -502,6 +504,7 @@
|
||||
{
|
||||
Account = account,
|
||||
SalesPackageName = token.SalesPackageName,
|
||||
Date = (long)TimeUtil.GetCurrentMilliseconds(),
|
||||
Gems = token.CoinPurchase ? 0 : token.Cost,
|
||||
Coins = token.CoinPurchase ? token.Cost : 0
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue
Block a user