Java Performance Tuning
Java(TM) - see bottom of page
Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks!
Training online: Concurrency, Threading, GC, Advanced Java and more ...
News May 2021
JProfiler
|
Get rid of your performance problems and memory leaks!
|
JProfiler
|
Get rid of your performance problems and memory leaks!
|
|
|
Back to newsletter 246 contents
Health checks, metrics, telemetry, logs, tracing, profiling, ... we have a gamut of different things in Observability. How do they all fit together? Here's my take, in order of increasing sophistication:
- Is the process running? Use a liveness check (a health check). The answer is a yes or no. If no, need to (re)start the process
- Is the process ready to process requests? Use a readiness check (a more sophisticated health check). The answer is a yes or no. If yes, can route requests to the process, otherwise wait until it is ready, or a timeout is reached (and try restarting it or send an error notification)
- Is the service performing adequately (adequate performance is defined by a Service Level Objective - SLO)? The answer is a yes or no for each SLO, measured using telemetry (gathering metrics from components) and thresholds. The metrics used to measure the SLO are termed SLIs - Service Level Indicators. Can be measured from every request or from sampled requests; Can be measured at the server-side (service times), or from the actual clients (real-user-metrics), or from client-side generated requests (synthetic transactions).
- Where is the service failing the SLO? The answer is a prioritized list of hardware-resource/infrastructure-component/JVM-space/application/request/context/process/thread/code stack/line of code (the more sophisticated the tool, the more detailed the answer). Identified by distributed tracing (which needs a unique request ID propagated across services, with transaction context)
- Why is it failing the SLO? The answer is "because it was doing X", identified by thread-traces/(execution/memory/contention)-profiles/log-events (metrics extracted from logs)/log-lines (most easily found with trace IDs from the previous answer, or by making the logs queryable).
That's about as succinct as you can get in detailing Observability. Now on to all the usual newsletter list of links, tips, tools, news and articles, and as usual I've extracted all the tips into this month's tips page
A note from this newsletter's sponsor
JProfiler
Get rid of your performance problems and memory leaks!
News
Java performance tuning related news
Tools
Java performance tuning related tools
Articles
Jack Shirazi
Back to newsletter 246 contents
Last Updated: 2024-12-27
Copyright © 2000-2024 Fasterj.com. All Rights Reserved.
All trademarks and registered trademarks appearing on JavaPerformanceTuning.com are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. JavaPerformanceTuning.com is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
URL: http://www.JavaPerformanceTuning.com/news/news246.shtml
RSS Feed: http://www.JavaPerformanceTuning.com/newsletters.rss
Trouble with this page? Please contact us