WEBVTT

1
00:00:01.080 --> 00:00:04.799
How'd you like to listen to dot
net rocks with no ads? Easy?

2
00:00:05.360 --> 00:00:09.839
Become a patron for just five dollars
a month you get access to a private

3
00:00:10.000 --> 00:00:14.439
RSS feed where all the shows have
no ads. Twenty dollars a month will

4
00:00:14.439 --> 00:00:18.839
get you that and a special dot
net Rocks patron mug. Sign up now

5
00:00:18.839 --> 00:00:35.960
at Patreon dot dot NetRocks dot com. Hey guess what, it's dot net

6
00:00:36.079 --> 00:00:42.200
rocks. I'm Carl Franklin at Amgard
Campbell and we're representing four time zones today.

7
00:00:42.520 --> 00:00:47.399
Nice. We have two guests.
Everybody in their own time zone.

8
00:00:48.000 --> 00:00:50.759
We're in their little corner of the
world and their little corner of the world.

9
00:00:50.880 --> 00:00:54.799
However, electrons do not observe time
zones, so we can all be

10
00:00:54.960 --> 00:00:59.119
together on this call. I think
they observe it a little bit, maybe,

11
00:00:59.159 --> 00:01:02.000
you know, maybe a little bit. You know, Apple has some

12
00:01:02.119 --> 00:01:08.480
software. There's an old reference for
you story. That was a great story

13
00:01:08.799 --> 00:01:15.560
call. Apple's got some software coming
up, all right, speed light,

14
00:01:15.719 --> 00:01:19.640
hard to beat. Yeah, it's
kind of the law Buffalo funny. How

15
00:01:19.640 --> 00:01:23.159
that works? Well, Uh,
let's get right into it with better no

16
00:01:23.239 --> 00:01:34.799
framework awesome? Alright, Well,
I found this series on Microsoft Learned.

17
00:01:36.200 --> 00:01:40.680
Oh that is really cool. It's
and you know what's great about this is

18
00:01:40.719 --> 00:01:47.400
that it's a it's fundamental stuff,
leveraging branches with GitHub and Visual Studio and

19
00:01:47.560 --> 00:01:51.280
intermediate series. It doesn't talk over
your head and it doesn't talk down to

20
00:01:51.319 --> 00:01:55.239
you. But you know, there
are those guys on the team that are

21
00:01:55.280 --> 00:01:59.519
afraid of Gethub and afraid of get
you know, I used to be one

22
00:01:59.519 --> 00:02:01.799
of them. Sure, it's so
heavily integrated into studio now, like,

23
00:02:01.840 --> 00:02:06.280
yeah, may just make your life
pretty easy. Yeah, so this,

24
00:02:06.719 --> 00:02:10.680
you know, this is required learning. And so even if you know this

25
00:02:10.719 --> 00:02:14.479
stuff and you think you know it, it's good to brush up on it,

26
00:02:14.599 --> 00:02:17.680
especially if you're in charge of,
you know, teaching other people on

27
00:02:17.719 --> 00:02:23.120
your team all about it. But
anyway, I put a link to it.

28
00:02:23.120 --> 00:02:25.919
It's since this is episode eighteen eighty
seven. You can go to eighteen

29
00:02:25.960 --> 00:02:30.919
eighty seven dot pop, dot m
E and then I'll get you there.

30
00:02:31.400 --> 00:02:38.280
It's had what twenty five hundred views
since January fifteenth. Yeah, it's just

31
00:02:38.439 --> 00:02:42.400
it was just put up a little
while ago. Yeah, it's very good.

32
00:02:42.439 --> 00:02:45.120
It's cool and a lot of thumbs
up and I watched it and it's

33
00:02:45.159 --> 00:02:47.360
good. No learning love it.
Who's talking to us today, Richard,

34
00:02:47.719 --> 00:02:52.000
I grabbed a calm on top of
show eighteen sixty nine, which is from

35
00:02:52.080 --> 00:02:55.560
last fall October twenty twenty three when
we were at n DC Porto an on

36
00:02:55.719 --> 00:03:01.840
stage interview with one Charity Majors from
company called the honey Comb that we put

37
00:03:01.800 --> 00:03:06.960
a terrible pressure on Martin or anything, but she was awesome. I don't

38
00:03:06.960 --> 00:03:09.879
know if Martin is gonna have and
and see we're gonna have as many F

39
00:03:09.960 --> 00:03:14.520
bombs however, No, but that's
not about it either. And just to

40
00:03:14.599 --> 00:03:19.000
reinforce the point, and g Houseworth
had this comment which he said, I

41
00:03:19.080 --> 00:03:22.759
never missed an episode of dot Net
Ross because they absolutely rock, and this

42
00:03:22.800 --> 00:03:27.520
episode with Charity Majors was none,
if not the best. Yeah, no

43
00:03:27.560 --> 00:03:30.360
pressure, the insight and energy was
awesome, and we did have the distinct

44
00:03:30.360 --> 00:03:35.319
advantage of being on stage with her. Two you're at NDCA Porto at the

45
00:03:35.360 --> 00:03:38.719
time. But you know, we're
talking about observability more and more, and

46
00:03:38.759 --> 00:03:42.639
I'm really looking forward to getting into
this one because we've got a couple of

47
00:03:42.680 --> 00:03:45.199
different viewpoints coming at it. But
if you want to get started on this

48
00:03:45.280 --> 00:03:47.919
subject, that show we did with
Charity no fool and it was great.

49
00:03:49.080 --> 00:03:52.319
It was great. G thanks so
much for your comment and a copy of

50
00:03:52.360 --> 00:03:53.280
music Code by. It's on its
way to unit. If you'd like a

51
00:03:53.319 --> 00:03:57.080
copy of music Code buy. I
write a comment on the website at dot

52
00:03:57.080 --> 00:04:00.080
at Rocks dot com or on the
Facebook to publish every show there. And

53
00:04:00.080 --> 00:04:01.080
if you comment there and I reading
on the show, was that your copy

54
00:04:01.120 --> 00:04:04.199
of music go by? And uh, you can follow us on Twitter if

55
00:04:04.199 --> 00:04:08.039
you want. But the cool kids
are at masadon and you know, I

56
00:04:08.120 --> 00:04:12.759
put all of my social media links
at Carl Franklin dot com cool so we

57
00:04:12.800 --> 00:04:15.520
don't have to just rattle them off. I got a bunch of them up

58
00:04:15.560 --> 00:04:20.720
there. I think I've got a
Richard dot Campbell dot me, you know,

59
00:04:20.759 --> 00:04:24.480
one of the about me pages that
has to catch that stuff up there

60
00:04:24.480 --> 00:04:27.399
too. If I actually looked at
it recently, I don't know. I

61
00:04:27.399 --> 00:04:30.199
think I did it when we when
we were doing the mass account thing.

62
00:04:30.600 --> 00:04:33.720
Yeah, but yeah, you know
it is. But you're at rich Campbell

63
00:04:33.759 --> 00:04:39.360
on Twitter and what's your masdon and
pretty and rich Campbell at masadon dot social

64
00:04:39.519 --> 00:04:43.519
you know, yeah, yeah,
oh no, it's our Campbell dot me.

65
00:04:43.720 --> 00:04:46.680
There you go. R Campbell dot
me. All right, got them

66
00:04:46.680 --> 00:04:51.120
all. Well I'm going to just
start talking about that. Carl Franklin dot

67
00:04:51.120 --> 00:04:54.120
com. Just go there. You
want to do that now, Okay?

68
00:04:54.279 --> 00:04:58.839
Like yeah, okay, shorter,
Yeah it is shorter, and uh you

69
00:04:58.879 --> 00:05:01.360
know. Then then everybody has a
lot more to read that they didn't want

70
00:05:01.399 --> 00:05:10.800
to so too long, don't read? Yeah, go away. So let's

71
00:05:10.800 --> 00:05:15.160
bring on our guests, Steve Gordon
and Martin Thwaits. Steve is a plural

72
00:05:15.199 --> 00:05:20.079
site author, Microsoft MVP and engineer
at Elastic maintaining their dot net libraries.

73
00:05:20.120 --> 00:05:25.680
Steve enjoys sharing his knowledge by presenting
talks at user groups and conferences, writing

74
00:05:25.720 --> 00:05:30.759
on his blog at Stevejgordon dot co
dot uk, and creating videos. You

75
00:05:30.759 --> 00:05:33.720
can find him on most social media
platforms under the username at Steve J.

76
00:05:33.879 --> 00:05:42.600
Gordon. Martin Thwaits is an observability
evangelist, dot net developer, Microsoft MVP.

77
00:05:43.120 --> 00:05:47.040
He works for Honeycomb dot Io,
an observability vendor. As a developer

78
00:05:47.120 --> 00:05:53.879
advocate, he travels the world spreading
the good word about open telemetry and observability

79
00:05:53.920 --> 00:05:59.079
engineering. He'll talk to anyone about
observability, even the likes of us Jamos

80
00:06:01.600 --> 00:06:08.560
that's not very nice. So welcome
guys. Hey, thanks having us,

81
00:06:08.879 --> 00:06:13.959
Yeah, thanks for having me.
So this culminated at in the fish Powl

82
00:06:14.000 --> 00:06:15.560
at NDC London, right, Yeah, we were all hanging out, you

83
00:06:15.600 --> 00:06:23.639
know. I was taking it easy
because a co host wasn't there, so

84
00:06:23.639 --> 00:06:29.600
so at some point somebody just declared
it Richard's office. There was a few

85
00:06:29.600 --> 00:06:31.920
other foot I think Miss Manners came
in and recorded some shows like there's a

86
00:06:31.920 --> 00:06:34.240
few folks came and went and used
it. I did some run as as

87
00:06:34.240 --> 00:06:36.720
well. I was there. Yeah, you could. Mostly we sat around.

88
00:06:36.879 --> 00:06:41.279
I do believe a couple of bottles
of whiskey may have just disappeared into

89
00:06:41.279 --> 00:06:46.120
that room and never we're seen again, as they do, as they do.

90
00:06:46.560 --> 00:06:48.439
Well, Steve was in the UK
and it's afternoon there or evening,

