Decrusting the tracing crate

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 48

  • @christopher8641
    @christopher8641 9 месяцев назад +132

    On my end, this video has a thumbnail of you with your head down, and held in your hands, as if terribly distressed. I doubt the intention but, "decrusting" such a well organized, quality library while having that thumbnail as the cover gives me a little giggle. Good teachings, as always

    • @brian-zf4pi
      @brian-zf4pi 9 месяцев назад +3

      I had to go see that.. 😄

    • @fhools
      @fhools 9 месяцев назад

      lmao i thought u were joking but yea its there.

    • @TylerLarson
      @TylerLarson 9 месяцев назад +13

      It's the "RUclipsr Face" expression. All you need to do is change the title to one of these handy suggestions:
      * 10 horrible mistakes Rust programmers make with the tracing crate
      * STOP GETTING THIS WRONG about tracing
      * 14 things Rust programmers wish they knew about tracing (number 12 will make you cringe!!)
      * Getting a headache from logging? Use THIS TRICK with the tracing crate!!!
      * 12 things about tracing that will make you furious (number 9 is just plain evil!!)

    • @LtdJorge
      @LtdJorge 9 месяцев назад

      @@TylerLarson nowadays, what they do is the X sign with their arms for the thumbnail. I fucking hate it.

  • @ForestSpirit22
    @ForestSpirit22 5 дней назад

    This was a fantastic breakdown, thank you so much for providing these.
    I'm currently building a webapp in Rust and when it came to implement logging with 'tracing' and 'tracing_subscriber' there were so many new concepts introduced all at once (Event, Span, Subscriber, Layer, Registry, Filter, and more) that the docs alone left me overwhelmed and I needed a hands-on introduction to understand what's going on.
    Love that you kick things off with practical code-examples that the viewer can copy and run on their own machine and then, from there, dive into the actual sources of the crate to demistify what's happening behind the scenes - it's a great approach.

  • @jb-jz5uj
    @jb-jz5uj 9 месяцев назад +25

    These streams have been the single biggest help to me and no doubt others in learning this. You have made the world a better place 😀

  • @irlshrek
    @irlshrek 9 месяцев назад +22

    LOVING this decrusting series

  • @aqua3418
    @aqua3418 9 месяцев назад +8

    Thanks! This crate has always been a mystery to me, even though I'm at advanced level. Finally I'll be able to understand it better

  • @CireSnave
    @CireSnave 6 месяцев назад +1

    Thank you! I consider myself a pretty good Rust developer but your depth of knowledge is above and beyond mine. Your videos (like this one) have helped me quickly get up to speed on things I didn't have in-depth knowledge of yet. You are appreciated sir!

  • @eba-pachi
    @eba-pachi Месяц назад

    How does one make "logging" so generic and flexible? I'm amazed by the power of this crate.
    Thanks for the video, very helpful and insightful!

  • @driedurchin
    @driedurchin 9 месяцев назад +16

    I'm glad I just spend 10 hours getting tracing + logging + tokio-console + Jaeger w/opentelemetry working _before_ this video came out...

    • @maxmanus6575
      @maxmanus6575 6 месяцев назад

      Same here. Learned it the hard way. 😂🎉

  • @richardseymour6091
    @richardseymour6091 9 месяцев назад +4

    Been using the tracing lib for a while and never caught % and ? Looking forward to learning more in this vid

  • @BareTuna
    @BareTuna 9 месяцев назад +7

    I'm really excited to watch this one!! Today at work I connected Rust to our C# logging framework over FFI. There's still some details I need to think about but I'm sure there'll be some good answers in here for me!

  • @Dje4321
    @Dje4321 7 месяцев назад

    I was in the process of adding tracing support to my rust no_std project when I found this video. Amazing work

  • @polares8187
    @polares8187 9 месяцев назад

    Amazing video as always. High density and high value. Watching your videos is always fun and highly informative.

  • @kelownatechkid
    @kelownatechkid 9 месяцев назад +1

    Only 20 minutes in and already learned something new. This is great thank you!

  • @JaLikon65
    @JaLikon65 9 месяцев назад +5

    Does anyone else appreciate that at 45:35 Jon's code looks like a bird standing on a twig 🐦

  • @EdneiSantos-g7j
    @EdneiSantos-g7j 3 месяца назад

    It was incredible useful, thanks very much!!

  • @fhools
    @fhools 9 месяцев назад +2

    Thank you so much for such educational material

  • @vrajshah8075
    @vrajshah8075 9 месяцев назад +5

    Love this series, can you do tokio next?

    • @driedurchin
      @driedurchin 9 месяцев назад

      That video might be 20 hours long!

  • @blu3tim3
    @blu3tim3 9 месяцев назад

    Very insightful, as always; thank you so much for your work!

  • @June-c2q
    @June-c2q 3 месяца назад

    great stream as always

  • @justanormalperson
    @justanormalperson 9 месяцев назад +3

    These videos are great, keep up the good work :)

  • @leonie9248
    @leonie9248 8 месяцев назад

    2:18:58 "Yeah I know, I could have written bigger. But you know, such is life."
    I want someone to meme this with the "deal with it" sunglasses.

  • @samjudelson
    @samjudelson 9 месяцев назад +1

    Thanks Jon

  • @romadee
    @romadee 9 месяцев назад +3

    Thanks!

  • @tiagomello
    @tiagomello 9 месяцев назад

    You are really good at it. I am a new subscriber.

  • @DHorse
    @DHorse 5 месяцев назад

    1:38:50 TL;DR Depending on use case, like when using database storage, a SpanId can need to be unique "forever".
    If your trace SpanId & data is stored in a database, then it may (problematically) never be reused. Using file (or category) specific data archive/purge definition might specify the data lifetime. I would wait yet one more data lifetime before reusing the unique ID.
    It's the same argument Jon made about currently active spans where SpanId must be unique among all crates and modules. Both in terms of the subscriber not getting corrupt (or extra) data and so that filters can be applied during reporting without false positives.

  • @haystackdmilith
    @haystackdmilith 9 месяцев назад

    Great stuff. Thanks

  • @nii-san5485
    @nii-san5485 9 месяцев назад +1

    been waiting for this 1 🙏

  • @恒王-v9q
    @恒王-v9q 9 месяцев назад

    感谢,视频太棒了,学到好多

  • @irlshrek
    @irlshrek 9 месяцев назад

    at 41:00 were entering the main span in a separate thread by writing let _guard = span.enter();
    then, within the same scope, were shadowing _guard with another let _guard = span.enter(); to enter the file span.
    shouldnt that have dropped the first _guard before assigning the second _guard? if so wouldnt that have left the main span? because if so why would it still say main : file in the log?

    • @jonhoo
      @jonhoo  9 месяцев назад +5

      Ah, no, shadowing in Rust does not drop the shadowed item!

    • @irlshrek
      @irlshrek 9 месяцев назад

      Thank you!

  • @romanstingler435
    @romanstingler435 9 месяцев назад

    Great content, Thx Jon

  • @OuterProduct351
    @OuterProduct351 8 месяцев назад

    Decrusting Pingora when? 🙏🙏

  • @jimitsoni18
    @jimitsoni18 9 месяцев назад +4

    WHY DID I NOT RECEIVE A NOTIFICATION 😭😭😭

  • @MatthewDavies-dc9ul
    @MatthewDavies-dc9ul 9 месяцев назад

    span span span span span span span span

  • @meyou118
    @meyou118 7 месяцев назад

    i smell implicits from Scala.... :)

  • @cheebamba
    @cheebamba 9 месяцев назад

    What font is your vim using?

    • @dog4ik
      @dog4ik 9 месяцев назад +2

      noto sans mono

  • @cryoexn7307
    @cryoexn7307 9 месяцев назад

    First off, amazing video, I was so excited when I saw this in my feed :)
    ruclips.net/video/21rtHinFA40/видео.html I was wondering if you could get an idea of just how much this is affecting the binary size by setting the compile time max level that was mentioned towards the start to none, and comparing to when its set to the level you are interested in getting? Since my understanding was that this option would exclude non relevant items from the binary? Not sure if this has already been mentioned before!

  • @what1heh3ck
    @what1heh3ck 9 месяцев назад

    what is your colorscheme?

    • @kaksisve4012
      @kaksisve4012 9 месяцев назад +1

      gruvbox as I remember

  • @sbray-n1g
    @sbray-n1g 3 месяца назад

    tracing really shouldn't advertise as a logging library. The idea that a logging library wouldn't output to stderr or stdout by default is mind-numbing. tracing really should be classified as a logging-assist crate.