►
From YouTube: 2022-10-18 meeting
Description
Instrumentation: Messaging
A
A
A
A
C
B
B
D
The
schema
you
know
stick
that
started
us
today:
yeah.
D
A
So
yeah
before.
C
We
get
started
on
the
main
topic.
The
schema
I
have
one
quick
question,
so
there
is
a
this
is
a
question
to
nav
to
do
and
Martin.
C
C
So
in
that
context
there
was
a
definition
of
what
is
an
event
that
was
put
out
in
the
spec,
and
it
said
that
event
is
a
log
record
where
the
there
is
a
name
attribute,
and
then
there
is
a
name,
a
trip
event.name.
As
an
attribute
on
the
log
record
and
event.domain
attribute
on
the
scope
to
me,
it
was
complex
definition
of
what
an
event
is.
C
You
know
to
me
an
event
is
just
a
log
record
with
you
know
these
two
attributes
and
you
know
no
matter
I,
don't
want
to
go
into
the
details
of
you
know
where
these
attributes
actually
end
up
on
The
Wire.
C
So
in
in
that
discussion
you
know
there
was
you
know.
One
argument
was
that
you
know
we
ended
up
putting
the
domain
attribute
on
the
scope.
You
know
you
just
duplicate
it
on
every
log
record
which
I
think
for
for
our
purpose
for
the
browser
instrumentation,
you
know
we
we
don't
prefer,
because
we
wanted
the
pillar
to
be
smaller,
whereas
if
we
keep
it
on
the
scope,
the
you
know,
the
the
language,
the
the
definition
of
an
event
becomes
complex,
but
then
I
learned
this
morning.
C
Let
me
share
my
screen
that
that
the
definition
of
a
log
record
today.
C
C
Fields,
you
know
they
have
resource
and
instrumentation
scope
and
according
to
tigran
in
a
conceptually,
these
are
part
of
a
log
record.
Although
you
know
in
in
a
in
a
strictly
speaking
under
the
wire,
you
know
they
might
come
in
in
other
places.
So
it's
a
little
conflicting
to
me
so
with
this
argument,
I
can
keep
the
definition
simple,
but
still
keep
the
event.domain
at
the
scope
level.
Yeah.
E
So
I
I,
just
so
in
the
spec
seg,
which
was
just
prior
to
here,
Tigger
and
opened
up
a
new
PR,
which
I've
placed
into
the
chat
to
clarify
the
instrumentation
scope,
will
be
build
time.
Values
only
which
means
putting
the
event
domain
in
the
instrumentation
scope
will
be
not
allowed.
Oh.
E
And
I
think
we
have
we've
actually
already
defined
some
other
events
where
we
wanted
to
put
the
value
into
instrumentation
scope,
and
this
PR
is
saying
that
that
should
not
be
done.
He
specifically
called
that
yeah
I
think
the
process
ID
thread
ID
and
session
IDs
are
currently
being
put
in
there
today,
which
they
should
not
be.
B
E
I
think
it
was
too
yeah
exactly
all
the
all.
The
the
immutable
values
would
end
up
going
into
scope,
but
now
he's
raised
this
well
and
saying:
no
so.
C
Okay,
so
with
this
with
this,
then
okay,
so
the
domain
will
move
into
the
individual
log
record.
Then
yeah,
okay,
but
which
is
not
good
for
us.
E
No
well
originally
I
was
thinking
that
effectively,
it
would
be
like
you
know.
The
event
name
would
be
browser
dot
whatever
and
splitting
it
out
into
a
separate
thing.
So
you
had
a
bit
dot
domain,
an
event.name,
it's
like
okay,
so
I
was
conceptually
thinking
that
it
was
actually
just
part
of
every
event
anyway,
and
it
was
only
really
that
you
effectively
created
a
a
log
of
antimatter
which
defined
the
domain
and
I
went
okay.
Fine.
That
means
we
can.
E
We
can
have
it
as
one
if
there's
still
a
place
on
the
log.
You
know
the
the
transport
to
be
in
one
place.
That
would
be
nice,
but
yeah.
C
Well,
I
think
the
problem,
you
know
it
could
be
minor,
but
it
is
still
it's
going
to
be
repeating
on
every
signal
correct
and
in
our
case
it's
it's
fixed
browser
right.
It
is
not
even
like
a
session
ID,
it's
not
even
varying
anything.
It's.
E
Going
to
depend
on
the
events
that
we're
emitting.
If
we
do
come
across
some
common
events,
then
it
won't
always
be
browser.
D
E
Yeah
exactly,
which
is
why
it
was
a
bad
example,
but.
E
Yeah
there
may
or
may
not
be
an
event
which
we
say
this
is
common
enough
between
the
different
domains
like
for
mobile,
that
we,
we
say:
okay,
let's
just
Define
the
event
once,
but
we
could
also
say:
let's
define
the
event
once,
but
it
could
be
in
multiple
domains.
That's
which
is
another
way
we
can
do
it
so.
A
C
Okay,
so
then
looks
like
we
don't
have
much
choice,
right,
I,
think
if,
if
this
PR.
E
D
Okay,
so
the
last
piece
I,
don't
you
know
fully
follow?
What
did
we
say
if
this
PR
goes
in,
you
know
we'll
end
up
using
record.
Is
that
what
we.
C
Said
and
no
so
so,
how.
C
Here
there
is
a
scope
and
the
you
know
in
the
today's
modeling
you
know
we
had
you
know
attributes,
and
then
there
was
a
domain.
Sorry
there
was
a
event:
dot
domain
equals
browser
right.
So
this
is
how,
as
of
today,
all
events
will
have
the
domain
at
the
scope,
level
right
and
and
then
the
event.name
is
inside
an
event.
A
C
So
for
the
customer
event,
you're
right
I
think
they
will
have
to
obtain
a
different
logger
with
with
the
different
event.domain
in
that
scope,
yeah.
E
E
Know
the
outbound.
C
So
the
scope
is
definitely
enclosing
all
the
spans,
but
if
the
scope
is
different,
let's
say
the
same:
fetch
Sim
Library
is
is
used
to
emit
logs.
But
in
one
case
you
know
the
you
know
the
the
domain
is
different.
Then
they
will
have
to
come
in.
Let's
say
the
scope
spans
is
an
array
yeah
right,
so
this
yeah.
E
C
A
C
Okay
yeah,
then,
if
we
can't
do
much,
then
we
can't
do
much
question.
C
Only
only
cases,
custom
events,
so
so
you're
right
that,
maybe
maybe
we
could
go
that
way
too-
that
for
all
the
instrumentation
generated
events,
the
default
events,
you
know
we
could
hard
code
this
at
build
time.
E
A
C
Yeah
I,
actually
can
we
find
out
one
thing
that,
irrespective
of
where
this
domain
is
whether
at
the
scope
level
or
at
the
log
record
level,
where
do
the
back
ends?
What
do
the
backends
want?
My
understanding
is
only
on
the
wire
for
the
purpose
of
wire
efficiency.
You
know
we
want
it
here,
but
eventually
they
they
will
end
up
going
closer
yeah,
because.
C
C
C
C
So
maybe
you
know
if
you
also
could
find
out
what
your
back
end
folks
think
like
like
what
I'm
trying
to
get
to
is
the
event
dot
domain.
It
is
okay
for
it
to
be
at
scope
level
in
some
cases,
at
the
log
record
level.
In
some
other
cases,
the
back
ends
will
will
normalize
it
and
move
them
all
in
in
one
form
when
they
receive
it.
D
Currently,
you
know
from
our
side
the
backend
teams
are
not
really
looking
into
it,
they're
just
starting
to
describe
to
surface
in
terms
of
enabling
otlp
based
ingestion,
it's
starting
as
a
POC
this
this
semester,
so
so
far,
everything
that
we
have
in
mind
is
that
will
protect
the
back
end
by
doing
the
snapping.
You
know
our
exporters
will
take
care
of
that.
D
So
anything
the
exporters
will
have
to
massage
the
data
and
try
to
get
it
to
the
same
anyway.
We,
you
know
none
of
this
matters
to
our
current
backends
sure
sure,
but
this
will
actually
be
a
question
for
people
that
have
otlp
capable
backends
at
the
moment.
Yeah
we
need
their
participation,
see
if
they're
you
know,
participating
there
and
influencing
these
decisions.
A
E
Probably
the
other
note
on
this
based
on
this
PR
I,
think
and
I
could
be
wrong
in
our
spreadsheet.
We
actually
defined
some
attributes
that
we
were
going
to
put
at
the
instrumentation
scope
level,
so
we
probably
need
to
go
and
just
tag
those
so
that
if
this
PR
goes
in
which,
based
on
the
feedback
that
came
in
the
respect,
meaning
it
probably
is
very
likely
to
that.
A
C
Oh,
which
ones
in
our
I.
D
One
click
scan
I
couldn't
find
any.
You
know
it
probably.
You
know
it
should
be
in
the
description
Fields.
If,
if
any
I
did
a
quick
scan,
while
you
guys
were
talking
I
couldn't
find
any,
maybe
you
know.
C
But
we
haven't
put
anything
at
the
scope
level.
It's
mostly
at
the
resource.
C
Okay,
so
to
to
conclude
here,
it's
it's
possible
that
we
might
still
continue
to
put
this
attribute
at
the
scope
level,
but
at
the
same
time
for
custom
events,
the
same
attribute
could
either
go
at
the
scope
or
at
the
individual
log
record
level.
So
we
we
still
want
the
spec
to
allow
for
both
scenarios.
What.
E
Okay,
I
I,
guess
terrific.
Ideally
we
want
to
keep
the
payload
as
full
as
possible.
You
know
your
question
about
how
the
back
end
is
going
to
deal
with
it.
That
I
think
sort
of
needs
to
be
answered
a
little
bit
as
well,
because
by
saying
it
could
be
an
either
we're
effectively
complicating.
A
C
E
Would
be
the
event
but
yeah
so.
D
D
Yeah,
the
only
downside
is,
if
there's
a
common
event
across
browsers
and
mobile
devices,
say
you
know
we
have
a
problem,
you
know
the
easiest
solution,
for
that
would
be
crude
solution
is
just
duplicate
the
event
you
know,
call
it
different
and
there
are
going
to
be
subtle.
Differences
might
as
well.
Do
it.
C
A
C
D
Understood
so
namespacing
is
probably
the
better
way
right.
So
that's
how
we
have
traditionally
done
it
internally.
It's
all
namespaced
yeah
and
the
only
downside
of
doing
the
namespace
is,
if
there's
a
common
event,
then
you
know
the
moment.
You
call
something
browser.ph
view
you
cannot
use
it
for
anything
other
than
browser
which
I
think
is
okay.
You
know
if
it
if
it
seems
like
exact
event,
we'll
make
a
copy
and
then
call
it
like
that
that
at
least
gives
it
good
money.
C
E
C
But
Domain
Hotel
is
not
very
helpful
right
because
there
is
other
teams.
Other
instrumentations,
that
like
domain,
is
not
serving
any
purpose.
E
D
Another
thing
I
would
like
to
bring
up.
You
know
when
we
talk
about
the
payload,
optimization
and
stuff
right,
the
repetition
and
things
I'll.
You
know
I'll
just
ask
this
question
right
now.
How
often
do
we?
You
know
what
is
the
common
batch
size
for
browser
events?
D
You
know,
how
often
do
we
flush
we're,
probably
not
talking
hundreds
of
thousands
of
events
in
a
single
patch,
where
this
optimization
will
pay
a
lot
of
dividend
right
if
we
are
generally
doing
it
on
average,
the
browsers,
usually
just
move
pages
in
under
pretty
small
batches.
That's
my
take
on
it.
You
know,
I'll
leave
it
up
to
you
guys.
You
know
you
know
you
have
experience,
you
can
talk
about
it.
Nev
does
a
lot
of
batching
in
are
our
staff.
D
So,
in
our
name
I'd
like
to
hear
your
thoughts
too,
we
might
be
giving
too
much
weightage
for
optimization
in
the
browser.
Then
it's
actually
required
I
I
would
say
if
all
you're
talking
about
is
10
events
on
an
average
in
a
batch
yeah,
you
know
putting
it
in
the
scope
there
and
then
paying
the
price
for
somebody
to
take
it
out
and
then
put
it
back
in.
There
might
not
justify
it
and
I'd
like
us
to
discuss
about
that.
A
little
bit.
E
A
E
The
64k
unload
limit
goes
out
the
door
pretty
quick,
even
with
our
you
know,
with
the
1DS
one
and
two
second
flushing.
There
are
teams
that
effectively
we
lose
events,
because
we
can't
send
them
all
because
of
the
64k
limit.
Today,.
D
Right
I
mean
we
expect
the
badges
right,
so
the
64k
limit.
I
guess
that's
that's
another
thing
also.
E
Yeah
because
send
Beacon
effectively
it's
a
64k
limit
of
all
outstanding
requests,
so
even
splitting
it
which
we
do
try
and
do
we
try
and
send
a
a
single
Cent
Beacon
and
if
it
says
no
I
can't
do
that.
We
then
start
sending
each
individual
one
at
a
separate
event
until
we
get
to
the
Limit
because
yeah,
if
you've
got
128
K
of
events,
you're
we're
only
ever
going
to
be
Alison,
that's
the
first
64k,
even
in
multiple
batches
because
of
electron
Firefox,
because
the
way
chromium
handles
it
is
effectively.
E
D
Correct
so
in
in
normal
case
and
I
think
yeah
that
that's
definitely
a
legit
use
case
the
normal
times.
D
Let's
say
you
have
a
bunch
of
events
that
you
want
to
send
I
think
we
were
talking
about
optimization.
If
I
have
to
send
100
events,
I,
don't
want
to
repeat
the
browser
100
times
exactly.
D
That
is
what
I
was
going
after.
It's
like
maybe.
C
D
C
Also
getting
to
the
same
conclusion
that
maybe
we
should
now
that
the
compression
API
is
coming,
we
could
be
more
forward-looking
and,
and
then
maybe
in
in
scenarios
in
in
for
applications
that
are
that
emit
a
lot
of
events
that
emit
a
lot
of
data.
You
know,
maybe
they
can
enable
compression
and
and
leave
it
to
them.
Yeah.
E
Which
will
work
for
probably
some
cases
like
I
haven't
looked
in
depth
at
the
the
person
like
does
anyone
know?
Is
it
anything
interface
which
I'm
assuming
it
probably
is.
E
Okay,
so
it's
synchronous-
oh
that's
nice,
which
means
we
could
use
Fetch
with
keep
alive
during
unload,
because
we
can't
use
send
Beacon
because
we
can't
send
any
headers.
Okay.
A
B
E
But
it's
gonna
be
native
compression,
so
it's
not
going
to
be
as
bad
as
you
know:
we're
not
paying
the
payload
of
getting
Jesus
and
then
the
CPU
that
effectively
do
compression
in
JavaScript.
E
And
realistically,
by
the
time
this
rolls
out,
most
browsers
should
support
it,
because
today
it's
only
chromium,
the
current
chromium
ones,
right
I,
don't
remember
what
version
it
came
in.
It's
like
100
and
something.
D
Sir
version
support
chromium,
80,
I
think.
A
E
C
Yeah
and
yeah
I
think
very
likely.
The
all
browsers
will
support
in
a
few
years
yeah.
Maybe
so,
if
we
look
forward,
then
maybe
compression
is
not
that
bad.
B
I
would
I
would
want
the
only
thing
that
I
would
add.
Is
that,
like
we
do
still
have
like
I
know
that
we
still
have
a
lot
of
users
on
Old
browsers,
so
it's
gonna
take
take
a
while
before
like
you,
you
can.
You
can
like
apply
that
logic
like
for
everyone,
so
there's
going
to
be
there's
gonna,
there's
gonna
have
to
be
some
kind
of
fallback
mechanism
for
older,
browsers,
yeah.
The.
D
Yeah,
the
the
payload
price
is
going
to
be
heavier
I.
Guess
what
we're?
What
sometimes
was
saying
was
that
compression
is
an
option
that
they
can
turn
on.
Not
you
know
we're
not
going
to
turn.
You
know
we're
not
going
to
just
turn
on
by
default
or
anything
like
that.
Somebody
says
still
so
much
payload
price
we're
paying
and
things
and
then
the
option
is
you
can
turn
on
compression
but
understand
your
user
base
will
have
to
come.
You
know
it
will
have
to
be
supporting
this.
E
It's
like
the
fun
stuff
of
browsers
effectively
the
the
browsers
that
don't
support
compression
are
also
the
ones
which
are
older
and
echo,
or
with
pay
more
for
the
price,
because
they're
yeah
they're
going
to
be
using
more
bandwidth
incentive.
B
C
And
also
wire
size
wise,
if,
if
we
we
could
enable
this
on,
our
customers
could
enable
this
on
browsers
running
on
mobile
devices,
which
are
which
are
more
likely
to
work
on
mobile
network,
whereas
the
desktops
you
know
more
likely
are
going
to
use
Wi-Fi
more
more
often
than
not.
It's.
E
C
Okay,
so
yeah
I
think
then
I'll
not
say
much
in
the
log
segment.
On
this
point,
I
think
it
looks
like
even
the
domain
will
move
into
the
individual
log
records
and
as.
C
I
think
that
discussion
is
already
over
I
I.
Think
if,
if
we
were
to
I
think
what
you
are
indicating
is
you
you
want
to
put
browser
Dot,
Page
view
right,
yeah
I
think
we
had
discussed
that
at
length
a
few
months
ago
and
we
it.
E
Pretty
much
got
rejected
at
the
log
Sig
level.
I
think
that
was
the
original
movement,
which
is
just
have
the
single
event
name.
C
Yeah
I
don't
remember
now,
but
I
think
it
was
easier
if
we
retain
the
original
name
event
name
yeah
I,
but
but
I
think
it
will
be
like
going
back
on
on
I
think
there
are
already
apis
defined.
Assuming
this
is
going
to
be
a
separate
attribute.
B
C
C
I
think
it's
going
to
a
lot
of
churn,
so
I
I
prefer
yeah.
I
know
it's
like
progress,
rather
than
be
right.
So
much
yeah.
E
That's
a
hack,
but
in
terms
of
that
you
know
there
will
be
two
Fields.
The
value
of
those
few
Fields
is
what
we're
going
to
be
defining
as
part
of
what
we're
doing
here
so.
D
Now
we're
going
to
keep
even
that
domain
and
you
know
I
I,
don't
think
we
need
to
do
that.
Hack,
I'll
just
go
and
it
just
separate
Fields.
Definitely
it's
going
to
be
a
little
bit
more
for
the
payload
size,
also,
if
you're
gonna
stamp
it
to
every
event.
That's
what
I
was
thinking,
but
if
you,
if
we
can't
combine
them
yeah,
that's
fine.
A
C
If
it
is
even
dot
name,
then
they
have
to
look
at
every
event.
Split
to
a
string,
split
pick
the
first
part
and
then
do
it
slightly
a
complex,
not
a
big
deal,
a.
E
The
other
thing
we
came
up
in
the
meeting
was
this
PR
yeah,
so
I
think
this
is.
This:
is
a
leftover
from
Tigger
and
pick
this
up.
So
this
is
effectively
nested
attributes.
E
No
did
I
paste
the
wrong
way
to
yeah
yeah,
two
Triple
Eight,
so
yeah,
it's
it's
effectively,
reactivating
the
original
376
and
started
restarting
the
discussion
of
this
takes
it
further
than
mine,
where
it's
effectively
attempting
to
Define
nested
attributes
for
everything
which
would
be
great
to
have.
A
E
This
will
be
for
everything
anything
that
is
an
attribute
that
supporting
it,
where
it
just
explicitly
stating
that
if
you're
you're,
Jaeger
so
Jaeger
or
Zipkin
that
affected
it
should
be
Jason
and
Cody,
okay,
but
yeah.
It's
really
that
key
value
map
aspect
of
it.
So.
C
So
I
actually
an
an
off
topic,
but
it's
been
bothering
me:
why
does
open
Telemetry
care
so
much
about
you
know:
non-otlp
destinations,
the
Jager
and
Zipkin
like
aren't
they
supposed
to
evolve
at
the
same
time
to
keep
up
with
open
telemetry.
E
It's
all
the
way
they
store
so
I
think
yeah
and
Prometheus.
Don't
really
have
I'm,
not
an
expert
on
it.
So
I
could
be
saying
the
wrong
thing
here:
the
ability
to
stored
data
in
a
nested
form,
so
it
has
to
be
planned
so
there's
part
of
it
when
they
Define
the
otlp
spec.
They
defined
it
as
planned.
So
the
factory,
the
receivers
just
get
it
in
store,
and
that
happened
to
the
conversion.
D
D
I
had
this
question
also
early
on
when
you
know
when
we
started
working
on
over
delivered
staff,
my
takeaway
after
talking
to
a
few
people,
was
that
I
think
eager
and
Zipkin,
you
know
ended
up
being
the
different
de
facto
destinations
or
something
when
the
project
was
so
young
yeah
and
they
contributed
their
stuff
into
open,
Telemetry
and
probably
there's
an
implicit
you
know
thinking
or
was
obligation
or
whatever
it
is
to
treat
that
as
silver
slash.
D
That's
basically
what
it
is.
If
you
look
at
the
way
the
the
exporters
are
set
up
every
other
exporter
other
than
eager
Zipkin
and
from
I
think
for
metrics.
Everything
else
is
in
contribute
or
something
like
that,
not
the
main
mainstream
repos.
So
that
kind
of
tells
you
these
are
first
class.
You
don't
want
to
get
into
the
discussion
of
first
class,
which
is
the
second
class
things,
but
these
are
first
class
supported
stuff.
That
was
my
takeaway
I.
D
Don't
think
anybody
would
you
know
validate
that
or
whatever
that
was
my
takeaway
from
a
while
ago.
Okay,.
C
Okay
thanks,
so
we
can
switch
to
the
other
topic:
Gamers,
okay,
yeah,
schemas
and
I
added
an
agenda
item
to
to
basically
understand
the
next
steps
like
I.
C
You
can
see
my
screen,
so
this
is
the
timeline
where
the
the
top
part,
the
the
up,
the
the
text
on
the
above
this
blue
bar,
indicates.
You
know
the
events
that
occur
and
the
ones
at
the
bottom
indicate
what
we
do.
The
audience
does
so
here.
I
think
I
have
put
what
we
discussed,
which
is
when
the
user
initially
visits
the
page.
Then
you
start
the
page
load
spam.
Let's
call
it
yes,.
A
C
And
then
you
emit
a
page
view
event
with
the
trace
context
of
this
span
included
in
that
event.
So
so
one
event
is
emitted
right
away.
It
will
have
to
have
a
higher
priority
so
that
it
doesn't
wait
for
batching
it.
It
gets
out
the
door
right
away
and
then
the
page
loads,
the
resources
that
the
images
CSS
JavaScript
files
and
then
for
each
of
them.
We
emit
oh
before
that,
when
the
initial
HTML
loads,
you
know
we
we
emit
the
span
for
that
page
fetch
for
that
HTML
fetch,
right
and.
D
Sorry,
you
can
explain
the
second
arrow
down
emit
Pages
yeah.
D
The
corresponding
event
occurrence
that
happens
in
the
browser.
C
Yeah
today,
the
the
way
things
are
modeled
is
there
is
there
is
a
top
level
span
for
page
load
and
it
has
two
child
spans?
One
is
a
page
fetch
which
is
the
which
indicates
the
span,
for
you
know,
fetching
the
HTML
and
then
the
second
span,
that
is
a
child
of
the
page
load,
is
a
you
know.
One
span
for
each
resource
fetched.
C
D
C
Yeah
there
is
a
difference:
yeah
there
is
a
difference,
so
the
page
load
is.
It
includes
fetching
the
base
HTML
and
then
you
know
fetching
all
the
resources
that
it
refers
to
and
whatever
initialization
that
the
browser
does
all
that
is,
you
know
together.
We
want
to
call
it
as
a
page
load.
C
Today,
I
think
it's
called
document
load
but
yeah,
so
that
is
the
bigger
span,
there's
the
parent
span
and
among
the
multiple
child
spans.
The
first
span
is
the
page
fetch,
which
is
just
the
network
request.
The
API
call
browser
makes
to
get
the
HTML.
A
C
Yeah
number
three
times,
I
I
think
as
part
of
the
page
view
performance
timings.
You
know
that
would
give
us
the
fetch
start
and
fetch,
and
so
we
would
okay
use
those
timings
to
to
Mark
the
begin
and
end
of
that
span.
Okay,.
D
C
B
E
B
C
C
Yeah,
so
those
so
yeah.
C
B
Yeah
so
I'm
not
I'm,
not
I'm,
not
saying
that,
like
you
can
definitely
represent
these
as
spans
because
they
do
have
a
duration.
I'm.
Just
saying,
like
you
know,
they're
not
they're,
not
like
in
context.
They
don't
happen
in
context,
because
if
you
get
them
from
the
browser
as
events,
so
you
have
to
like
generate
the
dispense
after
the
fact.
A
C
Yeah
after
the
fact
I
I
agree,
but
after
the
fact
is
only
because
there
are
limitations
that
we
cannot
capture
while
they're
happening
right.
We
rely
on
browser
to
tell
us,
and
that
is
why
it's
after
the
fact,
but
but
strictly
speaking
from
a
timeline
wise,
you
know
they.
You
know
the
document
fetch
fits
to
be
a
child
span
of
document
load.
C
C
You
know
if
there
is
a
context
that
is
very
clear,
which
can
clearly
tell
you
that
yeah,
it
click
is
the
parent.
Then
you
know
you
use
it
as
a
parent,
otherwise
they
will
be
an
independent
span,
but
they
will
start
address.
E
Yeah
I
I
still
see
these
as
a
red
stock
yeah,
whether
they're
sent
as
a
span
with
the
span
of
it,
but
that's
implementation.
But
these
are
just
events.
I
I
agree
that
that's
a
span
to
say:
okay,
we
started
we're
waiting
until
we're
we're
finished.
That's
a
span
to
group
all
the
other
events
under
it.
E
But
yeah
in
terms
of
the
doc
Fetch
and
the
resource,
that's
just
if
I'm
understanding
correctly,
that's
just
the
resource
timings
you're,
pulling
out
of
the
the
the
browser
resource
metrics,
which
are
only
available
after
the
fact,
and
therefore
there's
an
event
saying
I'm
going
to
admit
the
fact
that
this
is
how
long
the
page
took.
These
are
all
the
resources
I
fetched
since
everything
that
went
so
there's.
C
One
advantage,
though,
if
you
represent
as
a
span
so
think
of,
if,
if
you
represent
the
document,
fetch
as
an
event,
then
it
is
Big,
it
will
come
harder
to
correlate
with
the
back
ends
right
if
it,
if
it
is
represented
a
span
where
you
you
get
the
trace,
ID
back
from
the
back
end.
Somehow
there
are,
there
are
mechanisms.
E
Yeah
I
I
think
where
you're
going
is
it's
more
of
a
side
effect
of
today,
because
all
we
had
the
spans
if
you've
got
events
being
emitted
which
are
linked
back
to
the
the
parents
ban
I.E
the
document
load
when
it
comes
to
represented
as
the
UI
you've
got
like.
Okay,
here's
the
document
load
and
then
you
can
have
like
little
stars
to
say,
and
these
are
the
individual
events
for
for
the
detail
and
then
based
on
the
name.
You
can
then
figure
out
what
you
want
to
deal
with
it.
So
yeah.
B
A
C
A
B
A
B
C
No,
no!
No!
No!
No,
it
is
still
the
the
the
the
browser
span
is
the
parent.
It's
just
that
the
back
end
will
tell
you
hey
I'm
using
this.
As
you
know,
my
parents,
so
you
use
this
as
your
stand.
Id,
it's
a
little
confusing.
C
The
resources
separate
resource
they
are
loaded
from
a
CDN
right.
Typically,
you
know
there
is
no
need
to
correlate
with
back-ends.
It's
only
the
initial
HTML
page
fetch
that
needs
correlation.
So.
D
C
So
it
depends
on
what
we
want
I
think
in
in
one
way
of
doing
things.
You
know
the
document
load
could
be
the
only
spam
and
all
these
document
fetch
resource
fetch.
They
could
be
events
and
the
document
loads
span,
ID
and
Trace
ID
could
be.
You
know,
I
I,
don't
know
whether
it's
only
one
of
them,
but
it
could
be
given
to
it
by
the
backend.
C
I
think
it
needs
more
explanation
than
this,
but
the
the
tray
starting
in
the
back
end.
It's
it's
it's
a
wrong
way
of
saying,
because
then
it
you
would
think
as
the
APM
span
being
the
root,
the
root
is
still
you
the
browser.
It's
just
that
the
browser.
Doesn't
you
know,
give
you
a
chance
to
start.
You
know,
give
it
a
trace
ID
for
for
that
span,
so
you
would
create
a
span
but
not
have
a
trade.
It's
it's
confusing.
No.
C
Starts
it
practically,
but.
A
C
Gain
is
the
correlation
you,
you
would
be
customers
who
would
be
able
to
see
that
this
HTML
request
started
from
the
browser.
But
then
you
know
this
is
the
API
call
on
the
APM
side
it
it
connected
to
and
then
further
there's.
C
D
D
Lot
of
interesting
things
that
you
can
correlate
there,
that
makes
sense,
but
that
could
not
be
the
default
is
what
I
was
saying.
You
know
there's
a
lot
of
static,
Pages
cache
Pages,
the
home
pages
are
usually
cached
the
first.
You
know
when
you
hit
google.com.
D
Those
things
you
know
the
the
server
would
not
even
give
you
a
reasonable
ID
that
you
can
use,
so
you
will
not
have
that.
We
cannot
rely
on
it
100
of
the
time
yeah.
So.
A
D
E
Call
this
Advanced
correlation,
so
I
think
I
understand
where
you're
coming
from
now
Santosh.
So
my
question
then,
is
so
you're
saying
the
documents
which
are,
which
is
all
the
timing,
the
DNS
look
up
and
all
the
rest.
You
want
that
to
be
rooted
against
the
requests
or
the
trace
parent
coming
from
the
server
yeah.
D
E
E
C
Yeah
yeah
I
I
see
a
conflict
now
yeah
I
think
the
conflict
is
only
because,
because
of
you
know
this,
this
number
two
yeah.
We
want
to
emit
one
event
right
away
and
that
needs
address
ID.
You
know
the
trace
context
be
part
of
it
and
if
we
are
waiting
for
it
to
come
back
from
the
back
end,.
E
A
E
So
I
think
that's
that
that
question
is
more
okay.
So
what
do
we
use?
Who
do
we
use
as
the
parent
personally
I
still
see
them
as
events
but
yeah?
You
know
it's
it's.
Where
does
the
group
Live,
where
when
does
the
span
start
and
yeah?
Who,
who
is
the
parent
of
the
individual
events,
so
I
I?
Think
if
we
start
the
page
load
expand
as
soon
as
the
SDK
initializes,
then
we
just
say:
that's,
that's
it.
E
That's
that's
the
parent,
unless
you
want
to
try
and
emit
the
event
for
the
page
view
based
on
if
there
happens
to
be
a
transparent
header.
Oh
it's
a
meta
tag,
but
that's
I.
Think
more.
The
instrumentations
level,
not
in
terms
of
us
defining
what
the
events
are.
Yeah.
C
I
think
by
default
you
know
most
customers
will
not
be
enabling
their
backends
to
send
the
trace
yeah
wherein
so
that
is
an
advanced
case.
So
by
default,
the
browser
is
the
one
that
creates
the
trace
ID.
But
you
know
we
should
do
the
implementation
in
such
a
way
that
when
the
server
provides
a
trace
ID,
you
would
use
that.
E
There's
probably
more
a
consistency,
level
thing
too:
it's
like
how
do
you
want
to
represent
it
in
the
UI?
Do
you
want
to
have
that
initial
page
load
represented
as
an
event,
slash
child
span
of
the
page
load,
or
do
you
want
it
to
be
effectively
just
tweaking
out
just
before
the
the
page
load
event
so
effectively?
It
then
becomes
the
parent
of
the
page
load
span
if
it's
happening
first,
so
I
I
would
think
we
just
say.
A
E
Create
an
initial
span,
which
is
the
paid
Lodge
span,
and
then
we
just
root
everything
off
that
like
you've
got
here
where
you're
saying
one
gets
created
a
span
s
two
gets
emitted
with,
so
you
can
increase
context.
I'm
playing
two
would
get
emitted
with
span
s
as
the
parent.
You
were
going
to
get
emitted
with
a
span
s
as
the
parent.
Four
we
get
a
what
the
series
of
fours
would
get
admitted
with
pen
span
s
as
the
parent
and
then
at
some
point.
Spanish
would
finish.
E
The
interesting
thing
is
what
happens
if
span
if
we
end
span
s
before
we
finish
fetching
all
the
resources,
so
that
would
be
like
a
six,
but
that's
like
delay
loading.
So
that's.
B
I
mean
so
so
we
have
we
have
like
in
at
New
York
like
we
had
sort
of
like
a
span
for
like
that
is
the
same.
Like
page
load
span
that
ends
when
the
onload
event
fires
when
it
becomes
interactive,
effectively
yeah.
But
then
we
also
have
another
event
or
another
span
that
can
go
beyond
to
unload
because
like
if,
like
single
page
applications
are
like
fetching
resources
like
you
know,
Ajax
data.
B
C
E
Yeah
because
because
really
then
you
start
talking
about
a
you
know,
a
page
ready
span
how
long
the
the
grouping
thing.
How
long
did
it
take
until
the
page
was
interactive
yeah
and
then
you
could
have
the
separate
page
load.
But
then
again
you
could
just
say:
well,
the
page
interactive
becomes
the
becomes.
The
parent
span
s
for
everything
anyway,
and
then
we
say:
okay,
the
page
is
ready,
which
is
like
number
five.
Instead
of
saying
we
end
the
span.
We
just
change
that
to
an
event:
slash
child
Spain.
B
E
Yeah
we
just
updated
to
conform
to
whatever
the
content
is
of
the
event.
Yeah,
like
you
know,
what
we're
defining
is
the
events
we're
not
precluding
and
saying.
Okay,
this
other
thing
is
like
banned
and
you
should
never
use
it
again.
It's
a
case.
Well,
if
you
want
to
use
spans,
then
you
use
that
one.
That's
part
of
your
distro.
B
E
Also
came
up
in
the
spec
meeting
this
morning
about
you
know:
at
what
level
should
the
distro
name
be
defined
in
the
spec,
because
yeah
there
is
no
straight
Hotel
destroy.
E
C
C
Yeah,
maybe
let's
continue
this
discussion
tomorrow,
so
maybe
we
could
come
back
with
more
refined
thoughts
on
on
on
on
this
discussion.
E
Yeah
I
I.
If
we
continue
to
look
at
them
as
events
and
then
we
say:
okay,
the
event
could
be
defined
as
a
log
event
or
it
could
be
included
in
a
span
like
if
we
just
conceptually
say,
let's
just
Define
the
events
when
we
come
to
do
the
instrumentation,
I
I
think
that
it's
then
just
an
implementation
of.
E
Is
it
a
bug
event
emit
or
is
it
plug
event
with
a
span
or
so
it
doesn't
matter
the
fact
that
we've
got
the
data
being
sent
at
those
points
in
time
we
we,
you
know,
we've
already
defined
what
they
are,
rather
than
keeping
going
backwards
and
forwards
between.
We
need
to
only
send
it
as
a
span
or
option.
A
D
Or
we
could
do
it
in
parallel
if
we
can
find
a
way
to
do
that,
but
you
know
I
yeah
I'm
at
the
nail
on
that
we
need
to
First
figure
out.
What
do
we
want
to
capture?
You
know
how
we
capture
this.
This
is
important.
No.
D
I,
don't
think
so,
there's
there's
more
events
that
we
need
to
go
through
in
the
spreadsheet.
That
is
more
than
we
identified
that
we
need
to
go
through
and
flush
out
right.
C
The
trouble
that
I'm
facing
is
like
like,
where,
where
is
this
going
to
go
next,
like?
Are
we
planning
on
putting
this
in,
let's
say
in
the
documentation
here,
you
know
this
table
this.
You
know
the
the
these
rum
events
that
we
talked
about.
E
E
Are
we
going
to
go
Jason
blob
or
are
we
going
to
just
say,
they're
all
defined
as
attributes
at
the
top
level
which,
from
a
space
perspective,
it's
not
good
like
that
discussion
still
needs
to
have
in
terms
of
you
know
what
is
the
shape
of
the
data
once
we,
we
know
what
the
shape
of
the
data
is.
We
can
then
say:
okay,
well,
whether
it's
a
log
event
or
a
span
event.
E
This
is
how
you
would
map
it
and
then
once
we've
got
the
the
event,
the
shape
of
the
data
for
both
a
log
event
and
the
span
event.
E
We
can
then
say:
okay
now
we
can
say
we
we
want
to
send
this
thing
as
a
span
or
as
a
span
event
or
as
an
event
or
as
a
combination
of
both
you're
going
to
create
a
child
span,
and
then
events
against
that
child
span,
but
I
think
the
first
bits
need
that
need
to
happen
and
and
get
them
get
the
specs
going
because,
as
you
say,
the
logs,
you
know,
there's
already
discussion
about
what
what
is
a
log
event.
E
E
And
then
yeah
like
once,
we've
got
them
defined,
or
at
least
we've
got
them
out
there
in
the
in
the
world.
You
know,
then
we
can
start
looking
seriously
at
the
implementations.
E
E
That's
useful
for
where
we
are
now,
let's
say:
okay,
we're
missing
the
definition
of
this
event
that
we
wanted
to
find,
but
yeah
I,
think
in
terms
of
we
really
just
need
to
say:
okay,
let's
just
get
the
shape
and
the
event
spec,
so
that
we
can
actually
then
start
going
and
implementing,
because
no
doubt
it's
going
to
be
the
normal
okay,
let's
get
some
proof
of
concept
implementations
before
anyone's
going
to
sign
up
the
specs.
D
In
semantic
conventions,
spec
no,
the.
E
Shape
of
the
event
I
think
is
going
to
be
semantic
inventions.
I
I
think
that
that
that's
a
a
good
possibility.
D
In
my
mind,
I'm
thinking
you
know
where
would
this
lead
lead
us
to
so
once
we
have
the
the
stuff
in
front
of
us
filled
out,
and
you
know
we
reasonably
agree
that
these
are
the
things
that
we
want
to
capture.
Then
the
next
step
is
to
get
it
into
some
spec.
You
know,
I
was
thinking
some
medical
instance
is
probably
a
good
place.
Yeah.
E
E
These
are
the
events,
and
this
is
the
values
they
hold
and
where
they
store
it.
In
that
shape
of
that
event,
and
that
way
is
that
in
semantic
conventions
or
is
that,
if
the
input
I,
it
probably
ends
up
belonging
in
semantic
conventions,
especially
like
the
exception
one,
but
we
may
be
able
to
effectively
get
it
in
a
bit
faster
than
going
through
the
spec.
C
Ifically,
the
last
two
will
will
likely
go
as
Standalone
events
right,
but
whereas
all
the
initial
ones
so
far,
you
know
we
have
been
thinking
of
representing
as
spans
so
well.
E
You've
been
thinking
representing
with
Spain,
like
the
resource
timing
to
me,
is
an
event.
A
E
Page
view
to
me
is
an
event:
Ajax
I
see
that
as
both
there
will
be
a
span
for
the
for
the
grouping,
because
I
think
there's
two
aspects
to
to
to
the
Ajax
request,
and
that
is
an
event
to
say.
The
adex
request
happened
and
then
you've
got
the
resource
timings
for
that
Ajax
thing
and
they
would
be
grouped
under
a
span.
So.
E
So
yeah
I
I
think
it's
we
it's
just
why
I
keep
coming
if
we
just
conceptually
think
about
them
about
them
as
events,
we
can
Define
the
fields
and
then
we
can
start
having
the
discussion
of
how
they
get
represented.
D
We're
five
minutes
over.
Can
we
start
with
this
discussion
tomorrow
and
then
kind
of
flush
out?
You
know
how
we
all
believe
we
should
move
our.
C
Work,
yeah
I
think
we
should
list
down.
What
are
the
you
know,
spec
changes
that
we
want
yeah
get
done,
that
we
can
track
them
and
then
pursue
them.
Okay,.
D
C
And
also
we
need
to
follow
up
on
this
varying
attribute,
so
Ram
I
think
we
might
need
your
help
and
you
know
I
think
there
was
there's
a
past
discussion
that
went
dead
about
the
female
attributes.
There
was
some
Hope
from
Josh
recently,
but
I.
Don't
think
that's
progressing
so
well.
E
One
of
the
things
that
came
up
with
the
spec
meeting
this
morning
with
children
pushing
the
scope
being
run
time
stuff-
that's
our
build
Time
stuff-
is
that
we
still
need
some
way
to
pull
this
for
these.