Git Product home page Git Product logo

Comments (6)

andylokandy avatar andylokandy commented on May 23, 2024 1

The concept of 'level' may not be an optimal feature for tracing systems. While tokio-tracing incorporates this feature, the underlying motivation for having levels in a span primarily revolves around performance. More specifically, it relates to the performance implications of tracing elements that are not of interest. However, tracing differs from logging in two key aspects:

  1. Disregarding a low-level span might inadvertently discard a high-level child span.
  2. The process of filtering, or 'level' as it's often called, in a tracing system should be applied to a trace as a whole rather than individual spans within a trace.

In this context, minitrace offers a more efficient solution by filtering out entire traces that are not of interest through its unique collection system. Therefore, the concept of 'level', borrowed directly from logging systems, may not be suitable for tracing.

from minitrace-rust.

Xuanwo avatar Xuanwo commented on May 23, 2024

Does it mean to support parsing levels from RUST_LOG?

from minitrace-rust.

Xuanwo avatar Xuanwo commented on May 23, 2024

To migrate from tokio-tracing, I think we need this feature.

from minitrace-rust.

taqtiqa-mark avatar taqtiqa-mark commented on May 23, 2024

I think this raises an important question.

Does minitrace strive for performance first or compatibility with the Log and Tracing ecosystem first?

There are three ways to wear the cost of tracing:

  1. compile-time
  2. run-time
  3. both

From my PoV, the attraction of minitrace is the run-time performance advantages. Ideally if I turn off tracing (via cfg, cfg_attr, etc) there is zero run-time cost.

That is, I want to pay as much of the costs at compile time as I can.
It seems to me, if the run time code is checking the env variables there is a cost here I'd prefer to sacrifice - if you want that convenience over performance there are the various log and tracing crates.

Or is the proposal here to check the env variables at compile time?

from minitrace-rust.

andylokandy avatar andylokandy commented on May 23, 2024

I agree to use cfg to minimize/remove the performance impact.

from minitrace-rust.

taqtiqa-mark avatar taqtiqa-mark commented on May 23, 2024

@jon-chuang and @Xuanwo would you be happy to close this issue, or is your proposal limited to a check at compile time and no runtime checks?

from minitrace-rust.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.