From: Gabriel Goller <g.goller@proxmox.com>
To: Thomas Lamprecht <t.lamprecht@proxmox.com>,
Proxmox Backup Server development discussion
<pbs-devel@lists.proxmox.com>,
Dominik Csapak <d.csapak@proxmox.com>
Subject: Re: [pbs-devel] [RFC proxmox-backup 0/2] Tasklog rewrite with tracing
Date: Tue, 24 Oct 2023 15:44:03 +0200 [thread overview]
Message-ID: <6a18e5e1-7abd-4e4f-8435-9814cb8fa979@proxmox.com> (raw)
In-Reply-To: <16069173-747d-4083-8b9b-5ea448732ef2@proxmox.com>
On 10/23/23 16:33, Thomas Lamprecht wrote:
> [..]
> - if in worker task:
> - log info and higher to worker task log
> - mirror error level to syslog too
>
> - if not in worker task:
> - log warnings and higher to syslog
>
> It's slightly magic, but fit our reality quite well.
>
> For forcing other logs, or a debug level, to a target too, one then
> could provide environment variables, or an API command-socket command
> for a dynamic change of max-level to log – especially the latter is
> a bit orthogonal to this and should be done later.
Yes, sounds good! I should be able to implement this.
> semi-related: I didn't check the series in detail, so sorry if already
> answered there, but how's the story for logging specific spans?
>
> As logging levels are normally rather coarse, especially on complex
> tasks one can have a log going on, and so it can be helpful to, e.g.,
> enable debug logging only for some specific "topics", especially if
> one is debugging an issue that a user faces, but one cannot (easily)
> reproduce themselves. But, I guess that is unrelated from your current
> work here, or did you already think about that?
>
> (the place I'd want something like that the most is pmxcfs, as there
> you can currently only decide if you want very sparse information or
> every detail times ten for about every file operation happening, very
> frustrating)
Hmm this is a tricky one... With the current RFC this is only possible by
reloading a specific layer (syslog or task_log) using another log-level (and
thus we need to pass a reload-handle around, which is not optimal).
But, if this is frequent, we could add another layer (conveniently called
debug_layer or something) that is only active inside a span with a specific
name and prints all levels to syslog. This layer would only be used when
debugging and shouldn't impact runtime performance that much (although I
will check this).
So you would basically wrap your critical code with a span:
fn super_long_function_with_critical_stuff() {
let span_guard = tracing::span!(Level::INFO, "debug").entered();
// other code that emits logs
// the `span_guard` will be dropped at the end and the span will end
// we can also end the span manually using `span.exit()`
}
We then have a special layer, that will check if the log is in a span
with name 'debug' and will write to syslog without checking the
max log level.
next prev parent reply other threads:[~2023-10-24 13:44 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 14:01 Gabriel Goller
2023-10-11 14:01 ` [pbs-devel] [RFC proxmox-backup 1/2] log: removed task_log! macro and moved to tracing Gabriel Goller
2023-10-11 14:01 ` [pbs-devel] [RFC proxmox 2/2] proxmox-log: added tracing infra Gabriel Goller
2023-10-13 12:36 ` Gabriel Goller
2023-10-18 13:26 ` Dominik Csapak
2023-10-23 8:56 ` Gabriel Goller
2023-10-23 9:11 ` Gabriel Goller
2023-10-18 13:12 ` [pbs-devel] [RFC proxmox-backup 0/2] Tasklog rewrite with tracing Dominik Csapak
2023-10-23 9:09 ` Gabriel Goller
2023-10-23 9:29 ` Dominik Csapak
2023-10-23 11:43 ` Gabriel Goller
2023-10-23 14:33 ` Thomas Lamprecht
2023-10-24 13:44 ` Gabriel Goller [this message]
2023-10-25 13:55 ` Gabriel Goller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6a18e5e1-7abd-4e4f-8435-9814cb8fa979@proxmox.com \
--to=g.goller@proxmox.com \
--cc=d.csapak@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=t.lamprecht@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.