WEBVTT

00:00.000 --> 00:16.500
For being here, so this I'm on Agines, it's my first time here presenting at my first

00:16.500 --> 00:17.500
IT talk.

00:17.500 --> 00:24.860
I hope this is going to be well, if I'm not done improvising, so yes, I hope you don't

00:24.860 --> 00:31.380
get bored, at least understand the 50% that I want to share today.

00:31.380 --> 00:42.220
So this is actually, this is going to be like observability beginner friendly, because

00:42.220 --> 00:50.900
Mastering is like a gomones, but we're going to try, we're going to try.

00:50.900 --> 00:57.900
So yes, about me, so I am 33 years old, I'm software engineering, I'm like activism

00:57.900 --> 01:04.100
in teamwork, you design communication, innovation, even if I'm unpurple, I'm not like

01:04.100 --> 01:11.460
silver feminists or something like that, but it's my favorite color, yes, so I mean IT

01:12.460 --> 01:22.980
2013, and I keep going, I love to search for solutions, and yeah, so more in the technical

01:22.980 --> 01:30.300
way, so over the past years I, I, I, I, I, you front of development, I do, you, you, you,

01:30.300 --> 01:41.300
UX and UI research and now monitoring and observability, as I say, I'm, you know, I'm

01:41.620 --> 01:48.700
in, in, in a path of, of my career that I want, like to become more like a solution

01:48.700 --> 01:57.660
engineer, searching for solutions, for problems, so what we're, we be covering in today's

01:57.660 --> 02:06.660
session, it's, um, so observability versus monitoring, because I think this is important to

02:06.740 --> 02:13.740
know, um, what is observability, because it's not just monitoring, it's a monitoring

02:13.740 --> 02:19.740
as part of observability, how install, how to install signals using their easy installation

02:19.740 --> 02:27.740
script to do the self-hosted, um, a brief overview of open telemetry and why called instrument

02:27.740 --> 02:34.740
is instrumentation is essential for observability, the demo, we're going to go deep,

02:34.740 --> 02:42.500
like deep dive in, to signals to, and then we, we are going to have the opportunity to explore

02:42.500 --> 02:53.700
signals cloud together and then some QA, so, uh, no, so, thank you, Dali for the photo,

02:53.780 --> 03:05.140
um, so, imagine observability, like cooking a meal, okay, I love cooking so much, so, if you,

03:05.140 --> 03:12.620
actually, if you, how I explain this, so, imagine you're cooking, you're, you're baking

03:12.620 --> 03:18.580
a cake, okay, this is, monitoring is like, okay, you, you know when the time's up, you

03:18.660 --> 03:24.740
know, uh, when it's ready, but you don't know if the cake is burnt, okay, so if we go

03:24.740 --> 03:33.580
more deep in observability, it's like knowing in every step of the, of the, of what you're

03:33.580 --> 03:44.500
cooking, if it's to salty or, it's, um, um, lack of a, lack of sugar, I don't know, did all

03:44.580 --> 03:54.580
this kind of stuff, stuff, um, to, to summarize, okay, to summarize, uh, you can follow

03:54.580 --> 04:01.220
the recipe, you know, this is your code, um, but you don't know how, what exactly is happening

04:01.220 --> 04:11.940
into an application, so, with this, without these ingredients, you will not, you will not

04:11.940 --> 04:25.300
have an, an observability, uh, method, so, you know, you know, when, oh, well, sorry, I, um, well,

04:25.300 --> 04:32.660
so for me, actually, this is our, the training, three main ingredients, so, logs, metrics

04:32.660 --> 04:38.820
and traces, okay, logs are, okay, we're recording the, recording the events, metrics are

04:38.900 --> 04:47.300
for the latency, and okay, how much requests my application have, uh, there's a problem,

04:47.300 --> 04:53.620
and the traces are like the journey of your application, imagine you click in some point,

04:53.620 --> 05:05.060
what is happening, the whole thing, and, but what is the jobs to be done of observability,

05:05.060 --> 05:15.860
so it's instrumentation, so it's the, the fact of, um, putting, um, props in your code to know

05:15.860 --> 05:21.460
what is happening, the monitoring is asking the same question, so, okay, the questions that

05:21.460 --> 05:28.500
are, uh, instruments monitoring what this is, uh, this is something that I'm not like, um,

05:28.580 --> 05:37.380
learning you today, but in fact, these are the three main things to say, okay, we have observability,

