Skip to content

Commit f7166bf

Browse files
committed
docs(): add doc
1 parent 7423093 commit f7166bf

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

57.2 KB
Loading

docs/zh/client/java-sdk-user-guide.md

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -419,15 +419,14 @@ apollo.client.monitor.jmx.enabled = true
419419
apollo.client.monitor.exception-queue-size= 30
420420

421421
#4.指定导出指标数据使用的对应监控系统的Exporter类型,如引入apollo-plugin-client-prometheus则可填写prometheus进行启用,
422-
#可填配置取决于用户引入的MetricsExporter的SPI
422+
# 取决于SPI MetricsExporter的实现
423423
apollo.client.monitor.external.type= prometheus
424424

425425
#5.指定Exporter从Monitor中导出状态信息转为指标数据的频率,默认为10秒导出一次,
426426
apollo.client.monitor.external.export-period= 20
427427
```
428428

429429

430-
=======
431430
#### 1.2.4.10 ConfigMap缓存设置
432431

433432
> 适用于2.4.0及以上版本
@@ -1427,7 +1426,7 @@ interface是`com.ctrip.framework.apollo.spi.ConfigServiceLoadBalancerClient`。
14271426
## 7.2 指标输出到Prometheus
14281427
> 适用于2.4.0及以上版本
14291428

1430-
2.4.0版本及以上的java客户端中,增加了指标收集,导出的支持,默认支持Prometheus,用户可以自行扩展接入不同的监控系统
1429+
可支持导出指标到Prometheus,或者基于SPI编写不同的实现来接入不同的监控系统
14311430

14321431
引入客户端插件
14331432
```xml
@@ -1548,14 +1547,20 @@ apollo_client_thread_pool_completed_task_count{thread_pool_name="AbstractConfig"
15481547
## 7.3 指标输出到自定义监控系统
15491548
> 适用于2.4.0及以上版本
15501549

1551-
需要写1Exporter, 继承AbstractApolloClientMetricsExporter, 并实现里面的
1550+
用户需要自行编写MetricsExporter, 继承AbstractApolloClientMetricsExporter, 实现里面的
15521551
doInit (初始化方法),
15531552
isSupport (external-type配置调用方法),
15541553
registerOrUpdateCounterSample (注册更新Counter指标方法),
15551554
registerOrUpdateGaugeSample (注册更新Gauge指标方法),
15561555
response (导出所需类型指标数据方法)
1556+
并配置相关SPI文件
15571557

1558-
### skyWalking为例
1558+
MetricsExporter加载流程图
1559+
![Exporter load by apollo client](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-client-monitor-exporter-load.jpg)
1560+
1561+
1562+
1563+
### 7.3.1 SkyWalking案例
15591564
通过配置
15601565
```properties
15611566
apollo.client.monitor.enabled=true
@@ -1566,13 +1571,15 @@ apollo.client.monitor.external.type=skywalking
15661571

15671572
创建SkyWalkingMetricsExporter类,继承AbstractApolloClientMetricsExporter
15681573

1569-
继承后大致代码如下
1574+
继承后大致代码如下
1575+
注意: 样例演示,切勿直接到生产直接使用,请根据公司内具体情况来实现
15701576

15711577
```java
15721578
public class SkyWalkingMetricsExporter extends AbstractApolloClientMetricsExporter {
15731579

15741580
private static final String SKYWALKING = "skywalking";
15751581
protected SkywalkingMeterRegistry registry;
1582+
//用户设计时,需考虑存储指标的数据结构是否有内存占用过多问题
15761583
protected Map<String, Counter> counterMap;
15771584
private Map<String, Gauge> gaugeMap;
15781585
private Map<String, AtomicReference<Double>> gaugeValues;
@@ -1660,10 +1667,13 @@ public void init(List<ApolloClientMonitorEventListener> collectors, long collect
16601667
<artifactId>apm-toolkit-micrometer-1.10</artifactId>
16611668
</dependency>
16621669
```
1663-
根据Micrometer的机制初始化SkywalkingMeterRegistry,以及一些map用于存储指标数据
1670+
根据Micrometer的机制初始化SkywalkingMeterRegistry
1671+
以及一些map用于存储指标数据
1672+
16641673
```java
16651674
private static final String SKYWALKING = "skywalking";
16661675
private SkywalkingMeterRegistry registry;
1676+
//用户设计时,需考虑存储指标的数据结构是否有内存占用过多问题
16671677
private Map<String, Counter> counterMap;
16681678
private Map<String, Gauge> gaugeMap;
16691679
private Map<String, AtomicReference<Double>> gaugeValues;
@@ -1747,4 +1757,13 @@ public String response() {
17471757
}
17481758
```
17491759

1760+
最后在项目目录下resources/META-INF/services编写对应的spi文件,告诉框架来加载这个类
1761+
文件名为com.ctrip.framework.apollo.monitor.internal.exporter.ApolloClientMetricsExporter
1762+
```text
1763+
your.package.SkyWalkingMetricsExporter
1764+
```
17501765
至此,已经将Client的指标数据接入SkyWalking
1766+
1767+
### 7.3.2 Prometheus案例
1768+
1769+
[PrometheusApolloClientMetricsExporter.java](https://github.com/apolloconfig/apollo-java/blob/main/apollo-plugin/apollo-plugin-client-prometheus/src/main/java/com/ctrip/framework/apollo/monitor/internal/exporter/impl/PrometheusApolloClientMetricsExporter.java)

0 commit comments

Comments
 (0)