91
00:06:48.560 --> 00:06:51.839
right, so you've got your whiskey
there, Steve. That's right. Yeah,

92
00:06:53.000 --> 00:06:57.319
I'm I'm declaring it post six pm. Fine time to drink, right,

93
00:06:57.600 --> 00:07:02.560
I am going tonight to Texas Day
Brazil with Robert Ramsey. Nice Richard,

94
00:07:02.800 --> 00:07:08.199
Yeah, and we will I'm sure
have plenty of meat and whiskey.

95
00:07:09.160 --> 00:07:13.120
So anyway, what do you guys
think of following up with on Charity's Talk

96
00:07:13.160 --> 00:07:20.079
here. Are you scared or are
you up to the challenge? Martin said

97
00:07:20.079 --> 00:07:23.879
that very well, don't you get
it? Very well? Answered that question.

98
00:07:24.600 --> 00:07:28.879
I mean, F bombs is kind
of our company policy. No kidding,

99
00:07:28.920 --> 00:07:30.959
you know, I'm not saying he's
part of the interview process, but

100
00:07:31.000 --> 00:07:34.439
I'm not not saying that either.
That is so cool. I mean,

101
00:07:34.480 --> 00:07:36.439
you know, let's think about it
for a second. I mean, who

102
00:07:36.439 --> 00:07:40.399
are you going to offend? Right? You go to any movie, even

103
00:07:40.439 --> 00:07:44.600
if it's PG, and there's F
bombs everywhere, right everywhere. But I

104
00:07:44.600 --> 00:07:47.519
mean we do get some email from
folks on set when they show up.

105
00:07:47.519 --> 00:07:51.600
We do try to bleep them too, Yes we do. But I appreciate

106
00:07:51.639 --> 00:07:57.680
the sentiment either way. It's like
there's so much of observer your ability that

107
00:07:57.720 --> 00:08:01.439
falls into the what the heck is
going on in this app or in this

108
00:08:01.519 --> 00:08:03.839
case, what the f is going
on? And it's you know, trying

109
00:08:03.879 --> 00:08:09.279
to be Canadian here. Yeah,
we have a we have a you've heard

110
00:08:09.279 --> 00:08:13.920
of MTTR the Meantime to Recovery,
and so we have a thing called mtt

111
00:08:13.959 --> 00:08:18.720
WTF, which when you're debugging systems, it's how long does it take you

112
00:08:18.800 --> 00:08:24.040
to go what there was that No, that thing doesn't call that thing,

113
00:08:24.120 --> 00:08:28.399
that doesn't happen. That's not right
at all. So what I haven't used

114
00:08:28.439 --> 00:08:37.840
this Honeycomb, But what I remember
distinctly about that conversation was it's architecturally different

115
00:08:37.960 --> 00:08:43.080
from a lot of other, you
know, well known telemetry kind of things

116
00:08:43.080 --> 00:08:48.159
that you hook on or add on
side cars and to get any kind of

117
00:08:48.240 --> 00:08:52.840
insight and observability into what's going on
in your application places where you just can't

118
00:08:52.879 --> 00:08:56.000
put a break point. Yeah,
I mean, I think this is the

119
00:08:56.080 --> 00:09:01.559
whole tracing debate versus blogs and APM
type stuff, where tracing is the thing

120
00:09:01.600 --> 00:09:05.399
that's different. It's the evolution,
if you like, of that idea of

121
00:09:05.519 --> 00:09:09.080
just log everything, throw it in
a big bucket, try and run some

122
00:09:09.480 --> 00:09:13.279
log stash things on the back of
it, or fluent stuff to build it

123
00:09:13.320 --> 00:09:16.679
all and try and get a picture. It's really the tracing stuff that is

124
00:09:16.720 --> 00:09:22.279
the sort of next evolution that isn't
is not new, and that's the thing

125
00:09:22.279 --> 00:09:24.679
that really gets me. I was
going to say, we've had tracing for

126
00:09:24.720 --> 00:09:28.240
a long time, but it's new
about honeycomb tracing. So well, Honeycomber

127
00:09:28.320 --> 00:09:33.519
is just a back end, we
just take spans and allow you to query

128
00:09:33.519 --> 00:09:37.919
them in weird and wonderful ways.
In rapid fire, you know the idea

129
00:09:37.960 --> 00:09:43.360
of an outage going on and you're
waiting five minutes for telemetry data to get

130
00:09:43.399 --> 00:09:48.039
through for you to ask a question, to say, did I fix it?

131
00:09:48.080 --> 00:09:52.080
Is it now fixed? That idea
of just rapid fire, ask questions,

132
00:09:52.120 --> 00:09:54.000
Ask questions, because that's really what
you want to do. You're on

133
00:09:54.080 --> 00:09:58.840
that conversation with your production system that's
like, you know what's happening? Who

134
00:09:58.919 --> 00:10:03.440
hurt you? Yeah? And that's
really what we're trying to show me where

135
00:10:03.480 --> 00:10:07.600
the bad man? Yeah, it
couldn't help, but notice your pain.

136
00:10:09.519 --> 00:10:13.840
But that's what we try to do
is really try to allow people to just

137
00:10:13.919 --> 00:10:20.360
ask weird and wonderful questions. The
example we users is, you know what

138
00:10:20.519 --> 00:10:26.639
happens when the French user is currently
in Norway using the French language pack in

139
00:10:26.679 --> 00:10:31.679
the Norway region on iOS fourteen point
one, and that's the era that's happening.

140
00:10:31.679 --> 00:10:35.919
It's only on those users, because
that's that's where we are with systems

141
00:10:35.960 --> 00:10:39.480
now. There's no longer this system
that you use inside of your organization that

142
00:10:39.559 --> 00:10:45.200
only your users are only your organizational
users. Everything's global. You know,

143
00:10:45.279 --> 00:10:48.799
people are working from home, working
from anywhere. So even if you've got

144
00:10:48.840 --> 00:10:52.200
just an internal system, these people
are from everywhere now, so you know,

145
00:10:52.240 --> 00:10:54.840
we're starting to get into a world
where things have changed. It's not

146
00:10:56.480 --> 00:11:00.519
about I've got six month release cycle. I can wait months. I can

147
00:11:00.600 --> 00:11:05.759
do a QA cycle. And my
my whole thing at the moment is if

148
00:11:05.759 --> 00:11:09.039
we don't change the tools, and
I'm not talking about the vendor back ends.

149
00:11:09.080 --> 00:11:13.480
I'm talking about like open telemetry and
tracing and profiles that are coming up

150
00:11:13.480 --> 00:11:16.879
and various other signals that are coming
up, we don't give people better tools,

151
00:11:16.240 --> 00:11:20.120
but we're saying you need to do
things better than you did before.

152
00:11:20.720 --> 00:11:24.799
Like it's not it's not okay,
yeah, yeah, the the yeah,

153
00:11:24.919 --> 00:11:30.399
the reliability strategy of be more careful
next time. Yeah, don't do that.

154
00:11:31.240 --> 00:11:35.000
Yeah, don't touch that. It's
yeah. The real point here is

155
00:11:35.320 --> 00:11:39.200
the tools should lead us to the
path of success. They should resist.

156
00:11:39.279 --> 00:11:43.480
We resist as are making mistakes,
and so we get to still be human

157
00:11:43.639 --> 00:11:48.919
and have reliable software. What a
concept. Yeah, And I mean that

158
00:11:48.039 --> 00:11:52.519
was I think from my experience that
was one of the problems with just sort

159
00:11:52.519 --> 00:11:56.320
of relying on logging as your observability. Logging in a few metrics was was

160
00:11:56.399 --> 00:12:01.679
us doing observability. But logging can
be quite good if you spend a heck

161
00:12:01.720 --> 00:12:05.879
of a lot of time and I
use heck there heck of a lot of

162
00:12:05.919 --> 00:12:09.480
time getting the logging in that you
need. It tends to be quite retrospective.

163
00:12:09.919 --> 00:12:13.799
You figure out there's a problem in
a particular code path, you put

164
00:12:13.799 --> 00:12:16.240
a new log in, you'd ship
to production, You wait for someone else

165
00:12:16.240 --> 00:12:18.240
to hit the error, and it
logs something else that gives you another clue

166
00:12:18.240 --> 00:12:22.440
of where you want to log next, right, And so it's it's very

167
00:12:22.440 --> 00:12:26.440
retrospective and looking back. Whereas with
traces, if you design them well and

168
00:12:26.480 --> 00:12:31.960
you put tracing around your key points
in your application code, you get the

169
00:12:31.000 --> 00:12:35.720
full, you know, waterfall effect
of what's happened, and you've added hopefully

170
00:12:35.759 --> 00:12:39.480
decent attributes on there so that you
can, as Martin said, go back

171
00:12:39.480 --> 00:12:46.519
and answer any weird and wonderful questions
and combinations of events with particular attributes on

172
00:12:46.559 --> 00:12:48.159
them. Awesome, And Steve,
I got to ask you, like I

173
00:12:48.240 --> 00:12:52.039
normally resist two guest shows because you
get up with a lot of voices and

174
00:12:52.120 --> 00:12:56.360
I but we're talking of observability,
and Martin works for the company. Arguably

175
00:12:56.399 --> 00:13:01.279
that makes one of the most popular
observeability tools out there. Does Alaska you

176
00:13:01.639 --> 00:13:05.639
does Elastic use Honeycomb or is it
just you know, you're trying to understand

177
00:13:05.679 --> 00:13:09.639
what your own product does. What's
the story there? So we provide an

178
00:13:09.679 --> 00:13:13.799
application performance monitoring solution as well,
so we compete in a nice friendly way.

179
00:13:15.000 --> 00:13:16.360
So we have a different back end. Our back ends built on top

180
00:13:16.399 --> 00:13:22.879
of Elastic Search, which is kind
of Elastic's main product, and our APM

181
00:13:22.960 --> 00:13:26.399
server uses that as the data store, so you can ship your telemetry data

182
00:13:28.360 --> 00:13:31.080
to us. So you can use
our APM agent to do that, or

183
00:13:31.240 --> 00:13:35.919
today you can also use any open
telemetry capable agent as well. So the

