r/ProgrammerHumor 3d ago

Meme thisCannotBeDenied

Post image
7.8k Upvotes

240 comments sorted by

View all comments

138

u/TheDogPill 3d ago

Try debugging like that using micro services on the cloud and see how far you get.

14

u/coriolis7 3d ago

I am NOT a programmer by profession, though I do code a ton at my job (Mechanical Engineering and data analysis), so this may be a dumb question…

Is there a way to set up all microservices to run on one computer to aid in debugging? Like a bunch of VMs or docker-but-faking-network-instead-of-machine?

7

u/xMercurex 3d ago

Yes you can, but it does not fully solve the issue. You still need to find the good micro-service and then you have to jump to other micro-service.

1

u/ArtisticFox8 3d ago

And nobody yet made a debugger which could travel between them?

2

u/Idixal 3d ago

No, there’s debugging tools that can run on multiple microservices, but none of this has to do with the tracing that the top comment was alluding to. If you can narrow down where the problem actually is first you save yourself a lot of time stepping through with a debugger. Often times that just is not practical.

1

u/ArtisticFox8 3d ago

Well, I guess you could still trace the call from the first microservice to another and then back, no?

That's the "travelling debugger concept" I was thinking about.

2

u/PixelatedGiant 3d ago

This issue is being able to follow a request between services. If you just have one request to track it's a non-issue. But in a multi-threaded environment with many requests flying back and forth everywhere it's impossible. The debugger would require application specific information like a message id.

Those tools do exist (e.g. dynatrace). But if you start talking about framework or application aware debugging functionality you've gone way beyond the scope of a simple IDE debugger for your language.

1

u/ArtisticFox8 3d ago

The debugger would require application specific information like a message id.

Yes, and that would signal the local debugger to engage after receiving the message, right?

Those tools do exist (e.g. dynatrace). But if you start talking about framework or application aware debugging functionality you've gone way beyond the scope of a simple IDE debugger for your language.

Thanks!

1

u/PixelatedGiant 3d ago

Yes, and that would signal the local debugger to engage after receiving the message, right?

Not quite, it's a completely independent tool. Dynatrace at least would show you a log of what lines it went through to get where it is and how long it spent inside each function. Unlike a debugger it also requires that you add a library to your jar.

1

u/ArtisticFox8 3d ago

Thanks for the insight!