Giter Club home page Giter Club logo

scouter-paper's People

Contributors

david100gom avatar gunlee01 avatar june-young avatar kakao-kevin-12 avatar kranian avatar mindplates avatar taejs avatar uuuusssseeeerrrr avatar voyagerwoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scouter-paper's Issues

마우스 오버시에 차트의 값이 나오지 않는 현상

데모사이트로 접속해서 Layout을 scouter-demo-complex-01, preset을 scouter-demo-all로 하는 경우,
일부 페이퍼에 아이콘이 없습니다. 그리고 아이콘이 없는 경우 마우스 오버시에 해당 카운터의 값을 보여주는 팝업이 보여지지 않아요.

추가로 기본 Type의 경우에는 이미 정해진 아이콘이 있어 icon이 null 인데 이 경우 아이콘명은 name의 값을 사용하면 됩니다.

paper 조회 range 단위 조정

  • short term 조회는 max 3시간으로 변경 (1시간은 짧음. - scouter 전용 클라이언트에서는 4시간임)
  • 단 xlog는 1시간 이상인 경우는 조회하지 않는다.
  • long term 조회는 max 15일간 조회로 변경
  • scouter 전용 클라이언트에서는 조회 기간 제한 없음
  • 조회기간의 min이 1 day 임.

차트 min값 조정

10이면 너무 큰 경우가 있어 더 작게 조절 필요.
예를들면 에러율등은 0.5인지 1.5인지 판단이 중요한 시스템이 있음.

언제부터인가 인스턴스 추가시 에러가 발생하고 새로 고침시 인스턴스 선택 안됨

Warning: Hash history cannot PUSH the same path; a new entry will not be added to the history stack
a.(anonymous function) @ raven.js:58
stack_frame_overlay_proxy_console @ index.js:2177
warning @ browser.js:49
(anonymous) @ createHashHistory.js:213
confirmTransitionTo @ createTransitionManager.js:44
push @ createHashHistory.js:191
setInstances @ InstanceSelector.js:305
callCallback @ react-dom.development.js:542
d @ raven.js:438
invokeGuardedCallbackDev @ react-dom.development.js:581
invokeGuardedCallback @ react-dom.development.js:438
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:452
executeDispatch @ react-dom.development.js:836
executeDispatchesInOrder @ react-dom.development.js:858
executeDispatchesAndRelease @ react-dom.development.js:956
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:967
forEachAccumulated @ react-dom.development.js:935
processEventQueue @ react-dom.development.js:1112
runEventQueueInBatch @ react-dom.development.js:3607
handleTopLevel @ react-dom.development.js:3616
handleTopLevelImpl @ react-dom.development.js:3347
batchedUpdates @ react-dom.development.js:11082
batchedUpdates @ react-dom.development.js:2330
dispatchEvent @ react-dom.development.js:3421
d @ raven.js:438

paper v1.6.218 에서 스카우터 로그인 주소가 undefined로 나오는 현상

안녕하세요? 스카우터 웹 버전을 알게 되어 테스트 하고 있는데. 신규 pre-release 버전에 아래와 같은 스카우터
주소 설정 과 로그인이 안되는 현상이 확인되어 올립니다.

scouter 버전 v1.8.5

  • 스카우터 컬렉터 서버 접근 확인
    image

사용한 크롬 버전 63.0.3239.108(공식 빌드) (64비트)

image

paper 버전 v.1.6.218

image

로그인 화면 로그인 버튼 클릭시 오류

image

설정 화면 add server 버튼을 클릭해도 반응이 없습니다.

image

데이터가 없는 매트릭 추가되지 않음

데이터가 존재하는 매트릭이 추가된 페이퍼에, 데이터가 없는 매트릭을 추가하면 페이퍼 제목에 해당 매트릭이 누락되어 보이지 않고, 툴팁에 나오지 않으며, 매트릭 순서에 따라 툴팁이 아예 안나오는 경우도 있음

서버 시간 동기화 기능

서버 시간과 수십초 이상 차이나는 경우 차트가 눈에 띠게 벌어지는 부분등을 보정하기 위해 서버시간 동기화.

xlog y축 증감 비율

xlog의 y축 증감비율이 1.0 을 조정하면 좋을 것 같아요.

  • 5초 -> 10초 이런식으로 늘어나서 너무 빠르게 증가됨. 0.5정도 비율이면 좋을 듯.

초기 화면 로드시 10분 데이터 차트 이상

  • HostAgent가 있는 경우 차트가 끊기게 그려지는 문제
  • 끊긴 차트에서 마우스를 이리저리 움직이는 경우 CPU 과점, 다른 Route로 이동해도 CPU 해소되지 않음
  • 이후 다시 돌아오면 인스턴스 선택이 초기화 되어 있음

Long term 조회시 요청이 날짜단위로 요청됨.

  • web api에서 날짜 기간으로 조회되지 않는 버그가 픽스되었으므로 기간으로 조회하도록 변경되어야 합니다.
  • Long term 조회시 각 counter에 맞는 obj hash만 전송되어야 합니다.
    (이렇게 요청하면 서버에서 조회할 필요가 없는 obj hash에 대해서도 해당 counter 값을 조회하게 됨
    물론 값은 없어서 결과는 동일하지만 obj의 개수가 많아지면 부하가 가중됨.)

longterm 파라미터가 없는 경우 자동 판단 기능

외부(scouter 전용 클라이언트등)에서 url link를 제작하여 브라우저를 여는 경우
longterm이 클라이언트 설정이라 파라미터로 주기가 애매한 경우가 있음.
위 파라미터가 없는 경우 각 클라이언트 설정에 맞게 자동으로 적용되는 기능 필요