184
00:13:37.559 --> 00:13:41.519
sort of built in what we call
the Vanilla Open Telemetry SDK can be used

185
00:13:41.559 --> 00:13:48.159
to ship over the open telemetry protocol
directly into Elastic APM server and then we'll

186
00:13:48.440 --> 00:13:52.279
stare that for you and then give
you the again a different form of you

187
00:13:52.799 --> 00:13:56.679
to search over those traces and those
logs. I'm just staggered at the idea

188
00:13:56.679 --> 00:14:01.200
that we're talking about Elastic for something
other than search. What I know,

189
00:14:01.639 --> 00:14:03.080
I thought they made other products,
but when don't we ever discussed that?

190
00:14:03.200 --> 00:14:07.600
So okay, so this is the
elastic has their eight PM product, which

191
00:14:07.639 --> 00:14:11.519
is another aspect of them. But
you're both guys are in observability in a

192
00:14:11.559 --> 00:14:15.440
big way. That's right. Yeah, I think that the really I mean,

193
00:14:15.600 --> 00:14:16.919
one of the reasons why I thought
it was really good that we're both

194
00:14:16.960 --> 00:14:22.080
here is because different back ends provide
you with different query and capabilities. Right.

195
00:14:22.120 --> 00:14:26.799
You know, the idea that you
just buy one tool off the shelf

196
00:14:26.840 --> 00:14:30.679
and everything just works is just not
going to work in today's world. You

197
00:14:30.720 --> 00:14:37.559
really need crazy you know, you
really need to think about what's going to

198
00:14:37.600 --> 00:14:39.440
work for your organization. You know, what are you trying to achieve with

199
00:14:39.480 --> 00:14:43.120
observability, and then choose the back
ends that work. And that's where open

200
00:14:43.159 --> 00:14:48.639
celemetry is really awesome because you can
send it to two providers. You can

201
00:14:48.679 --> 00:14:52.759
send that same exact data to two
separate viders and say, well, this

202
00:14:52.799 --> 00:14:56.600
one's really good at metrics. It's
really good at showing me some dashboards about

203
00:14:56.960 --> 00:15:01.759
pre aggregated data. Awesome, that's
a really good tool for that thing.

204
00:15:01.759 --> 00:15:07.639
It does infrastructure metrics. There's one
that does say costing and takes your metrics

205
00:15:07.679 --> 00:15:11.679
and can project costs based on previous
metrics. Those are really cool tools.

206
00:15:11.799 --> 00:15:16.200
There's other ones that focus on,
say Servilus, there's other ones that focus

207
00:15:16.279 --> 00:15:18.799
on you know, everything's just they've
got their own niches. You know,

208
00:15:20.080 --> 00:15:24.480
Elastic has their own niche. We
have our own niche. So open celemetry

209
00:15:24.519 --> 00:15:28.240
just makes it easy as your needs
change, you can change provider. There's

210
00:15:28.279 --> 00:15:33.320
no I'm going to change provider.
We'll install the new agent on fifteen hundred

211
00:15:33.399 --> 00:15:37.320
machines. You know, well,
I'm nobody's going to do that. Or

212
00:15:37.440 --> 00:15:41.799
now it's I'm going to move vender. I'll change three lines of config right

213
00:15:43.120 --> 00:15:46.600
now. Speaking of that, I
mean you bring up pain right. I

214
00:15:46.639 --> 00:15:52.840
mean, let's say I've got an
app in production and I've got you know,

215
00:15:52.600 --> 00:15:56.240
thousands and maybe one hundreds of thousands
of lines of code. How does

216
00:15:56.279 --> 00:16:03.240
one just retrofit this kind of tracing
into an app like that? Obviously there

217
00:16:03.279 --> 00:16:07.919
isn't any kind of wizard where you
can just snap your fingers and it's instant

218
00:16:08.039 --> 00:16:15.799
insights, right, ten lines of
code, ten ten lines of code in

219
00:16:15.879 --> 00:16:19.960
not for every object in every page. And so I mean the thing is

220
00:16:21.000 --> 00:16:22.960
with open celemetry, we've got three
care signals, we've got tracing, we've

221
00:16:23.000 --> 00:16:29.200
got metrics, and we've got locks. Tracing is predominantly back end. It's

222
00:16:29.240 --> 00:16:33.240
focused on this idea of we've got
a context. So a trace is a

223
00:16:33.279 --> 00:16:36.600
context, a thing that's been done. So it really works best in the

224
00:16:36.639 --> 00:16:41.080
back end because you've got an inbuilt
context of a web request. It starts

225
00:16:41.120 --> 00:16:44.679
and it finishes and things happen.
It doesn't work well currently in the front

226
00:16:44.759 --> 00:16:48.200
end, so it doesn't work well
in the client side. What people call

227
00:16:48.559 --> 00:16:55.759
rum or really use monishing, so
it doesn't work well in that way.

228
00:16:55.960 --> 00:17:00.399
Open celemetry is trying to build a
signal for that. So in the backkend

229
00:17:00.799 --> 00:17:03.000
it's actually really easy. You just
add say ten lines of code to your

230
00:17:03.000 --> 00:17:07.759
startup and say I would like to
see a span for every HDTP request that

231
00:17:07.799 --> 00:17:11.240
I get into my site. I
would like to see a span for every

232
00:17:11.519 --> 00:17:14.359
HDDP request I make out of my
site. And when you say span,

233
00:17:15.160 --> 00:17:18.720
there's several definitions of that word,
but in this context, what does it

234
00:17:18.799 --> 00:17:22.920
mean. So we're on a dot
net podcast, so let's use dot net

235
00:17:22.000 --> 00:17:27.480
terms. You can create an activity, so activity and this is where we

236
00:17:27.480 --> 00:17:34.119
say we've had this for ages because
activity has existed since I think dot Net

237
00:17:34.119 --> 00:17:38.359
called two point one I think was
when they first started bringing in activity.

238
00:17:40.279 --> 00:17:45.759
It's been there for a while,
and activity kind of represents a sort of

239
00:17:45.839 --> 00:17:49.359
unit of work, if you like, and an actor you create an activity,

240
00:17:49.480 --> 00:17:53.440
you create one for your HDTP inbound
request, one for your outbound request,

241
00:17:53.519 --> 00:17:56.640
one for your when you hit a
database. And these are all in

242
00:17:56.720 --> 00:18:03.119
built into the libraries already. Espnut
core has It's equal client has it,

243
00:18:03.599 --> 00:18:08.160
Myscore client has it, MPGSQL Entity
Framework, you name it. All of

244
00:18:08.200 --> 00:18:14.160
those have been moved up. Even
the Azure client SDKs have now been changed

245
00:18:14.160 --> 00:18:18.440
over to using activity sources and activities
to create these spands. So a span

246
00:18:18.599 --> 00:18:22.319
being this, I've got a start
time, and I've got an end time,

247
00:18:22.359 --> 00:18:26.839
and I've got some attributes, and
it allows you to build these really

248
00:18:26.960 --> 00:18:30.160
rich waterfalls that allow you to see
how things transition through your system. But

249
00:18:30.240 --> 00:18:33.480
you can do that with about ten
lines of code in the startup of your

250
00:18:33.480 --> 00:18:38.359
application. And with a spire,
they're actually promoting this idea of these shared

251
00:18:38.400 --> 00:18:42.599
projects where all of that setup happens
once, so it's not even ten lines

252
00:18:42.640 --> 00:18:47.960
of code per application, it's ten
lines of code in a common startup,

253
00:18:48.880 --> 00:18:53.079
So you can get essentially all this
automatic data just by adding ten lines of

254
00:18:53.079 --> 00:18:56.000
code and then putting in a little
bit config to say where you're going to

255
00:18:56.000 --> 00:18:59.519
send it. You're going to put
in the elastic APM end points, you're

256
00:18:59.519 --> 00:19:02.319
going to put in the honeycombman pints, you're going to put it into any

257
00:19:02.319 --> 00:19:03.799
of the end points, and if
you want to go further, you can

258
00:19:03.920 --> 00:19:07.799
you can do zero lines and code
as well. So there's also this kind

259
00:19:07.799 --> 00:19:12.400
of concept of auto instrumentation where by
flicking a few environment variables to configure the

260
00:19:12.519 --> 00:19:18.200
profiling hooks that the dot net run
time has built into it, if you

261
00:19:18.240 --> 00:19:22.440
can point it at this auto instrumenting
profil and that can go in and wire

262
00:19:22.559 --> 00:19:26.359
up whether it be the open telemetary
STK or the elastic APM agent wire out

263
00:19:26.519 --> 00:19:30.759
for you in your application with no
code changes at all. Just deploy the

264
00:19:30.839 --> 00:19:34.240
environment variables and restart the app,
which can be a really good way to

265
00:19:34.240 --> 00:19:40.119
get started with. That's amazing actually, Yeah, with basic instrumentation of what's

266
00:19:40.160 --> 00:19:44.440
happening. Guys, you're talking about
the easy part collecting too much, Like

267
00:19:44.559 --> 00:19:49.000
that's really easy. Yeah, you
know, I'm a guy who who spent

268
00:19:49.079 --> 00:19:52.160
time in the sequel world where we
used to do full traces of every transaction

269
00:19:52.279 --> 00:19:56.279
going through a SQL server because it
was really great at filling up hard drives

270
00:19:56.279 --> 00:20:00.519
a a bit. It's the real
question is after you gather all this stuff,

271
00:20:00.799 --> 00:20:03.720
and I emphasis on stuff, I
can think of several other words that

272
00:20:03.720 --> 00:20:10.960
would apply begin with s, Yeah, how do you mash this in the

273
00:20:11.039 --> 00:20:14.680
submission? And you know to the
line I would use when working with the

274
00:20:14.720 --> 00:20:19.400
team was create actionable items, things
we can do to make the system better.

275
00:20:21.279 --> 00:20:23.960
That is the rub really, you
know, and that I think is

276
00:20:25.039 --> 00:20:32.359
what has been tracing's downfall for probably
the last sort of five years really because

277
00:20:32.720 --> 00:20:37.160
people see tracing as a I have
a trace ID and now I can see

