https://github.com/volcengine/apminsight-server-sdk-java
APMInsight Server SDK Java
https://github.com/volcengine/apminsight-server-sdk-java
Last synced: over 1 year ago
JSON representation
APMInsight Server SDK Java
- Host: GitHub
- URL: https://github.com/volcengine/apminsight-server-sdk-java
- Owner: volcengine
- License: apache-2.0
- Created: 2021-02-03T07:14:01.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-08T10:31:18.000Z (over 5 years ago)
- Last Synced: 2025-01-07T15:21:19.461Z (over 1 year ago)
- Language: Java
- Size: 26.4 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# APMInsight Server SDK Java
## Metrics
### Installation
maven dependency
```xml
com.volcengine
apminsight-server-sdk-metrics
{latest-version}
```
### Usage
see [CODE EXAMPLE](./apminsight-server-sdk-metrics/src/main/java/com/apminsight/metric/example/MetricClientExample.java)
#### Build Client
```java
MetricClient metricClient = MetricClientBuilder.newBuilder()
.unixDomainSocket(true)
.prefix("your application metric name common prefix")
.maxPacketBytes(8192)
.build();
metricClient.close();
```
#### Emit Metrics
```java
//without tags
metricClient.emitCounter("example_counter_metric");
metricClient.emitCounter("example_counter_metric", 3);
metricClient.emitTimer("example_timer_metric", 200);
metricClient.emitTimer("example_timer_metric", 200, TimeUnit.MILLISECONDS);
metricClient.emitGauge("example_gauge_metric", 100);
//with tags
Map tags = new HashMap<>();
tags.put("tagKey", "tagValue");
metricClient.emitCounter("example_counter_metric", tags);
metricClient.emitCounter("example_counter_metric", 3, tags);
metricClient.emitTimer("example_timer_metric", 200, tags);
metricClient.emitTimer("example_timer_metric", 200, TimeUnit.MILLISECONDS, tags);
metricClient.emitGauge("example_gauge_metric", 100, tags);
```
#### Configuration
you can config client with `MetricClientBuilder`,there are some config items available in `MetricConfig` such as:
- `prefix` the common prefix of metric name
- `unixDomainSocket` use unix domain socket to send metric packet
- `sockAddress` domain unix socket address
- `socketTimeOutMs` send metric to agent socket timeout in milliseconds
- `maxPacketBytes` send metric to agent socket max packet bytes limit
- `useMetricPool` whether to use metric object pool
- `metricPoolMinIdle` metric object pool min idle
- `metricPoolMaxIdle` metric object pool max idle
- `byteBufferPoolMinIdle` byte buffer object pool min idle
- `byteBufferPoolMaxIdle` byte buffer object pool max idle
- `reporterQueueCapacity` reporter buffer queue capacity.metric will be discarded when the capacity is exceeded, you can increase this queue capacity or `reporterWorkers` or `senderWorkers` to avoid
- `reporterWorkers` number of reporter queue processor workers
- `senderSync` send packet sync or async
- `senderWorkers` number of sender queue processor workers if `senderSync` is false
- `workerWaitSleepMs` reporter and sender processor waiting for empty poll