05:37.380 --> 05:46.340
we know the bugging, uh, to explore, uh, yes, complex questions and go asking questions over the

05:46.340 --> 05:57.780
fly, and so, yes, more deep dive, it's like, yes, you, you determine what needs to be observed,

05:57.780 --> 06:05.220
so your key metrics, logs, traces, um, define the KPIs and as a loaves, so understand the

06:05.220 --> 06:12.900
dependencies and critical parts, so I gather, so collect, it's okay, what, what, what, what, what,

06:12.980 --> 06:19.620
what are, we're going to collect, but we need, open team of three primitives, the in the previous

06:19.620 --> 06:27.220
talks, they talk a lot about instrumentation, so this is actually, um, really important part,

06:27.220 --> 06:34.980
collect instrument, so do analyze that they're what, when can, we make dashboards that are

06:34.980 --> 06:42.340
efficient for us to know what is happening in our application or even putting alerts,

06:42.340 --> 06:53.060
to be notified that something is going wrong in, in our, in our systems, so now, uh, so yeah,

06:53.060 --> 07:04.820
I want to just do, to, to make it clear, to sensitive, sensitive, sensitive, you, how, um, when we

07:05.540 --> 07:10.980
can say that we have observability, because it's not just monitoring and having logs, it's more

07:10.980 --> 07:21.220
than that, so for signals, okay, signals is an open source tool, um, I think it's over three years,

07:21.220 --> 07:28.820
now, so it's super easy, uh, to install, why I want to present signals is because I'm not telling

07:28.820 --> 07:35.860
signals is better than graphana, data, though, or something like that, I, I wanted to share

07:35.940 --> 07:44.100
signals, because it helped me as a, just a frontant person, helped me a lot to understand

07:44.100 --> 07:51.780
about observability and infractor, and, you know, this, so actually, what, what do we need to,

07:51.780 --> 07:58.580
to install signals in, in, in, in, in a machine, on, in VM, also they have, in Kubernetes,

07:58.580 --> 08:05.540
they have health charts, but I'm gonna focus in the self-hosted method, so we need to have

08:05.540 --> 08:14.020
Linux and macOS, it's normal, um, to Docker, minimum for gigabytes of memory allocated to Docker,

08:14.020 --> 08:27.220
and we need to open port to 3301 for the frontant, 43, 17 for the DRCP request, and 43, 18 is

08:27.220 --> 08:35.780
will, um, to the HTTP request, okay, you can have, you can make it, this is only in the, in the

08:35.780 --> 08:43.380
documentation, but I'm just summarizing, um, so you can have, you can use the install script,

08:43.380 --> 08:56.500
or the, or Docker, Docker compose, so actually, I want to, uh, to, how, I want to show you actually,

08:57.780 --> 09:20.180
um, if I can, if I can, if I can, oh my god, yes, I'm, I'm just not used to do this, okay,

09:20.180 --> 09:35.300
this is my local host, okay, you, here is nothing, okay, last five minutes, um, I'm losing time here,

09:37.140 --> 09:45.780
so what I wanted to show, what is actually super easy to understand, signal, you can, you can

09:45.860 --> 09:53.300
put receivers, okay, you can, uh, so here, these actually also in the documentation, like, for

09:53.300 --> 10:01.380
example, I want to send a logs, like, just format it like this, so you, you, yes, you all

10:02.020 --> 10:13.220
you're, you're receiver and, for example, right, just want to, um, I'm, I did just, uh, make

10:13.220 --> 10:20.660
file that it's just for the, just for the presentation, so I want to send logs, so this is, I, I

10:20.740 --> 10:34.100
open a new port that is the, um, the 80, um, 82, so if I send logs, I'm going to send, I know,

10:34.820 --> 10:54.260
I know the one, yeah, uh, so if I, sorry, let's hear, I can see from here, there are my logs, logs, logs,

10:54.900 --> 11:03.140
so this is how can I send logs, this, this is just for the, this is a basic, but actually,

11:03.140 --> 11:10.980
how, how do you see the logs, um, I represent that the UI is in super, super user-friendly,

11:10.980 --> 11:22.740
so this, this is our logs made by hand, like, as you see, in JSON, um, so if we,

11:24.740 --> 11:34.180
I hope you, I'm not, you're not getting lost, um, so yes, so that's, that's what the style is, so

11:34.180 --> 11:41.540
after that, after things selling, you have, um, seven, like, you know, one, two, three, four, yes,

11:41.540 --> 11:45.620
some containers, double containers that communicate each other, so the collector, this is the

11:45.700 --> 11:54.260
collector that I, I was talking about, to send your, um, yes, your metrics, uh,

11:55.780 --> 12:02.740
traces and logs, this is the port, 80, 82 that I opened that, when I, when I, when I show you the

12:02.740 --> 12:10.580
otel collector, EML, that's the configuration, what it's cool about signals and easy to understand,

12:10.580 --> 12:16.820
it's like, they have just one database, they, if we compare to graph now, okay,

12:16.820 --> 12:22.020
revenue is a little bit, um, difficult to understand, because they have temple, they have

12:22.020 --> 12:30.020
lucky, they have Mimil, you have to, um, know about trace, square, uh, log, square,

12:30.020 --> 12:38.420
prom, square, here in signals, you just have click house, as data stored, other storage.

12:39.300 --> 12:45.700
Now I'm gonna just, so talking about the instrumentation, right, because we don't have, we don't,

12:45.700 --> 12:52.660
if we don't have instrumentation, we don't have observability, so I, um, this is a side project,

12:52.660 --> 13:01.140
okay, you, you must see that I, I like too much cooking, so, in fact, it's just, uh, just an API,

13:01.860 --> 13:10.020
that recommends you, uh, a recipe, a front end in next JS and a backend, but I'm just using this,

13:10.020 --> 13:18.260
just to, to know how you instrumentate your code. So for example, if we take the example to next

13:18.260 --> 13:25.940
JS, you know JavaScript, JavaScript is, so, what just things to install, and then, um, you have the

13:26.020 --> 13:33.620
SDK, SDK, or what providers, so there was a talk about the opening inventory, the first one,

13:34.340 --> 13:39.940
in this room, that it actually goes deep dive about instrumentation, it's really interesting.

13:41.460 --> 13:49.220
So for the, for Python, you, we're gonna use, uh, this package, so you know Python, you know what

13:49.300 --> 14:02.980
our requirements, um, just then, then you, just, um, this is the, the backend part, so this

14:02.980 --> 14:12.340
is where it's handling the auto-dification, and we'll be securing my API, so it's really, really,

14:13.220 --> 14:23.300
really basic that I'm gonna show you today. I also did, um, a bot, a Slack bot, it's, it's, it's called

14:23.300 --> 14:28.180
server scope scope, it's the name of my dog, because he observes all the things that I'm doing,

14:28.180 --> 14:37.220
while I'm cooking, while I'm, with, I'm, well, I'm working, so now we're gonna, yes, four,

14:37.220 --> 14:47.940
what is signals? This is, so I show you the, the, um, how the, the loads are representing, okay,

14:49.140 --> 14:58.740
actually you can even, um, create an alert about these, but when I'm going to show you,

14:59.700 --> 15:06.420
is, uh, dessert, are the services, okay? Oh my god, there's a half a bunch of, uh,

15:10.420 --> 15:18.900
I can't see. Now it's, uh, I'm just gonna change something about my monitor, okay, so you're like,

15:19.620 --> 15:27.540
I'm just gonna, to clone it, because otherwise I cannot see really well to, yes,

15:28.820 --> 15:44.900
or anything, yep. So you tell me when, yep, now it's good. So this is, in the last, last five

15:44.900 --> 15:53.060
minutes, nothing happened. Now we're going into the, oh sorry for my UI, okay, as I said,

15:53.140 --> 15:59.860
it's really, really basic, okay, I want to sign up, and I say, please force them,

16:04.260 --> 16:11.860
the username is supposed to cool, force them, uh, force them,

16:12.820 --> 16:14.820
dot com, and

16:18.820 --> 16:27.780
okay, now he is, we're gonna discover a meal, okay, my mode is good, and I'm vegetarian,

16:27.780 --> 16:32.820
I don't have the picture, but it's, okay, this is a typical plate of,

16:32.980 --> 16:41.540
equal to that scope on the u-com, but it is, um, so, now, what it's happened,

16:43.060 --> 16:53.300
it's right now, I have my front end, okay, if I just, I have my back end, there's a, there's a little bit

16:53.300 --> 17:02.660
of, uh, interval, okay, when I, and what do you have, I have my API, okay, that is cool,

17:02.660 --> 17:07.700
I sell them. So these are my, these are my three services that are, they're actually

17:08.500 --> 17:18.900
instrumentated, with instrumentation, they won't be there, okay, so we can go and, okay,

17:19.300 --> 17:27.700
search for, for, I don't know, for what is happening in, in, in your, in your application,

17:27.700 --> 17:34.900
this is the front end part, um, if we go to the, um, I don't know, to the back end,

17:34.900 --> 17:42.900
actually also, you, you see that I, I register, and they have, um,

17:43.860 --> 17:51.540
they're all the traces about, uh, what happened when I post, out, registered,

17:51.540 --> 17:56.740
these are all the things that it happens, you know, um, what it's a front end application,

17:56.740 --> 18:06.020
so you, I have a course, maybe the where I, I use Express, so, uh, to the time,

18:06.580 --> 18:14.820
that you can even, this is open telemetry, in this part, I can record my events, okay,

18:15.700 --> 18:23.700
what, when I, when I, when I registered, I check if the user exists, uh, what, you hash the

18:23.700 --> 18:33.140
password, you create a new user, and you generate a GWT token, okay, if something goes wrong,

18:34.100 --> 18:46.260
we'll be, um, I don't know if I, so here also, you have, um, the database, okay, because when I'm creating,

18:47.140 --> 18:53.940
I use Post-Resquale, that queries, so it starts, they insert, and then they come in, and they,

18:53.940 --> 19:02.500
we can say, they, they login, because okay, I have my, do a little token, and this why I could

19:02.580 --> 19:09.540
enter in my application. Um, what, what it's cool about signals is you can say this view, for

19:09.540 --> 19:16.660
example, if you, you want, uh, to say this view, and you say, okay, this is interesting, um,

19:19.380 --> 19:29.220
which color, yes, purple, and when I go to the views, I have several ones, this is our, um,

19:29.380 --> 19:41.300
other views that I, I, I record, so, other thing, I can show you about, uh, about signals,

19:41.300 --> 19:52.020
are the alerts, okay, yes, so this, this is how you handle the alerts, but first, you have, you need to,

19:52.100 --> 19:59.060
sorry, uh, you need to configure it, to configure it, um, in your settings, settings, sorry,

20:00.420 --> 20:12.580
I have a channel, okay, this is, uh, and this is correlated with, sorry, yep, uh, also,

20:12.580 --> 20:18.020
the way I wanted to say that the, the signal is open source and the community, it's really active,

20:18.020 --> 20:24.900
and the, the answer questions, the, you know, then, if we have time, we are going to explore

20:24.900 --> 20:32.740
the signals cloud, so this is, this is how the alerts are representing, so if I just go and test

20:32.740 --> 20:47.860
something, uh, sorry, demo, that, uh, I hope this works, otherwise, okay, this is sending

20:47.860 --> 20:56.420
on, on notification now, and we see, no, two hours, it's going to arrive, huh?

20:59.220 --> 21:06.420
12 hours, sorry, so we're going to, we're going to do another, another, another alert, okay,

21:06.980 --> 21:13.780
we're going to, oh yeah, for example, if I want to, other, new alert,

21:14.660 --> 21:27.860
um, look, base it, for example, um, namespace equal staging when something is, I, I'm doing just,

21:28.900 --> 21:35.140
just to show you the interaction with the alert, okay, it's not, okay, I choose my channel,

21:35.860 --> 21:48.500
it's just to show you that it's really, um, easy to, um, um, what a threshold.

21:48.500 --> 22:11.000
flag and not test it here, I don't know why it can not test, well normally they can

22:11.700 --> 22:30.520
sorry, I don't know why I can not set the other words, but I don't know what this happened,

22:30.520 --> 22:58.080
normally, it's super easy to, I'm not quite familiar, I don't know, okay, sorry, this

22:58.080 --> 23:09.760
is the main, what is a staging, okay, a staging, I think this is the thing I didn't put

23:09.760 --> 23:20.060
a name on the, so yes, I created Roo, sorry, I just, oh, hard, threshold, okay, sorry,

23:20.060 --> 23:27.800
yep, no other's found during all, yes, actually they have to, to know if there's, there's

23:27.800 --> 23:35.240
something otherwise they, it's not, it's not gonna work, but it, it works, other thing

23:35.240 --> 23:47.200
that I want to show you, okay, now there's no more, no more data, but if I, for example,

23:47.200 --> 23:55.880
how you correlate different service, if we are, we are making like, we have a microservice,

23:55.880 --> 24:03.600
so for example, I get recommendation from the back end now, in the demo I just, I show