278
00:20:37.160 --> 00:20:41.279
a trace waterfall for that thing,
but I need something else in order to

279
00:20:41.319 --> 00:20:44.720
tell me what trace ID to use. And what that means is you end

280
00:20:44.799 --> 00:20:48.559
up with say ninety nine point nine
nine nine recurring percent of your data not

281
00:20:48.640 --> 00:20:53.480
being used and just sitting on hard
drives and costing you money. And that

282
00:20:53.519 --> 00:20:56.079
I think has been one of the
big downfalls that people have said, well,

283
00:20:56.240 --> 00:21:00.720
tracing is not really useful because I
need to know what trace it was

284
00:21:00.759 --> 00:21:03.519
so I'm just going to use logs
because I have to keep them anyway,

285
00:21:04.680 --> 00:21:08.359
And I think that's been one of
the big downfalls. But I think there's

286
00:21:08.480 --> 00:21:14.559
there's a movement now around tracing,
around things like sampling and doing various different

287
00:21:14.599 --> 00:21:18.079
mechanisms for how we reduce down the
amount of data that we store and only

288
00:21:18.079 --> 00:21:22.200
store the interesting stuff. Yeah,
that's assessing what's interesting is not a trivial

289
00:21:22.240 --> 00:21:26.880
problem either, right, Yeah,
I mean interesting is subjective at best,

290
00:21:27.799 --> 00:21:32.240
you know, you know, but
the general rule is, you know,

291
00:21:32.359 --> 00:21:36.079
you keep every one of your slow
traces and keep everyone that has an error

292
00:21:36.119 --> 00:21:38.119
in it, because there was at
least going to be the interesting ones.

293
00:21:40.440 --> 00:21:44.200
But you do that, and then
you can start to think about how do

294
00:21:44.279 --> 00:21:48.240
I query my trace data, not
how do I query my logs and my

295
00:21:48.359 --> 00:21:51.839
metrics, and then get back to
tracing. How do I start with that

296
00:21:51.920 --> 00:21:56.039
tracing data, because it's really rich. And I think that's where we're seeing

297
00:21:56.079 --> 00:21:59.920
this big change now with open telemetry, because the back ends, all the

298
00:22:00.039 --> 00:22:03.440
back ends now are starting to look
at this trace analysis type stuff, whether

299
00:22:03.480 --> 00:22:06.720
it's ours or Elastic or a lot
of the open source ones that are normally

300
00:22:06.720 --> 00:22:11.359
based on ClickHouse as a data store. They're starting to do this idea of

301
00:22:11.440 --> 00:22:14.759
well, you know, how do
I get and ask questions of my trace

302
00:22:14.839 --> 00:22:17.960
data? Because it's really rich,
it's really wide, it's got loads of

303
00:22:18.000 --> 00:22:22.440
attributes, all that interesting stuff,
and that really is the rub. Yeah,

304
00:22:22.559 --> 00:22:26.240
so always a question of what's actually
interesting, because you're always afraid of

305
00:22:26.240 --> 00:22:30.039
what you shave off because that might
have been the interesting data. But yeah,

306
00:22:30.039 --> 00:22:33.720
we've had so many people who come
to us with, yeah, I

307
00:22:33.759 --> 00:22:37.000
don't really like tracing because you know, every time I wanted to ask a

308
00:22:37.079 --> 00:22:41.640
question, the customer got an error. It was sampled out because or discarded

309
00:22:41.680 --> 00:22:47.079
because somebody took one percent of random
sample data. And the era happens,

310
00:22:47.119 --> 00:22:49.119
you know, once in a million
times, so they never get the trace

311
00:22:49.119 --> 00:22:53.039
that they want. And that's where
we're doing a lot of evolution right now

312
00:22:53.079 --> 00:22:56.400
in the open telemetric collector and some
of the stuff that even me and Steve

313
00:22:56.400 --> 00:23:02.279
were talking about at NBC London about
how we roll up stands and write tell

314
00:23:02.359 --> 00:23:06.079
something processes that are more bespoke and
you know, this is the sort of

315
00:23:06.079 --> 00:23:10.759
conversations we're having now because it's vendor
agnostic and so you've got so many more

316
00:23:11.240 --> 00:23:12.839
people. You know, me and
Steve, we don't work for the same

317
00:23:12.880 --> 00:23:18.759
company, but we're working towards a
common goal of reducing the amount of data,

318
00:23:18.799 --> 00:23:21.920
making it more actionable, and making
it easier for people to implement.

319
00:23:22.319 --> 00:23:26.200
So you've got, you know,
hundreds of developers all working on that same

320
00:23:26.240 --> 00:23:30.039
code base. And that's the major
advantage of open telemetry as a goal,

321
00:23:30.079 --> 00:23:33.559
isn't it for the industry that rather
than every vendor focusing on their way of

322
00:23:33.599 --> 00:23:37.640
doing something and having their own little
pieces that they can use in sales and

323
00:23:37.680 --> 00:23:42.559
marketing, it's actually what's the right
solution across the industry for how this should

324
00:23:42.559 --> 00:23:47.519
be done in the best way for
the organized relations that need this information to

325
00:23:47.559 --> 00:23:51.839
be able to store this stuff in
a sensible, cost effective kind of way

326
00:23:51.920 --> 00:23:56.440
to do this level of sort of
advanced sampling, sort of intelligent sampling,

327
00:23:56.440 --> 00:24:00.640
if you will, on the on
the tail of things coming through. And

328
00:24:00.680 --> 00:24:03.079
I think we're starting to see that
shift with vendors now kind of all starting

329
00:24:03.079 --> 00:24:07.920
to adopt finally, I think open
telemetry as that solution. Yeah, it's

330
00:24:07.960 --> 00:24:11.519
always a question of mentioning this data
together into like do you make sense of

331
00:24:11.519 --> 00:24:15.160
it? They and what's that you
see mostly it's the same stuff over and

332
00:24:15.200 --> 00:24:18.359
over again. It is what you
already know. I'm tapping on the book

333
00:24:18.359 --> 00:24:22.440
I've never freaking finished and still hope
to one day. With the history of

334
00:24:22.480 --> 00:24:30.640
dot net, where the seql team
had a tool where anytime a unique execution

335
00:24:30.839 --> 00:24:33.200
path happened inside its equal server,
it would stop. It would hit a

336
00:24:33.200 --> 00:24:37.839
breakpoint, so as long as it
was executing the normal path or normal paths

337
00:24:38.000 --> 00:24:41.279
over time, it would continue running. And so it was one It was

338
00:24:41.359 --> 00:24:45.599
like a tool designed to find the
one in one hundred million case. So

339
00:24:45.640 --> 00:24:49.720
you're iterating rapidly and it's like initially
it's breaking on each unique it's breaking on

340
00:24:49.759 --> 00:24:52.720
each unique path, but after you
say, okay, that's a fine path,

341
00:24:52.839 --> 00:24:56.559
keep going. Then eventually it's like
running for days before it's finally like

342
00:24:56.759 --> 00:25:00.240
think how about this? You're like, now, well the heck did you

343
00:25:00.279 --> 00:25:04.880
get there? And the reasons in
the story of the context of dot net

344
00:25:04.920 --> 00:25:10.160
is because that's what made dot net
two point zero. Making dot Net run

345
00:25:10.200 --> 00:25:15.559
inside a sequel server, made them
test dot net in away never been tested

346
00:25:15.599 --> 00:25:19.119
before, and they found rare and
unusual bugs because they were running into context

347
00:25:19.160 --> 00:25:23.759
of sequel server. Here end of
the history lesson. I love the idea

348
00:25:23.880 --> 00:25:29.359
of like the system just going hold
on a minute, can you just get

349
00:25:29.359 --> 00:25:37.279
your supervise it this road before boys, let's have a little chat. And

350
00:25:37.720 --> 00:25:41.039
speaking of that, my friends,
let's take a brief break for this very

351
00:25:41.079 --> 00:25:48.519
important message, and we're back.
It's dot net rocks. I'm Richard Campbell,

352
00:25:48.680 --> 00:25:52.200
it's Martin Waite's and Steve Gordon and
my buddy Carl Hey and talking a

353
00:25:52.240 --> 00:25:56.559
little bit about more than one way
to get observability here and the fact that

354
00:25:56.799 --> 00:25:59.759
you know, now you're really creating
trouble for me. It's not like I

355
00:25:59.799 --> 00:26:02.880
was get too much telemetry out of
my Honeycomb stack, but now I'm gonna

356
00:26:02.920 --> 00:26:06.599
go get elastic eight PM as well, feed the same data to it twice

357
00:26:06.880 --> 00:26:10.799
because I just own too many drives, Like let's try and kill them all.

358
00:26:11.319 --> 00:26:17.160
Like doing analysis between those data sets
could be interesting too. I mean,

359
00:26:17.160 --> 00:26:19.319
we do that law, you know, the Bakoff type stuff. You

360
00:26:19.359 --> 00:26:22.319
know, once you've got an open
celemetry collector in place, you just sort

361
00:26:22.319 --> 00:26:30.519
of send it to five vendors,
see which ones do the best fit out

362
00:26:30.519 --> 00:26:33.559
what you want to hear. You
know, in accounting they call it reconciliation,

363
00:26:33.079 --> 00:26:36.599
right, Like you got to add
up the numbers more than one way.

364
00:26:37.759 --> 00:26:41.599
I wonder we're not there yet in
our industry. Like if I really

365
00:26:41.960 --> 00:26:48.799
wanted to be a pain in the
butt about a performance contract, the fact

366
00:26:48.839 --> 00:26:52.559
that I could ask her to the
telemetry to be sent to two different sources

367
00:26:52.599 --> 00:26:56.039
and we'll reconcile the performance metrics against
it from two different places and see if

368
00:26:56.079 --> 00:26:59.680
they actually agree. When they don't, wonder why, Like, yeah,

369
00:26:59.759 --> 00:27:04.000
you really press against that contract.
Yeah, I haven't been in there be

370
00:27:04.119 --> 00:27:12.559
CTO in too long. You've given
me new ideas on behalf of myself,

371
00:27:12.599 --> 00:27:22.480
and I am sorry to the industry. Yeah, I mean it's all Yeah.

