scouter-project/scouter

perm text 파일 데이터 관리

devmjkim opened this issue · 0 comments

플러그인을 빌트인하여 scouter 서버를 사용하는 중 ArrayIndexOutOfBoundsException 이 지속적으로 발생하고 있습니다.

확인해보면 referer 데이터를 가져올 때 text_referer.data 파일 크기가 5GB가 넘어가며 검색 시 깊은 순회가 이루어지며 error log 출력 시 DataInputX.toLong(key, 0)에서 ArrayIndexOutOfBoundsException이 발생하네요.

Logger.println("S152", 10, "[warn] Too many index deep searching. " + DataInputX.toLong(key, 0));

우선 원인이 되는 referer 데이터 크기가 다른 text 파일은 300MB가 안된 것에 비해 파일 크키가 많이 차이가 나는데 referer 데이터을 수동으로 삭제하지 않고 자동으로 정리할 수 있는 방법이 있을까요?
userAgent, apicall, service 필드 등은 conf로 날짜 디렉토리에 저장할 수 있도록 되어있는데 referer은 conf로 조정이 되지 않아서 문의드립니다.

        at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at scouter.server.plugin.builtin.PluginInvocation.process(PluginInvocation.java:22)
        at scouter.server.plugin.builtin.BuiltInPluginManager.invokeAllPlugins(BuiltInPluginManager.java:72)
        at scouter.server.plugin.PlugInManager.xlog(PlugInManager.java:42)
        at scouter.server.core.XLogCore$$anonfun$2.apply$mcV$sp(XLogCore.scala:60)
        at scouter.server.util.ThreadScala$$anon$2.run(ThreadScala.scala:27)
java.lang.ArrayIndexOutOfBoundsException: 4
        at scouter.io.DataInputX.toLong(DataInputX.java:173)
        at scouter.server.db.io.IndexKeyFile.get(IndexKeyFile.scala:96)
        at scouter.server.db.text.TextPermIndex.get(TextPermIndex.scala:86)
        at scouter.server.db.TextPermRD$.getString(TextPermRD.scala:34)
        at scouter.server.db.TextPermRD.getString(TextPermRD.scala)