This is a demo code, for showcasing Observability of the PostgreSQL protocol using eBPF. This code is inspired by Alaz, Kubernetes eBPF agent, developed by Anteon.
![postgres](https://private-user-images.githubusercontent.com/48418580/339754627-58cc493e-654c-4d56-badf-6f0ccb29b328.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzMjg4MjcsIm5iZiI6MTczOTMyODUyNywicGF0aCI6Ii80ODQxODU4MC8zMzk3NTQ2MjctNThjYzQ5M2UtNjU0Yy00ZDU2LWJhZGYtNmYwY2NiMjliMzI4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDAyNDg0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlZjMxODkyNWMwODUwYjUxODgzMTc2YWQ5MDc3Mjc3ODgwZDVlNTEyM2Y3ZmY2ODE3NGZhOTczM2ZhOTNmZTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6IIrqmXgHkK1M-qt__fHBPk2YX_NomJ8Yukat6yxKO0)
In order to try it out locally:
- Run eBPF program using
go generate go build sudo ./postgres
- Run the PostgresQL Container using
docker run --name postgres-container -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
- Run client inside
/test
usinggo run client.go
- In another shell, inspect eBPF program logs using
sudo cat /sys/kernel/debug/tracing/trace_pipe
- To run performance evaluation, inside
/perf
directory run:go run measure.go