All this kind of instrumentalization can be achieved by using native JMX or using a modular project like Metrics. Metrics provides a powerful way to measure the behaviour of your critical components and reporting them to a variety of systems like, JConsole, System Console, Ganglia, Graphite, CSV, or making them available through a web server.
To install Metrics, we only have to add metrics dependency. In this example we are going to use Maven.
<dependencies>
<dependency>
<groupId>com.yammer.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
Now it is time to add some metrics to our code. In Metrics we can use 6 types of metrics:
- Gauges: an instantaneous measurement of a discrete value.
- Counters: a value that can be incremented and decremented. Can be used in queues to monitorize the remaining number of pending jobs.
- Meters: measure the rate of events over time. You can specify the rate unit, the scope of events or event type.
- Histograms: measure the statistical distribution of values in a stream of data.
- Timers: measure the amount of time it takes to execute a piece of code and the distribution of its duration.
- Healthy checks: as his name suggests, it centralize our service's healthy checks of external systems.
So let's write a really simple application (in fact it is a console application) which sends queries to Google Search system. We will measure the number of petitions, the number of characters sent to Google, the last word searched, and a timer for measuring the rate of sending a request and receiving a response.
The main class where Measures will be applied is called MetricsApplication and is the responsible of connecting to Google and sending the entered word.
The main class where Measures will be applied is called MetricsApplication and is the responsible of connecting to Google and sending the entered word.
The first thing we can see is the counter instance. This counter will count the number of characters that are sent to Google in the whole life of the applications (meanwhile you don't stop it).
The next property is a meter that measures the rate of sending queries over time.
Then we have got a timer that rates the sendQueryToGoogle method callings and its distribution over time.
And finally a LinkedList for storing all queries sent. This instance will be used to return the last query executed, and is used in gauge for returning the last inserted element.
Notice that in each measure we are setting a class which will be used as folder in jconsole. Moreover a label is provided to be used as name inside folder.
Let's see a screenshot of jconsole with previous configuration and an execution of three searches:
By default all metrics are visible via JMX. But of course we can report measurements to console, http server, Ganglia or Graphite.
Also note that in this example we are mixing business code and metrics code. If you are planning to use Metrics in your production code I suggest you to put metrics logic into AOP whenever possible.
We have learned an easy way to monitorize our applications without using JMX directly. Also keep in mind that Metrics comes with some built-in metrics for instrumenting HttpClient, JDBI, Jetty, Jersey, Log4j, Logback or Web Applications.
We Keep Learning,
Alex.
But I know that one and one is two, And if this one could be with you, What a wonderful world this would be. (Wonderful World - Sam Cooke)
8 comentarios:
I just wanted so say thanks, you are always blogging about stuff I am planning to do or integrate into my projects just before I start with it. I think I owe you a beer :)
Thank you very much for your nice comments, if you need any help don't hesitate to ask me and together we would try to resolve it. Also I note that if we met one day in any conference we must take a drink together ;) Lordofthejars will pay them ;)
If IOExcpetion is thrown in send to google then timer won't be stopped
Timer t = new Timer();
try {
sendtoGoogle();
}
finally {
t.stop();
}
You may be interested in another take on "monitorizing" your application: MessAdmin. No change to your code needed, and lots of technical information!
supreme
lebron 10
cheap jordans
birkin bag
nmd
yeezy boost 350 v2
balenciaga sneakers
kyrie 6 shoes
michael kors handbags
christian louboutin
Quickbooks is the advanced accounting software to track and manage all records of the business. Sometimes users found common issues like password issues, installation issues, printing issues, performance issues. To resolves all issues you can download Quickbooks tool hub which is a combination of all Quickbooks tools in a single application.
Google Search Consoles
telugu movies download
How to Get Job in Microsoft
Benefits of Government Job
How to Get Jobs at USA
easy sketches
images for background
types of phobia
slow cook recipe
teenage pregnancy
Teen Pregnancy Facts
Anxiety During Pregnancy
Google Search Console
list of phobia
types of phobias
Easy Ways To Learn Programming
How to Learn Programming
Who Invented Computer
1366×768 Wallpaper
Save Water Images
Valentines Day Images
.....
ici sacs de répliques de Chine source de l'image Louis Vuitton Dolabuy voir la page Source
Publicar un comentario