파라미터를 통한 레이아웃 세팅 기능 및 xlog 높이 조정 기능 추가.

1. 파라미터를 통한 레이아웃 세팅 (레이아웃 명 또는 layouts, boxes 파라미터를 통해.)

  • 기본 레이아웃 몇개를 제공하여 그 레이아웃을 이름으로 레이아웃을 세팅하거나 하는 기능
    (최초 사용자의 경우나 헤드리스 브라우저로 그리는 경우, 설정한 layout이 없으므로 화면이 그려지지 않는 문제가 있음)

2. xlog 높이를 파라미터로 조정가능하도록

  • 헤드리스 브라우저로 그리는 경우에 기본 2초로만 그려지는 현상 개선

* 아래 이미지는 헤드리스로 생성된 이미지이며 xlog가 2초로 고정됨.

paper2

Preset feature

  • Preset feature
    • save a preset about current setting on the view.
      • preset name, instances, server, port

XLOG 드래그 이벤트 서버 오류

추가된 API 호출시 오류가 발생합니다.

#cp073 02:01:11.971 [qtp2087258327-22] ERROR s.w.f.e.m.GenericExceptionMapper[66] - [WebApplicationException] 500 - java.io.EOFException [caused by] null, [uri]v1/xlog-data/20180305/multi/-2761765471835399660 java.lang.RuntimeException: java.io.EOFException at scouterx.webapp.framework.client.net.TcpProxy.process(TcpProxy.java:206) at scouterx.webapp.framework.client.net.TcpProxy.process(TcpProxy.java:131) at scouterx.webapp.layer.consumer.XLogConsumer.retrieveXLogPacksByTxids(XLogConsumer.java:234) at scouterx.webapp.layer.consumer.XLogConsumer.retrieveXLogDataListByTxids(XLogConsumer.java:194) at scouterx.webapp.layer.service.XLogService.retrieveXLogDataListByTxids(XLogService.java:107) at scouterx.webapp.layer.controller.XLogDataController.retrieveXLogDataListByTxids(XLogDataController.java:205) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) at scouterx.webapp.framework.filter.ReleaseResourceFilter.doFilter(ReleaseResourceFilter.java:44) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at scouterx.webapp.framework.filter.NoCacheFilter.doFilter(NoCacheFilter.java:40) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at scouterx.webapp.framework.filter.CorsFilter.doFilter(CorsFilter.java:65) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at scouterx.webapp.framework.filter.LoggingInitServletFilter.doFilter(LoggingInitServletFilter.java:50) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:564) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.EOFException: null at java.io.DataInputStream.readByte(DataInputStream.java:267) at scouter.io.DataInputX.readByte(DataInputX.java:295) at scouterx.webapp.framework.client.net.TcpProxy.process(TcpProxy.java:196) ... 67 common frames omitted 02:01:59.729 [scouterx.webapp.framework.client.model.AgentModelThread] INFO s.w.framework.client.net.TcpProxy[110] - TcpProxy closed : pool-size:4, scouterx.webapp.framework.client.net.TcpProxy@4d5d943d, stack: java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed at scouterx.webapp.framework.client.net.TcpProxy.process(TcpProxy.java:206) at scouterx.webapp.framework.client.model.AgentModelThread.fetchObjectList(AgentModelThread.java:88) at scouterx.webapp.framework.client.model.AgentModelThread.run(AgentModelThread.java:64) Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at java.io.DataInputStream.readByte(DataInputStream.java:265) at scouter.io.DataInputX.readByte(DataInputX.java:295) at scouterx.webapp.framework.client.net.TcpProxy.process(TcpProxy.java:196) ... 2 more

long term 조회시 1일치 조회시 차트가 제대로 안그려지는 문제

  • from=20180505000000&to=20180506000000
    위와 같이 정확시 하루치 00시00분~00시00분인 경우 차트가 제대로 그려지지 않음.
    2018-05-07 3 22 10

  • from=20180505000000&to=20180506010000 과 같이 1분이라도 주는 경우
    또는 from=20180504000000&to=20180506000000 와 같이 2일치 00시00분~00시00분인 경우 혹은 더 긴 날짜들을 조회해도 차트가 제대로 그려짐

2018-05-07 3 22 35
2018-05-07 3 24 15

Layout 로드시 paper에 (Tomcat paper가 아닌데도) Tomcat이 붙어있는 문제.

Layout 로드시에 mysql 메트릭만 있는 paper에 tomcat, mysql로 tomcat 명칭이 붙어 있음.

  • 재현 (데모시스템으로 접속하여)
  • Demo-system-main-dashboard 로드
  • 이후 Demo-system-MySQL-dashboard 로드.
    • 이때 Paper의 라벨이 이상함.
  • 다시 Demo-system-main-dashboard 로드
    • 이때에도 Paper의 라벨이 이상함
  • 이런 경우 해당 Paper에 최근 10분 데이터가 조회 되지 않는다.

쿼리 변수 바인딩이 잘못되는 문제

쿼리의 바인드 변수 외에 scouter가 쿼리의 normalization을 위해 리터럴 부분(바인드 변수 처리되지 않은 문자부분 및 숫자부분)을 자체적으로 변수 처리한 부분이 제대로 처리 되지 않는 문제.

프로파일에 글자 잘림

  • 각 step의 시간중 밀리세컨드 쪽이 좀 잘려서 나옴.
  • THREAD CALL 스텝의 경우 스텝 제목이 길어서 잘림.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.