HC-JMX

Expose PoolingHttpClientConnectionManager statistics via JMX

License

License

GroupId

GroupId

com.testingsyndicate
ArtifactId

ArtifactId

hc-jmx
Last Version

Last Version

3.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

HC-JMX
Expose PoolingHttpClientConnectionManager statistics via JMX
Project URL

Project URL

https://github.com/goughy000/hc-jmx
Source Code Management

Source Code Management

https://github.com/goughy000/hc-jmx.git

Download hc-jmx

How to add to project

<!-- https://jarcasting.com/artifacts/com.testingsyndicate/hc-jmx/ -->
<dependency>
    <groupId>com.testingsyndicate</groupId>
    <artifactId>hc-jmx</artifactId>
    <version>3.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.testingsyndicate/hc-jmx/
implementation 'com.testingsyndicate:hc-jmx:3.0.3'
// https://jarcasting.com/artifacts/com.testingsyndicate/hc-jmx/
implementation ("com.testingsyndicate:hc-jmx:3.0.3")
'com.testingsyndicate:hc-jmx:jar:3.0.3'
<dependency org="com.testingsyndicate" name="hc-jmx" rev="3.0.3">
  <artifact name="hc-jmx" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.testingsyndicate', module='hc-jmx', version='3.0.3')
)
libraryDependencies += "com.testingsyndicate" % "hc-jmx" % "3.0.3"
[com.testingsyndicate/hc-jmx "3.0.3"]

Dependencies

compile (1)

Group / Artifact Type Version
org.apache.httpcomponents : httpclient jar 4.5

Project Modules

There are no modules declared in this project.

HC-JMX

Maven Central GitHub license

JMX MXBean for Apache HttpComponents HttpClient 4.5.x

Summary

View HttpClient metrics from a PoolingHttpClientConnectionManager

  • MaxTotal*
  • DefaultMaxPerRoute*
  • Leased
  • Pending
  • Available
  • RoutesTotal

Metrics marked with an asterisk are read/write

Available to view via JMX compatible monitoring and profiling tools such as AppDynamics, DataDog and VisualVM

Usage

<dependency>
    <groupId>com.testingsyndicate</groupId>
    <artifactId>hc-jmx</artifactId>
    <version>...</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5</version>
</dependency>
// Create a PoolingHttpClientConnectionManager
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();

// Register it with the name "default"
HcJmx.getInstance().register(connectionManager);
// Or pass a Client directly (extracts PoolingHttpClientConnectionManager using reflection)
HttpClient client = HttpClients.custom()
    .setMaxConnPerRoute(10)
    .setMaxConnTotal(15)
    .build();

HcJmx.getInstance().register(client);

Screenshots

Metrics shown in VisualVM

VisualVM Apache HttpClient PoolingHttpClientConnectionManager

License

MIT

Versions

Version
3.0.3
3.0.0
2.1.0
2.0.0
1.0.0
0.3
0.2
0.1