Spring Boot Tutorial - Spring Boot Actuator

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's going on guys assalamualaikum welcome to my channel in this video i want to teach you everything you need to know about spring boot actuator spring boot actuator is a sub project within spring boot that allows you to monitor the state of your application so you can expose a bunch of endpoints and then basically you can just build awesome dashboards like the one that you will build in this course so this course is actually brought to you by junior from get raised so go ahead and check him out because he has really awesome content on spring boot and angular so he has really really good content i'm gonna leave a link where you can go and check him out so if you're new to my channel go and subscribe also if you're not part of the immediate school community go ahead and join the community is growing um a lot of people have been benefiting from from these courses a lot of people have been securing jobs which is really really interesting so people from brazil africa america europe it's really given me a boost to keep on providing awesome content like this without further ado let's take off this course i wanted to go over the application that we're going to be building in this course and what i'm going to be showing you is only the front-end application so that's the application that the user is going to see or the admin users are going to see because they're going to be the one to have access to the admin dashboard but there's a whole backend application that is built using a spring boot in the actuator that is just code and i'm not going to be showing it here so the only thing i'm going to be showing here is the actual front-end application which the end user will actually be using so as you can see what you're looking at is the monitoring dashboard but before i go and explain what's going on here i want to at least give you some ideas about the scenario that i had in my head when i built this so let's go over to the next tab and this is a separate application altogether and you can think of it as an employee manager so and a lot of the companies out there they have like some internal tools or some internal website that they use to just manage all of their employees so we're trying to recreate the same scenario so let's say you work in some company or some organization and they just have this internal tool where they keep track of their employees so as you can see that's exactly what this app is so you can come in here and add a new employee so i can add like john doe and let's say this is uh john race.com and let's say this guy's a new reactions developer so we can do yak.js and let's give him some phone number and then some picture url and then save as you can see now we have john doe here added in our list and of course since this is an employee manager application you already know we can like edit an employee so i can come here and say hey this guy's a middle name now or something or maybe the last name changed to suarez or something and save you can see now it's suarez and of course we can delete an employee so i can click here and then i get this confirmation and if i click no nothing happens if i click yes then the employee is deleted and lastly we can search an employee so i can put add as you can see as i type in the list is filtering or scarlet and you can see uh delicious filtering so those are just little features that i just added to this just to you know give it some sense so there might be two or three people on the team and they're responsible to just manage this application here so that's one thing now the admin will monitor this application using this tool right here which is what we're going to be building in this course so i'm not going to be building this application in this course but i'll give you the code for it i'll just give you the code for this front end it's using the same back-end but this is what we're going to be building which is this dashboard and now let's go over what this dashboard is telling us so on top in the navigation bar you have the name of the application so that's the system monitoring dashboard i mean this is just a name i came up with you can pretty much name this whatever you want and then in the middle we have some more useful information so the first one is the system and that's just the overall system information so if the system is up that's good everything is good if anything is down like the your database is down or something like that then this is gonna be down okay and i'm gonna show you an example of that the second piece of information is the database so here it tells you what database is being used in our case that's mysql and it also tells you the status of that database and this is up so our database is good next one is the disk space and that's just the space available for the java virtual machine this is useful information again you can check this out and say hey maybe we're running out of space we need a bigger server or maybe at a certain period of time there's just so many requests coming in and you know you're running out of space or something like that so this is what that is and then next one is the number of processors available to the java virtual machine so that will tell you how many processors you have running et cetera so you know whoever built some application they might say hey whatever server this application is running on you know we need to have that much space we need to have at least three processors and things like that so this is just useful information the typical type of information you would see in the dashboard and then lastly we have the uptime of the system so that's how long the system's been running and this is updating real time as you can see here by the second so that's just some useful information right off the bat right on top you can just check out and then we have a bunch of card where we have some other most common http code and we can check to see how many responses we got that were good or bad or something like that so first one is 200 and get 31 200 responses so that's good which is why everything is all green and then we have 404 or 400 and 500 so 500 would be like bad because it's just internal server error so you would if that would be something you would definitely want to check out if you see like hey you're getting a spike in 500 response and then below we have our chart so this is just for better visual representation as you can see all of our requests have been successful and we're going to change that in a second i'm going to send some bad requests and then you're gonna see how those charts are gonna change and i'm using a very popular javascript library that we're gonna go over in this course to build this chart super easy super powerful and then below we have a list of all the http traces so it's not just those four http response code that are here all of the http response or requests are here and you can see we have time stamp which is when the actual request was sent and then we have the method and if it's get or post or whatever and then we have the time it took which is in the first case 22 millisecond and then we have the status of the response which is 200 and then the actual uri or the resource that they try to access which is just the employee all which is what we did when we refresh this page we call this endpoint right here and i can also click on this i can either click on the i or just click anywhere on that specific row just to see more detailed information as you can see tell even tell us the user agent in that case that was chrome because i just use chrome and you get you're going to see how this is going to change when i start using postman and things like that and then the response we can check it out 200 response and the date and some content type information and where the requests originated in that case localhost 4200 which is this application right here okay so this is what this is and then we have pagination so you can go through different pages i'm only showing 10 entries at a time in every single page so you can go into different pages and etc so now what would happen if the system is is down or let's say our mysql database is down or something like that so i've already opened my services and i have my sql here so i have it selected so i'm gonna go ahead and stop mysql and then you're gonna see how this is gonna change so i'm gonna go ahead and stop it and let's see what's gonna happen mysql is now stacked the service is no longer available which means the backend will try to access the service and it won't have access to it because the service is down so let's see now how this is what's going to happen in our monitoring dashboard so you can see now i didn't even have to refresh and now our system is down it doesn't know what the database is because it doesn't have access to it and the database is down okay everything else is good you know our this is good process is good but now our system is down so as someone watching this will come in and say oh um you know something is wrong let me call the admin or something like that i'm just trying to put this into context for you so that's what happens so i'm gonna go ahead and and run this back so that we can continue this video so i'm gonna go ahead and start it back up i had to pause the video to wait for this to come up it takes like maybe 30 seconds or something like that so let's just see what's gonna happen once it's up all of the status is gonna it's gonna change and i'm gonna pause the video because i don't want you to you know wait for like 45 seconds here for me and me not saying anything so i'm just gonna pause it and then whenever this is back on and then i'll come back so now i mean i guess it took like 45 seconds or something like that and then everything is back up okay so you can see now everything is dark or they're not ready anymore and everything looks good and then lastly which i didn't mention when i went over this list is this to export to excel so you might want to like have to run some report or you might have to like send some some information to someone else because they need to see what's going on so you can just come in here and then click on export to excel and we'll just download this as an excel file and then you can just open it and just come up yes and you can see we have all of the requests here and in this file so you can just use this and then send some report to someone and say hey this is what's happening here etc etc what i want to do now is just generate some bad requests so that you guys can see how this data is going to change so i'm going to go over to postman and this is the same endpoints that the this application is calling so this application in the back is just making the same calls to the same backend application which is this this right here so if i send this request to get all the employees as you can see i have the list of all the employees which is the same list that you're seeing on here right so let's say i put in some wrong url so instead of saying all i put in some o's here for instance right so if i send this request i get a full four okay so because it's not found let's send this request a few more times a few more times okay so now if we go back to the app you can see now we have 6404 and you can see those requests here because they didn't go through you can see we have all four and you can see the url that the user is trying to access so something like this you just look at it say okay i need to contact whoever is trying to access my api and tell them hey you have the wrong url because obviously this is failing because you know we know we don't have this route in our application so let's go back to postman and let me go to do a post so this is a post request to send a new user into the to add a new user into the application so i can just remove this request body and then send that request so that it can fill okay as you can see 400 by request so i'm going to send it again and again and go back scroll up refresh you can see now we have three uh 400 requests as you can see we have this this three here okay we just generated them and you can see our chart is also changing uh appropriately according to uh what we're doing so lastly i wanna send him some 500 requests so i'm just going to go back to postman and i'm going to see if i can find some employees that don't exist like i tried earlier like this 555 id so there is like an endpoint to find an employee and you have to pass in the id of that employee so i'm passing in some id that i know that don't exist on my system and i'm just going to send this request a few times so one two three just a few times okay so now we should have a few 500 requests if i go ahead and refresh you can see now we have 8 500 requests and you can see on the list below here we can see those requests coming in so this is just a small application and this is just showing some of the things that you can do using the spring boot actuator and there's way more you can do with this actuator but this course will give you a good solid understanding of you know not just understanding what the actuator is and how to build in the back-end but also how some front-end application which ultimately you would probably build because you know it wouldn't make sense to be looking at responses and json format like like we have here right so you would want to have something that's visually appealing and easy to understand like a dashboard so that just was very small simple there's way more you can do with the actuator you can even like for instance and those requests are like 200 you can look at the body and see what information comes in the response body and things like that there's way more you can do with this tool but we're gonna put down a good foundation and hopefully you'll learn something very valuable that you'll be able to use in in real time either for your company or maybe you're gonna come up with this idea for a company or maybe you're just gonna do it for your own good or for your own learning so get ready i'll see you guys in the next video i want to talk a little bit about what you need to know going into this course and since this is a spring boot actuator course i'm assuming you know the technologies like java spring and spring boot um so right off the bat you need to know java and uh and spring and spring boot so you need to know those things because we're not gonna go into details into what java is or what spring is or what spring boot is uh we're only gonna be focusing on actuator and then front-end technologies like html css and javascript that's because we're going to build a front application which is going to be our dashboard so that we can work with those technologies and then again since we're going to be using the framework called angular and angular uses typescript and typescript is like a super set of javascript so obviously you need to understand typescript and how it works with angular and you also need to understand things about angular like components services and things like that so get all the front and covered if you don't know a lot about those technologies it's still fine for you to take the course you're not going to be stuck on anything but you don't you just need to understand what's going on so if you know some javascript but you're not really good with typescript that's fine you can still follow along um and then of course angular have some phenomenal knowledge about angular and how it works and what a component is and uh what is the service and things like that there's more there's routing and angular there's a bunch of other things but we're just going to be focusing on just creating our component and the service to call the backend and then http because when when we call the back-end we're actually going to be making http requests so it would make sense for you to understand what http is and what you know requests and response and headers are and all those things so that you're not completely lost once we start building the front end and then making http calls to the backend and the next thing is going to be the cli so the cli stands for common line interface and it can really be whatever common line interface access you have on your computer so if you're on a unix based machine like linux operating system or mac then you can use the terminal or if not then you're on windows then you can use the command prompt so either way it's still a terminal where you can enter command and the computer can execute those commands and the reason this is important is because i'm going to be using an http client besides postman i'm going to be using an http client that is like that ticks come in to execute the actual request and i want to show you how that works and this is very important uh because right now you know with all the cloud stuff you have to like remotely uh connect to a server and then do everything you need to do through a command line so i figured i would show you guys how you can actually make http requests using curls or some other technologies so that you can make http requests over the internet and then databases so you need to understand at least the concept of databases we're not really going to be doing a lot of work with databases but if you understand what it is and um what it's for and you know that would make things easier for you so you don't really get confused once we start you know putting in a little bit of configuration for our database connectivity so make sure you guys have you know at least some knowledge of those technologies uh if you know javascript when you're doing a task group that's fine if you know typesc you don't know much about javascript that's still fine too um whichever one you're comfortable with at least be a little bit you know knowledgeable about frontend technologies and of course java and spring spring boot html command line and databases so once you have this you should be good to go and i will see you guys in the next lecture i wanted to go over some of the softwares and tools that you'll need for this course and the first piece of software that you're going to need is going to be java so you can just go to java.com and then just click on this download here and then go through the process now coming into this course i'm assuming you guys already you know probably have java installed on your machines or you already know how to install all of those things that we're going to be talking about but i still want to just show you all the tools and all the software that you'll need so first thing first since this is a spring boot actuator course so of course you need to have java installed on your computer so that you can have the jvm or the java virtual machine on your computer so that you can run java code once you have the jvm installed or java installed then you'll need to have node.js installed because we need node.js to install the package and that's the only reason we're going to be downloading this software on your computer but we're not going to be building any node.js app or anything like that you just need to install it so that you can have access to the npm or new packet manager so that we can install the package that we're going to need for the front end application or the angular app and this package is called the angular cli so as you can see here you have to do npm install and then angular cli so you can install it everywhere on your computer so that you can just run ng commands um everywhere ever in every location on your machine so you need node.js so that you can have access to npm to install this package which is the angular cli and what the angular cli is just a command line interface for angular and it just helps in developing angular application you can create the application you know create components and services will quick and you can run the application deploy it run tests etc so it's a very handy tool and i really recommend that you install the angular cli and that's going to make our whole development process way faster so that's it for um sapphire that you need to have installed in terms of what we're going to need to be able to build the application and for my ide for java i'm going to be using intellij so you can just go to jetbrains.com and under tool you can hover over tools and then just click on intellij id and that should take you to the download for the intellij so you can just click here to this download and here you can just install whatever version that you need i have a paid version it's not the cheapest software to be honest but it's worth it so you can either install the ultimate or the community version but you can just use whatever you want you can use sts or you can use any other id or text editor that you like or for your preference when writing java code but i'm just telling you that i'm going to be using the intellij id and i would recommend you use intellij id because it's really it's a great tool and then from the front end application i'm going to be using vs code it's like one of the most popular these days um so visual studio code is going to be the text editor that i'm going to be using to build the angular application or the entire friend application and again all of those installs are very easy very straightforward just download the file and then you know accept the license agreement and go through the prompts and then it's it's installed and next i am going to be using this emulator so it's really a command line tool you can use the one that you have on your computer by default so if you have windows that's going to commit line interface or if you have a unix space or a mac then that's going to be the terminal so you can use that as well but i'm just going to be using this cmdr here so you can just go to cmdr.net and then just install whichever version you you need to and it's just very handy i just like to use it because you know i can zoom in and out and i can do control c control v and it's just very confusing there's way more you can do to it obviously this exists for a reason um you know there's a lot more you can do but and another thing is you can run linux comments or unix unix-based comments and windows comments so you can do the ir to see all of the file and directories or you can do ls it's it will still work which is pretty handy and then i'm going to be using mysql to save some data now we're not going to be doing a lot of database work in this course but we will be saving some data in a database and i'm just using mysql because it's pretty easy and popular but you can use like postgresql or something else that's very similar to mysql that will work as well so that's pretty much everything um you guys need to have again java and node.js because you need to use the node packet manager once we have the new packet manager you have to run this first command up here so you can install the angular cli uh and then for my id i'm going to be using intellij you can use that or you can use on an id of your choice for the front end i'm going to be using vs code and i'm going to be using this emulator for my terminal and then i'm going to be using mysql so make sure you have those installed and then you should be good to go one of the most important questions that we need to answer before we go any further in this course is to define what actually spring boot actuator is so what exactly is spring boot actuator so spring boot activator is just a simple tool that you can use to manage and monitor spring boot applications that's pretty much all there is to it it's just a simple tool and you can just use it to manage and monitor your spring boot application and in order to be able to do that you just have to access some endpoints that are exposed by spring boot actuator over http which means you'll just send requests to those endpoints and you'll get the information back from springboot actuator and there is also another way to do this is by using jmx and jmxsense for java management extension and you can just use it just to access the same endpoints that you would access over http so desktop application you open it up and then you'll see the same endpoints that are exposed over http will also be exposed and onto that little application and you can just click on them you'll see the same information that you would see if you had to access those same endpoints over http so that's pretty much it that's pretty much what springboard actuator is there's not really anything complicated so i'll see you guys in the next one so how do you integrate spring boot actuator into your application so let's say you have a spring boot application and you want to have access to spring boot actuator and points in your application because you're trying to monitor it or manage your application well the spring boot team they've made it very simple and all you have to do is to add this dependency in your application so what you're looking at right now is a maven dependency and the art fact id is spring boot starter actuator and it's coming from spring boot if you're using griddle you can put the griddle equivalent for this dependency but that's all you will have to do so that you can have access to springboard actuator in your application there's a little bit of configuration that you will still have to do because some of the endpoints they're not enabled by default because some of them they expose sensitive information but once you have this dependency on your application you should be good to go and then just put in your configuration to enable or disable make available whatever actuator endpoints that you really need so that's pretty much it and we're gonna actually do this so we're gonna create a spring boot application and then we're gonna put that dependency in and we're gonna do our configuration there's some things you need to know about the configuration so i'll go over those as well and i'll see you guys in the next one in the last lecture i give you guys a link to this page so that you can come to the documentation for the spring boot actuator and i also give you a pdf version of the same documentation and the only difference in that pdf version is that is more detailed in terms of explaining what's in the payload and what everything is doing so i would highly encourage you to come in here and take a look because even i am learning from this documentation as well obviously this is a huge documentation so you'll probably be focusing only on the actuator that you're interested in so you can see how they work so again i would highly encourage you to take a look at the documentation either using the pdf file that i give you if you really want to know all the little gritty details or just coming here on the online version where you can get a quick look at you know all the actuators that are available to you and what they mean and how to do some configuration and stuff and something else i wanted to show you is an extension that i'm using on chrome so if you look here you see this little icon here that's because i'm using this extension called json viewer so here i have json placeholder um open so if you've been doing web development for a while you've probably seen this json placeholder website where you can just use it to make http call and we can look at this example right here where they say hey you can you know pass in this url to the fetch function which is going to make an initiative call and then you can convert the response into a json and you can log that response so um i'm going to show you what this extension does and since this is the fetch api i can just use that in the console so that i can see what the response i get so i'm just going to copy this and then right click go to inspect and then i go to the console i'm going to clear this i don't know what this is and i'm just going to paste this and put a semicolon there uh let's take a look at an array because i know this is going to return one item as you can see they pass one so i'm going to remove that one and then press enter this gives me 200 response okay so you can see like we have every single one of the json object in here so i'm just going to show you what this looks like on my computer because i have that extension and you can see how it looks right now you see it's really dark and it's really color-coded so the reason this is important is because when we're gonna take a look at some of the actuator we're gonna be making call to the back end and it's gonna come back as an array it's gonna look really boring if you don't have that extension or some other extension that can do something similar so if you go here and you go to option you can see they have different themes that you can use here for whatever you want or whatever you like i'm using the material because it looks cool as you can see here but you can use whatever theme you like and you can also go to manage extension if you want to take a look at my configuration i have the developer mode on and that's pretty much it i don't think i did any specific configuration for this so if you want your browser to look like this every time it's reading some json information onto you then you can just install this extension but if you don't want to you can just stick to the default which is black and white and all in one line but i found this to be very helpful because you know i can clearly see everything and everything is color-coded and it's a number you can see it's purple if it's a string it's different and then completed also it's a different color i guess this is some sort of a pink or red or whatever so you can do that i just wanted to show you guys that so um now we're gonna start and take a look at some of the configuration that we need to do so that we can start seeing actuator information so i'll see you guys in the next one i'm going to close the tabs that i don't need and i'm going to go over to a spring initializer because i need to bootstrap a spring boot application it's going to be a maven project using java i'm going to use the default spring boot version and it's going to be a jar and i'm going to use java version 8 and here i'm going to pass get already so my domain is a tech domain so i'm gonna put tech and i want the package name to just be gatorade and the name of this artifact is going to be employee manager and i'm gonna change the description to employee manager application and now that i have all of this project metadata information i'm gonna edit my dependency so the first dependency is going to be web because it's going to be like a web application and we need this whole thing to be in a web container so that we can serve it over a local host and also i'm going to need dev tool because i'm going to be making changes in the properties file and i don't want to restart the application every single time so devtools is like a derivable it's just a build tool it will build your application automatically as soon as it detects some file changes and i'm also going to add the most important one which is the actuators so the actuator dependency and i think i'm going to need my sql whenever we start building the application so i'm going to bring in the driver for mysql we're going to comment that out but i'm just putting it in so i don't have to come back here and do that again so i'm going to go ahead and generate the info the application and save it and it's being saved i'm going to unzip it okay so i unzipped it and here i'm just gonna navigate inside of that folder and you can see i have all the ballet play code here so i'm gonna double click on this and intellij is smart enough to see the other folders and file and it's just gonna open it as a maven or spring boot application okay so the application is up i'm just going to go ahead and take a look at the pump file and see what i have so here's some of the details we're specify here as you can see description artifact id and this is the actuator web and devtool and i'm just going to comment this one out for now [Music] because it's going to try to find a data source because we have this driver in the pom file and we don't have this configured yet so i'm just going to comment it out but everything else should be should be good okay so now let's see what we have in terms of files and it's going to main java and this file right here so this is a a typical spring boot application you have a typical spring boot application annotation and everything so at this point we can go ahead and run this application and let's see what we have so i'm just going to click on this green arrow here you can also click up here and it'll just do the same thing so let's just give this a second to come up and see what we have okay the application is coming up let's see all right so we're up let's take a look to see what we have so we can see we started on port 8080 and it also tells us that we have two endpoint exposed beneath actuator okay and that's because we have the actuator dependency in the pump file so by default it just configured the beans for us now the reason we only have two endpoints exposed and this is the health and info endpoint is because by default for the web since the web is considered insecure everything is not exposed so we have to go and manually and expose all of the other endpoints so that's why we only have two that's exposed under actuator and we're going to go and take a look at those right now so let's let's go back to the browser and let's go to localhost um 8080 and then we can go to slash actuator and take a look and you can see we have the health actuator and the endpoint actuator okay so and we can take a look at the health for instance if i click on it you can see we have the statuses up which is our application health is up which is good okay if it wasn't good it would be like down or something and we can take a look at the info we shouldn't have anything right now because we didn't put any information for the application like information about the application like application name application description and things like that so that's why we don't have anything but here you are this is your first spring boot actuator application and you can see some health information so in the next lecture i'm going to show you guys how you can configure this and then show all of the other actuator and some more configuration around that so i'm gonna go back to intellij and i'm gonna put this down a little bit and i'm gonna go into the resource folder or resources and then go into the properties file so you can put a property to expose all the other endpoints and it's called exposure that includes so you have to do management that endpoint that web that exposure that include okay so here you can pass in whatever actuator or endpoints you want to include not exclude include okay so you can put for instance beans um and then you can put like audit event and then you can keep going by just adding a comma and then keep going but we want to expose everything so we can just put a star okay and we can also exclude so we can do management that endpoint that web because we're doing a configuration for web if it was for jms we would just put jmx right here okay and then continue with the rest of this so this is for web so we're going to web that exposure that exclude okay so we can include everything meaning we're going to expose all of the endpoints and then exclude certain ones that we don't need or we can exclude everything and then we include certain ones that we don't need like being and then health or whatever okay so that's just a way to be more flexible with this whole thing so by default i'm gonna include everything so i'm gonna expose everything so i'm not gonna exclude anything okay so this is gonna allow us to see all of the actuator we're probably not gonna have all of them like all of them because we don't have certain configuration because the way it works is for instance for you to see some session information you need to have some session configured in the application and right now we only have like one file we don't have any session or anything like that so it's not gonna show us the session um endpoint okay so and i think there are a few more but most of them will be will be there when we go and check so let's go ahead and see if we can build this application so rebuild project and since we have dev tool that should recompile everything and we should be able to take a look in the browser again and refresh that page we should see something different so let this come up and let's go back so if i refresh this you can now see we have access to all of the uh endpoints okay so we have the actual actuator which is the reference to self as you can see itself so that's the same link as this one and we have the beans we have caches we have health info condition etc etc etc loggers etc etc okay so mapping so that's all the mappings we have so if we can take a look at the mappings real quick you can see that we have all the mappings for the actuator uh because that's all the mappings that we have and that's been creating first under the hood that we didn't create in any controller or anything like that so but once we have our controller and we have our routes configured they will also show up here which you can use so you can see now we have access to all of those endpoints and you can take a look at each one of them so we can look at the beans by just clicking on it you can see all the beans that we have the scope of those beans etc how type they are et cetera so you can see already right out of the box how much information you're getting just by adding just that one dependency in your pom file so if we go to health real quick um we can see that it says up but there's a way we can show more information and we just have to add a one more piece of configuration so if we go back here and i want to do management dot pinpoint health that show details and i'm gonna set this to always okay so this is gonna always show all the details of the health endpoint whenever we try to go to it let's go ahead and rebuild the project again and let it come up okay so the application is up and if we go back and refresh you can see now we have way more information on this okay so there's a lot more information not just the status of up then we have more information if you had some data source or mysql or something like that configured then you would also see that information here which we're going to take a look at in this course now what if you want to add information about the information of the application right so there's an info um let's see it's right here so there's an info endpoint here as you can see it's empty and here you can put like the version of the application the name of the application the description etc so how would you do that so let's go back to the configuration and i'm just gonna go down and do info that app that name and set a name for the application so i can do like employee manager application and i can do info oops [Music] that app that description and i can put the description um this is an application to manage employees and i can also put some version so i can add that version and i can set that to some version like 1.0 or something like that so now if you rebuild so i'm gonna go to build rebuild project and again because we have devtool devtools installed we don't have to restart the server every single time which is why i put it in so we can just rebuild the application and it should pick up those new values okay so now if we go back and refresh you can see now we have some application about application so again i would highly encourage you guys to go over this documentation okay so the thing with spring boot actuator is it's like one of those projects from spring that's like super straightforward and super easy to pick up okay so you can see everything is very very straightforward here and the next lecture i'm going to show you how you can use jmx to access the same endpoints like all of those same endpoints that we've been accessing in the browsers because you can also access them using gmx and i'm going to show you guys how to do this so to access the sim endpoints you have to have the jdk install if you have gtk installed you should already have access to uh something called jconsole which is the jmx application so i'm just gonna go over to my menu and then i'm just gonna do j console and you can see that i can just click on it and run it so i'm just gonna click it and run it now i have multiple applications running on the computer right now because i'm recording and i'm running applications jconsole consumes a lot of resources so i don't know if this is gonna mess up the video or the recording or anything like that hopefully not but let's see okay so i'm gonna go ahead and open it and it's open on my other screen so i'm gonna bring it over so here it is okay so as we can see we can see our application is right here okay which is this this guy right here okay you can see it right here so we should be able to click on this and then see what's going on and then connect and this is it's saying this is an insecure connection yeah because it's not my local we don't care and you can see it's a monitoring tool and it's giving us a bunch of information about the resources being consumed memory class cpu usage etc and that's all in the overview tab as you can see here so we have some memory information you can see down here we have some more information we have some chart here and then threads how many threads we have running and things like that classes um virtual machine memory so we have a lot of information about your desktop and then we have beans okay so that's all the beans that we have created in the application and what i want to do is go into this one right here or that spring boot spring framework that boot and inside of here i should have endpoint okay so that's where all of the endpoints are and you can see we have all the same information so we can check info again and you can see here i can just click on it and you can see i have the same information so app name etc etc we can go into the health so let's click on health and here's the health and click on that and expand that you can see it's up so we set the configuration to show us all the details as you can see it's pretty much the same information but it's just presented in a different way so usually you would use this j console or this little application and it's a desktop application so you would use this to connect to some remote server because it consumes so many resources um i i don't see you using it on the same machine that your application is running on so you would probably use this to access some remote server uh in a secure way because it's pretty secure okay so it's pretty much the same you can see we have all of the mappings that we have we have all of the ones we can just click on it and you can show you all the same information this is a very long string that it presents to us so it's pretty much all the same all the same information is here so that's j console implementing gmx and that's pretty much it that's everything there is to it i mean there's a lot going on here but it's really a fairly simple application to use because it's a monitoring tool all you're doing is looking at data and what's going on and that can be very useful if you're really trying to monitor some application so i'm gonna stop using this because as you can see it's this is going up so we're using a lot of cpus and stuff and memory so i don't want that to happen so i'm gonna close it and i'll see you guys in the next one another very useful configuration i wanted to show you is how to change this base path here okay so you can see that by default everything is under actuator you can actually override this and put them under whatever you want so let's go back to the application and i'm just gonna add in some new configuration so here i'm gonna do management dot endpoint that web that base path okay and then i can just set this to let's say forward slash admin okay so i'm gonna go ahead and rebuild this project and just give it a few seconds to rebuild okay all right so if we go back now and refresh we get this error because there's no mapping for this so we have to go under oops admin and now you can see we have all the same information okay the only thing is everything is now under admin slash deactuator so admin slash head up you know slash admin slash environment before it was slash actuator slash environment actuators like config props but now it's slash admin slash whatever actuator so um i'm gonna remove this because i'm not gonna use it but i just wanted to show you guys how you can do this so again if you want to be specific in what you want to use you probably have to go through the documentation because most developers will only use a certain number of those actuators i mean it's going to be ready for someone to use all of them for for whatever reason it's possible but most people will only use like five or six or seven of them so that they can get whatever information that they need and if there's a lot of configuration you can put in for this you can override how some others responds come back to you and i'll show you how to do some of them but i would highly encourage you again to go over the documentation because it's where um all of this information is so i'll see you guys in the next one so let's say you have an application that is running and the application has two different services and you really want to make sure that those two services are running in order for the health of the application to be up you want to include some additional check to your health check so that you can make sure that the objection is actually up this is something that you will probably have to do a lot because you're probably going to have something specific running on your application and unless this specific service or whatever the case might be is running the application should be down you want to get a status of down when you check your health information and typically you would probably want to do that because when you have custom services we always want to make sure that those services are running so that you know that your application health is good so i'm going to show you how you can actually override the health details that you get when you go to the health and point so i'm going to go ahead and revert back to the actuator endpoint i think i need to rebuild this so let's go ahead and rebuild it so build project and i'm going to close those other tabs that i don't need and we're going to come back here whenever this build is over and refresh this page so looks like it's finished let's go back and refresh refresh oh there we go so you can see that for the helping point right here we have some very good information but let's say we're going to add some additional check right some additional service check or maybe you might just want to fetch some information from a remote server in order to determine if your application is actually up or to justify your application health being up so let's go back to the application i'm gonna minimize this for a second so i'm gonna create a new package here so i'm gonna right click on this click on new and then go to package and i'm gonna call it let's say monitor monitoring or something like that and then here i'm going to create a new class i'm going to go right click java class and i'm just going to name this database service okay so let's say we have a service that's our database service and we want to make sure that the service is up and let's say we have another one which is a logger service while you probably wouldn't want to make sure logger service is up in order for your information for your application health to be good but just just an example so let's go back to the db and all we have to do is to implement the health indicator so we can implement health indicator so once we do this we have to implement one method so let's implement method which is the health method okay so we can put that in so all we have to do here is to have some check and then return some information so i can just do private final string and i'm just gonna set this to db service okay so that's the name of the service okay so that's the db service so what i want to do now is to just do whatever check i might need to do okay so i might have another method below that's like private boolean and let's say get database health and i would put my logic in here so that's what you would do so you would have this method right here or some something below here or maybe you would just do it inside of here depends on whatever you like but you might have some other dependency that you bring in here so that you can do some other check in here okay so and then all you have to do is to either return true or false depending on your logic so here i'm just gonna return true okay so this means that this database is up and it's running and your logic will determine if this is true or false but by default i'm just returning true here just for the sake of this demo so what i want to do here is to just check to see if my database health is up so i can just do actually i just realized that i have to rename this so we factor the name this is a boolean so is [Music] good or something okay so we can use this now so now i can just go here and say if this is true right so if my health is good then i can just return my statuses up so here all i have to return this is like a very handy method that we can use so we can just do return health that up you can see here and then we can pass in uh some details so i can do with details and i can see you can see this takes a key value pair so here i can just pass in the name of the service so i can do database service well this is a constant but anyways i'm gonna refactor this rename so i'm just gonna call it database service and that's the database service and i need space here and i can just pass this in here so i can say for this service um i can say service is running so if that's not the case then i will return something else right here i can just do return and i'm gonna put the status to down so instead of up we do down with detail and then here i can just say not available okay so this is gonna do the trick for us and lastly before i forgot we have to call build on those so that we can build this so go down here and then pass and build so this is going to do the trick first and the most important part of this is going to be this which is going to be your own logic to determine if the db service is running or if it's not running so we can do something similar to the logger service i'm gonna copy all of this and go here and then go down here and paste it and i'm just gonna grab this whole thing and put it here then import so here i'm just gonna say is logger service good and then here i'm gonna return false so i'm gonna pass in the name of this and i'm gonna call this logger service and locker service and let's change the string as well okay so now we check to see if the service is running we return this otherwise we're returning the services down and all we have to do now is to make spring aware of those changes is to put component on this so that it can be aware and create the beans first and i'm gonna do this for the db as well and then save and now i'm just gonna rebuild the application so rebuild and let's take a look so i'm going to open this and as you can see the build is completed let's go back to the health and refresh you can see now we have more information so you can see the status for this is down and this is the database service and the status is up and the status is down for this one but our overall status is down because we have some services that are down so you can see services running and service is not available and that's all the details that we put in on those beans that we just define right here so obviously this is a really dummy example because i'm not really doing anything for real but the most important thing again like i mentioned before is going to be this part right here because this is the part where you actually do some check you can actually access the hardware information so the server information you can check for all kinds of stuff whatever the logic is you would put it here and then return true or false depending on what you're looking for or what you're expecting to be running or whatever the case might be there's one last thing i want to show you and if you take a look at the disk space right here you can see that in their details they have different key value pairs right and in our case we only added one key value pair right here as you can see we have logger service and then if it's running or if it's not running but you can see like here they have different key value pairs right so let's say you want to do the same for your custom service so for the db service we might have is the database running and then we might have some other useful information that we want to display as well and we can pass in as many of those keys and key value pairs as we want so how would we do this well instead of calling this with detail we take just us a key uh and a value as you can see here we can call a different one if i can show you real quick which is down below it takes a map of string and i guess object or whatever else so you can create this map of string or string in whatever else or object and then you can pass it in here instead and then you can have access to um to to have multiple different key value pairs here so that's how you would do that i just wanted to uh point that out to you guys because when i was using this the first time i was like okay what if i want to pass in more than one key value pair and then that's when i look and then i found that the same with details it's a method overloading that they're doing and there you can pass in different parameters into it so i hope this was helpful and i will see you guys in the next lecture what if you want to create your own actuator endpoint like you you want to have one just like those other ones here and you want it to return whatever it is that you want it to return so how would you do this so let's go back to the application and in the same package here i'm just gonna create a new class and i'm just gonna call it uh let's just call it custom actuator endpoint okay so this is going to be our on actuator endpoint now the first thing you have to do is you have to annotate this with endpoint and after that you have to give this an id okay so i'm going to explain this id and what it means real quick so let's say we call this custom so the reason this id is very necessary is because you want to you want this endpoint to be identified by this uh id here so this id is going to represent this extra parameter and the path here so as you can see we have actuator and then we have actuator beams actuator caches actuator health etc actuator info so this id that we put in here is going to be like actuator slash whatever the id is so that's why this is super important and then now what you have to do you just have to write any method so i'm just gonna do like public and i'm just gonna make this return some object for whatever reason i'm just gonna call it custom endpoint and you can give this any name you want you're not overriding anything here and then you can just return whatever so um let's return some key value base i'm going to be creating a map of string and string and it doesn't have to be uh like a collection it can be anything you can return an object or some whatever it is you want some string or whatever the case might be let's just call this map and then set a sequel to a new hash map and then let's say i'm just gonna say map that i put so we're gonna put something in the map and i'm just gonna say key let's say some key or for whatever reason whatever i have and then some value here right so i have a key value pair and then i'm just going to return that map return map and since i created a map and i return it so we can just remove that object and then just make it return this type that we define and then all we have to do here is to annotate this uh with whatever operation we want to do so we can have a read operation which is going to be a get request and we can have a write operation or delete operation so in this case i'm doing a read operation so i'm going to put read operation on this sd annotation so the read operation is just going to return some value as you can see here we're just creating a map and then returning that map we could also have like dependency injection here for whatever service that we're using and then grab stuff from the database or from wherever and then just return it here so now that we have this custom we just have to make sure that spring boot is aware of it or just spring in general so that we can make sure the bean is available so at this point we can just go to slash actuator slash custom and we should be able to see this key value bay here and spring is going to take care of mapping just into a json object so we don't have to do anything here so now i'm just going to refresh this restart it and well now refresh i have to restart it and then check it out so let's bring this up a little bit make sure it's good okay so the application is running so now if we go back to the browser and then i'm gonna go ahead and refresh this so now you can see we have this make sure you guys guys can see it we have this actuator custom here so if i click this to open it you can see key value okay so that's how you would do this so you can also pass parameters to this you can pass uh request parameters so let me show you a quick example real quick so let's say i need to get some session for someone and i need to get their username or user id or session id or something like that so i can actually pass a parameter into this so i can do string um username for instance and then it's down below just another key value pair and then i'm just gonna do name and then pass in the value here and i'm just gonna say username well that's supposed to be username so i'm just going to call it username okay so we have another key value pair which is going to be username and then we pass in the value here so let's refresh this well we start this again okay the option is coming up okay so we're up and running let's go back to the browser and here we have the stem custom now it's going to give us an error because we didn't pass all the parameters so you can see here it says missing parameter username okay so we're just gonna do that so here i'm gonna say username equals and i'm just gonna pass my name so junior and you can see here username junior and then the key is here now like i said you can do read operation you can do write operation you can bring in a repository here you can do whatever you want now i wouldn't like return user information uh using the actual actuator endpoint because it's more like a monitoring tool so you can return pieces of information not like hold information you would probably use a controller for that but you can bring in your service in here your repository in here grab session information user information etc etc so this is how you would do this if you wanted to do your own custom spring boot actuator endpoint and the most important thing is this endpoint annotation here where you have to give it an id and you have to make sure you specify what type of operation that this is going to do either read operation or delete operation or write operation so depending on what this method is doing then you would probably um determine what annotation you have to use here so i hope that was useful to you guys and i'll see you in the next one in this section we're gonna go ahead and build our admin dashboard now this is really just an illustration as far as what you can do with the spring boot actuator and i just wanted to show you an example of actually how powerful this tool is so i hope you guys are just as excited as i am and i'll see you in the next one let's go ahead and create the angular application so i'm going to go ahead and open my terminal and i have this page up here just so you remember that you need to have the angular cli install and then you can run those ng commands so back in my terminal i'm gonna do ng new and then i'm gonna call it admin dashboard okay so now it's asking me for routing i'm gonna do yes even though we don't necessarily have any routes in this application but there's a little trick that i want to show you so i'm gonna do yes and then we're gonna stick to css for our styling and we're gonna let this finish so the process has finished i'm just gonna go ahead and navigate in that folder so i'm gonna do cd admin dashboard and we can take a look at all the files that we have another thing i want to do before i leave this is to create a service because i'm going to need a service to make calls to the backend so i'm going to do ng generate service and then i'm going to call it admin dashboard and what angular is gonna do is just gonna add the um service at the end of that file so go ahead and click enter and let this go through okay so how a service has been created i'm just gonna do code dot to open visual studio code in the current folder and then after that i want to run the application so i'm gonna do ng serve so it's gonna go ahead first do code that and then it's gonna run ng serve so let's click enter and i have visual studio coming up and let's see if it's gonna start the application okay the application is compiling so in the meantime while this is compiling i'm just gonna go ahead and take a look at visual studio code and take a look at the project so i'm gonna expand that so if we go to source app and we should see our service so you see admin dashboard service right here and we don't have anything else right now and then we have the up routing modules and everything else we're supposed to have with the default package for an angular application so let's go back here and make sure this is up and running it's still compiling the first time it's going to take a little bit longer but afterwards it should be pretty fast okay so it looks like we're up and running on 4200 so let's go ahead and check that out go to 200 and we should have a default page okay so admin dashboard and this is the default page so what i'm going to be doing in the next um video is to just create the service well i already created the service is to just work on the service so we're going to you know set up the service and then create the functions that we need to make the cost of the back in to retrieve the admin dashboard data that we need to show in that page so i'll see you guys in the next one let's go back to the application and i'm going to expand this real quick so i can take a look so we have two files for our service so we have the spec file which is the test file and then we have the actual service file so i'm going to delete the spec file but this spec file is a test file um so testing software is really something you always have to do like it's a must if you are developing any piece of software in the real world you definitely have to write what you're looking at here which is unit test so you can't really have an application be deployed in production without having i mean i'm sure there's like a lot of people doing that a lot of developers doing that but um good practice which is like really enforce good practice is that you have to write tests you can see here since this the service is empty like there's nothing in the service so the people at google they already say hey if you just have that service and there's nothing in it at least you have to check that when you create an instance of that service as you can see here they're using this testbed inject to create an instance of the service being injected as you can see it's defined up here on line six and then the the before each is gonna run before every single test so this is the actual test this is a setup so it says before each which means this is gonna run every time before the next uh um test run so if we had like another one of those it would run this and then run it and then it would run this and then on the next one and then it would run the b4h again and then run the next test so that's what it's doing so every time they create a new instance of this admin dashboard service so even with the default code they say we have to check to make sure that this exists if we inject it into anything because we don't have anything else into this yet so i have in my list to make a course on testing both testing java or spring application uh and i'm talking about unit testing integration testing into and testing and for the front end as well using angular as well so this is using a library called jasmine i guess the people at google just maybe they just customize it as you can see like it's that's bad and all that stuff but this is if you've been testing um javascript you can just look at it and say okay this is definitely jasmine uh but i'm gonna make a whole course about testing because testing itself is really uh it's big so if you if you're gonna develop some piece of software and you know it's gonna take you like two days to finish it and if someone asks you hey how long is it gonna take you then it's you should say four days because you have to write unit tests for almost as much as the real code that you have so for every piece of code that you have you have to write tests for it and usually there's going to be more than one logic so let's say for instance if i have one method and it's very simple method it does a very simple thing and then there is an if statement in it at least i have to have two tests one when the condition is true and one when the question is false so you can see with one method at least i have to write two uh tests for it so that's why testing is really a lot and i haven't seen a lot of material online about testing but uh it's coming i have those in my repertoire i will be creating um testing courses as well because this is really if you really want to be like a developer to work at like big companies where they like adhere to real true good practice then you need to know how to test you can't walk into those companies and not know how to test you you're gonna have a hard time so for now we're not gonna do any testing um and i spent a lot of time talking about this but i just want to make sure you guys understand how crucial it is to test your software so um i'm just going to delete this file for now and be on a lookout for like a course about testing i might make the testing the spring boot app first and then i'll do one course about testing um you know front-end application but for now we don't need this spec file so i'm going to go ahead and right-click and then delete and another thing i noticed um this this name here is kind of long because we have that service added to it and we can't remove that service because it's convention from angular so i'm just going to rename it and i'm just going to remove the admin and just leave dashboard service that's yes so we have the service here and another thing i want to do is to put this in the folder we can leave it here no problem uh i just like to nav even it helps me navigate faster to it so i'm going to right click on this app here which is the main folder and i'm going to click on this plus folder icon and then i'm going to do service click enter and then just drag this in there say move so now the service folder contains the um this dashboard service so now let's go into this dashboard service and now i can just shrink this a little bit and just collapse this so in that service we have to create all the methods um or function uh in this function what they're gonna do is they're just gonna reach out to the backend to get the data that we need right and believe it or not even though this dashboard like this ui admin dashboard has a lot of information in it we literally have to call just a few endpoints from the actuator from the back-end to create this dashboard so you can already see how powerful this actuator is because we will pretty much be using like you know three maybe four of the endpoints that the actuator has and we can already build like a super nice looking dashboard and this dashboard has like very useful information about our application so the first thing i want to do here in this service is to well i need to rename this as well i'm just going to call it dashboard service so we have to bring in the http uh http client so we're going to use the http client to make http calls to the backend okay so and the way to do the injection is to create a private field inside of the constructor and i'm just going to call it http and it's going to be a type http client okay so make sure this is this http client is coming from angular common http so now that we have this client we can actually use it to make http calls to the backend now there's one last thing we have to do before i finish this video we have to bring in the http client module as well so let's go back and let's go to the app module and this is how you tell angular that you need to use the http manager so you know the http client module and see if i can import that and it's supposed to come from the same package so angular command http and that's http client machine so now we can close this so at this point we can then use this http client in the functions that we're going to create here to actually reach the backend and we're going to continue in the next lecture so before we actually start writing methods we need to know where we're going to send those requests so we need to put in the url of the backend so here i'm going to create a variable and i'm going to call it server underscore url and i'm just going to set it equal to some string right so we don't know what this string is going to be yet well we kind of know so let's go back to the environment so i'm going to put this into this environment here not in the prod one because this is for prod and i'm going to actually show you how you can do a configuration for different environments so whenever the app is being deployed in production it's going to use some values or the values in the production environment but right now we are not in production we're in development so i'm gonna use this other ones here so and there what i'm gonna do is i'm gonna introduce a new attribute into this object here so i'm to put comma and i'm just going to call it server oops i need lowercase here server url and then i'm just going to set it equal to our server url and you already know it's http colon double forward slash oops localhost and i think we're running on what are we running on let me check real quick so here's the back end i have the back and running by the way so back is running on 9000 so i'm going to set the port number to 9000 and i know everything is going to go under actuator okay so this is going to be the base url for our environment so now i can use that in here just reach out to the environment so i'm gonna do environment dot and you can see server url here okay so now we know where we're sending this request so let's go down and put our first function so the first one is going to be to get http traces so get http traces and it's not going to take anything and it's going to return an observable because we're making a call to the backend and i've explained this before and hopefully you guys already know what it is but observable is a very interesting concept or promise it's a very interesting concept and a lot of people have a hard time with it but it's really really very simple so what is unobservable well unobservable well i don't want to see it's a promise because there's already a promise that that you have in javascript so you some of you might be confused okay all right so it's a promise but basically what it is is it's only saying hey this piece of code is gonna take some time to run that's all it is so for instance on line eight right i have this server url here so what the code is gonna do is gonna run from top to bottom we know that right whenever you have a program at least in javascript and in java the program runs from top to bottom now what's going to happen is when the program runs it can run this instantly like the the machine or the computer is able to compute this instantly so it's gonna run this say oh okay so this url is supposed to be whatever url is defined here which is a string blah blah okay so that's that but the difference between this line and whatever method we're gonna build here is that this is gonna take some time to to execute or to compute so we have to come up with a way to make for that right or to make up for that so when we say observable we technically mean hey this piece of code is going to execute and it's going to take some time just know that and whenever this code is done executing let us know that's all it is now why is this important it's important because we're gonna make a network call so when i call this unobservable i'm technically saying hey this is gonna make a call to over the network and we know that's not gonna be instant because it depends on so many variables even the cables that that's being used between the two computers so that's what this is doing let's say this was an actual url on the internet let's say the actual server the backend was running on aws so we would have to make a call all the way to the aws data center where this server lives so we have so many things to do we have to find the route then we have to go over the internet then we have to go through this different server that's going to say hey this name which is like http.backend.com is actually for ip address blah blah blah and one some ip address and then you have to find this computer in it so this is a network call it's going to take some time to execute so what this observable means is that hey this is going to take some time to execute just when it's done executing give us a notification or let us know when it's done that's all it is i hope you guys understand so here in the observable we have to it is generic which means we have to specify the return type so now i'm going to put any okay so now i can start the method and that's how you just that's just the syntax on how to do this using angular you put the name of the method like you would and then you put the return type it's going to be an observable and you pass in what type of data we should expect and then here all we have to do is to call the http that we brought in and then select the type of request we're going to make in my case is the get request and then here i'm just going to pass in where i want to make this get request okay so which means we have to pass in the url so here i'm just going to say well i'm going to use this syntax so that i can match variable with string that's all that is with the backstick and then the data sign open and close curly braces so i can put an actual um variable and then i'm gonna add some string to it so i'm gonna say this is gonna go to http trace okay so this is the url to get all the http trace so what the system is going to do is that it's going to run this function and say oh it's unobservable of course it is because we're making an http request because this is going to take some time the computer is not able to compute this instantly because it's going to go over the network and i just explained it has to go to this computer so it's going to take some time to execute just this line so that's why it's an observable or premise or whatever they might name it but it's the same concept it's going to take some time and another very interesting thing about observable is that once you have the observable like this we can subscribe to it so since this is an observable like this get you can see it returns an observable um we have to subscribe so that we're notified it's like it's a subscription so if i do that you can see we have pipe which is something very interesting which is what you would use if you want to like modify the data on the fly before you actually return it and then we have subscribe which is the most important subscribe means whenever there is or this code is executed there is a response back let us know notify us if you don't have this subscribe here the request won't even be made so whenever i use this method because i'm not subscribing here i'm just making the call so whenever i use this in in the in the class if i don't subscribe to it this code will not run because there's no subscriber so there's no point in running this code because there's no one to tell hey this could run um or anything like that so that's what that is and of course we're getting an error and that's because i have to return this okay so i hope you guys understand this again um in this whole video i just created just this one function so we're gonna go a little bit faster but i just wanna make sure you understand um what those things are doing so um just a quick um at least in my personal experience when i was new to software development i had a lot of hard time um when i first started and i'm going to tell you why because the people that i was um following or the people that were explaining those things to me they really stuck with the actual uh convention so they didn't explain it using like plain english or give you like a very very basic example so that's why sometimes when you watch a tutorial or you go to school you're in class or something like that you think that computer science is kind of hard but it's not it's really not and uh at least in my experience i hope that the people that i was i had to learn from from the very beginning i hope i wished uh they did a better job which is what i wish but it didn't happen so i had some hard time and it wasn't until later i was like oh my god this is so easy so that's what this is doing so every time you're gonna make a request either to like read a file sometimes or make a request over the internet or something that's going to take some time it doesn't have to be necessary it's like an http request there are many different operations in software development that's going to take time and that's why we need this idea or concept of observable and promise and things like that so in the next lecture we're going to continue again we're going to go a little bit faster because we're really going to be like repeating this with different endpoints so i'll see you guys in the next one right so you saw the power of spring boot actuator and we just add the dependency and then we can tell which endpoints that we want to be exposed now for this course what you will actually build is a fully fledged web application using angular so using typescript and angular and you build the actual dashboard right so the reason why we're doing this is to give you um multiple ways for you to practice your skills because this is what employees are after but obviously uh there are other ways that we could actually have these awesome dashboards and that is using for example grafana right so we can take all of those metrics that we expose using springboard actuator and then have grafana display all of these nice dashboards so i'm going to leave a link on description of this video where you can go and follow along and learn more about it if you're new to my channel subscribe to my channel so i can keep on bringing you content like this if you're not part of the amigo squad community go ahead and join i would love to see you there comment down below and let me know what you thought about this video and i'll catch you on the next one you
Info
Channel: Amigoscode
Views: 26,832
Rating: 4.9354143 out of 5
Keywords: amigoscode, spring boot actuator, spring boot, spring boot tutorial, java tutorial, learn spring boot, spring boot microservices, java microservices, learn microservices, spring boot example, spring framework, spring mvc, spring boot api, java spring boot, spring boot tutorial for beginners, spring boot rest api, spring boot security, spring boot for beginners, spring boot interview questions, spring boot java, spring boot crud, how to use spring boot, spring vs spring boot
Id: LQlypTjmgZM
Channel Id: undefined
Length: 84min 20sec (5060 seconds)
Published: Mon May 03 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.