372
00:27:22.480 --> 00:27:25.839
The other side of this is like
nowurkicking, we're doing multiple analysis on

373
00:27:25.880 --> 00:27:29.920
the same sets of data. Hopefully
obviously different tools, like you said,

374
00:27:30.000 --> 00:27:33.440
have better insights in different areas.
But yeah, I'd love to have a

375
00:27:33.480 --> 00:27:37.400
standard set of comparisons. Says oh
yeah, no, we reconcile the same

376
00:27:37.440 --> 00:27:41.599
way we agree on stuff, so
you get more confidence. There's also different

377
00:27:41.680 --> 00:27:45.640
users as well. You know,
we've got the you know, just in

378
00:27:45.680 --> 00:27:49.319
the sort of reliability space, you've
got developers who are using this information You've

379
00:27:49.359 --> 00:27:55.240
got srs that are using this information
to optimize the infrastructure. You've got platform

380
00:27:55.279 --> 00:27:57.839
engineers that are using it for the
same things to build tools. You know,

381
00:27:57.880 --> 00:28:02.359
that's just three users just in engineering. You know, you start to

382
00:28:02.359 --> 00:28:04.960
think that what else could we use
this information for. I know of a

383
00:28:06.000 --> 00:28:08.960
company that's running at the moment the
idea of taking metrics to you to do

384
00:28:10.039 --> 00:28:14.119
cost projections. Right, So take
the metrics of your kuminettes poor to how

385
00:28:14.200 --> 00:28:17.240
much you might need to scale in
the future. Take that metrics data.

386
00:28:17.640 --> 00:28:21.480
Don't allow people to quer it and
do dashboards, but take it and do

387
00:28:21.559 --> 00:28:26.200
projections. You know, this is
now into the thinops world. Well,

388
00:28:26.200 --> 00:28:30.279
this is my mid life, right, Like all too often we'd roll out

389
00:28:30.319 --> 00:28:33.559
a new feature and it would tip
the system over a week later because we

390
00:28:33.559 --> 00:28:37.519
weren't looking at the additional resource impacts. And as we you know, as

391
00:28:37.519 --> 00:28:42.079
e commerce site started getting really big, we were dark launching features and running

392
00:28:42.119 --> 00:28:45.240
them on one server just to see
what the load differences were. So I

393
00:28:45.319 --> 00:28:48.119
knew how much hardware to order,
which just speaks to how old I am,

394
00:28:48.200 --> 00:28:51.400
right, because back then it was
like, see, we love that

395
00:28:51.440 --> 00:28:53.839
feature, but we literally need thirty
more servers to roll it out. Yeah,

396
00:28:53.880 --> 00:28:56.559
and then you end up with one
server running on a previous version and

397
00:28:56.559 --> 00:29:03.799
then you bankrupt the company, right
yeah, well yeah, we don't scare

398
00:29:03.839 --> 00:29:08.240
me Martin like dinged. But I
have used that line in the boardroom where

399
00:29:08.240 --> 00:29:11.759
it's like, I think we're about
a week away from bankruptcy unless we turn

400
00:29:11.839 --> 00:29:14.799
this thing off, because we're gonna
we're gonna crush the whole thing, Like

401
00:29:14.839 --> 00:29:19.200
we have to think about it.
Yeah, it's uh, it is it

402
00:29:19.200 --> 00:29:25.640
it? And it's that whole part
about the telemetry part was the it's very

403
00:29:25.680 --> 00:29:29.000
hard to estimate the impact of a
feature. Not only you don't really understand

404
00:29:29.000 --> 00:29:32.240
the resource consumption of a feature anyway, but you certainly don't know what the

405
00:29:32.400 --> 00:29:36.200
user utilization is going to be,
like you're just making this stuff up,

406
00:29:36.359 --> 00:29:40.759
right, So it is only telemetry
that really tells us how much is it

407
00:29:40.799 --> 00:29:44.240
being used? What's the actual impact
on the systems? At least now we're

408
00:29:44.279 --> 00:29:47.640
living in a cloud where you can
just flip a knob and the CFO find

409
00:29:47.640 --> 00:29:51.160
out about it in about thirty days, right, Like, you not your

410
00:29:51.240 --> 00:29:52.920
problem. You kept the system up. That's my metric. I'm up,

411
00:29:53.039 --> 00:29:59.119
Like I'm good. Well, what
is this about a bill? And this

412
00:29:59.200 --> 00:30:02.160
is the the other flip side of
that is what we call the nines don't

413
00:30:02.160 --> 00:30:04.359
matter if uses unhappy, it's like, yeah, ninety nine time ninet nine

414
00:30:04.400 --> 00:30:11.160
percent O time awesome, twenty second
response times though, that's a good yeah,

415
00:30:11.200 --> 00:30:14.279
but yeah, this is the game
we're playing, right is looking through

416
00:30:14.279 --> 00:30:18.759
all of these things. And really
we came into this conversation talking about what's

417
00:30:18.799 --> 00:30:22.960
the app up to, like we're
not even you know here we're talking about

418
00:30:22.000 --> 00:30:26.799
portant business cases, but mostly it's
just trying to diagnose weird behavior, like

419
00:30:27.119 --> 00:30:30.599
I don't know what's going on,
and I have a customer that can totally

420
00:30:30.680 --> 00:30:37.319
use this Right now, after upgrading
to blazer dot Net eight from six,

421
00:30:38.559 --> 00:30:45.400
all sorts of weird things are happening
the and we're still using the same services

422
00:30:45.400 --> 00:30:49.279
and stuff, just the newer versions. So it's probably just some versioning thing,

423
00:30:49.440 --> 00:30:59.359
but weird unhandled exceptions that are evading
the error handlers and closing the whole

424
00:30:59.400 --> 00:31:03.519
thing and not giving us an opportunity
to find out where they are. Like

425
00:31:03.920 --> 00:31:07.680
this this is going to be a
game changer for them. So what I

426
00:31:07.680 --> 00:31:11.079
should mention at that point is it
doesn't work well in Blazer. I'm really

427
00:31:11.119 --> 00:31:21.440
sorry Stack or is there something inherent
to Blazer. So it's more to do

428
00:31:21.519 --> 00:31:25.039
with the front end side. So
if you're using Blazer web assembly, you

429
00:31:25.079 --> 00:31:30.720
have a single thread and telemetry should
inherently be done in the background. So

430
00:31:30.680 --> 00:31:37.759
the Blazer server has some problems with
the gRPC connections and various other bits that

431
00:31:38.519 --> 00:31:42.960
we're working on it. I'm currently
talking to somebody who runs one of the

432
00:31:44.000 --> 00:31:49.519
Blazer University things who's trying all this
stuff out and trying to to work out

433
00:31:49.519 --> 00:31:53.359
what what that should look like for
Blazer. But there's a lot of things

434
00:31:53.359 --> 00:31:57.640
that are just they're new, they're
not they're not in the tracing paradigm right

435
00:31:57.680 --> 00:32:02.799
now. Durable functions is another one
that has some really big interesting nuances around

436
00:32:04.119 --> 00:32:07.599
how do we propagate a context,
So how do we say that this function

437
00:32:07.720 --> 00:32:12.279
execution was related to this other function
execution, and how do we get that

438
00:32:12.359 --> 00:32:15.319
data between the two because it's not
as easy as just past some HTTP headers.

439
00:32:16.720 --> 00:32:21.480
So you know, we've got as
your service bus has similar nuances.

440
00:32:22.640 --> 00:32:27.599
But we're seeing we're seeing right now
a lot of open source libraries that are

441
00:32:27.599 --> 00:32:31.319
going I need to add tracing because
people want this, They want that internal

442
00:32:31.359 --> 00:32:37.319
information. They want to know how
the cash server is working. They want

443
00:32:37.319 --> 00:32:40.240
to know the messaging systems and how
long it takes me to post a message

444
00:32:40.240 --> 00:32:44.160
to my messaging system, not just
how long it's going to take to receive

445
00:32:44.200 --> 00:32:47.400
and process it afterwards. So they're
adding it. Rabbit MQ recently in the

446
00:32:47.400 --> 00:32:52.039
new version is going to have tracing
as a first class citizen in there,

447
00:32:52.079 --> 00:32:54.720
and then it's going to have metrics
as well. Fusion Cash was another one

448
00:32:55.160 --> 00:32:59.440
that I worked on with some people, and we've just seen loads more people

449
00:32:59.480 --> 00:33:02.279
going, yeah, tracing, I
need the tracing now. So it's just

450
00:33:02.359 --> 00:33:06.079
it's really good to see, right. Yeah, we're at that kind of

451
00:33:06.079 --> 00:33:08.599
tipping point of adoption, which is
yeah, very encouraging. I think as

452
00:33:08.680 --> 00:33:13.240
people get benefit out of the box, when all of these libraries they're using

453
00:33:13.400 --> 00:33:16.680
and they're already getting useful traces that
tell them a lot of stuff even without

454
00:33:16.680 --> 00:33:21.559
them instrumenting their own code, that's
the benefit of everyone. I mean,

455
00:33:21.599 --> 00:33:25.799
we recently instrumented the client library for
the language client for Elastic Search, so

456
00:33:25.839 --> 00:33:30.319
that's a separate package you pull in
if you want to do you know,

457
00:33:30.480 --> 00:33:34.359
dot net code to talk to elastic
search. So we've added some instrumentation down

458
00:33:34.519 --> 00:33:37.119
in the transport layer so you can
kind of see what's going on there.

459
00:33:37.599 --> 00:33:39.720
Added our own useful attribute, so
out of the box, if you're using

460
00:33:39.720 --> 00:33:46.200
that library and you're using an open
telemetry capable you know, collection process,

461
00:33:46.279 --> 00:33:50.960
then you immediately get that information and
you can you can diagnose what's going on

462
00:33:51.000 --> 00:33:53.559
at that level. Yeah, and
Aspire, you know, you had David

463
00:33:53.599 --> 00:33:58.680
on talking about Aspire. I think
that is one of going to be the

464
00:33:58.720 --> 00:34:01.599
real big game changer in a option
because one of the big blockers is people

