Coder Social home page Coder Social logo

xaecbd / rct Goto Github PK

View Code? Open in Web Editor NEW
173.0 12.0 28.0 2.63 MB

RCT (Redis Computed Tomography) include parse redis rdb , slowlog analyze and clientlist analyze

License: Apache License 2.0

Dockerfile 0.29% Shell 0.08% Java 62.43% JavaScript 36.02% HTML 0.15% CSS 1.03%
redis rdb redis-rdb-tools rdr

rct's Introduction

Language: 🇺🇸 🇨🇳

RCT(Redis Computed Tomography)

RCT is a one-stop platform for Redis memory structure analysis by parsing RDB files. Support for non-clustered/clustered RDB file analysis, Slowlog query, and monitoring, ClientList query and monitoring.

Functions

  • Memory analysis

    Through the RDB file analysis, Redis memory uses analysis, support multi-dimensional, multi-report. Support manual, automatic multiple ways! Provide report generation, Redis key export, and other functions!

  • Slowlog

    Slowlog module can regularly collect slowlog information, multidimensional report summary, convenient to view the current slowlog details of the cluster

  • ClientList

    ClientList module can easily and efficiently analyze and view the client connection!

Product preview

Screenshot section mainly introduces the main functions of RCT, a series of processes, you can understand the main functions of our platform and application scenarios.

Quick start

jre(linux and windows)

Before you begin, make sure you install jre1.8+ and download the release package in the release.

For example, click rct-dashboard -2.0.0-release.tar.gz to download and extract it (WinRAR software can be used to extract it under Windows, and commands can be used under Linux tar xvf RCT-Dashboard-2.0.0-release.tar.gz)

  1. Preferred startup control center RCT-dashboard

    java -jar RCT-Dashboard-2.0.0.jar
    
  2. Start the analyzer rct-analyze

    java -jar -Xmx1024m -Xms300m RCT-Analyze-2.0.0.jar
    

    Adjust the maximum heap size according to the RDB file size ( be sure to limit the heap size to avoid a performance impact on the online machine ), Rct-analyze is deployed on rdb-generated machines, or redis installation machines, with one instance deployed per machine.

  3. Enter the system

    In the browser to access http://127.0.0.1:8080, enter account and password, the default password for rct/rct

docker(only Linux platform)

  1. Preferred startup control center RCT-dashboard
  • Default Settings
    docker run -d  --net=host xaecbd/rct-dashboard:latest
    
  • Custom configurations (before execution, please placed on the host config/application.properties db/data.db)
    docker run -d  -v /opt/app/rct/rct-dashboard/config:/opt/app/rct/rct-dashboard/config -v /opt/app/rct/rct-dashboard/db:/opt/app/rct/rct-dashboard/db --net=host xaecbd/rct-dashboard:latest
    
  1. Start the analyzer rct-analyze
  • Default Settings
     docker run -d -e "JAVA_OPTIONS=-Xmx1024m -Xms300m" --net=host xaecbd/rct-analyze:latest
    
  • Custom configurations (before execution, please place the config/application.properties on the host)
    docker run -d -e "JAVA_OPTIONS=-Xmx1024m -Xms300m" -v /opt/app/rct/rct-analyze/config:/opt/app/rct/rct-analyze/config -v /data/redis/redis_cluster:/data/redis/redis_cluster --net=host xaecbd/rct-analyze:latest
    

Adjust the maximum heap size appropriately based on the RDB size.

  1. Enter the system
    In the browser to access http://127.0.0.1:8080, enter account and password, the default password for rct/rct.

Versions

At present, the support is limited to the following versions. As for the higher version, it is under development!

redis version rct version
[2.6-5.0.3] 2.X

The user manual

The user manual mainly introduces the main functions of each module of RCT

  1. Chart module introduction
  2. Introduction to RDB analysis module
  3. SlowLog module introduction
  4. Introduction to ClientList module

RCT usage tutorial

  1. Use RDB analysis tool for quick analysis
  2. How do I add an instance of redis

Product Design

The design document mainly introduces the RCT architecture design and framework design

  1. Code structure introduction
  2. Design scheme

TODO

If you want to know more things, please see TODO document.

rct's People

Contributors

dr-kyle avatar loernl avatar trumandu 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

rct's Issues

dashboard and analyze are use same port 8082?

start Dashboard: java -jar RCT-Dashboard-2.1.0.jar

