eBay Stubhub performance engineering team’s main tasks are testing, monitoring and optimizating the performance of the company’s Web products. Performance engineer has many duplicated and fragmented daily work, which makes the low work efficiency. In order to improve the situation, the team decided to develop a performance automation system named PerfHub with the goal of making performance work and management more efficient and centralized.This paper mainly focuses on the design and implementation of PerfHub system. PerfHub system consists of two parts:one is web performance automated testing and the other one is web performance automated monitoring. The automated testing part mainly based the JMeter performance testing tool, which automate the repetive manual work and improve the efficiency of performance testing. The automated monitoring part is divided into two sections. One is the front-end performance monitoring based on WebPageTest tool. The other is the back-end exception monitoring based on Splunk logging system. The front-end monitoring is mainly according to different pages tested by WebPageTest, and the back-end part is mainly based the Splunk log analysis. The system provides user interfaces for checking the monitoring report of the both.Some techniques are used in system development:Ruby programming language and its lightweight Sinatra framework and database relation mapping module Sequel, the PostgreSQL database with good performance, RESTful API. The other techniques are the system external dependence or data source:Apache JMeter, WebPageTest tool and Splunk server logging system.This paper firstly clarifies the background and the signifinace of the PerfHub system for Web performance. Then it describes the system related techniques. After that, there are system requirements analysis and the outline of design, including system use cases, functional and non-functional requirements and the system architecture design. Then, based on the analysis upon, it describes the detailed design and implementation of system, including classes and methods, the key code and the main user interfaces. Finally the paper gives a summary of the system’s problems and prospescts and looks forword to system’s further. |