Live Profiler UI
![logo logo](https://github.com/badoo/liveprof-ui/raw/master/images/liveprofui_logo.png)
Live profiler is a system-wide performance monitoring system in use at Badoo that is built on top of XHProf or its forks (Uprofiler or Tideways).
Live Profiler continually gathers function-level profiler data from production tier by running a sample of page requests under XHProf.
Live profiler UI aggregates the profile data corresponding to individual requests by various dimensions such a time, memory usage, and can help answer a variety of questions such as:
What is the function-level profile for a specific page?
How expensive is function "foo" across all pages, or on a specific page?
What functions regressed most in the last day/week/month?
What is the historical trend for execution time of a page/function? and so on.
You can find the full documentation in Live Profiler UI wiki
Here is a plugin for PhpStorm to see the method performance directly in IDE.
![GitHub license](https://img.shields.io/github/license/badoo/liveprof-ui.svg)
System Requirements
- PHP version 7.3 or later to use web interface and run aggregation scripts.
- PHP version 5.4 or later / hhvm version 3.25.0 or later to collect profiles using Live Profiler
- Connection to database with profiling result. You can collect profiles using Live Profiler tool
- Database extension (mysqli, pgsql, sqlite support included)
- Perl for flame graph functionality
Key features
- Get stats of average value, minimum, maximum, 95 percentile of execution time, cpu time, memory usage and calls count.
Parameter list and statistics functions are configurable.
- Graphs for every collected parameter and every method up to 6 months. Each graph also includes children stats. It helps to see the history of changes.
- Differences interface to compare a particular request for two dates and see what became worse.
- See flame graph of the aggregated request.
- Get list of requests where a method was called last time. It may be helpful for refactoring purposes and find unused methods.
- Get the most changed methods in any requests for two dates, for example, today and a week ago. It can help to find a place of a potential performance problem.
Work flow
Live Profiler has 3 main parts:
- Profiler
- Aggregator
- Web interface
License
This project is licensed under the MIT open source license.