465
00:34:01.680 --> 00:34:05.279
like logs, Well, I can
see them in my console when I'm running,

466
00:34:05.599 --> 00:34:07.599
why would I use traces because I
can't see them in my console?

467
00:34:08.320 --> 00:34:13.079
But now with Aspire, it's like
you've got a nice, convenient little dashboard

468
00:34:13.079 --> 00:34:15.880
that's just running there that takes your
metrics and your logs and your traces.

469
00:34:15.440 --> 00:34:19.039
And I'm seeing loads of people use
that. They look at the logs thing

470
00:34:19.320 --> 00:34:21.519
and then look at the traces thing
and say, well, the traces are

471
00:34:21.519 --> 00:34:24.559
way richer than the logs, So
why would I use the logs? And

472
00:34:24.559 --> 00:34:29.679
I'm like, I've been saying this
for five years. Thank you you're right.

473
00:34:29.760 --> 00:34:31.079
You know. The one thing I
came away with while I came up

474
00:34:31.119 --> 00:34:35.480
with many things from David's show,
but it was this, we're trying to

475
00:34:35.559 --> 00:34:39.079
make all the right defaults for you
when you're building a cloud native app,

476
00:34:39.119 --> 00:34:43.559
and one of them is you use
open telemetry, like, you use that

477
00:34:43.679 --> 00:34:47.519
level of instrumentation. So you know, it's exactly that you have to fight

478
00:34:47.599 --> 00:34:52.360
against it now to not have all
that stuff in place. Yeah, it's

479
00:34:52.400 --> 00:34:53.880
the pit of success in it.
You know, Yeah, it's right.

480
00:34:53.920 --> 00:34:57.480
But you know, it's an interesting
point because there's also folks that are like,

481
00:34:57.519 --> 00:35:00.000
I don't know why we need this, and it's like, yeah,

482
00:35:00.360 --> 00:35:05.400
you know, because it's too many
choices. You know, if you're perfect,

483
00:35:05.679 --> 00:35:07.920
if you can get everything right every
time, you know, if you

484
00:35:08.039 --> 00:35:10.840
never need to be more careful because
you're always careful, then fine, you

485
00:35:10.880 --> 00:35:15.280
don't need it. But I'm just
not that careful. It's like unit tests.

486
00:35:15.920 --> 00:35:19.920
Spend several days trying to analyze logs
in your head, and you know,

487
00:35:19.920 --> 00:35:23.199
correlate everything across any even a good
logging system, and you'll you'll soon

488
00:35:23.239 --> 00:35:28.519
realize that actually a trace might have
saved you a few sort of head against

489
00:35:28.559 --> 00:35:30.679
all moments. Yeah, just like
unit tests. I don't need unit tests

490
00:35:30.719 --> 00:35:34.119
unit tests with people who don't trust
that they can write code right for the

491
00:35:34.199 --> 00:35:37.360
first time. Yeah, that's true. I know I can't write code fight

492
00:35:37.440 --> 00:35:43.280
right the first time. A certain
quote from a certain Billy Harleist comes to

493
00:35:43.280 --> 00:35:47.719
mind. Yeah, you might be
addicted to code. You might be.

494
00:35:47.920 --> 00:35:53.519
Yeah, and you must suck as
a code if you need two people writing

495
00:35:53.599 --> 00:35:58.840
ten lines of code for every line
of code you right. Yeah, I

496
00:35:58.880 --> 00:36:01.239
mean I even speaking to an extreme
case, but it's like, look,

497
00:36:01.320 --> 00:36:05.519
people make mistakes, they get tired, they work too late, they don't

498
00:36:05.599 --> 00:36:08.920
quite understand the problem. Like,
all these things are real, and you

499
00:36:08.960 --> 00:36:14.199
look at all the work we're doing
lately around shortening the internal cycle, the

500
00:36:14.239 --> 00:36:16.639
impacts of GitHub co pilot, they're
all speaking of the same thing, more

501
00:36:17.280 --> 00:36:22.519
correct code and an aspire to me
looks like this tool that says, okay,

502
00:36:22.559 --> 00:36:27.239
so you're going to be cloud native
and you haven't done it for thirty

503
00:36:27.320 --> 00:36:30.440
years for some strange reason. So
now we're going to give you a tool

504
00:36:30.480 --> 00:36:34.559
set, you know, a framework
that leads you to that path. It's

505
00:36:34.559 --> 00:36:37.519
a distributed debugge. Yes, you
know full the cloud that's you know,

506
00:36:38.360 --> 00:36:44.639
I joked in some of my talks
over the years about you can't attach a

507
00:36:44.719 --> 00:36:49.079
debugger to production. You know,
nobody nobody attaches their visual studio instance to

508
00:36:49.079 --> 00:36:55.440
production. Well sorry, nobody does
it more than once. But you know

509
00:36:55.480 --> 00:37:00.199
nobody does that because well, for
a start, it blocks all the threads,

510
00:36:59.719 --> 00:37:02.320
and that's you know, probably a
bad thing. But also, now

511
00:37:02.360 --> 00:37:07.360
we've got you have to attach a
debugger to fifteen different services because you've got

512
00:37:07.400 --> 00:37:10.639
five different services running three replicas and
you don't know which one is going to

513
00:37:10.719 --> 00:37:15.639
hit. And you know, we're
in this world now where we need that

514
00:37:15.679 --> 00:37:17.719
debugging experience. Nothing's changed. You
know, we still need to debug our

515
00:37:17.800 --> 00:37:22.519
systems, but we need to debug
them in an environment where they're replicated and

516
00:37:22.599 --> 00:37:27.800
they're distributed. Some of them are
using the event driven systems, and you're

517
00:37:27.840 --> 00:37:31.320
like, I can't, I can't
correlate these logs across an hour's worth of

518
00:37:31.360 --> 00:37:36.920
time window. And yeah, it's
just it's hard. And that's where I

519
00:37:36.960 --> 00:37:40.679
think people are getting to now that
they're starting to add tools and tools and

520
00:37:40.679 --> 00:37:45.519
tools on top of the old logging
systems that they had to try and meet

521
00:37:45.599 --> 00:37:50.480
the demands of these distributed systems.
And then they realize that actually know there's

522
00:37:50.519 --> 00:37:54.599
something that's more native that they can
use instead, and it requires a paradigm

523
00:37:54.599 --> 00:37:59.960
shift. And I think that's where
as an industry we're bad at acknowledge it.

524
00:38:00.119 --> 00:38:06.039
The telemetry and logging aren't the same
thing. They because they're not weirdly

525
00:38:06.159 --> 00:38:08.480
enough. But you know, I've
been saying for a while now that if

526
00:38:08.519 --> 00:38:13.360
you can answer all the questions that
you need from the logs that you've got,

527
00:38:13.800 --> 00:38:16.679
you don't need traces. Yes,
stay still fine. Yeah, but

528
00:38:16.880 --> 00:38:22.360
the question is can you and I
don't think you can or you're not asking

529
00:38:22.400 --> 00:38:34.360
good questions you Yeah, I mean
that's that's the number of rises above none.

530
00:38:35.519 --> 00:38:37.280
That's an old scalability problem where I
found that. I found an app

531
00:38:37.280 --> 00:38:39.400
whor it's like it's a long one
person was used as it was fine,

532
00:38:39.400 --> 00:38:44.599
but as soon as two did not, it's so good. That was a

533
00:38:44.679 --> 00:38:49.280
long time ago, My goodness.
M I mean, I've hit that problem

534
00:38:49.360 --> 00:38:52.960
so many times when people use singletons
instead of transients, and you know,

535
00:38:52.039 --> 00:38:57.679
they still stay in a singleton,
and especially in multi tenant systems, and

536
00:38:57.760 --> 00:39:00.159
it's like, yeah, when we've
got one tenant, it's fine, but

537
00:39:00.199 --> 00:39:02.000
as soon as we get two tenants. Everybody's got everybody else's data, and

538
00:39:02.000 --> 00:39:07.280
that's a bad thing, I think. Holy man, Yeah, easy mistakes

539
00:39:07.280 --> 00:39:12.079
to make too, right, Like, you realize we don't think about that

540
00:39:12.119 --> 00:39:15.679
anymore, that the framework is just
doing that for us now most of the

541
00:39:15.719 --> 00:39:19.039
time, as long as you follow
the rules. Like, we're definitely working

542
00:39:19.079 --> 00:39:22.639
on a different tier of problems now
as we get you We're used to distributing

543
00:39:22.679 --> 00:39:25.880
across multiple machines and now it's you
know, in different clouds, with different

544
00:39:25.920 --> 00:39:31.000
platforms. We definitely build way more
complicated software. It's no question that we

545
00:39:31.079 --> 00:39:38.280
need to change the way you measure
them. Uh. The debugging story is

546
00:39:38.280 --> 00:39:42.559
separate though, right, Like you
just sort of casually mentioned the debugging on

547
00:39:42.599 --> 00:39:45.880
top of it. But telemetry is
not necessarily for debugging, is it?

548
00:39:46.320 --> 00:39:51.639
So it can be for telemetry isn't
a debugging tool, but you can use

549
00:39:51.679 --> 00:39:54.159
it for debugging. You know.
One of the big things we talk about

550
00:39:54.159 --> 00:40:00.159
at the moment is the difference between
three pillars of observability and just telemetry signals.

551
00:40:00.519 --> 00:40:04.840
So the three telemetry signals being logs, petrics, and traces, they

552
00:40:04.880 --> 00:40:07.280
allow you to do lots of things, and they allow you to build dashboards.

553
00:40:07.599 --> 00:40:14.280
They allow you to do monitoring build
alerts, don't. You don't need

554
00:40:14.320 --> 00:40:15.719
one or one or more of these. You can use one, you can

555
00:40:15.840 --> 00:40:21.119
use three. You don't need all
of the signals. But when you're starting

556
00:40:21.159 --> 00:40:23.719
to do the debugging side, you
need to work out which signals you need

557
00:40:23.760 --> 00:40:28.360
to do it, and you can
correlate them. Sometimes one of the key

558
00:40:28.440 --> 00:40:32.079
ones is the user request is taking
too long and it turns out it's actually

