The application starts a Web server which logs details of all incoming HTTP requests.
Project description
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¶m2=value2 -H "Authorization: Bearer jwt"
{"statusCode": 200,"message":"OK"}
INFO in app: > [GET] HTTP/1.1 http://localhost/context/uri?param1=value1¶m2=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 ]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
http-reqtrace-1.1.1.tar.gz
(3.9 kB
view details)
File details
Details for the file http-reqtrace-1.1.1.tar.gz
.
File metadata
- Download URL: http-reqtrace-1.1.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 003a8121073a09d41263a81ba23a2220063bd60e222e510ae3ad7c2fe9918ba7 |
|
MD5 | 61cf0c4a3ae0cfb80a77e2292f5c6176 |
|
BLAKE2b-256 | ee0d63cc5b801cca84d97ea42c1fad2548aaaf9abe634659f2ed9a34019e8ec4 |