2019-04-02 18:19:41,771 INFO [main] TomcatWebServer: Tomcat started on port(s): 8082 (http) with context path ''
2019-04-02 18:19:41,774 INFO [main] EurekaAutoServiceRegistration: Updating port to 8082
2019-04-02 18:19:41,778 INFO [main] StartApp: Started StartApp in 23.877 seconds (JVM running for 28.332)
2019-04-02 18:19:41,873 INFO [main] StartApp: RCT dashboard sevice start success!

start Analyze : java -jar -Xmx256m -Xms256m RCT-Analyze-2.1.0.jar

2019-04-02 18:21:26,311 INFO [main] Http11NioProtocol: Pausing ProtocolHandler ["http-nio-8082"]
2019-04-02 18:21:26,311 INFO [main] StandardService: Stopping service [Tomcat]
2019-04-02 18:21:26,327 INFO [main] LifecycleBase: The stop() method was called on component [StandardServer[-1]] after stop() had already been called. The second call will be ignored.
2019-04-02 18:21:26,327 INFO [main] Http11NioProtocol: Stopping ProtocolHandler ["http-nio-8082"]
2019-04-02 18:21:26,327 INFO [main] Http11NioProtocol: Destroying ProtocolHandler ["http-nio-8082"]
2019-04-02 18:21:26,335 INFO [main] ConditionEvaluationReportLoggingListener:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-04-02 18:21:26,338 ERROR [main] LoggingFailureAnalysisReporter:
The Tomcat connector configured to listen on port 8082 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8082, or configure this application to listen on another port.

2019-04-02 18:21:26,342 INFO [main] AnnotationConfigServletWebServerApplicationContext: Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1ce92674: startup date [Tue Apr 02 18:21:20 CST 2019]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@28864e92
2019-04-02 18:21:26,343 INFO [main] EurekaServiceRegistry: Unregistering application analyze with eureka with status DOWN
2019-04-02 18:21:26,347 INFO [main] DefaultLifecycleProcessor: Stopping beans in phase 0
2019-04-02 18:21:29,385 INFO [main] AnnotationMBeanExporter: Unregistering JMX-exposed beans on shutdown
2019-04-02 18:21:29,387 INFO [main] AnnotationMBeanExporter: Unregistering JMX-exposed beans

deploy error

hi:
My environment is:
master: 192.168.1.x: 6379
slave: 192.168.1.y: 6379
One master and one slave.
According to your deployment document, execute the jar package without making any changes to the application.properties file. Manually performing analysis always reports the following error:
analyze job just parse one of slaves rdb file in all masters .

图片
Ask you: Is there anything wrong with the setting?
There is also a problem with the Data Path configuration path. For example, my dump.rdb file path is: /var/lib/redis/dump.rdb Why can't I write / var / lib / redis, the prompt is to / var / lib / redis Looking under the / 6379 / directory?

Not support Java 11 for exception javax.xml.bind.JAXBContext not present

When I run the package of RCT-Analyze-2.0.0.jar in Java 11, I got an exception below

java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present
        at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)
        at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
        at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
        at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
        at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at java.base/sun.reflect.generics.repository.ClassRepository.computeSuperInterfaces(ClassRepository.java:117)
        at java.base/sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:95)
        at java.base/java.lang.Class.getGenericInterfaces(Class.java:1138)

The initial judgment is that the java.xml.bind module has been removed from Java 11, can you add it?

analyze无法解析rdb

image
报错如上
1.redis版本3,主从
2.redis主从节点都安装analyze jar包,且启动非docker
3.redis rdb文件目录/data/redis/redis_6789/data/6789/dump.rdb, RCT Data path设置的是/data/redis/redis_6789/data
4.redis主节点的analyze日志如下:
2022-01-12 15:58:20,676 ERROR [http-nio-8082-exec-7] [dispatcherServlet]: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request
processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at org.nesc.ecbd.service.RDBAnalyzeService.doCheck(RDBAnalyzeService.java:92)
at org.nesc.ecbd.controller.RDBAnalyzeController.init(RDBAnalyzeController.java:63)
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.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

RDB Analyze page bug

  1. if no rdb info ,Analyze button should not click.
  2. if rdb info add,Add button and Status:please add the rdb info!!! Should change.
  3. if edit rdb info , modify the rdb info click cancle, rdb info should not change.
  4. edit page 确认 and 取消 Button is chinese

standalone redis bug

在standalone redis 中,获取redis ip列表有问题,无法获取到自身的ip.

org.nesc.ecbd.utils.RedisUtil.standAloneRedisNodes 方法有bug,考虑场景不全。

分析rdb文件报错

10.249.201.87 analyzeInstance inactive!
analyze job just parse one of slaves rdb file in all masters .

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.