559
00:40:32.079 --> 00:40:37.199
just one pod and that one pods
has its CPU spinning out, and you

560
00:40:37.239 --> 00:40:43.400
look at infrastructure metrics for those things. So debugging or do you call it

561
00:40:43.440 --> 00:40:49.559
debugging working out what the problem is
in production the root cause analysis. Yeah,

562
00:40:49.960 --> 00:40:53.639
Debugging to me speaks to I am
fixing code often because I'm looking in

563
00:40:53.719 --> 00:40:59.400
an executing environment for what's going on
within that code. I could see having

564
00:40:59.400 --> 00:41:02.039
the telemetry sitting beside me because we're
seeing a behavior in production, we're not

565
00:41:02.119 --> 00:41:06.519
quite sure what it is, and
so now I set up a debugging environment

566
00:41:06.559 --> 00:41:09.119
to try and capture that. And
I suppose so I've been playing with this

567
00:41:09.199 --> 00:41:15.800
narrative, and let's try this,
which is I think tracing is kind of

568
00:41:15.800 --> 00:41:22.280
like conditional breakpoints that you can use
with a time machine. Now, when

569
00:41:22.320 --> 00:41:27.840
I discovered conditional great breakpoints in dotnet, it was like a revelation. When

570
00:41:27.840 --> 00:41:30.039
you're running a SPA app on the
front end and it's going through this line

571
00:41:30.039 --> 00:41:32.280
of code, and you want to
know when it hits this line of code.

572
00:41:32.519 --> 00:41:35.960
But when it comes from this end
point is when I want to be

573
00:41:36.000 --> 00:41:37.320
able to hit it, because it
hits sixteen times and I don't want to

574
00:41:37.320 --> 00:41:40.119
have to hit play every time,
and I've got multiple threads going on.

575
00:41:42.039 --> 00:41:45.360
If you think about that, but
being able to do it in production and

576
00:41:45.400 --> 00:41:52.119
then say what happened yesterday when this
person hit this end point for this particular

577
00:41:52.159 --> 00:41:59.039
method or this particular database call that
I think is that this revelation of you,

578
00:41:59.079 --> 00:42:02.880
now you are doing deep You're you're
using that telemetry from production to do

579
00:42:04.000 --> 00:42:08.119
debugging, yeah, to construct an
executing environment to recreate the problem in production.

580
00:42:08.760 --> 00:42:12.199
Like it gives you the cues to
say, we need to be in

581
00:42:12.239 --> 00:42:15.599
this state to be able to see
this bug. Yeah, to be able

582
00:42:15.639 --> 00:42:19.960
to see those constraints. Because you
still can't set a break point in production.

583
00:42:20.880 --> 00:42:27.239
Well you can, you just won't
have a job after it. Story

584
00:42:27.280 --> 00:42:30.360
Steve, I stepped down you there
yeah, no, I was just yeah,

585
00:42:30.599 --> 00:42:32.039
I'm totally on board with you know, not this point there. And

586
00:42:32.039 --> 00:42:37.280
I think it's it's the ability to
apply constraints to the data that you have

587
00:42:37.440 --> 00:42:40.920
that would be very difficult with just
pure logs, where you want to set

588
00:42:40.960 --> 00:42:45.400
up this series of criteria around I
want to look at this coming from this

589
00:42:45.559 --> 00:42:50.400
in this region, you know,
deployed on this particular piece of infrastructure,

590
00:42:50.440 --> 00:42:54.679
and then see a waterfall visually of
Okay, what did that flow through in

591
00:42:54.719 --> 00:43:00.760
the code? Where are those you
know, lines on this waterfall wider taking

592
00:43:00.800 --> 00:43:06.119
longer? And then you narrow down, Okay, well that's this block of

593
00:43:06.159 --> 00:43:09.000
code or this library. That's where
I need to go and look to try

594
00:43:09.039 --> 00:43:13.519
and find out why that's taking so
long that piece of the puzzle with these

595
00:43:13.559 --> 00:43:20.840
given sets of criteria applied to it. And that's something I think only only

596
00:43:20.920 --> 00:43:23.159
well defined tracing can can really give
you. You could, you could sort

597
00:43:23.159 --> 00:43:27.320
of get there with logs, but
you you would take a lot longer to

598
00:43:27.400 --> 00:43:30.280
find there. I think, yeah, there's always a question of do I

599
00:43:30.360 --> 00:43:36.840
understand with any given log set,
it's like these six logs, where is

600
00:43:36.920 --> 00:43:39.679
the trends this particular transaction across these
logs, like we've always had a tough

601
00:43:39.719 --> 00:43:44.079
time joining that stuff up and tell
them she does a better jar with that,

602
00:43:44.639 --> 00:43:47.039
yeah, and then relating that back
to infrastructure because you know, we

603
00:43:47.119 --> 00:43:51.599
don't run our code in isolation.
Infrastructure is a thing that we use.

604
00:43:52.719 --> 00:43:55.800
So yes, it ran slower.
But was it running slow because that Kubernetti's

605
00:43:55.840 --> 00:44:00.599
node was overloaded? Was it running
slow because we just switched slots in service?

606
00:44:00.280 --> 00:44:06.679
You know though that infrastructure stuff is
just as important. Yeah, it's

607
00:44:06.920 --> 00:44:08.119
you know again, I've spent a
long time on the ops side of this

608
00:44:08.159 --> 00:44:12.480
because why is this slow? And
it's like it's your hardware, No,

609
00:44:12.599 --> 00:44:15.920
it's your crappy software. Like you
go back and forth on that a fair

610
00:44:15.039 --> 00:44:22.079
bit. I have had a situation
where we had a hundred based tea hub

611
00:44:22.320 --> 00:44:25.920
in the in the network we'd forgotten
about and literally were throttling all the network

612
00:44:25.960 --> 00:44:30.840
and traffic. So you know,
it looked like the database was slow,

613
00:44:30.840 --> 00:44:32.480
and it's like, literally it took
a long time for the data to come

614
00:44:32.480 --> 00:44:37.920
and go from that because this network
mistake was there. Like, those things

615
00:44:37.960 --> 00:44:40.960
happen, and the trick is to
not be mean about it. Like everybody

616
00:44:42.000 --> 00:44:45.039
sit on the same side of the
table in the boardroom with the projector on

617
00:44:45.519 --> 00:44:49.559
going. What is this data telling
us? And that's correlation? Yeah,

618
00:44:49.599 --> 00:44:52.360
you know, that's the idea of
you know, the ops people are looking

619
00:44:52.360 --> 00:44:55.119
at their infrastructure dashboards and you know
there's a there's a thing here, and

620
00:44:55.159 --> 00:45:00.079
then the developers are looking at their
log aggregation dashboard that show them some stuff

621
00:45:00.079 --> 00:45:05.079
and they've got some graphs that they
can It's like, whoa these two graphs

622
00:45:05.079 --> 00:45:08.320
they go up at the same time. Ah, maybe there is something here.

623
00:45:08.480 --> 00:45:12.280
Is there a knob here that we
can wiggle, like, you know,

624
00:45:13.719 --> 00:45:16.039
just kick it out? Can we
change that number for anything? Like

625
00:45:16.679 --> 00:45:20.599
when we do this, does it
make a difference. So at least you

626
00:45:20.599 --> 00:45:23.679
have a sense that, yeah,
there's a there's a constraint here and it's

627
00:45:23.760 --> 00:45:28.639
related to this value, and if
we modify it, we can improve it

628
00:45:28.639 --> 00:45:31.039
in some way. Convincing that we
have to buy a new hardware is challenging.

629
00:45:31.800 --> 00:45:36.960
And again Cloud took a lot of
this away because it costs you nothing

630
00:45:37.039 --> 00:45:40.800
to turn that up for a test
and then turn it back down again like

631
00:45:40.960 --> 00:45:45.920
a buck. It's just you solve
a lot of problems just by doing those

632
00:45:45.000 --> 00:45:50.880
tests. Yeah, I just run
a workshop on Kubernettes for some attendees,

633
00:45:50.920 --> 00:45:54.719
and I span up a Cubernettes cluster
for every one of the attendees for two

634
00:45:54.800 --> 00:46:01.360
days. And it costs me I
think four pounds per attendee to run a

635
00:46:01.480 --> 00:46:07.199
three note Kubernettes cluster in a KS
for two days. I mean, can

636
00:46:07.239 --> 00:46:09.519
you imagine if you were having to
do that on premise and ship in all

637
00:46:09.559 --> 00:46:15.800
that hardware three three hundreds just for
each intending and a rack whirring in the

638
00:46:15.800 --> 00:46:19.199
background, but with hal blinky lights, So that'd be a thing. Yeah,

639
00:46:19.280 --> 00:46:21.280
yeah, we'd have blinky lights.
But you know you can get a

640
00:46:21.440 --> 00:46:22.719
get a bunch of r G B
L e eds, put them in a

641
00:46:22.760 --> 00:46:27.960
box just called the computer right anytime
the wire goes back into the cloud.

642
00:46:30.239 --> 00:46:31.320
Might do that for the next workshop. It's like, yeah, you're all

643
00:46:31.360 --> 00:46:36.679
running those blinking lights in the corner. That one it's off. That's Carl

644
00:46:39.440 --> 00:46:46.639
Carl oh Man. What if we
what have we not talked about here?

645
00:46:46.719 --> 00:46:51.800
Because there's a lot to doing a
good job here. What are the learning

646
00:46:51.920 --> 00:46:54.159
ingredients? Like how do people really
get You know, it's quick to install,

647
00:46:54.280 --> 00:46:59.159
but do you ten ten lines of
code? You're up and running but

648
00:46:59.360 --> 00:47:04.760
there is some things you need to
know. I think start with aspire.

649
00:47:05.039 --> 00:47:07.880
You know, start with a local
dashboard. Start by turning some things on

650
00:47:07.960 --> 00:47:13.679
locally in your local environment, development
environment, and see what some of these

651
00:47:13.719 --> 00:47:19.800
traces look like and see whether they're
useful before you start thinking about where I'm

652
00:47:19.800 --> 00:47:22.039
going to put them, what observability
back? In? What scale do I

