-
Notifications
You must be signed in to change notification settings - Fork 580
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Produce metrics for ThreadPoolExecutors #947
Comments
Stating the obvious likely, but we should do this after the 2.0 work is merged. |
Requested recently by a customer through a different other channel, let's retriage |
We are seeing in our app, when load increases on an instance, the requests are put on the thread pool queue. When the thread pool queue reaches full capacity then the app responds with a 503. Which is all expected behaviour. But when we deploy on Kubernetes this can result in k8s restarting the pod because it is returning 503 for the health check. |
@gmpatter (and others) Helidon 2.x already has an optional feature for enabling some additional key performance indicator metrics. For some reason the documentation for this is missing from our published doc site, but below I've pasted the details from our doc source. Note that the KPI Key Performance Indicator (KPI) MetricsAny time you include the Helidon metrics module in your application, Helidon tracks two basic performance indicator metrics:
Helidon also includes additional, extended KPI metrics which are disabled by default:
You can enable and control these metrics using configuration:
Further, for SE apps: Your Helidon SE application can also control the behavior of the KPI metrics programmatically.
|
Possibly nearly equivalent to #2688 and #2689 (as described in the earlier comment). While it's true that the recently-added KPI metrics do not directly report information about the executor used to queue and run requests, the executor behavior can be inferred from the KPI metrics. Is it worthwhile to invest the work to add the nearly-equivalent executor-based metrics? Would they add sufficient actionable information over the existing KPI metrics? |
At minimum, create metrics for pool sizes and task counts, maybe active threads (this is more expensive). Additional metrics can be created for known subtypes.
Executors should not be modified, rather metrics should be pulled from them so that any type can be supported. This implies some form of registration (e.g. at the point of installation via a builder, etc.).
The text was updated successfully, but these errors were encountered: