feat: 能耗监控添加忽略列表 详见monitor.yml

Signed-off-by: 502647092 <admin@yumc.pw>
This commit is contained in:
502647092 2016-07-16 22:24:43 +08:00
parent 08fc991e85
commit c282213d02
7 changed files with 18 additions and 10 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>pw.yumc</groupId> <groupId>pw.yumc</groupId>
<artifactId>Yum</artifactId> <artifactId>Yum</artifactId>
<version>2.6.1</version> <version>2.6.2</version>
<name>Yum</name> <name>Yum</name>
<description>Minecraft 服务器插件管理系统</description> <description>Minecraft 服务器插件管理系统</description>
<build> <build>
@ -60,9 +60,9 @@
<properties> <properties>
<update.description>&amp;a全新 2.X 版本 更多守护与优化</update.description> <update.description>&amp;a全新 2.X 版本 更多守护与优化</update.description>
<update.changes> <update.changes>
&amp;b2.6.2 &amp;6- &amp;d能耗监控添加忽略列表 &amp;3详见monitor.yml...;
&amp;b2.6.1 &amp;6- &amp;c优化能耗监控 命令别名修改为mi(防止与ESS冲突)...; &amp;b2.6.1 &amp;6- &amp;c优化能耗监控 命令别名修改为mi(防止与ESS冲突)...;
&amp;b2.6 &amp;6- &amp;a添加能耗监控系统 事件错误监控...; &amp;b2.6 &amp;6- &amp;a添加能耗监控系统 事件错误监控...;
&amp;b2.5 &amp;6- &amp;d修复主线程守护系统错误...;
</update.changes> </update.changes>
<env.GIT_COMMIT>DEBUG</env.GIT_COMMIT> <env.GIT_COMMIT>DEBUG</env.GIT_COMMIT>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@ -59,9 +59,6 @@ public class Yum extends JavaPlugin {
new VersionChecker(this); new VersionChecker(this);
YumAPI.updateRepo(Bukkit.getConsoleSender()); YumAPI.updateRepo(Bukkit.getConsoleSender());
YumAPI.updateCheck(Bukkit.getConsoleSender()); YumAPI.updateCheck(Bukkit.getConsoleSender());
if (ConfigManager.i().isMonitorEnable()) {
YumAPI.updateInject();
}
} }
@Override @Override

View File

@ -106,7 +106,7 @@ public class YumAPI {
* 插件 * 插件
*/ */
public static void inject(final Plugin plugin) { public static void inject(final Plugin plugin) {
if (plugin.isEnabled()) { if (plugin.isEnabled() && !ConfigManager.i().getMonitorIgnoreList().contains(plugin.getName())) {
CommandInjector.inject(plugin); CommandInjector.inject(plugin);
ListenerInjector.inject(plugin); ListenerInjector.inject(plugin);
TaskInjector.inject(plugin); TaskInjector.inject(plugin);

View File

@ -40,6 +40,7 @@ public class MonitorCommand implements HandlerCommands {
private final String total = "§6总耗时: §a%.2f毫秒 "; private final String total = "§6总耗时: §a%.2f毫秒 ";
private final String count = "§6执行次数: §b%s次 "; private final String count = "§6执行次数: §b%s次 ";
private final String avg = "§6平均耗时: §d%.5f毫秒!"; private final String avg = "§6平均耗时: §d%.5f毫秒!";
private final String avg_warn = "§6平均耗时: §c%.5f毫秒!";
private final String p_n_f = prefix + "§c插件 §b%s §c不存在!"; private final String p_n_f = prefix + "§c插件 §b%s §c不存在!";
private final double um = 1000000.0; private final double um = 1000000.0;
@ -127,7 +128,8 @@ public class MonitorCommand implements HandlerCommands {
str.append(String.format(total, eventTotalTime.get(event) / um)); str.append(String.format(total, eventTotalTime.get(event) / um));
str.append(String.format(count, eventCount.get(event))); str.append(String.format(count, eventCount.get(event)));
if (eventCount.get(event) != 0) { if (eventCount.get(event) != 0) {
str.append(String.format(avg, eventTotalTime.get(event) / um / eventCount.get(event))); final double avgTime = eventTotalTime.get(event) / um / eventCount.get(event);
str.append(String.format(avgTime < 10 ? avg : avg_warn, avgTime));
} }
e.getSender().sendMessage(str.toString()); e.getSender().sendMessage(str.toString());
} }

View File

@ -15,6 +15,7 @@ import org.bukkit.plugin.TimedRegisteredListener;
import cn.citycraft.PluginHelper.ext.kit.Reflect; import cn.citycraft.PluginHelper.ext.kit.Reflect;
import cn.citycraft.PluginHelper.kit.PluginKit; import cn.citycraft.PluginHelper.kit.PluginKit;
import pw.yumc.Yum.managers.ConfigManager;
public class ListenerInjector implements EventExecutor { public class ListenerInjector implements EventExecutor {
private final String prefix = "§6[§bYum §a事件监控§6] "; private final String prefix = "§6[§bYum §a事件监控§6] ";
@ -70,7 +71,7 @@ public class ListenerInjector implements EventExecutor {
final long end = System.nanoTime(); final long end = System.nanoTime();
final String en = event.getEventName(); final String en = event.getEventName();
final long lag = end - start; final long lag = end - start;
if (lag / 1000000 > 10) { if (lag / 1000000 > 10 && !ConfigManager.i().getMonitorIgnoreList().contains(plugin.getName())) {
PluginKit.sc("§6[§bYum §a能耗监控§6] §c注意! §6插件 §b" + plugin.getName() + " §6处理 §d" + event.getEventName() + " §6事件时§c耗时 §4" + lag / 1000000 + "ms!"); PluginKit.sc("§6[§bYum §a能耗监控§6] §c注意! §6插件 §b" + plugin.getName() + " §6处理 §d" + event.getEventName() + " §6事件时§c耗时 §4" + lag / 1000000 + "ms!");
} }
if (eventTotalTime.containsKey(en)) { if (eventTotalTime.containsKey(en)) {

View File

@ -40,6 +40,10 @@ public class ConfigManager {
return config.getStringList("ignorelist"); return config.getStringList("ignorelist");
} }
public List<String> getMonitorIgnoreList() {
return monitor.getStringList(IGNORE);
}
public List<String> getNetworkBlackList() { public List<String> getNetworkBlackList() {
return network.getStringList(BLACK); return network.getStringList(BLACK);
} }
@ -96,5 +100,6 @@ public class ConfigManager {
setop.reload(); setop.reload();
network.reload(); network.reload();
thread.reload(); thread.reload();
monitor.reload();
} }
} }

View File

@ -3,7 +3,10 @@
############################ ############################
#配置版本号 请勿修改!!! #配置版本号 请勿修改!!!
Version: 1.0 Version: 1.1
#是否开启 #是否开启
Enable: true Enable: true
#忽略检测列表
Ignore:
- Essentials