24:03.600 --> 24:14.720
you that was from the, from the front end, sorry, make, get recommendation, okay, this

24:14.720 --> 24:24.080
is interacting with the Python API that I have here, okay, and if we go to signals,

24:24.080 --> 24:48.000
of course they have an interval, come on, sorry, how is it good, yep, so if we go, and we

24:48.000 --> 24:56.440
see the back end now, there's minutes, so I get, what is happening now, and get recommendation,

24:56.440 --> 25:04.560
this is the back end, so Python, the root of Python is predict, the root of, of NASJS

25:04.560 --> 25:11.600
that is the back end that is, it's an interacted with, with the Python API, you can see,

25:11.600 --> 25:23.720
okay, I can see the name of my, the name of my, my functions, this is getting recommendation

25:23.720 --> 25:30.120
to plus, and they post, okay, because I have, I need to post, and this, you, you see in

25:30.120 --> 25:41.160
your flame graph, yep, your, the correlation between the two, two services, in fact,

25:41.160 --> 25:49.360
and this, what, this is why I say traces are highly, highly recommend if you want to know

25:49.360 --> 25:58.160
the, what is happening through all your system, so I have five minutes, right, okay, what

25:58.160 --> 26:04.520
I wanted to also, I have the opportunity to talk when we, the signals, maintainer, he

26:04.520 --> 26:11.360
gives me access to the demo, and actually there, what's been such improvements in signals

26:11.360 --> 26:17.260
that you can check your monitoring, check your infrastructure, you can monitor your

26:17.260 --> 26:21.480
infrastructure, I don't know where, where this host is something, but we can see that

26:21.480 --> 26:32.280
is a GK, K, E, so Google Cloud Platform, and you can also, so if signals are installed

26:32.280 --> 26:42.200
in a Kubernetes, our processor, they're going to show the metrics about your, yes, of

26:42.200 --> 26:53.040
your system, they have message accused with Kafka, well, the exceptions, errors, actually

26:53.040 --> 27:03.080
is pretty cool, the service maps, they have a lot of service, so it's going to take, maybe,

27:03.080 --> 27:13.120
so this is how, actually, you, you can correlate, they correlate the, what else, what

27:13.120 --> 27:20.680
else that I can show you is the, oh yeah, in my, this is the self-costance, so this is my,

27:20.680 --> 27:28.240
from my machine, you can actually have custom dashboards, okay, for example, this is for

27:28.240 --> 27:35.040
HTTP monitoring, this dashboards are made from the community, you, you can have like

27:35.040 --> 27:46.560
argocity dashboards, you can have like, also, dv, dv calls, so if I go from the backend system

27:46.560 --> 27:55.320
that I just show you, I can have om, in, in, yes, in another kind of view, you, you have

27:55.320 --> 28:05.400
your, your queries, and yes, just go, dv about your application, what is happening, and

28:05.400 --> 28:19.000
you can set alerts from here, and all day, you know that, and, sorry, now this is, yeah, sorry,

28:19.000 --> 28:29.280
so I think I, I, I, I make up the whole tour, that way, what I, until you before, they have

28:29.280 --> 28:40.240
a bunch of dashboards that you can go copy and, and put it in, in the dashboard part, like,

28:40.240 --> 28:49.800
graph, and I, well, we already, for a little bit, signal cloud together, and I think this

28:49.800 --> 29:00.280
is all, if you have questions, I have, well, we have two minutes, just two minutes, sorry,

29:00.280 --> 29:15.680
I hope, any questions, so what, so what's the pricing model, the pricing model, I don't

29:15.680 --> 29:21.480
know that, if you want to associate those in subhosted, in a VM, that you are going to

29:21.480 --> 29:27.680
handle, I think the cause are going to be less, but actually, I didn't go deep dive, in

29:27.680 --> 29:33.600
this, in this, in this, but I can inform it, and I can share you the information, sorry,

29:33.600 --> 29:39.200
because it was more that, in the fact that I did this presentation more in the way that,

29:39.200 --> 29:45.600
it's super easy to understand observability, and, and, and, I don't know, explore your

29:45.600 --> 29:51.680
systems and all, but I didn't go to, to, to, to the price and price and model, but I think

29:51.680 --> 29:57.680
it's, it's less, the way there's a, that, the way there's done, done, get off on a cloud

29:57.680 --> 30:04.800
for a simple sort of, one more question, no, okay, then thanks again.

