Skip to main content

PyPI PyPI - License PyPI - Downloads docker-image-version docker-image-size docker-pulls

http-reqtrace

Description

The application starts a Web server which logs details of all incoming HTTP requests such as:

  • HTTP Method & URL
  • Query params
  • Headers
  • Body

The application accepts all HTTP methods and URIs. The routing is defined like this:

  • /status/:statusCode : return an HTTP response with status code statusCode and body {"message":"OK|KO"}
  • /**/* : return an HTTP response with status code 200 OK and body {"message":"OK"}
  • /metrics : return Prometheus metrics regarding HTTP requests

Following query parameters are also supported:

  • ?latencyInMs=60000 : wait for the given period in milliseconds before responding. This time cannot exceed 5 minuts.

This service can be used to :

  • See very quickly what are the requests received and inspect their content.
  • Have a quick way to simulate specific cases with particular HTTP response codes.

How to use

Starts the service

  • Run container:
$ docker run -ti --name http-reqtrace -p 80:8080 -e PORT=8080 -u 65534:65534 julb/http-reqtrace:latest

Note: the PORT environment variable can be set to customize listening port.

Request the service with any method, URI and parameters

$ curl http://localhost/context/uri?param1=value1&param2=value2 -H "Authorization: Bearer jwt"
{"statusCode": 200,"message":"OK"}
INFO in app: > [GET] HTTP/1.1 http://localhost/context/uri?param1=value1&param2=value2
INFO in app: >>     Header : Host : localhost
INFO in app: >>     Header : User-Agent : curl/7.54.0
INFO in app: >>     Header : Accept : */*
INFO in app: >>     Header : Authorization : Bearer jwt
INFO in app: >>     Query  : param1 : value1
INFO in app: >>     Query  : param2 : value2
INFO in app: >>     Body   : b''
INFO in app: < [ HTTP 200 ]

Getting specific HTTP responses status codes

$ curl http://localhost/status/404 -H "Authorization: Bearer jwt"
{"statusCode":404,"message":"KO"}

$ curl http://localhost/status/500 -H "Authorization: Bearer jwt"
{"statusCode":500,"message":"KO"}
INFO in app: > [GET] HTTP/1.1 http://localhost/status/404
INFO in app: >>     Header : Host : localhost
INFO in app: >>     Header : User-Agent : curl/7.54.0
INFO in app: >>     Header : Accept : */*
INFO in app: >>     Header : Authorization : Bearer jwt
INFO in app: >>     Body   : b''
INFO in app: < [ HTTP 404 ]
INFO in app: > [GET] HTTP/1.1 http://localhost/status/500
INFO in app: >>     Header : Host : localhost
INFO in app: >>     Header : User-Agent : curl/7.54.0
INFO in app: >>     Header : Accept : */*
INFO in app: >>     Header : Authorization : Bearer jwt
INFO in app: >>     Body   : b''
INFO in app: < [ HTTP 500 ]

Simulate latency

$ curl http://localhost/status/504?latencyInMs=60000
{"statusCode":504,"message":"KO"}
INFO in app: > [GET] HTTP/1.1 http://localhost/status/504?latencyInMs=60000
INFO in app: >>     Header : Host : localhost
INFO in app: >>     Header : User-Agent : curl/7.54.0
INFO in app: >>     Header : Accept : */*
INFO in app: >>     Query  : latencyInMs : 60000
INFO in app: >>     Body   : b''
INFO in app: << Waiting for timeout exhaust: 60000ms.
INFO in app: < [ HTTP 504 ]

Metadata

Release files for http-reqtrace 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for http-reqtrace 1.1.1
File Size Uploaded
http-reqtrace-1.1.1.tar.gz 3.9 kB Details

Release files / http-reqtrace-1.1.1.tar.gz

Download URL http-reqtrace-1.1.1.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
003a8121073a09d41263a81ba23a2220063bd60e222e510ae3ad7c2fe9918ba7
BLAKE2b-256 checksum
How to use checksums
ee0d63cc5b801cca84d97ea42c1fad2548aaaf9abe634659f2ed9a34019e8ec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

1.1.1 This release

1 release file

1.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page