Inkle
Log Based gRPC Tracing System 𝌘
grpc_service_name,grpc_method_name,src_ip,src_tcp,dst_ip,dst_tcp,grpc_status_code,duration, info
e.g:
helloworld.Greeter,SayHello,::1,53412,::1,8000,0,161626,Request - Response
datetime.Datetime,GetDatetime,::1,53413,::1,9000,0,10120,Request - Response
TODO: Installation
$ go get -u github.com/abrampers/inkle
$ cd $GOPATH/src/github.com/abrampers/inkle
$ go build -o .
Usage
$ ./inkle -stdout
Available flags:
Flag |
Type |
Default |
Description |
-device=cni0 |
string |
eth0 |
Network Device to be intercepted. |
-stdout |
bool |
false |
Write logs to stdout. |
-output=/var/log |
string |
. |
Write log file to specified directory (ignored if -stdout is set). |
-timeout=200ms |
time.Duration |
800ms |
Set request timeout. |
-filter-by-host-cidr |
bool |
false |
If this flag is set, Inkle will get the valid IP range of the network device specified in -device and will only print logs with source IP addres within that range. |
-h |
n/a |
n/a |
Print out help message. |
Roadmap
- Repo description.
- Repo architecture.
- HTTP/2 frame classification.
- State management to support gRPC connection reuse.
- Supports source IP address filtering by host CIDR.
- HTTPS support
- Ensure correctness while ignoring unsupported streams.
- Support for gRPC streams.