1 00:00:00,000 --> 00:00:02,600 ever take a look at your car's dashboard? 2 00:00:02,600 --> 00:00:04,280 You know, just to check that everything's running 3 00:00:04,280 --> 00:00:05,120 how it should be. 4 00:00:05,120 --> 00:00:07,080 Yeah, definitely. 5 00:00:07,080 --> 00:00:09,220 Well, today we're doing kind of the same thing, 6 00:00:09,220 --> 00:00:11,240 but for the digital world, 7 00:00:11,240 --> 00:00:13,480 we're peeking under the hood at these systems 8 00:00:13,480 --> 00:00:15,600 that make sure all our favorite websites and apps 9 00:00:15,600 --> 00:00:17,400 are running smooth and staying healthy. 10 00:00:17,400 --> 00:00:18,240 Makes sense. 11 00:00:18,240 --> 00:00:21,480 Yeah, like, ever had a website just freeze up on you? 12 00:00:21,480 --> 00:00:24,480 Or maybe an app that just crashes out of nowhere? 13 00:00:24,480 --> 00:00:25,920 Happens all the time. 14 00:00:25,920 --> 00:00:28,040 Well, chances are there's a monitoring system 15 00:00:28,040 --> 00:00:29,180 working behind the scenes, 16 00:00:29,180 --> 00:00:30,680 trying to figure out what went wrong. 17 00:00:30,680 --> 00:00:32,760 And that's exactly what we're gonna explore today. 18 00:00:32,760 --> 00:00:33,600 Sounds interesting. 19 00:00:33,600 --> 00:00:36,480 Specifically, we're gonna do a deep dive into Prometheus. 20 00:00:36,480 --> 00:00:37,440 Prometheus. 21 00:00:37,440 --> 00:00:38,960 Yeah, super popular. 22 00:00:38,960 --> 00:00:42,080 It's this open source tool that a lot of folks use for, 23 00:00:42,080 --> 00:00:43,480 well, this kind of monitoring. 24 00:00:43,480 --> 00:00:46,560 And for this deep dive, we went straight to the source. 25 00:00:46,560 --> 00:00:48,640 We got all this great info directly 26 00:00:48,640 --> 00:00:51,440 from the Prometheus project on GitHub 27 00:00:51,440 --> 00:00:53,680 and their official website too. 28 00:00:53,680 --> 00:00:55,920 So, straight from the horse's mouth. 29 00:00:55,920 --> 00:00:56,880 Exactly. 30 00:00:56,880 --> 00:00:58,280 But before we really get started, 31 00:00:58,280 --> 00:01:00,840 I want to give a big shout out to Safe Server. 32 00:01:00,840 --> 00:01:03,640 They're the ones who made this whole deep dive possible. 33 00:01:03,640 --> 00:01:06,120 They provide amazing hosting for software, 34 00:01:06,120 --> 00:01:08,520 and they even offer some really expert advice 35 00:01:08,520 --> 00:01:10,520 on digital transformation too. 36 00:01:10,520 --> 00:01:12,200 So, if you're interested, check them out. 37 00:01:12,200 --> 00:01:15,800 www.safe-server.de. 38 00:01:15,800 --> 00:01:16,400 I'll have to take a look. 39 00:01:16,400 --> 00:01:18,240 So, today's goal is pretty simple. 40 00:01:18,240 --> 00:01:20,600 We want to give you a clear, easy-to-understand 41 00:01:20,600 --> 00:01:22,560 introduction to Prometheus. 42 00:01:22,560 --> 00:01:25,240 What it is, how it works, and why 43 00:01:25,240 --> 00:01:28,520 it's become so important for, well, all things software. 44 00:01:28,520 --> 00:01:29,360 Sounds good to me. 45 00:01:29,360 --> 00:01:29,960 Yeah. 46 00:01:29,960 --> 00:01:32,120 We're really aiming to make this accessible to everyone, 47 00:01:32,120 --> 00:01:33,600 even if you're just kind of curious about what 48 00:01:33,600 --> 00:01:35,720 goes on behind the scenes in the digital world. 49 00:01:35,720 --> 00:01:36,720 Right, right. 50 00:01:36,720 --> 00:01:38,120 OK, so let's jump in. 51 00:01:38,120 --> 00:01:41,640 Right off the bat, the Prometheus GitHub page calls it, 52 00:01:41,640 --> 00:01:45,920 and I'm quoting here, a systems and service monitoring system 53 00:01:45,920 --> 00:01:50,400 and a time series database. 54 00:01:50,400 --> 00:01:53,400 Yeah, so what does that actually mean in plain English? 55 00:01:53,400 --> 00:01:55,360 Well, a monitoring system is, well, 56 00:01:55,360 --> 00:01:56,920 pretty much what it sounds like. 57 00:01:56,920 --> 00:01:59,480 It's a way to keep a close eye on all those digital tools 58 00:01:59,480 --> 00:02:01,880 we use, making sure they're running the way they should, 59 00:02:01,880 --> 00:02:03,840 kind of like a doctor, constantly checking 60 00:02:03,840 --> 00:02:05,680 a patient's vital signs. 61 00:02:05,680 --> 00:02:08,200 And then there's the whole time series database part. 62 00:02:08,200 --> 00:02:10,480 Think of it like a diary, but for your software. 63 00:02:10,480 --> 00:02:12,440 It's constantly recording different measurements, 64 00:02:12,440 --> 00:02:15,840 like how busy the software is or how fast it's responding, 65 00:02:15,840 --> 00:02:18,040 and it does this at specific points in time. 66 00:02:18,040 --> 00:02:21,240 So you can actually see how things change over days, hours, 67 00:02:21,240 --> 00:02:22,000 even minutes. 68 00:02:22,000 --> 00:02:22,720 Oh, interesting. 69 00:02:22,720 --> 00:02:24,380 So it's like trapping the ups and downs. 70 00:02:24,380 --> 00:02:25,240 Exactly. 71 00:02:25,240 --> 00:02:29,360 And the way Prometheus organizes all that info in this diary, 72 00:02:29,360 --> 00:02:30,360 it's pretty neat. 73 00:02:30,360 --> 00:02:32,160 Instead of just having simple entries, 74 00:02:32,160 --> 00:02:34,880 it uses something called a multi-dimensional data model. 75 00:02:34,880 --> 00:02:35,880 Multi-dimension? 76 00:02:35,880 --> 00:02:38,400 Yeah, it basically means that every bit of info, 77 00:02:38,400 --> 00:02:41,160 Prometheus records, has a specific name. 78 00:02:41,160 --> 00:02:42,760 We call that the metric name. 79 00:02:42,760 --> 00:02:45,000 It could be something like website visits or even 80 00:02:45,000 --> 00:02:46,320 server temperature. 81 00:02:46,320 --> 00:02:47,840 OK, so far so good. 82 00:02:47,840 --> 00:02:49,680 But here's the cool part. 83 00:02:49,680 --> 00:02:52,080 It also has these extra labels attached to it. 84 00:02:52,080 --> 00:02:54,480 Those are the key value dimensions. 85 00:02:54,480 --> 00:02:55,720 Think of it like this. 86 00:02:55,720 --> 00:02:59,160 Instead of just saying temperature, 25 degrees, 87 00:02:59,160 --> 00:03:01,800 Prometheus might record something like temperature. 88 00:03:01,800 --> 00:03:05,200 And then in curly brackets, room equals living room, 89 00:03:05,200 --> 00:03:08,000 sensor equals one, and then 25 degrees. 90 00:03:08,000 --> 00:03:10,160 So it's adding context to the numbers. 91 00:03:10,160 --> 00:03:10,960 Exactly. 92 00:03:10,960 --> 00:03:13,720 Those extra labels like room and sensor, 93 00:03:13,720 --> 00:03:16,600 they give you a much richer picture of what's going on. 94 00:03:16,600 --> 00:03:18,880 Then you can ask some really specific questions like, 95 00:03:18,880 --> 00:03:22,400 what was the temperature in the living room for the past hour? 96 00:03:22,400 --> 00:03:23,040 That makes sense. 97 00:03:23,040 --> 00:03:23,560 Yeah. 98 00:03:23,560 --> 00:03:26,080 And to actually ask those specific questions, 99 00:03:26,080 --> 00:03:28,640 Prometheus has this special language. 100 00:03:28,640 --> 00:03:30,320 It's called PROMQL. 101 00:03:30,320 --> 00:03:31,240 PROMQL? 102 00:03:31,240 --> 00:03:33,720 Stands for Prometheus Query Language. 103 00:03:33,720 --> 00:03:35,080 OK, another acronym. 104 00:03:35,080 --> 00:03:35,880 I know, right? 105 00:03:35,880 --> 00:03:39,520 But query language might sound kind of intimidating, 106 00:03:39,520 --> 00:03:41,960 but it's really just a way to search and analyze 107 00:03:41,960 --> 00:03:44,840 all that data in your software's diary. 108 00:03:44,840 --> 00:03:46,560 So filter in the noise? 109 00:03:46,560 --> 00:03:47,840 Exactly. 110 00:03:47,840 --> 00:03:49,480 Imagine you have a giant spreadsheet 111 00:03:49,480 --> 00:03:50,960 with all these measurements. 112 00:03:50,960 --> 00:03:53,880 PROMQL is like the super-powered search bar, 113 00:03:53,880 --> 00:03:56,540 letting you pull out exactly the info you need. 114 00:03:56,540 --> 00:03:59,680 You can use it to create graphs, spot trends, even 115 00:03:59,680 --> 00:04:01,120 set up alerts. 116 00:04:01,120 --> 00:04:03,480 For example, you could use PROMQL to say, 117 00:04:03,480 --> 00:04:05,200 show me a graph of how many people logged 118 00:04:05,200 --> 00:04:07,040 into the website in the last hour. 119 00:04:07,040 --> 00:04:09,580 Or maybe something like, tell me if the server's memory usage 120 00:04:09,580 --> 00:04:11,580 has been too high for more than five minutes. 121 00:04:11,580 --> 00:04:12,820 That's pretty powerful. 122 00:04:12,820 --> 00:04:13,760 Oh, yeah. 123 00:04:13,760 --> 00:04:15,680 That's the power of PROMQL. 124 00:04:15,680 --> 00:04:19,820 It helps you turn all that raw data into actual useful insights. 125 00:04:19,820 --> 00:04:21,000 Makes sense. 126 00:04:21,000 --> 00:04:23,280 So Prometheus is recording all this data, 127 00:04:23,280 --> 00:04:25,400 but how does it actually collect it? 128 00:04:25,400 --> 00:04:28,200 Well, the way it collects data is pretty interesting, too. 129 00:04:28,200 --> 00:04:31,280 It uses what's known as an HTTP pull model. 130 00:04:31,280 --> 00:04:33,120 An HTTP pull model. 131 00:04:33,120 --> 00:04:35,760 Yeah, so basically, instead of your software 132 00:04:35,760 --> 00:04:38,680 just sending its measurements to Prometheus automatically, 133 00:04:38,680 --> 00:04:40,520 Prometheus actually reaches out and asks 134 00:04:40,520 --> 00:04:41,720 for the latest readings. 135 00:04:41,720 --> 00:04:43,400 And it does this at regular intervals. 136 00:04:43,400 --> 00:04:45,040 So it's actively checking in. 137 00:04:45,040 --> 00:04:45,640 Exactly. 138 00:04:45,640 --> 00:04:46,880 Kind of like a health inspector. 139 00:04:46,880 --> 00:04:48,120 They go around to different restaurants 140 00:04:48,120 --> 00:04:50,340 and check on things instead of waiting for the restaurants 141 00:04:50,340 --> 00:04:51,120 to report in. 142 00:04:51,120 --> 00:04:52,320 That's a good analogy. 143 00:04:52,320 --> 00:04:53,920 Yeah, this whole polling approach, 144 00:04:53,920 --> 00:04:56,040 it gives you more control and can be way more 145 00:04:56,040 --> 00:04:57,840 reliable in some cases. 146 00:04:57,840 --> 00:05:00,480 Especially if the system's being monitored, 147 00:05:00,480 --> 00:05:03,840 they have spotty internet connections. 148 00:05:03,840 --> 00:05:06,840 While Prometheus has to actively go and get the data, 149 00:05:06,840 --> 00:05:08,800 it's actually more robust than relying 150 00:05:08,800 --> 00:05:11,000 on each individual system to constantly push 151 00:05:11,000 --> 00:05:12,080 the data its way. 152 00:05:12,080 --> 00:05:12,720 I see. 153 00:05:12,720 --> 00:05:16,520 So Prometheus is actively going out and asking for this info. 154 00:05:16,520 --> 00:05:19,080 But what happens if you have a process that 155 00:05:19,080 --> 00:05:21,960 only runs for a short time? 156 00:05:21,960 --> 00:05:24,920 Like a script that just does something once a day 157 00:05:24,920 --> 00:05:25,960 and then shuts down. 158 00:05:25,960 --> 00:05:28,560 It wouldn't even be there for Prometheus to check in with. 159 00:05:28,560 --> 00:05:29,960 Oh, that's a great point. 160 00:05:29,960 --> 00:05:33,120 So for those kind of short-lived batch jobs, 161 00:05:33,120 --> 00:05:37,440 as they're called, Prometheus can also handle pushing data. 162 00:05:37,440 --> 00:05:39,760 And it does this through something called a gateway. 163 00:05:39,760 --> 00:05:40,600 A gateway. 164 00:05:40,600 --> 00:05:43,160 Yeah, so instead of waiting around to be asked, 165 00:05:43,160 --> 00:05:46,640 the batch job can send its data directly to this gateway 166 00:05:46,640 --> 00:05:48,320 when it finishes up its work. 167 00:05:48,320 --> 00:05:50,200 Then Prometheus can come along later 168 00:05:50,200 --> 00:05:51,840 and pull the data from there. 169 00:05:51,840 --> 00:05:53,300 Like if you need to send a message, 170 00:05:53,300 --> 00:05:55,240 but the other person's not always available, 171 00:05:55,240 --> 00:05:56,960 so you just leave it at a central mailbox 172 00:05:56,960 --> 00:05:57,960 for them to pick up later. 173 00:05:57,960 --> 00:05:58,800 Makes sense. 174 00:05:58,800 --> 00:06:00,600 So Prometheus is gathering all this data, 175 00:06:00,600 --> 00:06:02,360 but it needs to know where to go to get it 176 00:06:02,360 --> 00:06:03,440 in the first place, right? 177 00:06:03,440 --> 00:06:06,360 How does it figure out what to actually monitor? 178 00:06:06,360 --> 00:06:10,800 I saw something about service discovery and static configuration. 179 00:06:10,800 --> 00:06:11,320 Yeah. 180 00:06:11,320 --> 00:06:14,200 So service discovery is basically Prometheus 181 00:06:14,200 --> 00:06:16,400 being really smart and automatically finding 182 00:06:16,400 --> 00:06:18,600 the things it should be keeping an eye on. 183 00:06:18,600 --> 00:06:21,600 In today's software world, things are constantly changing. 184 00:06:21,600 --> 00:06:24,640 New servers popping up, old ones shutting down. 185 00:06:24,640 --> 00:06:26,400 But Prometheus can actually connect 186 00:06:26,400 --> 00:06:28,960 with systems that manage all these changes, 187 00:06:28,960 --> 00:06:32,140 like Kubernetes or different cloud platforms, 188 00:06:32,140 --> 00:06:35,020 so it automatically knows when something new pops up. 189 00:06:35,020 --> 00:06:37,060 And it just starts monitoring it without you 190 00:06:37,060 --> 00:06:38,360 having to lift a finger. 191 00:06:38,360 --> 00:06:39,480 Wow, that's convenient. 192 00:06:39,480 --> 00:06:39,980 Right. 193 00:06:39,980 --> 00:06:41,920 And then there's static configuration. 194 00:06:41,920 --> 00:06:43,360 That one's a bit simpler. 195 00:06:43,360 --> 00:06:44,860 You basically just give Prometheus 196 00:06:44,860 --> 00:06:47,760 a list, like a list of all the specific addresses 197 00:06:47,760 --> 00:06:49,840 of the systems you want it to monitor. 198 00:06:49,840 --> 00:06:52,720 And you put this list in its configuration file. 199 00:06:52,720 --> 00:06:54,760 Both methods just make sure Prometheus 200 00:06:54,760 --> 00:06:57,240 knows where to find the data it needs. 201 00:06:57,240 --> 00:06:58,580 So we're collecting data. 202 00:06:58,580 --> 00:07:01,040 We got this awesome language to ask all sorts of questions 203 00:07:01,040 --> 00:07:01,560 about it. 204 00:07:01,560 --> 00:07:04,040 But how do we actually see what's going on? 205 00:07:04,040 --> 00:07:04,400 Well. 206 00:07:04,400 --> 00:07:06,680 When I saw something in the documentation about graphing 207 00:07:06,680 --> 00:07:08,280 and dashboarding support, it even 208 00:07:08,280 --> 00:07:11,360 mentioned a built-in expression browser and integration 209 00:07:11,360 --> 00:07:12,440 with Grafana. 210 00:07:12,440 --> 00:07:12,940 Yes. 211 00:07:12,940 --> 00:07:15,480 Seeing all that data visually is super important. 212 00:07:15,480 --> 00:07:18,960 It helps you understand trends and spot problems quickly. 213 00:07:18,960 --> 00:07:21,700 Prometheus actually has a basic tool built right in. 214 00:07:21,700 --> 00:07:24,120 It's called the Expression Browser. 215 00:07:24,120 --> 00:07:26,740 You can type in your PromQL queries right there 216 00:07:26,740 --> 00:07:29,400 and see the results show up as graphs or tables. 217 00:07:29,400 --> 00:07:30,080 Pretty handy. 218 00:07:30,080 --> 00:07:30,720 So neat. 219 00:07:30,720 --> 00:07:32,520 But for something more sophisticated, 220 00:07:32,520 --> 00:07:34,640 something that'll give you a really good overview, 221 00:07:34,640 --> 00:07:36,760 Prometheus often works with another open source 222 00:07:36,760 --> 00:07:38,400 tool called Grafana. 223 00:07:38,400 --> 00:07:40,760 Grafana can hook right into Prometheus 224 00:07:40,760 --> 00:07:42,320 and use it as a data source. 225 00:07:42,320 --> 00:07:46,160 Then you can build these really rich customizable dashboards. 226 00:07:46,160 --> 00:07:49,200 It's great for visualizing all your important monitoring data 227 00:07:49,200 --> 00:07:50,320 all in one place. 228 00:07:50,320 --> 00:07:52,440 That sounds way better for getting a quick overview. 229 00:07:52,440 --> 00:07:53,240 Now think about it. 230 00:07:53,240 --> 00:07:55,840 All this time-based data we're talking about, 231 00:07:55,840 --> 00:07:57,900 it's got to take up a lot of storage, right? 232 00:07:57,900 --> 00:07:58,680 Oh, for sure. 233 00:07:58,680 --> 00:08:01,320 Efficient storage is critical for any system that's 234 00:08:01,320 --> 00:08:03,840 dealing with this much data over time. 235 00:08:03,840 --> 00:08:06,320 But Prometheus is pretty clever about it. 236 00:08:06,320 --> 00:08:08,640 It stores its data in this special format 237 00:08:08,640 --> 00:08:11,240 on the local disk of the server it's running on. 238 00:08:11,240 --> 00:08:13,200 This format is designed specifically 239 00:08:13,200 --> 00:08:16,840 for time series data, making it super efficient to store 240 00:08:16,840 --> 00:08:18,400 and query the info. 241 00:08:18,400 --> 00:08:19,960 And to speed things up even more, 242 00:08:19,960 --> 00:08:22,720 it keeps some of the most recent data in memory. 243 00:08:22,720 --> 00:08:24,160 So it's optimized for speed. 244 00:08:24,160 --> 00:08:24,800 Exactly. 245 00:08:24,800 --> 00:08:27,420 And another important thing is that each Prometheus server 246 00:08:27,420 --> 00:08:29,880 is kind of like its own little island. 247 00:08:29,880 --> 00:08:32,000 It manages its own data and doesn't really 248 00:08:32,000 --> 00:08:33,880 rely on other servers. 249 00:08:33,880 --> 00:08:35,560 This makes it more reliable. 250 00:08:35,560 --> 00:08:37,320 Because even if one server crashes, 251 00:08:37,320 --> 00:08:39,120 the others can keep on trucking. 252 00:08:39,120 --> 00:08:41,760 For larger setups, you might have multiple of Prometheus 253 00:08:41,760 --> 00:08:43,800 instances running, each one keeping 254 00:08:43,800 --> 00:08:45,720 an eye on a different part of your infrastructure. 255 00:08:45,720 --> 00:08:47,260 So it's designed for redundancy, too. 256 00:08:47,260 --> 00:08:48,520 That's great. 257 00:08:48,520 --> 00:08:50,360 But speaking of things going wrong, 258 00:08:50,360 --> 00:08:53,800 how does Prometheus actually let you know when there's a problem? 259 00:08:53,800 --> 00:08:55,960 I think I read something about precise alerting 260 00:08:55,960 --> 00:08:58,280 based on that PromQL language we talked about. 261 00:08:58,280 --> 00:09:01,960 Ah, yeah, this is where Prometheus gets really proactive. 262 00:09:01,960 --> 00:09:05,680 With PromQL, you can set up what are called alerting rules. 263 00:09:05,680 --> 00:09:06,400 Hearing rules. 264 00:09:06,400 --> 00:09:07,080 Yeah. 265 00:09:07,080 --> 00:09:10,040 These rules are basically like instructions. 266 00:09:10,040 --> 00:09:13,040 They say something like, if this specific thing happens 267 00:09:13,040 --> 00:09:15,260 in our data, send out an alert. 268 00:09:15,260 --> 00:09:19,480 Could be something like website response times getting too slow, 269 00:09:19,480 --> 00:09:21,440 or a server running out of memory, 270 00:09:21,440 --> 00:09:23,760 whatever you define as a potential problem. 271 00:09:23,760 --> 00:09:26,760 And because these rules are based on PromQL, 272 00:09:26,760 --> 00:09:28,080 they can be really specific. 273 00:09:28,080 --> 00:09:29,080 Exactly. 274 00:09:29,080 --> 00:09:31,300 They can even factor in those multidimensional labels 275 00:09:31,300 --> 00:09:32,600 we talked about earlier. 276 00:09:32,600 --> 00:09:35,840 So you can get super granular with your alerts. 277 00:09:35,840 --> 00:09:37,680 Now when an alert is triggered, Prometheus 278 00:09:37,680 --> 00:09:40,120 doesn't actually send the notification itself. 279 00:09:40,120 --> 00:09:42,800 It hands it off to another tool called Alert Manager. 280 00:09:42,800 --> 00:09:43,600 Alert Manager. 281 00:09:43,600 --> 00:09:44,320 What's that do? 282 00:09:44,320 --> 00:09:45,800 Well, Alert Manager is the one that 283 00:09:45,800 --> 00:09:47,320 handles all the notifications. 284 00:09:47,320 --> 00:09:49,800 It groups similar alerts together, silences them 285 00:09:49,800 --> 00:09:52,160 if needed, and makes sure they get to the right people 286 00:09:52,160 --> 00:09:55,720 through channels like email, Slack, or even text messages. 287 00:09:55,720 --> 00:09:56,960 So it's like the messenger. 288 00:09:56,960 --> 00:09:58,040 Exactly. 289 00:09:58,040 --> 00:10:01,240 This whole system helps teams respond to issues super quickly 290 00:10:01,240 --> 00:10:03,280 before they turn into major headaches. 291 00:10:03,280 --> 00:10:04,940 That sounds incredibly valuable. 292 00:10:04,940 --> 00:10:07,640 Now, for the folks out there who are actually building these software 293 00:10:07,640 --> 00:10:10,800 services, how easy is it for them to make their apps, 294 00:10:10,800 --> 00:10:13,560 talk to Prometheus, and share all these metrics? 295 00:10:13,560 --> 00:10:17,160 I saw that the documentation mentioned client libraries. 296 00:10:17,160 --> 00:10:18,840 Oh, yeah, the client libraries. 297 00:10:18,840 --> 00:10:21,320 This is a huge advantage of using Prometheus. 298 00:10:21,320 --> 00:10:24,400 It's got these libraries available for instrument and code 299 00:10:24,400 --> 00:10:30,520 in over 10 popular programming languages, Python, Java, Go, 300 00:10:30,520 --> 00:10:31,200 you name it. 301 00:10:31,200 --> 00:10:32,680 Instrument, what's that mean? 302 00:10:32,680 --> 00:10:35,560 It basically means add little snippets of code 303 00:10:35,560 --> 00:10:37,320 to your application so it can expose 304 00:10:37,320 --> 00:10:39,320 all those internal metrics in a format 305 00:10:39,320 --> 00:10:40,640 that Prometheus understands. 306 00:10:40,640 --> 00:10:42,360 So it's like speaking the same language. 307 00:10:42,360 --> 00:10:43,280 Exactly. 308 00:10:43,280 --> 00:10:45,580 These libraries make it super easy for developers 309 00:10:45,580 --> 00:10:47,120 to keep track of all sorts of things, 310 00:10:47,120 --> 00:10:49,040 like how many requests their app is handling, 311 00:10:49,040 --> 00:10:51,160 how long those requests are taking to process, 312 00:10:51,160 --> 00:10:53,620 how much memory the app is using, all that good stuff. 313 00:10:53,620 --> 00:10:55,520 It's like building sensors right into your software 314 00:10:55,520 --> 00:10:58,040 so you can get a clear read-in of its vital signs. 315 00:10:58,040 --> 00:10:59,580 That's a great way to put it. 316 00:10:59,580 --> 00:11:01,840 Now, what about systems or applications 317 00:11:01,840 --> 00:11:05,920 that weren't built using these fancy client libraries, 318 00:11:05,920 --> 00:11:09,960 like existing third-party software, or maybe even 319 00:11:09,960 --> 00:11:10,800 hardware devices? 320 00:11:10,800 --> 00:11:12,560 That's where exporters come in. 321 00:11:12,560 --> 00:11:13,840 Exporters. 322 00:11:13,840 --> 00:11:15,340 Yeah, think of them like translators. 323 00:11:15,340 --> 00:11:17,680 They bridge the gap between different systems. 324 00:11:17,680 --> 00:11:19,320 There's a ton of exporters out there 325 00:11:19,320 --> 00:11:22,360 that can collect metrics from all sorts of third-party stuff, 326 00:11:22,360 --> 00:11:26,000 like your operating system, Docker containers, databases, 327 00:11:26,000 --> 00:11:27,600 web servers, all that. 328 00:11:27,600 --> 00:11:29,400 And then they present those metrics in a way 329 00:11:29,400 --> 00:11:30,760 that Prometheus can understand. 330 00:11:30,760 --> 00:11:32,480 So basically, you can integrate Prometheus 331 00:11:32,480 --> 00:11:34,880 with a huge range of technologies 332 00:11:34,880 --> 00:11:37,320 without having to actually modify those systems directly. 333 00:11:37,320 --> 00:11:38,920 That's incredibly flexible. 334 00:11:38,920 --> 00:11:39,520 It is. 335 00:11:39,520 --> 00:11:41,240 So for anyone listening who might 336 00:11:41,240 --> 00:11:44,400 be interested in trying Prometheus out for themselves, 337 00:11:44,400 --> 00:11:45,920 what's the best way to get started? 338 00:11:45,920 --> 00:11:48,360 The GitHub page mentioned it's open source 339 00:11:48,360 --> 00:11:50,800 and part of the Cloud Native Computing Foundation. 340 00:11:50,800 --> 00:11:52,600 They also talked about different ways to install it. 341 00:11:52,600 --> 00:11:53,360 You got it. 342 00:11:53,360 --> 00:11:55,800 Prometheus is 100% open source, so it's 343 00:11:55,800 --> 00:11:58,400 free to use and modify to your heart's content. 344 00:11:58,400 --> 00:11:59,320 That's awesome. 345 00:11:59,320 --> 00:12:00,000 It is. 346 00:12:00,000 --> 00:12:01,880 And it's also a graduated project 347 00:12:01,880 --> 00:12:04,360 under the Cloud Native Computing Foundation. 348 00:12:04,360 --> 00:12:06,200 That's a pretty big deal, actually. 349 00:12:06,200 --> 00:12:09,280 It means that it's a mature, stable, and widely used 350 00:12:09,280 --> 00:12:11,880 technology within the Cloud Native world. 351 00:12:11,880 --> 00:12:14,440 And getting started is pretty straightforward, too. 352 00:12:14,440 --> 00:12:16,960 Like you mentioned, you can just download pre-compiled versions 353 00:12:16,960 --> 00:12:18,840 for different operating systems straight 354 00:12:18,840 --> 00:12:20,080 from the Prometheus website. 355 00:12:20,080 --> 00:12:22,400 That's usually the quickest and easiest way 356 00:12:22,400 --> 00:12:23,480 to get it up and running. 357 00:12:23,480 --> 00:12:24,760 Makes sense. 358 00:12:24,760 --> 00:12:26,960 But if you're comfortable with containers, 359 00:12:26,960 --> 00:12:30,440 there's also official Docker images available. 360 00:12:30,440 --> 00:12:32,600 And if you're more technically inclined, 361 00:12:32,600 --> 00:12:35,120 or maybe you want to contribute to the project itself, 362 00:12:35,120 --> 00:12:37,520 you can even build it directly from the source code. 363 00:12:37,520 --> 00:12:40,720 The Prometheus website, prometheus.io, 364 00:12:40,720 --> 00:12:43,360 has detailed instructions for all these methods. 365 00:12:43,360 --> 00:12:45,160 So there's really an option for everyone. 366 00:12:45,160 --> 00:12:46,060 Exactly. 367 00:12:46,060 --> 00:12:48,520 So to quickly recap our deep dive into Prometheus, 368 00:12:48,520 --> 00:12:51,480 it's this amazing open source monitoring system 369 00:12:51,480 --> 00:12:54,240 and time series database that helps you understand 370 00:12:54,240 --> 00:12:56,320 how healthy and how well your software 371 00:12:56,320 --> 00:12:58,040 and services are performing. 372 00:12:58,040 --> 00:13:00,160 Uses a multi-dimensional data model, 373 00:13:00,160 --> 00:13:03,120 has this powerful query language called PromQL, 374 00:13:03,120 --> 00:13:06,400 and uses a pull-based approach to gather metrics. 375 00:13:06,400 --> 00:13:07,240 Right. 376 00:13:07,240 --> 00:13:10,100 And it offers precise learning, 377 00:13:10,100 --> 00:13:13,120 integrates with visualization tools like Grafana, 378 00:13:13,120 --> 00:13:15,760 and has a whole ecosystem of client libraries 379 00:13:15,760 --> 00:13:18,200 and exporters to make things easier. 380 00:13:18,200 --> 00:13:19,640 It's honestly a fundamental tool 381 00:13:19,640 --> 00:13:21,740 for keeping the digital world running smoothly. 382 00:13:21,740 --> 00:13:23,080 Couldn't agree more. 383 00:13:23,080 --> 00:13:24,900 And one final thought for you, 384 00:13:24,900 --> 00:13:27,140 even if you don't work directly with software, 385 00:13:27,140 --> 00:13:29,960 just think about how much you rely on digital services 386 00:13:29,960 --> 00:13:31,600 every single day. 387 00:13:31,600 --> 00:13:33,800 Behind the scenes, tools like Prometheus 388 00:13:33,800 --> 00:13:36,040 are constantly working hard to make sure those services 389 00:13:36,040 --> 00:13:38,120 are available and work in the way they should. 390 00:13:38,120 --> 00:13:39,080 True. Yeah. 391 00:13:39,080 --> 00:13:40,640 Just understanding the basics 392 00:13:40,640 --> 00:13:42,620 of how these systems are monitored, 393 00:13:42,620 --> 00:13:44,720 it can really give you a new appreciation 394 00:13:44,720 --> 00:13:46,360 for the complexity and the effort 395 00:13:46,360 --> 00:13:49,400 that goes into keeping our connected world running. 396 00:13:49,400 --> 00:13:51,040 And if you're interested in digging deeper, 397 00:13:51,040 --> 00:13:52,400 I highly encourage you to visit 398 00:13:52,400 --> 00:13:56,040 the official Prometheus website, prometheus.io. 399 00:13:56,040 --> 00:13:58,200 It's a fantastic resource, trust me. 400 00:13:58,200 --> 00:13:59,040 I'll have to check it out. 401 00:13:59,040 --> 00:14:00,240 Definitely do. 402 00:14:00,240 --> 00:14:02,240 Well, that was our deep dive into Prometheus. 403 00:14:02,240 --> 00:14:03,160 Thanks for joining us. 404 00:14:03,160 --> 00:14:04,160 It was fun. 405 00:14:04,160 --> 00:14:06,240 And a big thanks once again to Safe Server 406 00:14:06,240 --> 00:14:08,400 for making this whole thing possible. 407 00:14:08,400 --> 00:14:10,520 If you're looking for reliable software hosting 408 00:14:10,520 --> 00:14:13,980 or expert advice on all things digital transformation, 409 00:14:13,980 --> 00:14:18,080 be sure to visit their website at www.safeserver.de. 410 00:14:18,080 --> 00:14:18,920 They're great. 411 00:14:18,920 --> 00:14:19,920 They really are. 412 00:14:19,920 --> 00:14:21,040 All right, that's it for today. 413 00:14:21,040 --> 00:14:21,880 See you next time. 414 00:14:21,880 --> 00:14:22,720 See ya.