HackerTrans
TopNewTrendsCommentsPastAskShowJobs

pondidum

no profile record

Submissions

Print debugging: a tool among other tools

andydote.co.uk
3 points·by pondidum·2 ปีที่แล้ว·1 comments

Kubernetes and Kernel Panics

netflixtechblog.com
3 points·by pondidum·3 ปีที่แล้ว·0 comments

Tracing: Structured logging, but better

andydote.co.uk
263 points·by pondidum·3 ปีที่แล้ว·129 comments

comments

pondidum
·2 ปีที่แล้ว·discuss
I also think that printf debugging is fine, but there are better tools [1] - however they might be more involved to setup, or not be available in your codebase.

[1]: https://andydote.co.uk/2024/11/24/print-debugging-tracing/
pondidum
·2 ปีที่แล้ว·discuss
Thoughts after reading https://news.ycombinator.com/item?id=42219708
pondidum
·2 ปีที่แล้ว·discuss
Go: go templates and fiber for http serving. I have a mini framework for adding some structure to the templates (folder per feature: contains controller, templates, etc, and some naming conventions)
pondidum
·3 ปีที่แล้ว·discuss
If I understood correctly, you can achive this with `hx-target` and `hx-select` - I'm doing this in an app to replace an editor content based on which link is clicked.

- https://htmx.org/attributes/hx-select/ - https://htmx.org/attributes/hx-target/
pondidum
·3 ปีที่แล้ว·discuss
Yes, and itel has instrumentation libraries which do this.

However, no automatic instrumentation can do everything for you; it can't know what are all the interesting properties or things to add as attributes. But adding tracing automatically to SQL clients, web frameworks etc is very valuable
pondidum
·3 ปีที่แล้ว·discuss
They all look fine in "mobile view" in firefox, and on firefox in android.

It's all statically rendered html, and I don't see anything weird in the html either.

Do you have a screenshot and some device info so I can look a bit more? Thanks
pondidum
·3 ปีที่แล้ว·discuss
As other posters have mentioned, the incument companies rebranding to Observability definitely are expensive, because they are charging in the same way as they do for logs and/or metrics: per entry and per unique dimension (metrics especially).

Honeycomb at least charges per event, which in this case means per span - however they don't charge per span attribute, and each span can be pretty large (100kb / 2000 attributes).

I run all my personal services in their free tier, which has plenty of capacity, and that's before I do any sampling.
pondidum
·3 ปีที่แล้ว·discuss
Yes, but going to this effort, why not move to tracing instead?

A migration path I could see might be:

- replace current logging lib with otel logging (sending to same output) - setup tracing - replace logging with tracing over time (I prefer moving the most painful areas of code first)
pondidum
·3 ปีที่แล้ว·discuss
Thanks, I have fixed the definition in the post! Turns out its just company slang for bating, rather than Finnish slang!
pondidum
·3 ปีที่แล้ว·discuss
Agreed the amount of stuff showing in stack traces can be annoying - but it does depend on language.

I agree 100% in javascript/typescript its annoying, and I would love to get rid of them, In go however, there isn't an extra stack frame. Nor in C# thinking about it.

The config file of functions to trace is a really interesting idea. How would you handle wanting to add data to the spans from inside those functions though? e.g. I want to add all kinds of props to the spans that can't be known except inside the function executing.
pondidum
·3 ปีที่แล้ว·discuss
The only thing I can recall being a bit of a stumbling point at the beginning was finding "my" trace from a local environment. I just didn't know where to find it. Once I figured that out I've not had problems.

The high-level view and being able to draw a box around something that looks weird on my graph, and honeycomb tells me what's different inside and outside the box is amazing (called bubble up, if you're searching).

It's faster than any other tool I've used; usually data is available by the time I've switched to their ui from the curl command to our API. It's mind blowing actually.

Other saas and self hosted options I've tried have all been awful in some way or other; honeycomb is a breath of fresh air, and going back to other tools after using honeycomb is painful.

I'm not sponsored or working for them btw, they just make one of the few products that I genuinely love using.
pondidum
·3 ปีที่แล้ว·discuss
Depends what you're trying to accomplish.

We're using middleware to start spans for http and message handlers, and then adding `startSpan` where we need.

I don't see a problem with `startSpan` everywhere as it's not much noiser than the `log.info` that would be there instead if we didn't have otel.
pondidum
·3 ปีที่แล้ว·discuss
Honeycomb's pricing is pretty reasonable - but looking at your volume, some sampling might help also