Replies: 4 comments 7 replies
0 replies
|
Currently we have these parts instrumented link As the tracing crate is a 'general purpose system' to emit events, and OTEL rust crates make use of it , I think the team needs to decide what needs to be instrumented considering:
Example: Instrument everything by layers?
Or specific points of interest ? Or a mix of both ? |
6 replies
|
we don't have OTEL-metrics with |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment





Uh oh!
There was an error while loading. Please reload this page.
We've been applying instrumentation (like ``#[instrument]`) on functions when necessary. And that's fine.
However, I am not sure what the right approach is when it comes to handling fields and return/errors. This also touches a bit on the log levels. Also, I do it wrong myself. So I'd appreciate a guideline I could look a too.
Checking back with syslog (RFC5424) there are severities defined like this:
I know, we don't have all of them in the log levels, but close enough.
I guess everything of error and above is the same for us. Above error might be a panic on the console. But that's not part of the log system of the application.
When taking a look at what we do, and what
tracingdoes by default, then that's spamming a lot of information on the INFO level. Which is ok, if we assume that the application will be run on WARN. Because other than a developer debugging, only WARN and above would be important for an operator of the software.For instrumenting we mostly have
#[instrument(…, ret)]or#[instrument(…, err)]. Which logs the span with the result on INFO, of the error on ERROR. However, an error on a function isn't necessary a log worthy ERROR for the person operating this software.So I think we need a set of rules, maybe with examples, that explain how to consistently apply instrumentation and log levels.
All reactions