StyleTang opened a new pull request #744:
URL: https://github.com/apache/rocketmq-externals/pull/744


   
   
   
   
   ## What is the purpose of the change
   
   Add RocketMQ message trace timeline Graph UI.
   We can find detail information here 
[#743](https://github.com/apache/rocketmq-externals/issues/743)
   This is the initial version of Message Trace UI, any suggestions are welcome😀
   
   ## Brief changelog
   
   This pull request is mainly for message trace UI,  the console project have 
introduced Echarts before, so we keep using Echarts as our framework to 
implement the message trace timeline UI.
   
   The timeline UI definition is as follows:
   
   * xAxis is the duration( Since retry will make the duration very long, we 
show the first 10 seconds by default)
   
   * yAxis shows the performance of each group (1 producer group and >=0 
subscription group)
   
     * The first line is the producer message trace information.
     * Everything below the first line is consumer message trace information. 
(if there are multiple subscription groups then multiple lines in parallel)
   
   * message trace node label is costTime (in ms), hover information contains
   
     ```
     costTime
     status
     beginTimeStamp
     endTimeStamp
     clientHost
     storeHost
     retryTimes
     ```
   
   * If the consumer trace status is fail, it will turn red, otherwise it will 
be green
   
   The change log in this pull request are as follows:
   
   - [x] Backend 
        - [x] Add viewMessageTraceGraph method (aggregate MessageTraceView list)
        - [x] MessageTraceView add filed requestId and retryTimes
        - [x] Add Unit Test MessageTraceServiceImplTest
        - [x] Add lombok dependency
   - [x] Frontend
        - [x] Implement message trace graph UI
          - [x] produce message trace
          - [x] consume message trace
            - [x] consumer retry message (error message display)
            - [x] multiple subscriptions support
        - [x] Upgrade echarts to 5.1.2
        - [x] Message trace page can fetch message id from routeParams
   
   ## Verifying this change
   
   ### Test Cases
   
   #### 1 Multiple subscription groups consume succeed 
   
   
![image](https://user-images.githubusercontent.com/5286751/124361443-df3a2400-dc61-11eb-9dc9-18ad7adce647.png)
   
   
   #### 2 Multiple subscription groups consume succeed (with retry)
   
![image](https://user-images.githubusercontent.com/5286751/124361450-ecefa980-dc61-11eb-8d72-4c567a80c6be.png)
   
   
   
   ### Unit Test
   
![image](https://user-images.githubusercontent.com/5286751/124361457-f6791180-dc61-11eb-931d-2d2c8b4f857b.png)
   
   
   
   
   Follow this checklist to help us incorporate your contribution quickly and 
easily. Notice, `it would be helpful if you could finish the following 5 
checklist(the last one is not necessary)before request the community to review 
your PR`.
   
   - [x] Make sure there is a [Github 
issue](https://github.com/apache/rocketmq/issues) filed for the change (usually 
before you start working on it). Trivial changes like typos do not require a 
Github issue. Your pull request should address just this issue, without pulling 
in other changes - one PR resolves one issue. 
   - [x] Format the pull request title like `[ISSUE #123] Fix UnknownException 
when host config not exist`. Each commit in the pull request should have a 
meaningful subject line and body.
   - [x] Write a pull request description that is detailed enough to understand 
what the pull request does, how, and why.
   - [x] Write necessary unit-test(over 80% coverage) to verify your logic 
correction, more mock a little better when cross module dependency exist. If 
the new feature or significant change is committed, please remember to add 
integration-test in [test 
module](https://github.com/apache/rocketmq/tree/master/test).
   - [ ] Run `mvn -B clean apache-rat:check findbugs:findbugs 
checkstyle:checkstyle` to make sure basic checks pass. Run `mvn clean install 
-DskipITs` to make sure unit-test pass. Run `mvn clean test-compile 
failsafe:integration-test`  to make sure integration-test pass.
   - [ ] If this contribution is large, please file an [Apache Individual 
Contributor License Agreement](http://www.apache.org/licenses/#clas).
   
   
   
   
   
   
   
   
   
   [[rocketmq-console] Adjust the order of task state 
management.](https://github.com/apache/rocketmq-externals/issues/702)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to