653
00:47:22.079 --> 00:47:24.360
need? Am I going to use
open source and host it myself? Am

654
00:47:24.400 --> 00:47:27.639
I going to go with a SaaS
vender? Am I going to go one

655
00:47:27.679 --> 00:47:31.800
in built into my cloud? Use
the spire? That's that's what the real

656
00:47:31.920 --> 00:47:36.639
cool thing about it's available as a
container. Now that you can just run

657
00:47:36.719 --> 00:47:39.920
up locally. You don't need to
use the DCP and all the other bits

658
00:47:39.960 --> 00:47:44.840
that go with it. You can
just run it in a container and just

659
00:47:44.960 --> 00:47:49.079
experiment with it. What data do
you see? Is it going to help

660
00:47:49.159 --> 00:47:52.880
you? You know, the value
of the value to work ratio should be

661
00:47:52.920 --> 00:47:57.960
really small anyway, in like ten
minds of code. Great, but start

662
00:47:57.960 --> 00:48:00.440
with something like that locally because you
don't need to choose a vendor. I

663
00:48:00.840 --> 00:48:05.360
equate this to you. Remember when
they brought an eye logger, And the

664
00:48:05.400 --> 00:48:08.559
great thing about eyelogger is it saved
six months on every project because the first

665
00:48:08.559 --> 00:48:15.639
six months of any project was deciding
between n log and love pnette and the

666
00:48:15.840 --> 00:48:20.519
arguments. The arguments that people had. I mean, that was the true

667
00:48:20.519 --> 00:48:23.599
flame Wars, you know. But
they brought an eye logger, and the

668
00:48:23.639 --> 00:48:29.320
problem was that you needed to make
that decision really far up from because if

669
00:48:29.320 --> 00:48:31.639
you didn't, then you'd have to
retrofit it across every all of your code

670
00:48:31.840 --> 00:48:37.800
develop everybody this one. They brought
an eye logger and they were like,

671
00:48:37.840 --> 00:48:39.559
great, yeah, everybody use ilogger. It'll just send it through eyelogger and

672
00:48:39.599 --> 00:48:43.599
then you'll choose your vendor. And
I think open celemetry is the same thing

673
00:48:44.519 --> 00:48:47.039
is we've got a gimme. Now. It should be in everything, whether

674
00:48:47.039 --> 00:48:50.639
you're to wire it up or not. It costs you nothing to have it

675
00:48:50.679 --> 00:48:52.039
there, and when you do wire
it out, mental help. Yeah,

676
00:48:52.079 --> 00:48:54.559
and that's the place to start.
Well, And I like this tipping point

677
00:48:54.599 --> 00:48:59.159
angle that Steve brought up, which
is that and more and more vendors see

678
00:48:59.199 --> 00:49:02.400
it that way. So the information
you're getting out of open Columbatry just keeps

679
00:49:02.400 --> 00:49:07.719
getting better. Yeah, this whole
thing works best as more and more vendors

680
00:49:07.719 --> 00:49:09.280
get on board. So that's the
library authors, it's the you know,

681
00:49:09.360 --> 00:49:15.400
the various different language run times,
it's the open Telemetry team. It's people

682
00:49:15.480 --> 00:49:20.599
within your organization, engineers within your
organization buying into the fact that, okay,

683
00:49:20.639 --> 00:49:22.360
we've got this. I mean in
dot Net it's super easy because we

684
00:49:22.400 --> 00:49:27.119
do have activity built in. It's
it's there. If you're using dot net

685
00:49:27.159 --> 00:49:30.239
modern dot net, you've got the
libraries, you've got the APIs. You

686
00:49:30.280 --> 00:49:34.760
need just to turn this stuff on
and start instrumenting code. But as all

687
00:49:34.800 --> 00:49:38.159
of these people shift towards that general
direction, I think that's where why open

688
00:49:38.159 --> 00:49:43.679
telemetry now is really starting to look
like a good solution for everyone. What's

689
00:49:43.719 --> 00:49:47.320
the app Insights story? Should we
just rip it out? And so Application

690
00:49:47.400 --> 00:49:52.239
Insights is currently redeveloping all of their
SDKs to use activity source and activities.

691
00:49:52.239 --> 00:49:57.639
So it's not wow, I'm getting
those now saying you're going to have to

692
00:49:57.719 --> 00:50:01.000
change this soon. So it shows
that you Microsoft's listening to the open telemetry

693
00:50:01.000 --> 00:50:06.039
story. I mean, they had
the experimental flags in the as your SDK

694
00:50:06.440 --> 00:50:07.599
last year, I think, and
I think those are being removed now.

695
00:50:07.679 --> 00:50:12.920
So all the AZ your SDK is
anything that you use from Cosmos to service

696
00:50:13.000 --> 00:50:16.639
bos if Angrid. All of those
things will be instrumented with activities which means

697
00:50:16.679 --> 00:50:22.679
they're compatible with open celametry to send
it and as your monitor. They've got

698
00:50:22.719 --> 00:50:27.960
their own exporter. Now they don't
accept OTLP yet. Whether they will,

699
00:50:27.960 --> 00:50:30.840
I don't know. I don't work
on that team, but they do have

700
00:50:30.880 --> 00:50:37.079
a distro so that you can do
add as your monitor exporter and then you

701
00:50:37.119 --> 00:50:39.599
can just use open telemetry and decide
later away're going to send it or just

702
00:50:39.639 --> 00:50:43.800
add the one line of code that
says add to a your monitor and it

703
00:50:43.840 --> 00:50:47.079
will appear in app insites. Everybody's
doing it. And to go back to

704
00:50:47.119 --> 00:50:52.880
this Blazer thing, do you recall
hearing any kind of timeline as to when

705
00:50:53.880 --> 00:51:01.480
things will be more copestic with tracing
and everything else that's going on. So

706
00:51:01.639 --> 00:51:07.599
I had a long conversation with the
other Steve NDC London about exactly that,

707
00:51:07.639 --> 00:51:19.639
the more famous Steve. So they're
looking at it, they are aware of

708
00:51:19.679 --> 00:51:22.440
the issues that are coming up,
and they are you know, wanting to

709
00:51:22.480 --> 00:51:27.480
solve them. So I would imagine
that yes, they will be solved soon

710
00:51:27.760 --> 00:51:30.639
and you can do it. It's
just it's not as easy as ten lines

711
00:51:30.639 --> 00:51:32.039
of code. You know, you've
got to go through a few more hoops,

712
00:51:32.159 --> 00:51:36.559
especially with the whole render mode thing. If you're using dynamic render modes,

713
00:51:36.639 --> 00:51:40.639
You've got some other problems that have
to get solved, first state problems

714
00:51:40.639 --> 00:51:46.400
and things. Something I'm currently working
on. But I'm hopeful. I'm hopeful

715
00:51:46.440 --> 00:51:51.559
for a future where this is the
default. You know, this is well,

716
00:51:51.599 --> 00:51:54.159
I just add those ten lines of
code, or even just add one

717
00:51:54.159 --> 00:51:58.679
line of code when we've worked on
the SDKs a little bit more, and

718
00:51:58.800 --> 00:52:02.239
just add the one thing that's says
send my stuff, and you know it's

719
00:52:02.239 --> 00:52:09.719
a what is it services? Don't
let me debug my things? You know

720
00:52:09.800 --> 00:52:15.239
that that kind of simplicity just becomes
the new cargo cult if you like,

721
00:52:15.639 --> 00:52:19.840
I don't just cargo cult thing.
I well, I do cargo cult thing,

722
00:52:19.840 --> 00:52:22.280
but it's the new thing I cago
cult. Well, guys, great

723
00:52:22.320 --> 00:52:27.880
conversation, Thanks so much for coming
on absolutely and what's next. Let's send

724
00:52:27.920 --> 00:52:34.480
your inbox Marten. So I'm doing
a load of conferences. I'm doing some

725
00:52:34.519 --> 00:52:38.440
meetups around the UK. I'll be
at Cubcon, the Kubernettes Cloud Native Conference

726
00:52:38.920 --> 00:52:45.079
in match so but yeah, I
am flying around the world spreading the good

727
00:52:45.079 --> 00:52:49.880
word about this sort of stuff.
How about you you? Yeah, conferences

728
00:52:50.000 --> 00:52:52.880
coming up, so I'll be in
Sweet Sweden next week for Sweet Tug,

729
00:52:52.960 --> 00:52:55.400
which will be in the past by
the time this this one goes out.

730
00:52:57.519 --> 00:53:01.679
And then yeah, day to day
we're going to be focused on where Elastic

731
00:53:01.719 --> 00:53:06.280
and the engineers can contribute to open
telemetry. Really, I'm really starting to

732
00:53:06.320 --> 00:53:09.800
poke around in the open telemetry sd
K repays and think about how we can

733
00:53:10.280 --> 00:53:14.320
make that experience good for good for
everyone. Say, yeah, I think

734
00:53:14.320 --> 00:53:16.599
that will keep you busy for a
while yet. Well, this is all

735
00:53:16.639 --> 00:53:22.159
great news. Thanks again, and
I'll catch up with you at some conference

736
00:53:22.199 --> 00:53:27.559
somewhere. I'm sure, sure,
all right, We'll see you next time

737
00:53:27.679 --> 00:53:51.719
on dot net rocks. Dot net
Rocks is brought to you by Franklin's Net

738
00:53:51.800 --> 00:53:55.679
and produced by Pop Studios, a
full service audio, video and post production

739
00:53:55.800 --> 00:54:00.440
facility located physically in New London,
Connecticut, and of course in the cloud

740
00:54:01.039 --> 00:54:07.119
online at pwop dot com. Visit
our website at d O T N E

741
00:54:07.199 --> 00:54:12.039
t R O c k S dot
com for RSS feeds, downloads, mobile

742
00:54:12.079 --> 00:54:15.960
apps, comments, and access to
the full archives. Going back to show

743
00:54:15.039 --> 00:54:20.599
number one recorded in September two thousand
and two. And make sure you check

744
00:54:20.639 --> 00:54:23.679
out our sponsors. They keep us
in business. Now go write some code.

745
00:54:24.000 --> 00:54:35.280
See you next time. You got
javans and

