Skip to content

Instantly share code, notes, and snippets.

@ravin-singh
Last active October 25, 2021 07:34
Show Gist options
  • Save ravin-singh/8654b654163c508cdb227a621fe078f0 to your computer and use it in GitHub Desktop.
Save ravin-singh/8654b654163c508cdb227a621fe078f0 to your computer and use it in GitHub Desktop.
Micrometer metrics exporter for apache http connection pool
1. Create a scheduler to add new routes
@Scheduled(fixedRate = 300000)
public void updateHttpRoutes() {
Set<HttpRoute> routes = poolingHttpClientConnectionManager.getRoutes();
for (HttpRoute route : routes) {
httpMetricsTracker.add(route, poolingHttpClientConnectionManager);
}
}
@ravin-singh
Copy link
Author

public class HttpPoolStats {

private final HttpRoute httpRoute;
private final PoolingHttpClientConnectionManager poolingHttpClientConnectionManager;

public HttpPoolStats(HttpRoute httpRoute, PoolingHttpClientConnectionManager poolingHttpClientConnectionManager) {
    this.httpRoute = httpRoute;
    this.poolingHttpClientConnectionManager = poolingHttpClientConnectionManager;
}

public int getLeased() {
    return poolingHttpClientConnectionManager.getStats(httpRoute).getLeased();
}

public int getPending() {
    return poolingHttpClientConnectionManager.getStats(httpRoute).getPending();
}

public int getAvailable() {
    return poolingHttpClientConnectionManager.getStats(httpRoute).getAvailable();
}

public int getMax() {
    return poolingHttpClientConnectionManager.getStats(httpRoute).getMax();
}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment