Decrusting the tracing crate

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 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 "TH-camr 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 2 วันที่ผ่านมา

    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!

  • @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!

  • @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

  • @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!

  • @kelownatechkid
    @kelownatechkid 9 หลายเดือนก่อน +1

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

  • @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.

  • @JaLikon65
    @JaLikon65 9 หลายเดือนก่อน +5

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

  • @vrajshah8075
    @vrajshah8075 9 หลายเดือนก่อน +5

    Love this series, can you do tokio next?

    • @driedurchin
      @driedurchin 9 หลายเดือนก่อน

      That video might be 20 hours long!

  • @EdneiSantos-g7j
    @EdneiSantos-g7j 2 หลายเดือนก่อน

    It was incredible useful, thanks very much!!

  • @fhools
    @fhools 9 หลายเดือนก่อน +2

    Thank you so much for such educational material

  • @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.

  • @blu3tim3
    @blu3tim3 9 หลายเดือนก่อน

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

  • @June-c2q
    @June-c2q 3 หลายเดือนก่อน

    great stream as always

  • @nii-san5485
    @nii-san5485 9 หลายเดือนก่อน +1

    been waiting for this 1 🙏

  • @tiagomello
    @tiagomello 9 หลายเดือนก่อน

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

  • @romadee
    @romadee 9 หลายเดือนก่อน +3

    Thanks!

  • @samjudelson
    @samjudelson 9 หลายเดือนก่อน +1

    Thanks Jon

  • @恒王-v9q
    @恒王-v9q 9 หลายเดือนก่อน

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

  • @haystackdmilith
    @haystackdmilith 9 หลายเดือนก่อน

    Great stuff. Thanks

  • @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.

  • @jimitsoni18
    @jimitsoni18 9 หลายเดือนก่อน +4

    WHY DID I NOT RECEIVE A NOTIFICATION 😭😭😭

  • @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? 🙏🙏

  • @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 :)
    th-cam.com/video/21rtHinFA40/w-d-xo.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.