►
From YouTube: 2023-02-16 meeting
Description
Instrumentation: Messaging
A
B
Oh
yeah,
well,
yeah,
I,
think,
there's
I
think
there's
a
good
reason
there,
like
it's
funny
like
I,
don't
know
it's
like
big
changes,
but
it's
also
like
not
at
the
same
time
like
like
I,
don't
know
it's
just
like
it's
just
it's
like
you
change
the
return
value
to
not
return
an
error
on
like
the
creation
methods
and
then
there's
800
lines
of
changes
all
of
a
sudden
you're,
just
like
wow.
That
was
okay.
A
I
I
will
say
if
those
constraints
were
on
us,
the
the
first
time
we
went
through
this,
that's
probably
how
I
would
have
shaped
it
to
begin
with.
B
A
They
come
from
their
if
you
have.
B
Oh
right,
yeah,
that's
right
and
I
completely
moved
that
to
the
SDK
at
this
point,
so
yeah
I
forgot
that
was
also
another
thing.
I
moved,
yeah,
okay
and
like
I
know
that
there
was
like
there's.
Nothing
like
it
literally
says
like
the
API
should
not
be
doing
any
validation
So
like
that's
what
motivated
it
but
I
couldn't
remember
where
the
original
ones
yeah.
A
B
Yeah
and
but
it's
also
like
it's
going
to
be
implementation
specific
too
right,
because
that
was
the
other
thing
that
I
was
thinking
about.
It's
like
okay,
so
like
this
is
the
big
problem
of
information
flow
like
the
information
flow
and
it
flows
back
to
the
instrumentation
is
always
going
to
be
a
problem
because,
like
the
instrumentation
like,
how
does
it
handle
it
like
I,
like
like
I,
don't
know,
like
so
say
it
uses
like
the
the
light
step
SDK
and
the
light
step.
B
Sdk
is
like
63
characters
for
a
name
nah,
a
dog
like:
let's
do
a
thousand
right
like
and
so
like
is.
Is
it
really
an
error
that
it
has
to
handle
at
that
point
that,
like
so
I,
was
like
it's
totally
dependent
on
what
the
implementation
is
and
like
and
then
like
the
thing
is
like
okay,
once
you
actually
have
the
implementation,
give
you
an
error
like
what
do
you
do
with
it
right
like?
B
Do
you
panic?
Do
you
Vlog
it?
Do
you
send
it
to
the
error
Handler
like
so
it's
like
there's
like
all
these
different
ways
that
you
could
handle
it.
None
of
them
are
resolve
it
like
none
of
them
are
actually
going
to
be
like
resolve.
The
instrument
name
error
like
go
like
okay
cool,
like
this
is
giving
me
an
error,
and
it
tells
me
that,
like
this
can
only
be
63
characters.
It's
like
I'm,
gonna,
add
runtime
fix
the
instrument
name,
it's
like
that's,
never
gonna
happen
right.
B
C
B
B
B
B
Let
me
add
my
name
and
then
I'll
figure
out
how
to
share
a
screen.
Yeah,
if
you
haven't
already
add
your
name
to
the
attendees
list,
I've
got
some
items
on
the
agenda
just
from
what
I've
been
working
on,
but
if
you
have
more
things
you
want
to
talk
about,
please
add
them
there.
One
thing,
I
didn't
add
Aaron.
If
you
could
add
that
is
in
the
process.
Yeah.
D
B
There
we
go
Okay
cool,
so
welcome.
Everyone
just
started
off.
I
wanted
to
touch
base
on
the
TC
review,
so
we
opened
this
issue
in
the
community,
and
Riley
was
able
to
go
through
the
review
and
say
you
know,
everything
looks
completed,
looks
compliant
Josh
added
that
he
was
also
able
to
use
the
new
API.
So
it
looks
good.
There
were
two
minor
things
that
were
noted
here,
just
kind
of
walk
through
them.
One
is
that
the
attributes.
B
This
is
something
that
is
especially
with
the
new
specification
like
it's
been
clarified
for
the
scope,
attributes
that,
like
all
these
parameters,
weren't
actually
like,
they
were
being
misinterpreted,
I
think
in
the
old
way
the
specification
written,
but
it's
been
updated
how
the
specification
was
written
and
the
way
that
it
was
intended
originally,
is
that
we
are
required
to
accept
these
attributes
in
the
API
and
so
I
think
that
that's
something
that
we
need
to
fix
prior
to
the
release
here
and
honestly.
B
I
think
we
need
to
fix
it
in
the
tracing
API
as
well,
but
I,
just
like
focusing
on
the
metrics
one
right
now,
so
I
think
that's
kind
of
an
issue.
If
you
want
because
like
this,
we
have
an
open
issue
here.
Talking
about
yes
talking
about
this
issue,
but
there's
like
those
have
been
on
the
I
think
everyone
here
has
like
when
we
tried
to
do
this.
B
B
Do
you
merge
them
like
there's,
like
this
whole
question
of
like
what
happens
when
there's
conflict
because
they're
not
identifying
for
the
scope,
so
that
being
said,
I
ended
up
just
before
this
meeting
put
up
like
this
proposal
of
it's
not
complete,
obviously,
but
like
we
could
just
accept
them
in
the
API.
Accept
these
attributes
with
some
sort
of
like
instrumentation
attributes.
B
I
don't
know
if
I
want
to
include
the
name
institution
here,
but
anyways
like
this
is
kind
of
a
proposal
here
to
include
these
an
API
there's,
nothing
that
says
I
think
we
have
to
do
anything
with
them.
It
does
say
that
we
have
to
accept
them
as
a
requirement.
So
like
wondering
what
people's
opinion
on
this
one
is.
A
B
The
scope
yeah,
so
this
is
a
this-
is
the
same
thing
that
I
guess
we
removed
it.
Yeah
it's
on
the
scope,
scope
attributes
were
added
back
in
113
of
the
specification,
and
this
is
on
the
meter.
This
is
a
pass
to
the
the
meter
as
an
option,
so
this
will
be
set
at
the
scope
level.
B
It
does,
in
fact
I
like
that
was
the
other
thing
that
I
was
looking
at
was
like,
given
we
have
clarification
on
how
this
is
actually
defined
in
the
specification.
We're
probably
not
compliant,
not
probably
we're,
not
we're
not
complying
in
the
trace
API
either
this
one's
going
to
be
I
think
a
little
bit
yeah.
Maybe
kind
of
go
talk
about
this
for
a
second,
because
not
this,
so
the
problem
here
is
that
we
could
add
another
option
that
should
be
backwards.
B
Compatible,
I,
don't
know
where
they're
I
don't
know
where
they're
at
but
like
the
problem
is,
though
this
structure
here
is
comparable
as
it
currently
exists.
B
So
if
we
add
a
slice
of
attributes,
it
will
not
be
comparable
at
that
point.
But
again,
like
doing
something
with
this
attribute
set
is
not
something
we
technically
need
to
do
in
the
SDK
yet,
but
we
do
need
to
add
some
option
here
with
that
in
mind:
I
added
these
attributes
as
a
set
to
try
to
do
the
same
thing
here
so
that
these
you
know,
they'll
be
stored
in
some
sort
of
deduplicated
fashion,
but
they're
also
like.
B
Incompatible
change,
that's
going
to
be
introduced,
so
that
was
kind
of
my
idea
on
that
one
I
also
don't
know
if
we
want
to
include
make
this
comparable,
so
I
was
like
well,
let's
just
like
enforce
this-
to
be
not
comparable
for
right
now,
because
I
don't
know
if
we
want
it
in
the
future,
fix
that
fix
something
specific
to
this
I
don't
know
if
we
can,
if
we're
gonna
need
parity
with
the
tracing
but
just
kind
of
a
heads
up.
That's
why
this
was
kind
of
defined.
This
way.
B
B
B
So
that
was
one
thing
and
then
the
other
thing
was
just
a
minor
rename
for
documentation
for
currently
the
actually
I
think
it's
I
don't
know
if
it's
merged
it
I
might
have
merged
it.
No
I,
don't
think
it's
Merchant,
but
just
rename
the
in
the
meter
API
yeah
here
right
now
it
says
instrumentation
name
because
that's
what
it
is,
but
in
the
tracing
API
this
is
the
parameter
name
is
name
and
then
in
the
specification
it's
also
named
name.
So
there's
a
PR
to
fix
that
as
well.
B
It's
pretty
minor,
so
I
mean
it's
backwards,
compatible,
it's
just
a
doc
change
so,
but
other
than
that,
like
we
have
signed
off
on
the
TC.
So
I
think
that
that's
we're
getting
close
I
guess
is
the
way
to
say
that
then
yeah
yeah,
here's
the
rename.
Oh,
this
isn't
the
right
PR,
but
that's
a
whole
other
thing,
then
I
think
I'm
gonna
throw
a
wrench
into
that
hole
because
I
wanted
to
ask
this
question
of
currently
right
now.
B
There
was
a
proposal
made
by
bogsen
afterwards
to
have
this,
like
meter,
must
thing,
maybe
in
contrib
or
in
a
helper,
so
that
the
meter
error
is
just
panicked.
If
some
sort
of
instrument
creation
doesn't
succeed,
like
there's
a
non,
no
error
here.
B
The
thing
that
is,
though,
that
the
specification
we
we
just
had,
this
PR
emerged
Upstream
by
the
way
so
yeah,
that's
probably
something
to
talk
about
as
well,
but
that's
a
tangent,
but
this
essentially
it
removes
all
validation
from
the
API.
So
there's
there's
no
place
in
the
metrics
API
that
should
be
validating
the
no
op
doesn't
validate.
So
there
actually
isn't
a
need
for
our
meter
during
its
creation
to
return
an
error
and
we're
Aaron
and
I
were
kind
of
talking
about
this.
B
When
we
first
opened
up
the
meeting,
This
original
error
being
returned
was
really
coming
from
this
idea
that
the
API
needed
to
Signal
back
to
the
instrumentation
when
inflicting
instrument
conflicts.
So
you
try
to
create
an
instrument,
the
same
name
but
with
different
attributes,
or
you
tried
to
create
something
that
was
a
conflicting
description
of
the
instrument
is
passed
back
to
the
instrumentation.
The
thing
is
like
we
weren't
actually
doing
that
in
the
API,
so
that
was
it
doesn't
matter.
It
was
removed
like
it's
not
done
in
the
API
anymore
name.
B
Validation
is
not
done.
No
validation
of
any
parameters
are
done
in
the
API
at
this
point,
and
then
there's
like
this
more
I
think
holistic
problem
of.
If
you
have
this
creation
method,
returning
an
error,
this
error
is
going
to
be
returned
back
to
the
instrumentation
and
the
instrumentation
I
like
there's.
It
can
use
it
for
testing,
but
then
it
really
is
going
to
depend
on
the
implementation
so
like
it
could
test
against
the
default
SDK
and
then
it
could
see
like
okay.
This
should
work.
B
You
know
with
a
valid
implementation
of
the
SDK,
but
if
you
have
another
implementation
like
it
could
totally
have
different
Behavior
right,
so
that
error
being
returned
is
only
as
valuable
as
the
SDK
and
it
how
that
error
is
handled
in
like
a
runtime
situation,
so
say
something
for,
like
you
know,
HTTP
metrics
or
the
runtime
metrics,
or
the
process
metrics
like
you
know.
B
What
do
you
do
with
that
error
when
some
other
user
has
loaded
that
package
at
that
point,
like
there's
not
a
real
like
you,
there's
a
there's,
not
a
good
solution,
but
there's
also
many
solutions.
Right,
like
you
can
log
it
with
the
logging
framework.
You
could
log
it
with
a
global
logger
from
otel.
You
could
send
it
to
the
error.
Handler
you
could
Panic,
you
could
drop
it
like.
B
There's
all
these
different
things
that
you
could
do
so
there's
going
to
be
a
non-uniformity
across
how
instrumentation
handles
this,
and
in
fact
we
could
you
know
we
could
try
it
really
hard
to
say
like
well
any
error
from
the
instrumentation.
She
should
do
something
with
it
or
we
could
just
do
that
with
it
in
our
implementation
and
I.
Think
that's
what
this
is.
I
know.
B
That's
what
this
proposal
here
is
trying
to
recommend
is
that
what
we
do
is
we
take
this
meter
in
the
API
and
since
it
no
longer
is
required
to
actually
return
anything?
B
Let
me
see
this
I
mean
this
is
like
the
bulk
of
the
change.
It
just
removes
all
the
errors
that
are
going
to
be
done
through
the
creation
and
the
registration
methods
so
included
with
all
the
instrument
creation.
The
register
callback
doesn't
return
an
error.
The
unregistered
doesn't
return
to
error,
because
these
are
all
errors
that
would
be
passed
back
to
the
instrumentation.
B
By
doing
this
and
throughout
the
SDK,
we
just
update
it
so
that
any
error
that
would
encounter
in
any
one
of
these
creation
methods
so
for
instrument,
conflict,
name,
name,
non-conformity
which
I
don't
know
if
we're
actually
doing
right
now
and
registration
errors
like
those
all
just
go
to
the
air
handler
as
a
default,
and
so
it
unifies
that
into
a
single
source
for
any
operator.
B
So
the
operator
that
has
already
pulled
in
all
the
instrumentation
has
a
single
place
that
they
know
to
look
for
errors
at
that
point,
and
so
I've
got
this
in
a
draft
State
just
as
a
proposal.
It's
pretty
big
but
to
be
fair.
Most
of
it
is
just
this:
we're
cleaning
up
signatures
that
used
to
take
two
parameters,
and
then
you
know,
dropping
the
error
parameter
and
then
using
the
using
some
sort
of
global
error
Handler
and
like
testing
to
to
verify
that
no
errors
have
actually
been
produced.
So
there's.
B
Like
you
know,
an
air
handler
that
was
added,
it's
pretty
small,
so
yeah
I
kind
of
wanted
to
pause
there
and
see
what
other
people's
opinions
about
this
sort
of
change.
E
B
Yeah,
that's
a
fair
question
and
it's
something
the
specification
talks
on
talks
about,
and
so
it
depends
on
the
the
error
that
actually
happens.
So
if
there's
a
duplicate
error
or
a
duplicate
instrument,
registration
and
it's
through
a
resolvable
conflict,
I
think
is
the
word
essentially
if
it's
like
you
know,
and
the
same
instrument
is
created
with
the
same
name
but
a
different
description,
a
different
unit
or
a
different,
not
a
kind
I
think
that
actually
is
an
unresolvable
error,
but
yeah
a
description
or
a
unit.
B
It's
it
signals
an
error,
but
it
also
passes
back
a
valid
instrument
and
it's
an
unspecified.
What
instrument
that
will
pass
back
in
the
API
and
in
the
specification
or
I'm
sorry,
the
SDK
and
currently
it
passes
back
the
original.
And
so
you
know
it's
compliant
with
the
specification
because
it
literally
says,
like
it's
unspecified
Behavior,
but
you
you
know,
you
should
still
pass
back
a
valid
instrument.
B
There
are
situations
where,
like
you,
are
trying
to
duplicate
register,
but
you
have
instrument
names
conflicting
with
the
instrument
kind
or
the
instrument
type
I'm.
Sorry,
the
number
type
so
like.
If
you
try
to
do
the
same
thing
with
like
a
float
versus
an
hint
that'll
pass
back
a
no
op
at
that
point
and
then
you
know
it'll
still
function,
but
it
will
not
record
data
and
the
error
will
be
recorded
as
well.
The
errors
are
more
descriptive
than
just
blanket
errors.
B
A
few
of
the
situations
like
this
for
the
unit
in
the
description,
the
error
that
is
produced
or
maybe
a
log
message
in
those
two
situations-
is
includes
the
fact
that
it
tells
you
to
do
like
a
view
rename
or
something
like
that.
It
recommends
using
a
view
in
that
situation,
but
yeah.
Otherwise
it
goes
back,
and
so
this
is
also
I.
B
Think
the
other
thing
is
like
you
know,
the
I
think
that's
that's
pretty
valid
because,
like
it
also
may
be
that
there
are
other
implementations
that
can
just
they
they
decide
they're
going
to
resolve
it
in
a
particular
way.
B
So
I
think
it's
really
like
it's
up
to
the
instrumentation,
whether
they
wanna
you
know,
support
the
SDK
from
from
go
I'm,
sorry
from
the
main
ocel
SDK
that
they
need
to
validate
it
using
some
sort
of
like
testing
package
that
we've
done
in
a
very
similar
function,
but
yeah.
It
is
that's
the
resolution
path
at
that
point.
E
Seems
reasonable
to
me.
I
would
worry
a
bit
about
some
alternate
implementation
coming
along
an
instrumentation
building
around
that
and
then
being
a
thing
for
users
to
use
the
hotel,
instrumentation
or
implementation
or
some
other
implementation.
That
doesn't
do
that,
but
that's
a
bridged
across
it
another
day,
yeah.
B
I
agree
yeah
because
you're
right,
like
you,
could
have
another
implementation
come
along
and
just
make
a
choice
that
we
don't.
You
know
like
we
try
to
be
more
conservative
and
more
inclusive,
and
so
maybe
somebody
comes
along
and
was
just
as
like.
You
know
like.
If
you
choose
to
you,
know:
I,
don't
know
how
they
would
resolve
the
number
conflict,
because
there's
literally
a
static
type
binary
that
requires
the
number
come
back.
B
As
you
know,
a
float
or
an
end
but
say
like
the
kind
and
like
you
try
to
do
a
duplicate
kind
creation,
and
it's
like
well
actually
like
we're.
B
A
histogram
when
you've
already
asked
this
to
be.
You
know
an
asynchronous
gauge,
or
something
like
that,
but
like
that,
that
whole
setup
is
like
you
know.
Maybe
somebody
comes
along
is
like
well
I.
Don't
really
care
like
I'll
just
always
hand
back
the
histogram,
but
it's
like
well
I.
Don't.
B
Then,
like
it
makes
sense
to
us
why
that's
not
a
great
idea,
like
you
have
you
know
completely
different
methodology
of
different
understanding
is
some
syntax
and
like
the
data
you're
going
to
produce
is
garbage
right,
but
maybe
like
they're,
okay
with
garbage
coming
out
and
so
yeah
I
mean
I.
Think
that's
a
that's
a
fault
of
their
implementation
and
I
would
did
not
like
the
instrumentation
built
around
that,
but
I
I
agree
like
maybe
just
cross
that
bridge
when
it
comes.
A
It's
a
whole
discussion
has
made
me
like:
could
we
build
libraries
that
are
disruptive
to
instrument
collection
like
and
not
just
in
go
but
like
if
I
create
a
library
that
goes
to
a
known
namespace
and
creates
a
histogram
in
the
init
function?
Will
that
prevent
the
good
working
Library,
like
my
my
antique
and
my
antagonistic
Library,
goes
and
registers
like
the
the
net
HTTP
things
and
just
turns
everything
into
either
gauges
or
histograms
or
whatever
like
something
that
that
they
aren't?
A
Can
I
basically
deny
collecting
of
HTTP
metrics
by
doing
that,
not
a
problem
that
I
don't
know
if
we're
ready
to
solve
at
this
point,
but.
B
Well,
I
mean
I,
think
that's
a
good
question,
because
you
have
to
ask
yourself
the
security
implications
of
that
like
in
that
situation,
you
stop
recording
measurements
I,
don't
think
that
that's
necessarily
like
that's
just
like
some
and
that's
an
annoyance
to
the
operator
and
they
needed
to
fix
their
Imports
right
like,
but
you
know
is
there
a
way
where
you
can
do
that
and
then
at
the
same
time
like
maliciously
collects
data
and
send
it
somewhere
else
or
something
like
that
right,
like
I,
think
that's,
fair,
I,
don't
think
these
changes
are
going
to
enable
that
to
happen
easier,
no.
D
C
C
It
I'm
a
fan
of
the
like
of
what
Bogan
proposed
where
it
was.
The
must,
you
know,
do
food
where
it
panics.
If
there's
an
error,
obviously
I,
don't
think
we
can
actually
do
that
in
our
SDK,
because
we're
not
allowed
to
panic.
B
So
that's
actually
a
really
good
point
and
that's
something
that
I
was
I
was
talking
with
Robert
here
Splunk
as
well
a
little
bit
about
that
and
in.net.
They
have
this
like
concept
of
fail
fast
right
so
like
when
you
set
up
an
SDK
you
can.
You
can
provide
a
flag
to
the
SDK
to
say
essentially
Panic
right,
but
we
don't
really
want
to
do
that
right.
B
What
I
was
thinking
is
like
we
could
similar
to
bogdens
thing
is
what
we
could
do
is
we
could
provide
an
error
Handler
in
like
contrib,
that
is
essentially
like
a
it
has
a
switch
on
it
right.
So
if
it
gets
an
error
during
SDK
setup,
it
can
panic,
and
then
you
can.
You
know
after
you're
done
with
the
Panic
section,
you
could
say
like
okay
change,
the
behavior
from
Panic
to
I,
don't
know
just
log
or.
B
Go
back
to
the
default
Behavior,
so
during
the
normal
collection
operations,
if
there's
errors
there,
your
program
doesn't
crash,
it
would
only
fail
fast
at
that
point
is
something
I
was
thinking
you
could
add.
As
like
a
contrib
error.
Handler
could
be
useful.
B
Not
if
we
remove
this
error
return
right,
but
then
you
also
get
that
problem
that
the
instrumentation
author
is
going
to
make
a
decision
for
the
operator
of
the
otel
code,
so
say
like
Hotel
https
decides
that
we
want
to
use
the
must
method
to
set
up
all
of
our
metric
instruments.
I
think.
C
So
if
they
want
to
do
instrumentation
set
up
there,
that
seems
reasonable
and
return.
The
error.
B
C
If,
if
I'm,
if
I'm
a
library,
not
necessarily
an
instrumentation
library
but
just
a
library,
I'll,
probably
and
I,
have
a
new
function,
like
you
know,
new
David's,
special
cue
or
something
I'm,
probably
already
returning
an
error.
If
you
pass
me
invalid
arguments
or
something
right,
so
thank
you
and
then
return
it
back
to
the
user
right.
Just
like
an
instrumentation
Library
would.
B
Well,
yeah
I
think
you're
you're
right,
but
the
problem
is
is
like
so
I
think,
I
think
when
you,
when
you
call
that
function,
you're
going
to
be
calling
it
during
a
collection
cycle
right
like
the
new
David's
Q.
Well,
maybe
not
like
so
like
you're,
creating
the
queue
then
yeah,
maybe
you're,
also
creating
an
instrument
to
track
functionality
of
that
Cube
I
was
I,
think
I.
D
C
Some
of
the
instrumentation
we
have
in
Cube
and
see
how
it's
done
it
seems
like
the
using
the
must
methods
is
really
common
if
you're
defining
your
metrics
with
an
init
function,
you're
like
in
it
here's
my
three
metrics,
so
that
anyone
who
Imports
the
package
just
gets
them
I
was
trying
to
see
what
we
do.
If,
when
we're
defining
metrics
like
deeper
within
some
random
package
somewhere
as
an
example,
if
I
find
it
all
I'll
pass
it
back.
B
Yeah
I
I
think
that's
I'd
like
to
see
that
that'd
be
helpful
and
going
through
this
change.
That's
proposed
here
there's
a
bunch
of
like
examples
that
are
doing
a
question
as
well
as
the
the
tests
and
like
I
did.
B
I
did
notice
that
again
our
examples,
a
lot
of
the
time
we
panic
and
then,
like
obviously
in
our
instrumentation
libraries
we
use
like
Hotel
handle,
like
already
so
like
it's
already
kind
of
making
that
choice
to
like
just
send
it
back
to
the
hotel,
Handler
and
so,
like
the
I,
think
I
really
liked
the
idea
of
having
it.
So
that,
like
you,
can
you
could
choose
that
behavior
with
the
Handler
like
that
you
want
to
set
up
as
the
SDK
author.
E
B
That's
the
thing
it's
like:
if
you
have
a
library,
that's
like
Hotel,
HTTP
and
internet
function
to
create
a
bunch
of
instruments
like
I,
really,
don't
think
that
you
should
be
panicking
at
that
point
right
because
I
think
that's
that's
pretty
common
right.
But
what
happens
if
you
have
an
implementation
underneath
the
surface
that
supports
one
of
the
things
that
you're
panicking
for
right?
B
B
If
there's
one
that's
more
restrictive
like
do
you
want
to
panic
there
as
well
like
I
I,
don't
know
like
it
just
seems
it
seems
like
that
decision
should
be
made
after
they've
already
done
all
the
Imports
and
the
person
who's
running.
The
SDK
is
set
it
up
and
they're
saying
like
Okay
like
anything
anything
I,
don't
I
sort
of
log
errors,
which
is
the
default
Behavior
but
then,
like.
B
B
The
problem
that
I'm,
having,
though,
is
like
when
I
was
when
I
was
looking
at.
This
is
like
it
anytime
that
you're
passing
that
information
back
to
the
instrumentation
authors
like
you're
having
instrumentation
author,
is
going
to
make
a
decision
for
the
operators
for
the
SDK
operators,
which
sometimes
you're
the
same
person
right
sometimes
like
encode.
B
Your
like
in
all
of
our
examples
like
a
Prometheus
examples
right
like
we're,
both
the
operator
and
the
in
the
instrumentation
author
right,
because
we're
creating
instruments
and
we're
also
setting
up
the
SDK
but
I
think
that
it's
going
to
be
a
mistake.
If,
like.
If
you
have
a
situation
where
you
can
have
an
SDK
author,
decide
how
error
handle
errors
are
handled
and
it's
going
to
impact
the
the
actual
run.
Runtime
of
of
another
program
right.
B
Back
to
that
situation,
right,
like
you,
have
an
init
setup
right
and
you
validate
that.
It's
not
going
to
panic
for
you
if
you
use
the
default
SDK
and
then
you
go
along
with
somebody
who
says
like
actually
like.
We
can
only
handle
like
names
that
are
of
a
different
type
right
and
it
starts
panicking
for,
for
somebody,
like
an
operator,
says
like
to
switch
out
the
SDK
and
it
starts
panicking
for
them
like.
That
would
be
a
really
poor
Behavior.
But
it's
also
kind
of
not
the
problem
of
the
instrumentation
author
right.
C
Like
sorry,
I
was
looking
I,
don't
think
instrumentation
should
ever
panic,
yeah,
so
I
think
instrumentation
should
always
pass
the
errors
back
to
users.
My
previous
thought
was
probably
instrumentation
is
already
or
like
libraries
and
stuff
are
already
passing
back
errors
when
they're
doing
initialization
work.
C
So
maybe
it's
not
that
hard
to
pass
these
errors
back
just
like
you
would
for
opening
a
file
or
whatever
else
they
have
to
do.
I.
Think
if
I
were
the
user
and
I
were
setting
up
my
application
and
something
like
this
happened,
I
would
want
to
fail
fast,
right
and
I.
Think
I
feel
like.
We
mostly
agree
on
that
point.
Well,.
B
I
yeah
I
think
so
yeah
I
mean
I
could
definitely
see
people
that
don't,
but
that's
I,
think
the
minority
I
think
I
think
the
majority
of
people
would
rather
it
panic
when
they're
trying
to
set
it
up.
Yeah.
C
C
That
ends
up
capturing
this.
For
me,.
C
B
So
I'm
kind
of
I'm
wondering
if
yeah
I
don't
know
how
we
would
do
this
I'm
wondering
if
we
could
set
up
an
SDK.
Sorry,
an
error
Handler
that
just
does
this
right
off
the
bat
but
I,
don't
know
how
you
would
signal
the
error
Handler
that
both
the
tracing
and
the
metrics
pipelines
are
done.
Configuring.
B
No,
not
necessarily
that
but
like
so
so.
Like
I
mean
the
thing
is
like
I:
don't
I
wouldn't
want
the
air
handler
to
panic
during
like
collection
right
so
I
want
the
behavior
to
change
right.
So
I
only
wanted
to
panic
when
I'm
setting
things
up
like
building
instruments,
right,
yep
and
so
it'd
be
it'd,
be
nice
if
well,
actually,
I,
don't
even
know
if
you
could
do
this.
According
to
the
specification.
D
B
B
It's
Panic
right
and
then
all
the
other
errors
are
just
logs
because,
like
it's
just
assumed
that
those
errors
are
coming
from
standard
like
operating
setups,
the
problem
is
that
that's
going
to
separate
boundaries
so,
like
that's,
not
important,
that's
not
impossible
to
like
handle
that,
but
like
the
API
itself
is
I,
don't
know,
I,
don't
know
wherever
it
is
in
the
specification.
C
My
interpretation
of
things
is
that
anything
we
do
that
panics,
whether
it
be
a
the
the
must
API
or
the
the
air
handler
panicking
air
handler
whatever
would
have
to
live
in
contrib
yeah.
B
B
So
I
mean,
if
that's
the
case
well,
I
mean
even
in
the
even
in
the
other
situation.
I
think
it's
kind
of
the
same
where
like,
if
we,
if
we
leave
it
as
it
is
like
you're
saying
like
most
instrumentation
authors
in
their
init
function,
are
just
going
to
pass
us
back
to
the
air
handler
anyways
or
they're
going
to
log
it
which
is
going
to
you
can't
unless
you
put
a
logger
in
there,
that's
going
to
figure
out
how
to
panic
from
the
log
message
like
no
yeah.
B
Let's
just
go,
let's
just
say
no
on
that
one
but
like,
let's
just
say
like
even
if
instrumentation
authors
are
handed
back
this
error.
Currently
they
don't
think
I
put
in
the
air
handler
so
building
this
error
Handler
would
benefit
them
in
that
situation
as
well,
because
that's
where
these
errors
are
going
to
end
up
anyways
but.
C
C
I
imagine
it
would
eventually
get
propagated
up
to
someone's
main
function
right
where
they
they've
done
like
listen
and
serve
to
some
rapper
or
something
right.
Yeah.
B
Http
right
like
when
we
create
the
middle
middleware,
like
the
error
that
comes
back
from
there.
Actually
I,
don't
I,
don't
know
if
there
is
an
error
that
comes
back
from
there
I'm
pretty
sure
we
just
dump
that
all
into
Hotel
like
handle.
But
let's
just
say
that,
like
the
air
that
came
back
yeah
but
like,
let's
just
say
it
came
back
to
like
when
we
created
the
middleware
like
that
again,
like
it's
gonna
get
passed
up
to
the
user,
but
like
does
the
user,
then
like
I
guess
there
they
could.
C
B
Yeah
I
mean
that's
fair,
but
how?
What
happens
for
instrumentation?
That
can't
return
an
error
during
like
some
sort
of
setup
like
the
database
creation
like
if
you
have
like
Hotel
SQL
for
like
exam
or
you
know
other
instrumentation,
where
it
sets
up
the
instrumentation
on
import
or
import
of
a
package
like
there's
no
way
to
communicate
back
to
the
original
caller
of
that.
C
B
B
B
B
Okay,
no
yeah
I
see
what
you're
saying,
though
like
if,
if
we
did
update
like
all
of
our
HTTP
libraries,
to
return
errors
with
our
middleware,
which
we
don't
currently.
B
C
Like
either
way,
you'll
you're
we're
trying
to
get
to
context
right
either.
I'm
gonna
go
sift
through
the
various
errors
that
could
come
back
from
hotel
to
try
and
get
some
context
to
figure
out
what
the
correct
behavior
for
me
is
or
I'm
just
going
to
use
the
context
of
where
I'm
calling
from
I
go.
I'm.
Calling
this
new
function
and
I
want
this
to
be
successfully
set
up.
B
B
More
thoughts
on
it
or
you
find
some
links.
Could
you
send
them
to
me
in
slack?
Please?
Yes,
okay,
perfect.
B
I
think
we're
here,
okay,
so
next
up,
this
is
bug
fix,
So.
Currently
the
metrics
pipeline.
You
can
register
multiple
readers,
but
the
readers
after
the
first
one,
don't
actually
get
any
data
exported
for
them
and
it
was
tracked
down
through
I
think
some
people
at
least
another.
B
The
problem
is
that
like
right
now
we're
caching
instruments
at
the
meter
level.
The
thing
is
as
though
we
need
to
be
caching
instruments
at
the
pipeline
or
the
reader
level.
So
right
now,
all
of
the
cache
goes
across
all
of
the
readers,
so
only
the
first
reader,
which
is
encapsulated
by
a
pipeline
is
going
to
have
that
aggregation
that
it
actually
determines
added
to
it.
So
this
PR
updates
that
it's,
hopefully
not
too
complex
of
a
PR.
B
It's
our
caching
structure,
I
think
could
use
some
documentation
and
there's
a
few
different
places.
I
think
there
can
be
cleanup,
but
I
wanted
to
get
this
in
first
before
that
was
actually
taken.
What
this
does
is
it
takes
this
instrument
cache
that
used
to
be
in
the
meter
and
it
merges
it
into
the
inserter.
The
inserter
is
the
thing
that
wraps
a
pipeline
to
insert
into
the
pipeline.
It
completely
dissolves
the
instrument
cache
because
it's
not
being
patient
anymore
and
like
it's,
only
used
in
one
place.
B
So
it's
just
directly
used
here,
so
it
should
be
seen,
there's
some
tests
that
were
added
to
actually
validate
the
bug
Behavior,
so
that
should
be
included
there
as
well.
So
just
a
heads
up.
This
is
a
a
bug
in
the
SDK.
So
hopefully
we
get
this
merge
for
the
next
release.
D
A
The
first
one
to
to
enable
the
memory
use
this
doesn't
actually
do
the
memory
we
use.
This
just
allows
us
to
to
work
with
it.
I'm
doing
this
just
to
keep
the
pr
small.
The
next
one
will
update
the
pipeline,
the
produce
functions
of
the
pipeline,
and
then
after
we
get
there,
we
can
actually
span
spread
out
and
have
multiple
the
the
different
aggregators.
You
know
histogram
last
value
some
all
be
addressed
in
separate
PRS,
but
step
one
yeah.
B
And
also
PRS
would
be
the
pooling
functions
for,
like
the
periodic
reader
or
the
Prometheus
exporter
right.
Okay,
I
was
kind
of
wondering
about
that
one
as
well,
because,
like
the
Prometheus
Explorer
might
not
use
a
pool,
you
know
it's
it's
well,
actually,
I,
don't
know
if
it
David
might
know
if
you
can
concurrently
export
in
Prometheus
but
like
if
it
handles
multiple
requests.
At
the
same
time,
we
may
be
cool
I.
A
Think
we
lock
uncollect
anyway,
so
no
okay,
what
whatever,
whatever
concurrency,
would
have
to
be
blocked
on
that
the
same
thing
for
the
periodic
reader.
A
I've
tried
to
keep
it
simple
because
they
can
be
added
afterwards.
B
B
A
No,
but
we
have
a
annual
hackathon
light
step
coming
up.
So
if
you
have
any
kind
of
one
week,
ideas
I
would
love
to
hear
them,
because
I'll
I'll
definitely
propose
them
and
build
something
with
it.
A
That's
my
problem,
but
all
of
my
notes
are
like
a
what
you
might
call
it
a
key
value
database.
D
A
It
starts
up
a
collector
and
then
it
gives
you
a
local
host,
a
local
host
web
server
that
you
can
go
and
visualize
traces.
A
B
Okay
cool,
so
I
think
we
have
like
15
minutes
left,
maybe
kind
of
just
I
wanted
to
touch
base
on
our
API
release.
Timeline
I
think,
is
the
only
thing
I
forgot
to
kind
of
mention
so
I
think
with
David's
feedback
that
PR
for
the
draft
probably
isn't
the
way
to
go,
but
we
still
have
the
small
changes
to
the
API
for
the
docs
in
the
addition
of
the
scope
attributes
as
well,
but
other
than
that.
B
I
think
that
we're
pretty
close
to
getting
an
RC
out
I
didn't
know
what
people's
opinions
on
doing
that
next
week,
or
maybe
the
week
after,
depending
on
how
these
PRS
land.
A
Could
we
put
some
kind
of
time
box
on
exploring
whether
or
not
we
should
have
an
error
on
the
instrument
creation,
because
that
seems
like
a
one-way
change
like
once?
We
have
a
stable
API.
We
don't
want
to
go
back.
B
Yeah,
no,
it
definitely
is
like
that's
why
it
needs
to
be
resolved
beforehand.
I
would
say
the
time
boxes,
probably
today,
based
on
the
conversation
I've
had
here
like
I.
Think
David's
convinced
me
pretty
concretely
that
we
want
to
return
an
error,
but
I
wanted
to
think
about
it,
a
little
bit
more
so
I'm,
guessing
we'll
close
that
by
the
end
of
today.
B
That
being
said,
like
the
other
API
change,
PRS
that
so
I'm
thinking
like
I,
think
they'll
merge
today
so
yeah
time
box
was
that's.
What
I
was
thinking
like
next
week,
maybe
getting
an
RC
candidate
out,
given,
especially
with
the
TC
review.
B
Yeah
you
hear
me
both
okay
cool,
then
I
will
try
to
shoot
for
that
for
for
next
week
it's
gonna
be
a
busier
than
normal
one
weeks
for
the
thought
it
was
rotation
and
the
config
working
group
is
like
they're,
obviously
tough
ones,
but
this
is
specific,
important
Milestone,
so
I'm
excited
to
try
to
get
something
out.
So,
okay.
B
Also
feel,
like
you
know,
get
it
all
out
of
the
way
at
the
same
time
so
yeah,
it's
like
it
is
what
it
is.
Yeah
cool
all
right,
then
I
think
with
that.
That's
all
the
questions
just
pause
here
in
case
anybody
else,
something
else
we'll
talk
about
it.
You
can
end
here.