►
From YouTube: ASP.NET Community Standup - Distributed Tracing in .NET
Description
Sourabh Shirhatti shows how to use distributed tracing in your cloud native .NET applications.
Featuring: Sourabh Shirhatti (@sshirhatti)
Community Links: https://www.theurlist.com/aspnet-standup-2020-10-20
#aspnet #dotnet #OpenTelemetry
A
A
A
All
right,
hello,
welcome
to
the
asp.net
community
stand-up,
I'm
john
galloway,
I'm
a
pm
on
the.net
community
team
and
today
we're
joined
by
saurabh
srihadi,
and
so
you
work
on
a
lot
of
cool
stuff.
But
I
I
think
some
of
the
the
stuff
we've
talked
to
you
recently
about
is
is
very
like
it's
server
oriented,
and
can
you
describe
your.
B
Yeah,
so
one
of
the
things
that
I
work
on
now
is
diagnostics
and
observability
of
the
dotnet
platform,
all
up
so
irregardless
of
the
application
model
you
use
you're,
probably
interested
in
figuring
out,
what's
happening.
What's
going
wrong,
you
know
maybe
you're
curious
in
like
performance
insights,
why
something
is
taking
so
long.
So
generally,
you
know
that
encompasses
diagnostics
and
observability,
and
you
know,
we've
been
in
the
dot-net
space.
We've
been
working
all
the
way
from
you
know
like
logs
and
metrics
that
everyone
uses
to
deep
diagnostics
and
dump
analysis.
B
A
Awesome,
and
just
you
know,
I
think
suspense
is
good,
and
you
were
talking
to
me
before
the
call
you've
got
a
very
cool
webcam,
going
that
you
said
it's
blue
screen
to
your
computer
a
few
times
recently,
so
just
yeah.
So
this
is
that
could
be
like
you
know.
Just
if
you
know
if
anyone
loves
suspenseful
tv
shows,
this
could
be
that
so.
A
We'll
see
how
it
goes.
Okay,
I
will
jump
right
into
the
community.
Links
got
some
fun
interesting
ones
today,
as
always,
I
share
these
at
the
end,
actually
I'll
I'll,
throw
them
in
the,
and
so
you
can
follow
along
community
links
and
we'll
see.
If
I
can
type
there
we
go
so
I
threw
those
out
in
the
chat
all
right.
So
here
we
go
first
of
all,
one
really
exciting
one
james
just
posted
about
this
last
week.
So
this
is
the
dot
net
live
tv
and
what's
really
cool
with
this?
A
You
know
all
kinds
of
like
mobile,
all
the
different
kind
of
areas
and
then
since
then,
we've
had
it
on
wednesday
shows,
and
so
we
have
ef
and
machine
learning,
and
so
especially
this
year
with
everyone,
you
know
working
from
home
and-
and
you
know
we
felt
like
these
shows-
are
really
important,
so
we
built
out
and
and
james
ran
this-
it's
amazing.
A
So
this
is
this
whole.net
live
tv,
so
it
includes
not
just
the
community
stand-ups,
but
it
also
includes
things
like
jeff
fritz
doing
the
c
sharp
there's
this
c-sharp
corner
with
insta-fluff,
there's
the.net
docs
show,
so
this
is
kind
of
your
one
place
for
watching
all
the
shows.
So
this
is
neat
one.
One
thing
I
want
to
call
out
here:
that's
really
cool
we've
got
the
blazer
focus
show
starting
up
soon,
so
safiya
abdullah
is
going
to
be
running
that,
and
so
this
is
basically.
A
This
is
where
you
can
find
all
the
stuff
so
really
excited
about
this,
and
this
site
is
built
using
blazer,
which
is
really
neat.
So
I've
I've
been
able
to
like
watch
as
james
and
the
blazer
teams,
doing
code
reviews
and
helping
get
it
all
set
up
and
everything.
So
it's
it's.
It's
really.
It's
a
it's
a
cool
site
and
I'm
really
excited
about
it.
B
A
A
Issue
yeah,
so
there's
there's
that
there's
been
all
kinds
of
interesting
things.
I've
been
learning
as
far
as
how
they
do
loading-
and
you
know
some
of
the
things
were
originally
like
this.
Some
of
the
site
was
originally
the
code
that
we
wrote
was
razer
pages
and
then
they
did
blazer
server
and
now
it's
blazer
webassembly,
and
so
it's
really
pretty
cutting
edge
stuff,
how
they're
doing
it
so
yeah,
okay.
This
is
an
interesting
one
I
saw
come
across.
A
A
It
takes
like
several
seconds
to
load
and
there's
a
ton
of
data
being
being
sent
over
the
wire
and
stuff,
and
then
he
compares
that
to
you
know
something
like
doom,
and
you
know
he
says
like
what's
the
frames
per
second
that
we
get
in,
you
know
when
you're
when
you're
just
like
running
a
doom
app
or
you
know
what
I
mean
running-
a
game-
why?
Why
are
these
web
applications
so
slow,
so
he
actually
does
somewhere
towards
the
beginning.
I'm
I'm
missing
it
here,
but
he
does
talk
about
the
like.
A
Why
are
they
not
that
quick
and
he's
got
an
interesting
system
that
he's
written
up
here,
and
this
does
it's
dependency
tracking
for
everything
in
the
page
and
he
actually
it's
it's.
He
uses
blazer
on
the
front
end
and
he's
he's
using
web
websockets
and
he's
actually
got
this
library
called
fusion,
and
so
it's
doing
doing
this.
A
Actually,
it's
not
just
tied
to
blazer
he's
got
a
sample
using
blazer,
but
he's
got
a
lot
of
different
ones,
but
the
idea
here
is
where
he's
doing
change
tracking
and
allowing
for
very
rapid
updates,
based
on
tracking
just
the
things
that
need
to
be
updated
so,
instead
of
like,
if
you
look
at
something
like
one
of
these
page
loads,
you're,
reloading
tons
of
stuff
and
you're,
sending
tons
information
over
the
wire
and
what
he's
building
is
examples
that
are
just
doing
very
tight
change
tracking.
A
So
it's
very
interesting
he's
got
a
lot
of
interesting
samples
that
you
can
dig
into
in
his
repos.
So
I
I'd
love
to
hear
comments
on
this.
How
people
are
you
know
how,
if,
if
people
could
look
into
this
and
see
see
what
they
think,
I
think
there's
some
very
interesting
ideas
there
all
right,
here's
an
interesting
one
from
madhu
and
he's
looking
at.
Can
I
write
a
blazer
component
with
no
no
html
and
no
events,
and
so
basically
just
write
a
class
and
it's
kind
of
a
just.
A
A
So,
for
instance,
he's
got
a
rendered
delegate
and
he's
got
set
parameters
async
and
he's
got
this
eye
component
attached
and
using
that
this
is
a
simple
self-contained
class
that
renders,
in
this
case
this
this
component.
So
you
know
he's
a
lot
of.
It
is
just
interesting
to
see
how
it's,
how
it's
wired
up
and
how
the
kind
of
blazer
internals
work.
I
do
think
this
could
be
interesting
for
distributing
classes
and
stuff.
It's
just
very
you
know
tight
single
c
sharp
file
so
neat
stuff.
A
All
right,
brian
laguna,
is
writing
about
using
npm
packages
in
blazer.
So
there's
a
lot
of
great
libraries
out
there,
javascript
libraries
that
are
available
in
npm-
and
you
know,
especially
at
this
point
in
where
we're
at
with
blazer
blazer
itself
being
relatively
new
and
they're
a
huge
there's,
not
always
a
one-to-one
mapping
of
everything
you
want
that's
available
as
a
blazer
component,
there's
more
stuff
out
there
in
npm,
so
he's
showing
how
to
set
that
up.
So
he
does
a
walkthrough.
A
He
shows
you
know
using
setting
up
npm
directly
in
your
app
doing
installing
and
then
like
with
webpack
cli
as
a
developer
dependency,
setting
up
the
build
script
for
it
and
then
integrating
it
into
your
blazer
application.
And
then
here
it
shows
you
know,
npm
build
run
and
you
can
set
up
your
cs
proj
to
actually
run
those
npm
tasks,
so
there's
definitely
different
ways
to
do
this.
I've
seen
also
people
just
taking
javascript
and
wrapping
that
using
the
blazer.
A
You
know
using
blazer,
interop
and
creating
a
light
wrapper
component,
but
this
is
interesting
to
see
the
full
kind
of
through
using
npm
all
right,
andrew
lock
again
with
an
amazing
series,
so
we've
been
showing
a
few
of
these
here,
he's
showing
on
running
with
kubernetes,
and
here
he's
looking
specifically
at
running
database
migration.
So
he's
actually
got
two
here.
A
He's
got
one
on
running
when
deploying
and
then
this
specific
run
one
is
on
using
jobs
and
init
containers,
and
so
here
he
talks
through
how
he's
how
he's
running
this-
and
this
is
always
you
know,
database
migrations-
are,
are
tricky
and
there's
different
ways
to
do
it
a
lot
of
time.
I've
heard
from
different
teams.
Some
are
it's
only.
A
You
know,
that's
something
that
the
dbas
run,
and
you
know
we
don't
do
anything
with
that
or
because
it
can
be
a
little
tricky
how
you
handle
it,
but
so
here's
the
example
using
using
that
setting
that
up
using
the
init
containers
he
talks
through
some
of
the
different
options.
You
know
you
can
use
ef
core
migrations
from
global
tool.
You
can
execute
them
manually,
calling
database
migrate.
A
You
can
use
some
great
libraries
out
there
or
using
some
sort
of
different
tools,
so
here
he's
got
a
console
application
as
and
he's
showing
using
a
migrator
doing
that.
So
so
you
know
a
nice
kind
of
walk
through
setting
that
up
curious
in
the
in
the
chat
as
well.
If
you've
got
a
system
that
you
use
for
doing
migrations
so
and
then
of
course
he
ends,
I
love
how
his
posts
end
up.
A
He
he
always,
you
know,
gives
his
his
link
to
a
source,
and
then
he
talks
about
you
know
he
sums
it
up
and
talks
about
how
he's
he's
got
that
set
up
and
using
a
helm
chart
installation.
So
this
is
just
something
that
applies
for
everybody.
This
is
really
cool.
This
is
code
navigation
for
c
sharp
repositories
in
github,
so
this
was
just
announced
yesterday.
So
now,
as
you
are
browsing
your
c-sharp
repositories,
you
actually
get
this
nice
semantic
code
navigation.
A
I
want
to
shout
out
specifically
a
lot
of
people,
but
I
know
damien
guard
put
a
ton
of
work
on
this.
This
goes
back
to
this
issue
was
opened
june
2019,
and
it's
taken
a
lot
of
work.
Updating
these
tree
sitters
and
everything
so
they're
called
out
in
the
announcement
post
here
on
github,
but
I
just
a
big
thank
you
to
the
the
folks
that
set
that
up.
That's
gonna
make
net
coding
easier.
A
Yep
exactly
being
able
directly
in
the
in
the
github
interface
to
be
able
to
search
through
so
yeah
cool.
This
is
a
cool
one
from
shahed,
so
he's
writing
about
debugging,
multiple.net,
core
projects
and
vs
code.
So
he
answered
this
question
from
an
individual
and
so
might
as
well
just
write
it
up
as
a
blog
post,
and
so
he
shows
how
to
set
up
a
launch.
Configuration
has
launched
json.
A
This
is
again,
like
you
know,
regularly
you'll
have
like
a
front-end
app
and
a
back-end
api,
or
maybe
a
few
different
apis
and
so
running
and
debugging.
Those
all
can
be
a
pain,
and
so
this
is
nice
to
just
set
up
a
launch
configuration
and
then
also
this
is
nice.
With
the
launch
panel
and
being
able
to
have
with
the
terminal,
you
can
have
multiple
terminals
as
well.
So
that's
nice
to
be
able
to
do
that.
A
So
that's
that
all
right
christos.
So
this
is
something
that
they've
been
coding
up
on
their
425
show.
They
were
on
our
show
gosh
about
a
month
ago
now
and
talking
about
integration
integrating
with.
In
that
case
they
were
doing
microsoft.identity.web.
A
So
there's
a
lot
here
he's
you
know,
talks
about
benefits
of
grpc
talks
about
all
the
integration,
a
lot
of
screenshots
here,
of
course,
because
we've
got
to
go
through
and
set
up
the
azure
id
integration.
A
So
he
does
all
the
app
registration
stuff
and
updating
grpc
service
et
cetera,
but
then
once
you're
done
and
you're
running
it,
it's
wonderful!
You
do
the
azure
id
authentication,
it
works
everyone's
happy,
so
he
shares
out
the
code.
And
then,
if
you
want
to
see
more
about
it,
you
can
interact
directly
with
them
on
tuesday
mornings.
They
have.
This
4
25
show
all
right
yarp.
So
this
is
cool
yarp
just
released
100
preview,
6
and
some
neat
things
here.
A
There's
support
for
http
helper
for
query,
transforms
header
base,
routing
which,
which
I
understand
was
an
important
user
request
and
so
cool
to
see
as
they
continue
rolling
this
out
and
they
have
support
for
500rc2.
So
that's
good!
A
Okay,
here's
another
blazer
one!
This
is
neil
swimberger
and
he's
talking
about
a
real-time
application
with
blazer
server
and
firestore.
So
I
actually
have
two
clustered
together
here:
firestore
is
a
google
technology
on
google
cloud
platform
and
he's
showing
integrating
that
so
there's
firebase
and
firestore,
and
he
does
the
walkthrough
creating
the
application,
creating
the
firestore
backend,
integrating
that
in
with
a.net
console
application,
and
then
we
also
see
later
integrating
with
the
real-time
real-time
ui,
with
blazer
server
in
firestore.
A
So
this
is
cool.
So
it's
neat
because
blazer
is
you
know
it's
web
technologies?
It's
all!
It's
all.
You
know
open
standards
and
all
that
can
integrate
with
whatever
backend
so
cool,
to
see
that
and
then
so,
there's,
google
and
here's
a
cool
one
from
aws
and
so
aws
has
this
open
source
portingassistant4.net.
A
So
this
is
net
in
general.
Any
up,
you
know
updating
any
net
framework
to
net
core.
What's
they'd
previously
announced
this
in
july,
and
what
they
are
announcing
here
is
that
it's
open
source
they're,
open
sourcing
it.
So
this
is
cool.
This
is
something
that'll
analyze,
dotnet
framework,
dot,
net
framework
applications
and
help.
You
understand
what
you'll
need
to
do
in
order
to
move
to
dot
net
core,
as
well
as
give
some
recommendations.
A
So,
for
instance,
he
gives
an
example
here
of
configuring,
a
recommendation
for
like
system
data,
sql,
client,
and
talking
about
you,
know,
here's
here's!
What
your
recommended
update
will
be,
you
know,
add
a
reference
to
this,
so
these
are
all
these
rules.
They
have
pre-configured
ones
and
you
can
extend
them
as
well.
So
you
can
extend
using
these
json
things.
You
can
also
they
have
support
for
rosalind
analyzers,
and
so
he
talks
about
there.
There's
this
here,
he's
talking
about
in
the
codalyzer
repository
and
using
rosalind
based
code
analyzer
for
that.
A
So
this
looks
like
a
really.
You
know:
help
helpful
utility
as
you're
analyzing
your
applications,
there's
of
course
other
things
you
see,
porting
assistant
and
there's
things
in
the
docs
where
we
make
recommendations,
but
this
this
is
a
really
nice
kind
of
automated
thing
that
you
can
point
at
your
source
code.
A
A
There's
been
a
lot
of
this
has
been
you
know,
built
up
over
there's
been
years
of
contributions
on
this,
and
this
is
neat.
This
is
a
asp.net
core
developer
in
2021.
A
So
looking
ahead,
here's
kind
of
a
map
of
things
to
learn,
so
you
know
talking
about
the
general
development
skills,
c-sharp,
solid
asp.net
basics
and
then
getting
into
more
advanced
things,
so
like
task
scheduling
or
microservices-
and
this
is
up
to
date,
including
things
like
dapper
and
tai,
so
that's
kind
of
the
map
up
at
the
top
and
then
links
to
all
these
different
places
where
you
can
learn
about
it.
So
this
is
always
cool
to
see
the
community
building,
these
sorts
of
things
out
so
wow
a
lot
of
good
stuff.
A
B
So
I
wanted
to
talk
about
you
know
before
I
get
into
demos
and
show
you
what
we
have
sort
of
give
some
historical
basis
of
how
we
landed
up
here
right.
So
we've
had
this
library,
in.net
called
system
diagnostics
diagnostic
source.
Specifically,
there
was
a
like
a
type
of
interest
called
activity
and
activity
was
basically
the
primitive
used
for
you
know
tracking,
distributed
tracing
information,
and
I
think
back
in
was
it
3-1?
B
We
did
some
work
where
you
know,
if
you,
in
the
context
of
an
asp.net
application,
we
created
a
new
activity
for
every
incoming
request
and
then
on
outbound
requests,
we
sort
of
propagated
this
information,
and
you
know
we
used
known
http,
headers
and
so
on
the
other
side,
if
you
had
another
asp.net
application,
it
would
understand
the
distributed
racing
information
we
sent
over
the
wire.
It
would
interpret
it
and
ergo
you
could.
B
You
know
propagate
this
information
from
app
to
app
and
what
we
had
done
is
we
invented
this
hierarchical
format
and
the
way
we
did
it
was
we
looked
internally.
We
saw
what
a
couple
of
themes
in
azure
were
doing
and
we
thought
hey.
This
is
a
good
way
to
represent
it.
At
the
same
time,
in
the
community
there
were
a
couple
of
projects.
There
was
open,
tracing
and
open
census
and
they
sort
of
merged
together
to
form
this
new
project
called
open,
telemetry
and
open
telemetry
is
now
part
of
the
cncf.
B
For
folks
who
are
not
familiar,
that's
the
you
know
cloud
native
computing
foundation,
which
is
part
of
the
linux
foundation
right
and
what
they're
trying
to
do
is
they
are
trying
to
now
define
a
vendor
neutral
specification
for
publishing
and
capturing
observability
data
and
when
I
say,
observability
data,
there's
sort
of
this
consensus
in
the
industry
that
there
are
three
pillars
of
observability,
so
we
have
tracing
which
is
distributed.
B
Tracing
logging
and
metrics,
so
open
telemetry
is
trying
to
grow
into
the
role
to
solve
all
those
needs,
but
the
focus
of
the
project-
primarily
I
mean
at
least
thus
far-
has
been
on
distributed
racing.
So,
while
we're
looking
at
investments,
especially
in
the
dot
net
six
time
frame
to
align
the
metric
story,
in.net
with
open
telemetry
today,
let's
focus
on
the
distributed
tracing
aspect
of
it.
A
B
B
Okay,
so
this
is
first
thing.
I
want
to
point
folks
to
there's
this.
Like
I
mentioned
right,
open
telemetry
aims
to
define
a
vendor
neutral
specification,
so
this
repository
sort
of
has
the
specification.
B
So
this
is
a
language
agnostic
specification
and
then
it's
really
up
to
the
open
telemetry
implementations
in
each
of
the
language
stacks
to
implement
the
specification.
So
what
we
did
in
net
is
when
we
spoke
to
customers.
The
thing
that
we
found
out
is
folks
are
wary
of
taking
external
dependencies
when
they're
building
libraries
like
it's
a
little
different
if
you're
an
end
user
right,
but
as
a
library
we've
all
you
know,
we
know
the
horrors
of
binding
redirects
of
bus.
A
B
B
So
there's
a
project
called
opentelemetry.net,
which,
understandably
you
can
guess
from
the
name,
is
the
net
implementation
of
the
open
telemetry
project,
and
this
is
supported
on
you,
know.net
four,
five
and
above
and
dot
net
core,
all
the
supported
versions,
of.net
core!
So
it's
you
know
it's
pretty
widely
applicable
and
what
we
said-
and
I
I
won't
read
through
the
entire
document,
but
the
basic
guidance
is
rather
than
directly
relying
on
the
open
telemetry
apis.
You
don't
in
your.
B
If
you're
a
library,
author,
you
don't
need
to
take
a
dependency
on
this,
you
can
just
use.
You
know
like
types
in
system
diagnostics,
diagnostic
source,
which
is
actually
part
of
the
bcl.
It
also
ships
as
a
new
package
for,
like
you,
know,
framework,
and
you
can
create
these
types
and
now
because
we
have
the
same
projection
of
data
that
open
telemetry
spans.
B
Do
when
you
integrate
your
project
with
open
telemetry,
like,
if
you
add
in
their
exporter
apis,
for
example,
you
use
open
telemetry
to
export
this
data
to
zipkin
and
if
that
doesn't
make
any
sense,
no
worries
I'll
cover
it
in
a
demo.
Very
soon
you
get
that
information
without
having
you
know,
taken
a
dependency
on
open
telemetry
to
synthesize
the
data.
B
So
there's
really,
you
know
the
the
biggest
call
to
action
I
have
today
is
if
you're
a
library
author
now
is
a
seriously
good
time
to
look
at
adding
support
for
open
telemetry
right.
So
let's
do
this.
Let
me
hop
over
into
visual
studio
and
I'll
show.
A
couple
like
I'll
show
a
simple
demo
and
then
we'll
go
from
there
right.
B
We
have
this,
you
know
like
I
mentioned,
we
have
this
new
activity
api
and
what
we've
done
is
we
sort
of
made
it
as
part
of
the
work
to
you
know,
make
it
more
compatible
with
open
telemetry.
We
also
made
it
a
more
ergonomic
and
easy
to
use
api.
So
now,
if
you
were
a
library
author,
this
is
sort
of
the
pattern
you'd
be
using
to
create
an
activity.
So
I
have
an
activity
source
here.
B
It's
a
named
activity
source
and
whenever
I
have
my
operation
of
interest,
I
can
use
the
activity
source
to
start
a
new
activity,
and
you
know
it
in
it
handles
certain
things
for
me
like
it
makes
sure.
Like
you
know,
you
obviously
don't
want
to
allocate
create
an
activity
if
no
one's
listening,
right
or
based
on
the
sampling
policy,
you
might,
this
activity
might
not
be
observed.
You
might
only
observe
ten
percent
of
all.
B
Like
all
you
know,
traces
going
through
the
system,
so
it
sort
of,
is
smart
there
and
helps
you
save
on
things,
but
once
you're
you
know
in
the
context
in
in
this
context,
and
you
have
an
activity
created,
you
can
do
stuff
like
annotated
with
information.
You
obviously
have
you
know,
tags
or
set
of
key
value
pairs.
Events
are
certain,
you
know
operational
time
stamps,
and
then
there
are
certain.
You
know.
B
Other
key
value
pairs
you
can
add
like
status,
is
something
that's
defined
as
part
of
the
open.
Telemetry
span
specification,
something
we
don't
quite
have
in
dot
net
yet,
but
you
can
use
you
know,
I
think,
there's
some.
What's
the
what
I
was
looking
for
semantic
guidance
on
use,
a
well-known
tag,
I'm
actually
trying.
B
I
would
say
you
know
this
would
be
a
good
link
for
folks
to
check
out
it's
on
the
open,
telemetry
side,
and
this
is
the
guidance
so
yeah
for
things
that
aren't
necessarily
supported
you
can
set.
You
know,
well-known
tags,
and
things
like
that
so
anyway,
now
that
I've
created
the
activity,
there
are
two
ways
to
consume
it
right.
You
could
create
an
activity
listener
directly
and
that's
sort
of
the
raw
you
know
bcl
type
or
what
you
could.
B
B
So
this
is
again,
you
know
this
is
a
simple
demo,
but
you
know
in
a
more
real-world
application.
You
might
add
a
zipkin
exporter,
and
you
know
you
probably
add
this
zipkin
exporter
to
both
your
front-end
back-end
or
you
know,
whatever
all
the
tiers
of
your
service,
so
it
can
stitch
together
the
information.
B
So
if
I
go
ahead
and
run
this
there
shouldn't
be
anything
interesting
right
now,
but
I
just
want
to
you
know
show
this.
So
this
is
sort
of
information
that
we've
annotated
on
the
activity.
There's
a
couple
of
other
things
like
you
know
the
start
time
and
the
duration
that
it
creates
for
us.
I
remember
talking
about
events
like
I
added
a
you
know,
an
event
of
my
own
and
it
gave
me
like
a
timestamp,
so
I
happened
to
see
there
like
a
couple
questions
pouring
in
about
the
exporters
in
zipkin
and
bro.
A
B
B
Now,
if
even
if
you
say,
if
you're
speaking
from
like
a
python
application
to
a.net
core
application,
you
know
the
python
application
is
instrumented
with
open
telemetry
and
then
it
uses
the
w3c
trace
context.
So
that's
a
recently
ratified
w3c
standard
that
tells
you
how
to
propagate
this
information
using
http,
headers
right.
A
B
Yeah
and
so
that's
you
know,
that's
our
goal.
We've
been
working
very
closely
on
this
effort
with
the
the
team
that
owns
azure
application,
insights.
A
B
Know
I
think
the
the
the
desire
for
a
vendor
neutral
specification
is
great
and
especially
one
that
works
across
all
languages.
So
it's
something
you
know
the
thing
that
I'm
showing
you
is
something
where
application
insights
will
get
to
it.
You
know
we'll.
You
know
we
get
to
the
point
where
it
can
be
open,
telemetry
based,
but.
A
A
B
B
Right,
it's
funny.
You
ask
that
question
because
I
was
doing
something
unrelated,
but
I
happened
to
have
this
window
open
right
here.
So
I
think
you
know
earlier
talk
when
I
was
here.
I
came
and
spoke
about.
You
know,
event
pipe
and
the
diagnostic
server.
B
Is
in
addition
to
you
know,
I
was
talking
about
the
raw
bcla
activity
listener
that
you
could
use
to
get
this
information.
We
also
have
a
way
of
egressing
this
information
from
out
of
the
process,
so
you
don't
have
to
be
present
within
the
process
to
get
to
it.
So
I
have
this.net
trace
commander.
I
can
try
and
zoom
in
and
the
provider
of
interest
is
the
microsoft
diagnostics
diagnostic
source
and
you
can
say
hey.
I
want
to
listen
to
you
know
certain
events.
B
Stick
it
into
a
string
to
turn
on
what
provider
so
in
here
I've
only
enabled
the
start
of
this,
the
start
provider
and
I
get
the
span
id.
So
you
know
ty,
while
tai
inject
some
stuff
in
your
application.
The
way
it
actually
gets
distributed.
Tracing
information
is
effectively
using.
This
they'll
subscribe
to
a
couple,
more
events
and
a
couple
more
providers,
but
they
are
using
the
activity,
information
and
that's
how
and
then
tai
populates
it
in
its
own
process
and
then
sends
it
to
zipkin,
which
you
can
use
to
visualize.
B
So
what
I'm
going
to
do
is
I'm
actually
going
to
show
you
a
demo,
I'm
running
it
with
dye,
but
that
just
happens
to
be
incidental,
but
I'm
gonna
be
using
zipkin
directly
from
my
application.
So
I'm
not
really
relying
on
the
you
know
the
the
thai
I'm
not
relying
on
type
or
say
so.
B
Oh
sorry,
just
one
thing
before
I
jump
over,
I
want
to
say:
yes,
while
you
can
use
activity
listener
to
directly
consume
this
information,
you're
more
likely
going
to
be
using
something
like
open,
telemetry
and
then
open
telemetry
has
the
notion
of
exporters.
So
it's
sort
of
the
same
core
library
very
similar
to
like
our
ilogger
syncs
right.
You
can
plug
in
different
logger
providers
and
you
get
the
same
fidelity
of
information
going
under
different
things.
So
I
was
showing
you
in
this
example.
B
I
had
a
console
exporter
that
I
just
ran
and
I
could
have
added
zipkin,
but
I'm
going
to
hop
over
now
to
this
asp.net
application
I
have,
and
what
I've
done
here
is
I've
set
up
distributed
tracing.
So
I
had
to
do
a
couple
of
things:
I'm
in
my
startup
reconfigure
services
and,
I
said:
hey,
let's
add
open
telemetry
and
I
told
you
right:
asp.net
code
had
already
has
already
been
instrumented
with
activity
and
so
has
http
client.
But
these
sort
of
extension
methods
tell
you
hey.
A
So
I
don't
know
if
now's
a
good
time,
but
this
is
an
interesting
question
from
alfred
he's
asking
for
the
difference
between
tracing
in
this
context
versus
that
that's
in
microsoft,
extensions
logging,
when
using
trace
log
level.
B
Okay,
so
so
the
trace
log
level
just
happens.
You
know
the
word
trace
happens
to
be
overloaded
and
the
trace
log
level
when
we're
talking
about
logging
is
just
one
of
the
different
levels
of
verbosity
right.
This
isn't
that.
So,
when
I'm
talking
about
distributed
tracing
here,
I'm
really
talking
about
how
do
I
see
the
causal
links
between
relationships?
A
A
It's
I
mean
the
whole
thing
comes
down
to
it's
distributed
right,
so,
in
a
distributed
application
you're
trying
to
understand
I've
got
a
back
end.
I've
got
a
data.
Tier
I've
got
an
api.
I've
got
this.
I've
got
front
end,
you
know
api,
maybe
multiple
front
ends,
and
how
do
I
understand
what
failed?
What
why
did
this
order?
Come
in
and
not
get
trans
or
why
is
it
slow
or
whatever
right.
B
But
there's
also
the
the
interesting
bit,
which
is
you
might
want
to
see
like
this
gantt
chart
or
waterfall
of
these
causally
related
operations,
but
most
likely
once
you
see
that
you're
gonna
probably
want
to
go
back
to
your
logs
and
I'm
going
to
get
to
that
in
a
bit
too
as
part
of
the
distributed
tracing
work,
we
also
made
it.
We
made
logging
distributor
tracing
aware
so
I'll
get
to
that.
B
So
I
have
this,
you
know
so
the
application
I
was
showing
you
is
this
trivia
game,
that's
been
built,
so
there's
a
front
end
on
the
back
end.
It's
a
blazer
front,
end
talking
to
grpc,
backend
and
sort
of.
I
had
to
do
this
in
both
my
applications.
I
said
hey,
let
me
add,
distributed
tracing
and
in
this
case
I
say,
let
me
add,
you
know
asp.net
core
instrumentation,
http
client.
I
have
an
always-on
sampler
here,
but
there's
sort
of
you
know
different
sampling
strategies.
B
Like
I
mentioned,
you
can
only
sample
some
of
the
stuff
going
in
and
then
I
sort
of
just
got
my
connection
string
and
I'm
sending
my
data
here
so
now
for
the
fun
bit,
which
is,
let
me
pull
over
a
tab?
Okay,
so
this
is
the
application
I've
written.
So
let's
go
to
this
bit
where
I
play
trivia,
you
know
I'm
gonna
play
as
john.
B
Score
doesn't
count
now
what
this
did
is.
Actually
it
started
a
streaming,
grpc
call,
so
the
service
actually
streaming
me
questions.
If
I
go
ahead
and
like
say
answer
this
question,
the
server
streams
me
another
question
right
away,
nice
and
let
me
go
and
answer
another
question.
It
was
a
simple
game,
two
questions.
You
did
really
well,
john.
You
scored
a
hundred
percent
of
the
quiz
and.
B
I
can
go
ahead
and
play
again,
but
I'm
going
to
go
ahead
and
close
this
for
now,
and
so
you
know,
I
I
told
you
all
these
things
there's
a
front-end
back-end
which,
if
effectively
there
are
a
bunch
of
operations
that
are
causally
related
right
and
I
would
love
to
see
that
relationship.
So
how
like?
How
would
I
do
that
so
because
I've
been
sending
this
information
to
zipkin
and
now,
hopefully
a
lot
of
the
folks
have
frustrated
by
not
getting
the
zip
code
up
until
now
will
be
happy.
A
B
Absolutely,
and
so
you
know,
I
was
telling
you
all
these
things
like
this
was
the
beginning
of
the
blazer
circuit,
and
you
know
I
did
this
start
trivia.
It
was
a
grpc
call.
You
can
see
this.
This
information
came
from
jpc.
I
even
have
the
open,
telemetry
status
code
reported
by
the
grpc
library,
because
it's
aware,
and
then
this
is
my
you
know,
I
said
there
was
a
streaming
call,
so
you
can
see.
There's
this
17.
B
Second
long
call
excuse
me,
and
then
you
see
at
the
end,
at
the
completion
of
that
I
sent
another
call
to
get
my
score
and
you
can
see
you
know
this
is
I
it's
sort
of
these
were
small,
so
you
might
have
missed
it
first,
but.
A
B
A
B
So
it
has
the
yes,
so
there
are
like
certain,
like
you
know,
properties
associated
with
it.
One
is
like
start
stop.
You
can
add
like
tags
to
it,
which
is
basically
like
key
value
pairs
of
information.
You
can
also
have
activity
links
like
you
know.
I
showed
you
a
simple
thing
where
one
thing
called
another,
that's
called
another.
Sometimes
you
can
have
like
batched
operations.
B
You
can
you
know
fire
10
off
together,
so
you
can
have
links
that
say
hey.
This
is
my
peer
rather
than
this
is
my
parent.
So
all
of
that
could
be
you
know,
visualized
using
that
sort
of
think
of
you
know
the
you
know
in
chrome.
You
have
that
thing.
Where
you
see
the
order
of
http
operations,
it
was
where's
that
gone.
B
Exactly
this
one:
okay,
can
you
see
this
waterfall?
It's
something
like
you
know,
it's
a
very
similar
visualization
too,
but
so
I'm
taking
a
small
detour
to
talk
about
logging
and
it
will
make
sense
in
a
second
right.
B
Want
to
remind
folks
so
this
is
simple.
You
know
I'm
using
logging
in
a
console
application
and
I've
done
this
thing
called
you
know.
Logger
guard
begin
scope
and
you
know:
we've
had
we
use
an
async
local
to
persist,
scope
information.
So
even
if
you
know
you
go
everything
to
perform
other
operation,
this
remains
and
what
this
effectively
does
is
says:
hey
all
these
log
messages
that
happen
inside
this
logging
scope.
Please
annotate
this
information
right
so.
B
And
run
this
sample,
you
know
that
took
longer
than
I
thought.
Okay,
so
you
know
these
are
the
logs
that
I
expect,
like
hey
log
information,
so
you
see
info,
you
see
the
stuff,
but
then
you
see
this
information
annotated
for
each
of
these
logs
because
we're
running
inside
the
context
of
logging
scope
right
and
so
this
because
this
mechanism
exists
in
logging,
we
said
hey,
why
don't
we
make
the
log
smarter
and
we
make
it
activity
aware?
B
Why
don't
we
stick
what
activity
you're
running
under
right
now,
so
we
added
a
couple
of
options
on
the
logger,
so
you
say
now
when
I'm
creating,
you
know
configuring
logging,
I
say
activity
tracking
options
and
I
said:
hey,
you
know
annotate
each
of
my
logs
with
the
span
id
trace,
id
and
parent
id
okay,
so
trace
id
is
you
know
for
the
current
operation
parent
is?
Who
invoked
me
and
span?
Is
that
logical
identifier?
That
goes?
You
know
across
the
entire
trace.
A
B
Right
and
once
I
did
this,
the
other
thing
I
have
to
do
is
I
have
to
actually
be
running
in
the
context
of
an
activity
for
this
to
you
know,
yield
anything
useful,
but
in
this
case
I
am
so
I
created
an
activity
so
now
I'm
running
a
sentence
inside
the
context
of
an
activity.
So
now,
if
I
go
ahead
and
run
this,
you
can
see
so
I
still
have
the
same.
You
know
scope
information
from
last
time
right
this
one,
but
also
you
see
this
new
stuff
added.
B
What
I
did
so
you
don't
have
to
do
this
by
the
way
if
you're
running
an
asp.net
core.
This
stuff
happens
for
you
directly,
but
if
you're
running
in
you
know
in
another
context
or
newing
up
your
logo
and
you
want
to
be
distributed
tracing
and
where
you
might
have
to
do
this.
So
if
I
go
back
over
to
this
tab
right,
so
you
see
we
were
looking
at
this.
B
You
know
operation,
so
you
see
there's
this
trace
id
associated
with
this
operation
and
I'm
going
to
go
ahead
and
copy
this,
and
now
I'm
going
to
go
to
where
my
logs
live
right
now,
and
so
you
know,
I
just
happen
to
be
using
diet
to
run
it,
but
whatever
your
eventual
log
store
is,
and
I'm
just
going
gonna
do
a
naive.
You
know
search
and
page
and
stick
in
that
race,
id
and
boom,
and
this
is
sort
of
the
workflow
you
would
be
using
right.
You'd
be
like.
A
B
I
go
look
at
this,
you
know
distributed
race
and
something
seems
amiss.
Let
me
use
this
as
the
way
to
key
into
my
logs
and
identify
what
went
wrong
and
all
of
this
you
know
just
works.
You
got
it.
You
don't
have
to
do
like
anything
for
the
logs
to
be
activity.
Aware.
A
B
B
I
personally
have
not
used
jager.
Okay,
I
I
mean
I
I
wouldn't
be
the
you
know
best
person
to
comment.
However,
I
do
want
to
point
out
that
it's
all
you
need
is
a
different
exporter
for
open
telemetry,
like
the.
B
B
Case
I
said
I
want
asp.net
code,
I
want
http
client,
there
was
the
other
one
in
which
I
think
I
said
hey.
I
want
grpc
as
well
right.
Then
you
say
what
is
the
sampling,
so
how
many
of
these
samples
do
you
want
to
consume
and
there
are
different
philosophies
you
can
have
and
then
the
last
bit
is
you
add
the
exporters
you're
like?
Where
do
you
want
to
send
this
information.
A
B
Right-
and
you
know
I
added
zipkin-
I
believe,
there's
a
jaeger
exporter
and
if
that
isn't,
I
trust
you
know,
there'll
be
one
very
very
soon
and
you
know
we're
working
we're
looking
at
adding
an
application
insights
exporter,
I
know
a
couple
of
the
other
apm
vendors
have
it.
I
think
you
know
I
I
don't
remember,
which
ones
I
think
maybe
was
it
splunk
and
I
want
to
say:
datadog
have
exporters,
and
this
is
sort
of
you
know
the
move
across
the
industry.
Everyone's
moving
to
this.
A
B
B
That
activity
context
using
that
incoming
header.
B
B
B
And
so
so
I
can
you
know
the
the
one
thing
I
want
to
talk
to
is
about
the
the
project
and
what
the
maturity
level
is.
A
B
Right
now
the
opentelemetry.net
implementation
is
in
beta.
The
idea
is
as
soon
as
dotnet
5
goes
ga
or
soon
after
that
we
want
the
the
open,
telemetry
project
will
go.
Ga
again,
you
know
that's
a
recommendation.
I
can't
speak
for
it
because
it's
a
independent
project
with
its
own
governance
yeah,
but
I
mean.
B
B
It'll
be
a
stable
version
which
is
released.
The
good
thing
is
library:
authors
can,
you
know,
start
working
on
instrumenting
their
applications
because
they
don't
need
to
rely
on
wait
for
the
open,
telemetry
stuff-
oh
my
god,
so
my
fire
alarm
is
being
tested.
A
Oh
good:
well,
if
it's
a
real
fire,
then
I'll
just.
A
A
A
Well
thanks
a
bunch
syrah.
This
was
this,
was
a
fun
show
yeah,
I
told
you
suspense.
I
did
promise
suspense
for
the
show,
so
the
community
links
I
shared
them
earlier.
I
added
in
the
link
to
the
opentelemetry.net.
A
So,
as
he
said,
it's
in
it's
in
ga
or
it's
in
beta
now
will
ga
at
or
shortly
after
um.net
5
releases
and
that's
expected
for
dotnetconf.netconf
is
coming
up
and
that's
uh.netconf
is
november
10th
through
12th,
and
so
a
lot
of
cool
stuff
happening
then
and
and
including.net5
so
very
much
looking
forward
to
that,
and
I
guess
we'll
wrap
up
there
for
those
that
are
watching
on
twitch,
we'll
go
raid,
somebody
and
all
right
the.
I
think
that
that
breaks
some
records
for
suspense
in
the
show.
A
So
we'll
let
you
know
when,
when
we
hear
from
sarah
that
he's
okay,
all
right
thanks.