11
submitted 1 year ago by kixik@lemmy.ml to c/rust@lemmy.ml

I've been reading a bit the tracing crate documentation, trying to find out if there's a way to rate limit logs.

What I refer with rate limiting, is that once a particular log has shown up with some frequency (x amount of times in a given time) then it won't be captured or shown anymore, until certain amount of time... This to avoid getting the logs space/buffer being eaten by just one, or a few high frequency errors for example.

Thanks !

top 6 comments
sorted by: hot top controversial new old
[-] AngryClosetMonkey@feddit.ch 6 points 1 year ago

This would most certainty be part of the used subscriber. I'm not sure if any of the existing subscribers support it, but in the worst case you can write your own subscriber that wraps an existing one.

[-] kixik@lemmy.ml 1 points 1 year ago

Yeap, I was thinking if perhaps any subscriber would support it, but didn't find any which documents it. Perhaps you're right and subscriber wrapper is needed.

[-] TehPers@beehaw.org 1 points 1 year ago

One thing to keep in mind is that tracing works on spans/events, so rather than the subscriber receiving a string log message, it's receiving some metadata and a collection of field/value pairs, where values can be a lot of different types. You may need to determine ahead of time which fields you want deduped (or which you don't want deduped).

[-] kixik@lemmy.ml 1 points 1 year ago

yeap, thanks !

[-] lexxy23@discuss.tchncs.de 2 points 1 year ago

AFAIK it will just print out all the logs it gets. There is no rate limiting. I guess for such a feature someone may need some postprocessing or filtering :/

[-] kixik@lemmy.ml 1 points 1 year ago

OK, thanks !

this post was submitted on 08 Sep 2023
11 points (100.0% liked)

Rust Programming

7734 readers
1 users here now

founded 5 years ago
MODERATORS