Skip to main content
# HTTP Server-Timing for Python Flask


This is a library including middleware for using
[HTTP Server-Timing](https://www.w3.org/TR/server-timing) with Python. This header
allows a server to send timing information from the backend, such as database
access time, file reads, etc. The timing information can be then be inspected
in the standard browser developer tools:

![Server Timing Example](https://github.com/PammyS/server-timing-profiler/blob/master/example/ScreenShot.png)

## Features

* Middleware for injecting the server timing into the request `Context`
and writing the `Server-Timing` header.

* Concurrency-safe structures for easily recording timings of multiple
concurrency tasks.

* Parse `Server-Timing` headers as a client.

* Note: No browser properly supports sending the Server-Timing header as
an [HTTP Trailer](https://tools.ietf.org/html/rfc7230#section-4.4) so
the Middleware only supports a normal header currently.

## Browser Support

Browser support is required to **view** server timings easily. Because server
timings are sent as an HTTP header, there is no negative impact to sending
the header to unsupported browsers.

* **Chrome 65 or higher** is required to properly display server timings
in the devtools.

## Usage

Example usage is shown below. A fully runnable example is available in
the `example/` directory.

```python
from flask import Flask, jsonify
import time
from profiler.profile_manager import ProfileManager

app = Flask(__name__)

profiler = ProfileManager(app, 'debug')


@app.route("/test", methods=["GET"])
def hello():
print 'test start sleep'

profiler.start('App 1')
time.sleep(1)
profiler.stop('App 1')

profiler.start('App 2')
time.sleep(2)
profiler.stop('App 2')

profiler.start('App 3')
time.sleep(3)
profiler.stop('App 3')

profiler.start('App 4')
time.sleep(4)
profiler.stop('App 4')

print 'test stop sleep'
return jsonify({'success':True})

app.run(host="0.0.0.0",port=8080,debug=True)
```

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

server-timing-profiler-0.0.2.tar.gz (3.1 kB view details)

Uploaded Source

File details

Details for the file server-timing-profiler-0.0.2.tar.gz.

File metadata

File hashes

Hashes for server-timing-profiler-0.0.2.tar.gz
Algorithm Hash digest
SHA256 dcbafba5d7eb71662b71e2a24679662be9e493691b707d2a902e2a0026e6206d
MD5 2fcb524bd004d9fbae38e96d18a438ed
BLAKE2b-256 7bc0f4b212cb3a29f30f15aba5639b8291d3c0ecb915824cd26bc73517b15192

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page