74

Show HN: SQL-tap – Real-time SQL traffic viewer for PostgreSQL and MySQL

sql-tap is a transparent proxy that captures SQL queries by parsing the PostgreSQL/MySQL wire protocol and displays them in a terminal UI. You can run EXPLAIN on any captured query. No application code changes needed — just change the port.

Just tried it out. Works fine. Love it! I tried it with a wordpress site. It is showing hundreds of sql queries in one request (thats probably why that wordpress site is so slow lol)

What I would love to see here is:

- some kind of sorting: eg. by excecution time or order. So I can see the slowest queries.

- search / filter feature.

- faster scolling with pgup/pgdown keys.

- maybe how often the same query was executed. I could check the code and maybe optimize the queries.

2 minutes agoqxxx

This is very neat! IMO inspecting the queries the agents run on the database is a better approach to understand how the code works, even more than reviewing the code.

I just tried and it works smoothly. For those who doesn't want to plug in the agents to their database directly, I built a similar tool https://dbfor.dev for the exact purpose, it just embeds PGLite and implements PG wire protocol to spin up quick PG databases with a traffic viewer included.

2 hours agoburemba

Maybe consider renaming this since pgTAP [0] exists and has nothing to do with this.

[0]: https://pgtap.org/

33 minutes agoSpixel_

We do something similar in adaptive [1].

What you can also do is add frontend and backend user to the proxy and then agents won't ever get the actual db user and password. You can make it throwaway too as well as just in time if you want.

Traditionally it was database activity monitoring which kind of fell out of fashion, but i think it is going to be back with advent of agents.

[1] https://adaptive.live

an hour agodebarshri

Looks really cool, will try it out soon

an hour agoaltmanaltman

Was AI used to build this? It looks a lot like the kind of scratch-an-itch projects I have been grinding out with AI lately, in size, timeline, code, and function. If not, you are a very very productive programmer.

If so, would you mind sharing which model(s) you used and what tooling?

24 minutes agosneak

Really been wanting something like this. Thanks!

an hour agoCodeWriter23

Can you explain how this is a better option than just enabling the general log for MySQL as needed?

an hour agostephenr

Or log_statement = 'all' in Postgres.

20 minutes agoahoka

yes, this was my first question.

why would i inspect this data, because maybe trying to find a cause to a problem.. are there any other reasons

34 minutes agoanonymous344

Nice. I like how you made it an easy to drop in proxy. Will definitely use this when debugging issues!

3 hours agonwellinghoff

That's some sick observability, nice.

2 hours agojauntywundrkind

[dead]

32 minutes agomergisi

[dead]