diff --git a/scouter.agent.java/src/scouter/agent/Configure.java b/scouter.agent.java/src/scouter/agent/Configure.java index 5d63f3fde..dafcd3c37 100644 --- a/scouter.agent.java/src/scouter/agent/Configure.java +++ b/scouter.agent.java/src/scouter/agent/Configure.java @@ -258,7 +258,7 @@ public final static synchronized Configure getInstance() { public int heap_perm_warning_pct = 90; public long heap_perm_alert_interval = 30000; - public boolean enable_spring_request_mapping = true; + public boolean hook_spring_request_mapping = false; public boolean debug_sql_call = false; public int socket_open_fullstack_port = 0; @@ -546,7 +546,7 @@ private void apply() { this.heap_perm_alert_interval = getLong("heap_perm_alert_interval", 30000); this.heap_perm_warning_pct = getInt("heap_perm_warning_pct", 90); - this.enable_spring_request_mapping = getBoolean("enable_spring_request_mapping", true); + this.hook_spring_request_mapping = getBoolean("hook_spring_request_mapping", false); this.alert_message_length = getInt("alert_message_length", 3000); this.alert_send_interval = getInt("alert_send_interval", 3000); diff --git a/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java b/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java index c41fc5bde..289d9b064 100644 --- a/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java +++ b/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java @@ -42,7 +42,7 @@ public boolean isTarget(String className) { Configure conf = Configure.getInstance(); public ClassVisitor transform(ClassVisitor cv, String className, ClassDesc classDesc) { - if (conf.enable_spring_request_mapping == false) + if (conf.hook_spring_request_mapping == false) return cv; if (classDesc.anotation != null) { diff --git a/scouter.client/splash.bmp b/scouter.client/splash.bmp index 873d555b7..922f8ecb0 100644 Binary files a/scouter.client/splash.bmp and b/scouter.client/splash.bmp differ diff --git a/scouter.deploy/build.xml b/scouter.deploy/build.xml index cb4b66128..c264f351d 100644 --- a/scouter.deploy/build.xml +++ b/scouter.deploy/build.xml @@ -4,7 +4,7 @@ - + diff --git a/scouter.server/src/scouter/server/db/TextPermWR.scala b/scouter.server/src/scouter/server/db/TextPermWR.scala index 5c1c1f549..d8df9fbcf 100644 --- a/scouter.server/src/scouter/server/db/TextPermWR.scala +++ b/scouter.server/src/scouter/server/db/TextPermWR.scala @@ -41,18 +41,20 @@ object TextPermWR { val queue = new RequestQueue[Data](DBCtr.LARGE_MAX_QUE_SIZE); - val common = new IntSet(); - common.add(HashUtil.hash(TextTypes.METHOD)); - common.add(HashUtil.hash(TextTypes.GROUP)); - common.add(HashUtil.hash(TextTypes.CITY)); - //move to perm db - common.add(HashUtil.hash(TextTypes.LOGIN)); - common.add(HashUtil.hash(TextTypes.DESC)); - common.add(HashUtil.hash(TextTypes.GROUP)); - common.add(HashUtil.hash(TextTypes.USER_AGENT)); - +// val common = new IntSet(); +// common.add(HashUtil.hash(TextTypes.METHOD)); +// common.add(HashUtil.hash(TextTypes.GROUP)); +// common.add(HashUtil.hash(TextTypes.CITY)); +// //move to perm db +// common.add(HashUtil.hash(TextTypes.LOGIN)); +// common.add(HashUtil.hash(TextTypes.DESC)); +// common.add(HashUtil.hash(TextTypes.GROUP)); +// common.add(HashUtil.hash(TextTypes.USER_AGENT)); + + //에러만 날짜별로 저장한다.-20151110 + val errorHash = HashUtil.hash(TextTypes.ERROR); def isA(divs: Int): Boolean = { - return common.contains(divs); + return divs != errorHash; } ThreadScala.start("scouter.server.db.TextPermWR") { diff --git a/scouter.server/src/scouter/server/plugin/PlugInLoader.java b/scouter.server/src/scouter/server/plugin/PlugInLoader.java index 95c8fb251..b36b2aa6a 100644 --- a/scouter.server/src/scouter/server/plugin/PlugInLoader.java +++ b/scouter.server/src/scouter/server/plugin/PlugInLoader.java @@ -167,7 +167,8 @@ private IPlugIn create(File file, String className, Class superClass, Class para method = CtNewMethod.make("public void " + methodName + "(" + parameter + " p){}", impl); impl.addMethod(method); } - method.setBody("{" + parameter + " $p=$1;" + body + "}"); + + method.setBody("{" + parameter + " $pack=$1;" + body + "}"); c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null); IPlugIn plugin = (IPlugIn) c.newInstance(); diff --git a/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java b/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java index 3ca478a21..3af15c48a 100644 --- a/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java +++ b/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java @@ -49,7 +49,7 @@ public synchronized static AlertRuleLoader getInstance() { if (instance == null) { instance = new AlertRuleLoader(); instance.setDaemon(true); - instance.setName("FxAlertRuleLoader"); + instance.setName("AlertRuleLoader"); instance.start(); } return instance; @@ -125,6 +125,7 @@ private void checkModified(File root) { if (conf.lastModified != ruleConf.lastModified()) { conf = createConf(name, ruleConf); alertConfTable.put(name, conf); + } } } @@ -144,20 +145,22 @@ private File getConfFile(String f) { return null; } - //각 룰에 대한 기본 설정을 로딩한다. + // 각 룰에 대한 기본 설정을 로딩한다. // 각 설정은 스크립트에서 변경할 수 있다. private AlertConf createConf(String name, File confFile) { AlertConf conf = new AlertConf(); - if (confFile != null) { + if (confFile != null && confFile.canRead()) { conf.lastModified = confFile.lastModified(); byte[] body = FileUtil.readAll(confFile); - Properties p = new Properties(); - try { - p.load(new ByteArrayInputStream(body)); - } catch (IOException e) { + if (body != null) { + Properties p = new Properties(); + try { + p.load(new ByteArrayInputStream(body)); + } catch (Exception e) { + } + conf.history_size = getInt(p, "history_size", 0); + conf.silent_time = getInt(p, "silent_time", 0); } - conf.history_size = getInt(p, "history_size", 0); - conf.silent_time = getInt(p, "silent_time", 0); } return conf; } @@ -182,19 +185,18 @@ private AlertRule createRule(String name, File ruleFile) { Class c = null; CtClass cc = cp.get(AlertRule.class.getName()); CtClass impl = null; + CtMethod method = null; try { impl = cp.get(name); impl.defrost(); - CtMethod method = impl.getMethod("process", "(" + nativeName(RealCounter.class) + ")V"); - method.setBody("{" + RealCounter.class.getName() + " $c=$1;" + body + "}"); - c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null); + method = impl.getMethod("process", "(" + nativeName(RealCounter.class) + ")V"); } catch (javassist.NotFoundException e) { impl = cp.makeClass(name, cc); - CtMethod method = CtNewMethod.make("public void process(" + RealCounter.class.getName() + " c){}", impl); + method = CtNewMethod.make("public void process(" + RealCounter.class.getName() + " c){}", impl); impl.addMethod(method); - method.setBody("{" + RealCounter.class.getName() + " $c=$1;" + body + "}"); - c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null); } + method.setBody("{" + RealCounter.class.getName() + " $counter=$1;" + body + "}"); + c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null); AlertRule rule = (AlertRule) c.newInstance(); rule.lastModified = ruleFile.lastModified();