►
From YouTube: LogQL v2 Public Design Call 2020-06-08
Description
Public design call around LogQL v2
A
I
think
you
you've
seen
the
demo
already
frederick
and
I
did
a
personal
one
to
tom
and
ed
was
a
at
the
talk,
obviously
with
me,
so
I
don't.
I
don't
think
I
need
to
do
the
demo
again,
we'll
see
if
david's
needs.
A
B
By
the
way,
something
I
think
might
be
interesting
to
share
with
all
of
you,
so
we
had
something
interesting
that
happened
last
week
where
we
had
like
a
performance
regression
and
it
like
showed
like
the
kind
of
slow
through
all
the
signals,
kind
of
worked
extremely
perfectly.
In
our
case
there,
where
we
had
like
we
deployed
something
we
had
an
increase
in
latency
which
alerted
us.
We
went
to
logs
found
a
trace
id
from
that
used
the
trace
id
to
look
at
jager
and
from
jaeger.
B
We
could
find
the
exact
instance
where
something
was
spending
a
lot
of
time
right,
and
then
we
used
that
that
time
and
the
instance
to
call
profile
in
controv
and
actually
find
the
exact
spot
like
within
two
minutes
where
the
performance
regression
had
happened.
It
was
pretty
cool.
I
think
we're
probably
going
to
schedule
a
blog
post
about
this
and
kind
of
share
with
everyone,
but
yeah.
A
You
using
the
the
link
for
the
trace
with
the
delivered.
A
I
don't
know
david
doesn't
reply,
should
we
still
go
ahead?
Yeah,
let's
start
with
them?
Okay,
so
I
think
the
first
big
subject
around
this
document,
so
I
think
everyone
reviewed
the
document
is
about
the
the
syntax
itself.
A
So
there
is
a
in
the
proposal,
I'm
suggesting
the
pipe
syntax,
but
I
think
tom
had
the
idea
that
maybe
supporting
the
two
could
be
a
way
to
make
everyone
happy.
So
I
like
to
do
a
quick
round
table
about
this
specific
subject
before
we
move
to
the
other
one
tom.
You
want
to
start.
C
Your
arguments
for
the
pipe
syntax
are,
is
more
natural
for
log
processing
and
that's
what
people
are
used
to
doing
on
the
on
the
command
line
like
with
piping
grep
and
so
on,
and
the
arguments
for
the
nested
brackets
are
it's
more
more
in
line
with
what
prometheus
does
and
and,
and
you
know,
and
therefore
less
to
learn
if
you're
already
familiar
with
prometheus.
A
Yeah,
what
I'm
wondering
also
is:
if
we
do
the
the
function,
do
we
have
to
do
the
function
for
the
current
filter
that
we
have
like?
We
have
the
pipe
equal
and
the
pipe
chilled
do
we
have
to
also
support
like?
Are
we
going
full-on
on
function.
A
Yeah
but
that's
yeah,
that's
the
so
yeah!
That's
the
the
problem.
A
C
So
the
I
think
the
challenges
is
also
mean,
if
you
so
the
the
challenge
with
the
the
pipelines.
Once
you
get
to
kind
of
very
exp,
very
complicated
expressions,
it's
like
it's
really
not
clear
like
how
you
would
do
binary
operations
in
a
in
a
pipeline
right.
You
would
end
up
having
to
bracket
things
anyway,
yeah,
in
which
case
it
starts
to
look
like
the
prometheus
expressions.
I
understand
agree
like
in
the
prometheus
world.
Matching
brackets
is
a
pain
in
freaking
ass,
especially
on
large
queries.
C
These
both
seem
like
decent
points
to
me.
Like
do
you
think
david?
You
just
joined
right,
we're
pipeline
pipes
versus
brackets,
basically,
is
what
we're
discussing.
D
C
C
Yeah,
I'm
not
I'm
not
particularly
interested
in
amazon.
Does
it
this
way
or
or
you
know,
because
it's
like
so
what,
like
you
know,
the
there's
value
in
being
close
to
prometheus
right.
D
Yeah
I
mean
I
would
question
that
that,
from
a
user
point
of
view,
there's
there's
maybe
a
point
where
you
also
perceive
loki
a
bit
more
as
a
drop-in
replacement
for
some
other
logging
solution
that
you
have
and
then
the
sort
of
the
the
prometheus-isms
is
they.
Maybe
then
they
stand
a
bit
in
the
way
right.
So
it's
kind
of
like
do.
D
We
want
to
embrace
the
sort
of
early
crowd
now
who,
like
obviously
know
prometheus
well
and
no
know
all
the
like,
yeah,
more
all
the
background
on
why
the
things
are
the
way
they
are
or
do
are
we
do?
We
want
to
be
a
bit
more
forward,
looking
and
say
like
listen,
this
is
ultimately
a
logging
query
language.
Maybe
we
should
look
at
other
login
query
languages.
C
I
mean,
but
I
can
show
you
other
login
query
languages
that
have
brackets
like.
I
don't
think
it's
the.
I
don't
think
we
should
necessarily
use
the
fact
that
other
people
do
this
way
as
an
argument
to
do
it.
That
way,
right,
we
shouldn't
cargo
cult,
how
to
build
the
language,
but
we
should
look
at
like
if
we
want
to
be
like
aws's
cloud
cloud
watch
logs,
then
we
should
look
at
what's
powerful
in
doing
in
their
language.
C
What's
easy
to
do
in
their
language
isn't
easy
to
do
in
ours,
not
that
they
just
do
it
that
way
and
like
to
be
clear,
my
argument
for
prometheus
isn't
just
prometheus.
Does
it
that
way?
It's
the
the
familiarity
means
you'll
have
to
learn
less
means.
We
can,
you
know
effectively
try
and
map
one-to-one
between
prometheus
and
loki
and-
and
hopefully
people
are
already
very
familiar
with
prometheus-
should
be
very
familiar
with,
with
with
loki
like
that.
Doesn't
work
for
cloud
watch
right
because,
like
we're
not
trying
to
map
one-to-one
with
cloudwatch-
and
I
don't.
B
The
opposite
would
be
true
in
that
way,
then,
as
well
right
like
if
there
are
people
who
are
learning
loki
first
and
it
is
close
to
prometheus,
then
it's
also
easier
to
learn
prometheus.
That
way
right
sure
yeah,
because,
like
that's
where
david
was
coming
from.
As
I
understand
right
like
if
you're
just
starting
to
learn
this,
then
it
should
work
the
other
way
around
around
as
well.
A
Yes,
the
problem
with
the
problem,
the
problem
with
doing
the
two
is
the
documentation
like.
I
think
it's
gonna
be
difficult
to
document
properly,
that
there
will
be
two
syntax,
but
maybe
I'm
wrong,
but
I
do
I
do
like
this
is
new
the
binary.
A
This
is
something
new
that
you
brought
today,
although
I
think
it
can
be
easily
solved
with
a
parenthesis,
but
this
is
true
that
binary
operation
may
look
a
bit
weird
and
we
may
have
to
force
parenthesis
on
the
top
of
the
world
pipeline.
If
we
do
pipeline.
B
E
Yeah,
so
the
the
interesting
thing
is,
I
think,
there's
a
couple
use
cases
here
where,
like
from
an
ad
hoc
query
standpoint,
I
think
the
pipe
syntax
is
a
lot
more
fluid
like
normally
I'm
just
writing
out
a
query,
and
I
want
to
manipulate
it
and
manipulate
it
more
and
like
this
is
what
I
do
from
cli
right,
but
you
know
from
alerting
and
binary
operations
and
sort
of
more
elaborate
examples.
That's
where
the
function
syntax!
E
It's
like
you
know
it's
it's
sort
of
right
once
and
reuse.
You
know
in
an
alert
or
something
like
that
or
you
have
a
query
you
save
or
it's
ad
hoc.
They
both.
I
think
I
don't
know,
there's
pros
and
cons.
That's
maybe
why
supporting
both
makes
sense,
because
you
know
writing
an
alert
rule
around
a
chain
of
pipes
and
things
might
look,
you
know
obviously
less
it
might
look
goofy
or
harder
to
read
than
a
properly
like
line,
separated
and
indented
function.
Syntax.
C
I
mean
you'd
have
to
support
multi-line
pipes
right
yeah,
what's
david,
what's
your
take
on
flux
like
because
that
went
with
pipe
syntax.
D
It
did
the
big
problem
there
was
that
the
filtering
was
difficult
where
you
had
to
where
you
had
to
name,
because
with
flux
is
like
basically
table
modifications
and
to
filter
something
you
had
to
reference
a
field
or
like
a
certain
column
and
then
say
a
filter
for
that
one,
and
that
just
that
just
made
those
filter
expressions
really
annoying.
I
think
if
that
hadn't
been
there
to
fill
these
pipes,
I
think
they
made
a
lot
of
sense,
and
I
heard
I
heard
some
good
feedback
from
other
people
that
writing
flux.
D
C
And
the
I
mean
the
reason,
I'm
keen
like
I'm
not
keen
to
jump
to
jump
to
an
answer
to
this
question
to
be
clear
because
we're
gonna
have
to
live
with
whatever
we
decide
here
for
years
right,
so
the
the
other,
the
other
pro
pipes
use
case
is
actually
in
the
metric
space
is
graphite
right
like
the
way
the
graphite
experience
in
grafana
works
is
effectively
stacking.
You
know,
select
some
queries,
then
aggregate
them,
and
then
you
know,
do
other
stuff,
like
you
effectively
stack
up
a
pipe
and,
for
instance,.
D
I
mean
it's
it's
more
like
it's
more
like
an
sql
expression
right.
So
if
you
it's
kind
of
difficult
to
say
or
yeah
yeah,
it's
kind
of
difficult
to
kind
of
use.
The
graphical
editor
as
the
basis
for
like
a
conclusion
here,
because
because
that's
like
a
simplification
on
top
like
it's
like
the
equivalent
of
syntactic
sugar
right
right
on
the
kind
of
write
sql
anyway
or
like
the
graphical
language,.
C
And
I
think
we're,
irrespective
of
what
we
decide,
we're
going
to
end
up
building
a
graphical
query
editor
following
that
kind
of
model
like
select
the
metrics
select
some
filters
select
some
aggregations
and
select.
Some
group
buys
like
we're
going
to
end
up
building
that
for
prometheus
and
for
loki.
D
C
That
important,
but
well
I
mean
and
and
both
of
these
proposals
on
the
table
are
equivalent
right,
like
the
choice,
is
one
of
style,
almost
right,
yeah,
because
I,
whilst
yes,
I
agree
like
binary
operations,
can
be
easier
in
a
bracketed
language.
I
don't
think
it's
necessarily
easier.
It's
just
you're
more
used
to
using
brackets,
whereas
in
a
pipeline
language
you
might
not
be
used
to
using
brackets
and
you
would
have
to
potentially
use
them
for
a
for
a
binary.
A
Operation
yeah,
if
we
go,
if
we
go
with
the
supporting
buff
bracket
and
and
pipe
can
we
also
should
we
also
support,
like
the
current
count
of
the
time
and
rate
as
pipe
at
the
end
that
we
don't
currently
I
mean
so,
let's.
A
You
know
it
will
mean
that
you
can
you
can,
I
don't
know
if
you
can
mix
the
the
two,
but
at
least
you
can,
you
know,
do
everything
with
only
pipe
or
do
everything
with
only
bracket,
at
least
that
will
that
will
be
the
what
I
expect
if
we
do
the
both
of
them.
A
I
don't
think
mixing
sounds
like
a
good
idea,
but
at
least
being
able
to
do
the
rate
that
we
can't
currently
as
a
pipe.
We
should
be
able
to
do
it
and
language
as
it
stands
effectively
supports.
C
D
Yeah
I
mean
to
the
experienced
user,
it
might
feel
more
natural
to
just
go
start
typing
rate
parentheses,
open
yeah.
I
don't
think
well.
I
had
another
question
before
like
do.
We
know
any
case
where
this
would,
where
the
pipe
syntax
would
like
or
that
wouldn't
work.
Right
now
I
mean
you
mentioned
binary
operations,
but
maybe
that
can
be
solved
for
parentheses.
Was
there
anything
else.
D
B
I'm
even
questioning
whether
the
like
function
style
versus
pipelining
is
actually
that's
that
much
more
familiar
like.
I
think
the
the
keywords
is
much
more.
What
convinces
me
that,
like
I
know
what
this
is
going
to
do,
rather
than
the
syntax
of
how
I
use
those,
does
that
make
sense,
yeah.
B
And
rate
I
I
and
I
know
prometheus
before
I
still
understand
what
that's
going
to
do,
even
if
the
syntax
isn't
exactly
the
same.
A
D
C
It's
just
whether
you,
whether
you
call
it
a
reg
x
x,
like
expression,.
E
C
C
You
know,
I
think,
go
tries
to
call
them
with
a
p
done.
Doesn't
it
yeah
and
python
doesn't
have
a
p
like
whatever
right,
yeah.
B
I
think
it's
even
I
think
it's
probably
evenly
distributed
across
languages
as
well.
I
think
both
exist
in
various
places
all
right.
I
think
this
is
just
a
matter
of
like
flipping
a
coin
really
like
it
doesn't
really
matter.
D
D
I
do
have
another
question:
maybe
we
can?
Maybe
we
can
step
back,
because
tom
brought
something
up
with
the
flux
that
was
indeed
annoying,
which
is
that
the
order
of
some
things
mattered
like
even
like
some
pipe
functions,
could
only
be
in
certain
positions
and
otherwise
the
thing
exploded
and.
B
Being
constructed
about
it
yeah,
so
this
was
my.
This
was
my
argument
for
kind
of
keeping
piping
for
just
filtering,
essentially
yeah.
D
B
As
you
go
into
functions,
you'd
break
from
have
from
just
filtering
into
doing
calculations.
Basically
yeah
yeah
like
it's
clear
where
you're
changing
from
one
to
the
other.
A
A
B
A
C
Okay,
the,
I
guess
the
tricky
thing
there
is
what,
when
you're
filtering
on
derived
data
right
on
derived
labels
when
you're
extracting
effectively
a
label
out
of
an
entry
and
doing
a
filter
on
that?
What
does
that
syntax
look
like
in?
In
both
cases
right.
D
Yeah,
that's
a
good
point,
and
then
also
like
is
this
like
is
then
the
way
to
write
queries
like?
Can
this?
Have
significant
performance
boosts
right
like
the
way
you
order
these
things?
D
B
C
I
mean
it's.
I
was
never
particularly
happy
with
there
being
two
ways
of
doing
filtering
with
the
original
proposal.
Right,
one
was
if
you
can
select
streams
based
on
labels,
and
then
you
have
a
separate
filter
keyword
that,
like
is
for
handling
the
this,
this
new
third
type,
which
was
a
record
or
something
right.
I
didn't
I
don't
I
don't.
I
don't
think
the
third
type
is
necessary
and
I
don't
like
that.
It
has
a
separate
set
of
syntax
for
handling
it.
C
I
feel
I
feel,
like
it'd,
be
more
a
more
minimal
change
in
a
smaller
surface
area
to
the
language,
and
these
are
things
I
care
about
right,
surf,
cereal
and
and
size
of
change.
C
If
the
json
and
the
regex
pipeline
stages
or
functions
whatever
we
want
to
call
them
were
to
extract
labels
and
values
into
labels
and
values,
not
into
a
new
record
type
yeah.
So
that's
like
that's
something
I
feel
pretty
strongly
about,
but
then
the
question
becomes.
How
do
you
filter
on
this
on?
You
know
how
do
you
select
some
streams
with
a
selector
pipe
it
through
json
to
turn
those
all
those
fields
into
labels,
and
then
how
do
you
run
those
again.
A
Yeah,
that's
something
that
I
removed
from
the
original
scope,
but
it's
probably
the
next
improvement.
That's
going
to
come,
and
it's
exactly
that
it's
you
extracted
new
labels,
but
you
now
need
to
filter
on
them,
and
this
is
like
a
real
use
case
that
all
you
have,
the
the
the
the
biggest
example
is
the
path
like
you
have
an
nginx
path
and
you
want
to
select
only
the
path.
That
is
this
one
right.
So
I
actually
this
one
is
very
easy
to
do
with
just
the
filtering,
but
there
is
the
json.
C
D
Yeah,
I'm
also
not
opposed
to
having
a
different
mechanism
for
these
second
order.
Filters
like
sql,
had
a
different
keyboard
for
this
right.
You
have
a
rare
cloth
and
then,
when
you
group
by
you,
have
a
heavy
class
they're,
just
clearly
separated
yeah.
C
A
So
so
would
you
would
you
say
that
it's
weird
that
the
filtering
after
on
the
extracting
label
is
not
a
function
or
is
it
fine
if
it's
a
pipe
which
which
one
you
you
will
prefer
in
that
case,
because
you
haven't
really
created
magic.
Yet
if
we
say
the
example
like
you
have
rig
x
and
then
after
it's
a
filtering
on
a
label
extracted,
it's
not
yet
metric,
you
still
need
to
sum
or
count
on
top
of
it
to
make
it
a
metric.
C
I
think
if
we
went
with
you
know,
filtering
is
done
with
pipes
and
maths
is
done
with
functions.
If
we
went
with
that
rule,
then
this
would
have
the
this
would
have
to
be
part
of
the
pipe
operations.
It's
more
like.
I
didn't
like
the
actual
fact
that
we
had
a
separate
filtering
syntax
from
our
label
matching
syntax.
I
feel
like
they
should
be
the
same
yeah,
but
it's.
C
Part
not
what
I'm
suggesting
right,
I'm
not
suggesting,
because
that
makes
no
sense
right.
That
is
weird
indeed,.
C
But
like,
for
instance,
how
bad
would
it
be
if
we,
let
me
just
share
a
screen
for
some
examples,
yeah.
D
I
mean
if,
if
to
the
user,
this
was
like
completely
transparent
that
like
in
some
places,
the
pipe
would
mean
the
filter
on
the
derived
fields,
and
we
can
sort
of
detect
this
safely.
C
D
A
C
You
know
this
is
kind
of
what
we've
suggested
so
far
right,
which
is
yeah,
which
is
where,
assuming
this
is
in
log
format.
This
would
then
take
the
value
from
each
line
and
replace
it
with
the
field
called
duration,.
C
A
C
E
A
I
mean
for
me,
what's
important
here,
is
to
really
make
sense,
make
clear
that
the
first
one
is
on
the
index.
The
second
one
is
on
data
from
the
log
line.
C
I
think
it's
very
important
to
understand
that
the
two,
the
two,
the
two
things
going
on
in
my
head
right
is
one.
Is
I
don't.
I
don't
like
like
a
set,
a
different
way
of
filtering
your
logs
to
the
first
way,
but
the
reason
I
don't
like
the
second
one,
which
is
by
using
the
same
method,
is
that
it
suddenly
that
method
becomes
context.
Sensitive.
D
Yeah,
I
I.
I
also
doubt
that
that
that
the
user
kind
of
makes
that
jump
that
okay,
this
is
now
like
a
level.
This
is
now
like
a
label
filter.
It's
a,
I
think,
the
user.
This
stuff
is
not
important.
D
I'm
saying
I'm
saying
we're
trying
to
align
it
with
with
with
the
label
selector,
because
to
us
a
derived
label
is
still
a
label,
but
to
the
to
the
user.
I
think
that
might
be
a
completely
different
concept
in
the
head.
C
C
C
Yep
yeah,
so
that
that's
what
that's!
What
leads
me
down
that
this
has
to
put
labels
and
and
values
in
in
the
existing
data
model,
for
for
the
rest
of
the
maths
to
work
right,
but
then
that
still
leaves
a
question.
What
you
know
this
kind
of
you
know,
maybe
maybe
we
get
rid
of
the
pipe
there.
Maybe
that
makes
more
sense,
because
suddenly
this
almost
matches
a
metric
name.
B
Do
we
really
need
anything
like?
Why
do
we
do
the
value
equals
duration?
Why
do
we
do
we
want
to
be
able
to
set
multiple
like
rewrites,
I
guess,
or
something
or
like?
Why
couldn't
it
just
be
duration?
Here.
B
Yeah,
I
mean
that's
part
of
it,
otherwise
we
could
make
these
completely
separate
as
well
and
just
say
just
log
fmt,
and
then
you
do
the
next
filtering
from
there.
A
C
Then,
like
the
question
becomes,
should
the
filter
be
a
filter
on
the
should
he
I
mean,
I
like
the
idea
that
it's
not
right,
because
I
like
the
idea
that
log
format
is
an
atom
like
jason
like
like
regex
right,
it
would
look
weird
if
that
was
regex
and
the
specified
both
the
regex
and
the
filter,
so
I
think
it
make.
I
think
this
makes
sense.
This
is
a
this
is
a
note.
D
I
mean
the
interesting
question
is:
can
there
be
other
functions
that
can
produce
labels
with
the
same
name
and
then
and
then
you
have
a
sort
of
preference.
C
D
D
B
C
C
And
you're
saying
I
mean
another
reason
not
to
do
that
right.
What
is
it
it's
confusing
yeah
you're
saying
like
this
right,
foo
equals.
A
Yep
yeah,
I
think
renaming,
is
important
in
case
you
have
a
clashes
and
you
want
to
rename
them
between
the
label
that
already
exists.
You
may
don't
want
to
override
it.
You
want
to
maybe
rename
it.
E
C
The
tricky
bit
will
be
there
are
things
allowed
in
in
json
paths?
A
A
But
I
don't
think
it's
a
it's
like
a
one
of
the
big
use
case.
You
want
to
flatten
an
array
to
use
as
a
label.
I
don't
think
anyone
is
going
to
use
that
much.
A
Yeah,
that's
part
of
the
gq
language
on
gmh
language.
I
think
it
does
it,
but
it's
a
filter.
It's
not
any
more.
C
A
Yeah,
it
is
there's
one
thing
I
wanted
to
say
about
the
regex,
because
in
the
park,
the
proof
of
concept
that
I
did
this
is
something
that
I
realized
it's
at
hostly,
slow
and
there's
nothing.
That's
gonna!
Save
us!
There's
no
trick.
That's
to
save
us
on
that
part,
and
I
expect
people
to
switch
to
something
else
than
regex
as
soon
as
they
have
a
lot
of
logs.
A
C
C
So
have
we
did
we
just
backtracking
on
pipes
versus
function
versus
functions?
Did
we
reach
a.
B
It
still
kind
of
leaves
the
question
open,
of
which
part
the
actual
extraction
happens
in
right.
Like
does
it
mean
it's
the
last
thing
that
you
do
in
a
pipe
or
is
it
the
first
thing
you
do
with
a
function.
A
Currently,
as
I
did
it,
it's
the
first,
the
first
mutual
function
that
does
the
creation
of
the
metric.
C
A
Yeah
and
we
can
refer
to
promoters,
documentation
by
saying
you
know
as
soon
as
you
start
using
rates,
then
you
can
apply
all
the
operators
that
has
for
over
label
aggregation.
D
Yeah,
no,
that
sounds
good.
I'm
still
always
keen
to
kind
of
like
not
like
send
people
over
to
the
prometheus
page,
but
rather
kind
of
like
have
have
all
the
reference
documentation
at
ours,
but
it's
good
to
like
be
compliant
so
to
say.
A
D
A
Yeah
there
is
a
two
design
dough
by
the
way,
there's
one,
which
is
a
way
too
many
use
cases,
and
there
is
one
that
is,
I
scope
down
everything
which
is
the
the
google
doc.
C
Let's,
just
you
know,
write
some
of
this
down
to
me,
but
we
don't
know
how
to
filter
based
on
secondary
expressions,
so
I've
got
a
rubber
duck
in
my
hand,
you
can
drop
them.
That's
if
you
hear
an
errand
squeak.
C
So-
and
we
didn't
get
to
where
so,
but
you
want
to
know
how
do
we
do
a
second?
A
Yeah,
this
is
a
point
that
has
come
out
in
the
first
pr
that
I
did
someone
was
asking
like
my.
I
need
to
do
a
first
json
and
then
after
regex,
on
top
of
it.
B
But
yeah
yeah
yeah.
I
think
this
is
a
difficult
one,
also
like
where,
where
do
you
start
erroring
on
these
kinds
of
things,
and
are
you
not
like?
Where
is
it
just
skip
over
it
when
it
doesn't
exist,
versus
failing
the
query
and
so
and
so
on?.
C
B
Like
I,
I
can
give
you
a
very
concrete
example
where
it's
going
to
be
difficult
to
do.
Something
like
this.
Like
kubernetes
is
gonna
start
introducing
like
references
to
objects
as
a
nested
thing,
and
some
objects
are
namespace
and
some
are
not
so
while
they
all
will
have
the
ref
object
or
something
like
that
in
their
log
line,
some
will
have
a
namespace,
some
won't
and
it
will
be
from
the
same
log
stream.
A
Yeah
this
is
this
is
the
same
as
currently.
What
do
we
do
if
the
regex
doesn't
match
yeah
exactly
right?
Currently
in
my
implementation,
what
I
did
is
I'm
actually
filtering
out
the
line.
I
know
that
there's
a.
A
I
know
that
tom
preferred
to
actually
errors
in
that
specific
case,
but
I
feel
like
what
can
the
user
do?
You
know
like
if
he
has
right.
C
C
We
have
to
this
is
just
one
suggestion:
yeah
right,
one
suggestion
would
be.
You
have
a
way
of
assigning
the
you
know.
An
entry
has
a
value
right
has
a
timestamp
and
a
value
and
labels
and
a
stream
is
a
well
sorry.
A
stream
has
labels,
an
entry
is
a
timestamp,
and
a
value
and
of
the
value
is
string
right.
So
one
way
to
do
it
would
be
to
tell
log
format
that
the
new
value
of
that
entry
is
this
field.
C
Another
way
to
do
it
would
be
the
same
way.
We
were
kind
of
treating
creating
the
use
label
as
value
function,
and
you
could
use
label
as
value
message.
B
C
What,
within
a
single
yeah
yeah,
I
mean
imagine
if
there
was
two
messages,
both
king
jason,
you
want
to
filter
on
one
and
the
other
or
even
worse,
conditionally
filter,
one
based
on
the
other
yeah.
I
mean
you
can't
do
that
in
in
prometheus
right.
You
can't
query.
You
can't
conditionally
select
a
metric
based
on
the
value
of
one
label
like
in
another
label,.
C
B
I
mean
like
the
question,
the
question
really
becomes:
is
it
something
that
we
would
want
even.
B
B
That's
that's
a
feeling
I'm
getting
as
well,
but
helps
to
be
explicit
about
it.
I
guess.
C
C
So
david,
you
posed
the
you
posed
a
question:
what
do
you
think
of
these
two
potential
solutions.
B
Maybe
a
question
here
when
you
wrote
use
label
as
value
here.
Do
you
mean
the
same
use
label
as
value
as
you
used
previously.
C
A
B
This
sounds
like
roughly,
like
a
label
replaced
in
prometheus.
C
C
D
I
still
think
the
first
one
is
to
me
more
intuitive
also,
and
it
keeps
the
renaming
local,
which
means.
If
I,
if
I
look
at
the
second
line,
the
damage
might
already
be
done.
B
I
don't
I
don't
follow
david.
We
had
the
proposal
like
two
lines
above
that
we
could
do
conflict
resolution
like
prometheus,
that
does
with
export
it.
We
didn't
actually
discuss
it
that
much,
but
that
could
be
a
solution
to
that.
D
Okay,
oh
oh,
I
think
I'm
misunderstanding
this
this
argument.
Then
what
is
what
is
the?
What
is
value
equals
message?
What
is
that
gonna
do?
This
is
telling
log.
D
C
And
then
entry
also
has
a
timestamp
and
so
log
format
on
its
own,
takes
all
of
these
labels
and
puts
them
into
labels
and
doesn't
touch
the
value.
So
the
value.
D
D
C
D
C
I
think
we
we
excluded
this
up
here
as
well,
because
you
know
there's
going
to
be
multiple,
there's
going
to
be
log
format,
it's
going
to
be
json,
there's
going
to
be
regex
and
we
don't
want
each
one
of
them
to
have
to
implement
this
special
magic.
So.
D
A
Yeah
and
the
second
one
has
a
another
use
case
that
is
very
interesting
and
probably
match
up
with
jason.
Is
you
have
a
json?
There
is
a
message,
it's
unreadable,
if
you
don't,
if
you
keep
it,
as
is
in
graph
accurately
and
being
able
to
say
that's
only
the
json
that
I
want
to
show
in
my
log
panel
the
the
message.
Sorry,
it's
no,
I
think
it
has
a
lot
of
value.
C
A
Yeah
so
so
the
the
first
one
is
syntax
sugar
for
the
second
one.
E
E
C
C
Could
we
could
call
this
what
unwrap
yeah
we
could
just
call
it
use
label
value,
we
could
go
proper
nine
keys
and
do
label
to
value
like.
E
A
C
C
A
You
can
we
look
at
an
example
while
you
well,
this
becomes
a
metric,
so
we're
saying.
C
A
Nicely
yeah:
this
is
the
point
that
I
wanted
to
discuss.
B
And
I
think
it
only
works
well
in
regex,
where
you
could
name
the
field,
but
if
you
have
like
label
names
in
your
log
fmt,
for
example,
then,
are
you
going
to
start
writing
your
logs
to
compile
to
this
and
probably
not
right,
maybe
you're,
not
even
in
control
of
that.
A
E
A
Yeah
yeah:
this
is
what
I
wanted
to
discuss
also
during
this
matching:
okay,
everyone:
okay,
we're
saying
that
the
label
value
becomes
the
sample
and
I
think
it's
more
flexible.
If
it's
a
function
that
you
can
say
where
you
can
select
the
label
itself.
A
Yeah
the
two
examples
that
we
have
here,
although
they
are
not
correct
right,
because
you,
you
are
still
forced
to
use
aggregation
all
the
time
on
top
of
the
the
value
function
like
it
needs
to
be
a
sum
of
a
time
or
average
of.
A
Yeah,
it's
I
mean,
I
don't.
I
don't
think
you
can,
because
it
needs
to
be
all
the
time
right.
You
need
to
select
a
range.
You
cannot
be
for
each
step.
You
cannot
be
all
the
logs.
I
could.
I
don't
think
it's
meaningful.