Skip to content

jetfuel-dev/jetfuel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation




Jetfuel logo: Jetfuel is the Python Performance Profiler for Production

Python Performance Profiling for Production
~ It's About Time ~

Jetfuel is a performance profiler that can monitor the performance of your production Python, and makes results easy to aggregate and search through.

Jetfuel is designed for Purposeful Profiling. This means that you only use Jetfuel around code of interest, instead of dumping all code performance logs and mining it later.

Useful for Profiling:

  • 🌎 API performance
  • 🚀 CI/CD stage / granular performance
  • 💡 ML training & inference jobs
  • 📀 Database queries
  • 📊 Data pipelines / compute jobs

Bad performance has real world consequences, and is often a result of lack of visibility, even if you are logging it, if it's not be easy to get to, it will be ignored.


What gets measured gets managed!


Continuous Profiling

Dashboard


How does it work?

Jetfuel is very simple. The client simply times sections of your code, and batches / aggregates them before committing to the Jetfuel server. Updates are aggregated based on a configurable resolution (default 5s). This batching / aggregating behavior allows us to time ms/ns code without introducing much overhead.

Installation

pip install jetfuel
docker run -it -p 9000:9000 -v ${PWD}/data:/bin/jetfuel/data jetfuel/jetfuel

Demo

import jetfuel

jetfuel.init(url="http://localhost:9000")

jetfuel.demo()

Usage

  1. Start / Stop

    p = jetfuel.start("Foobar")
    pass
    p.stop()
  2. Profiler

    with jetfuel.Profiler("Foobar"):
        pass
  3. Function Decorator

    @jetfuel.profiler("Foobar")
    def ml_training():
        pass

About

Python Performance Profiling for Production

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published