Skip to content

An aggregator and web interface for Live Profiler

License

Notifications You must be signed in to change notification settings

shagtv/liveprof-ui

 
 

Repository files navigation

Live Profiler UI

logo

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.

Build Status GitHub release codecov Scrutinizer Code Quality GitHub license

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:

  1. Profiler
  2. Aggregator
  3. Web interface

License

This project is licensed under the MIT open source license.

About

An aggregator and web interface for Live Profiler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 62.8%
  • JavaScript 31.7%
  • Perl 4.3%
  • CSS 0.9%
  • Hack 0.2%
  • Dockerfile 0.1%