You need to enable JavaScript to run this app.
文档中心
应用性能监控全链路版

应用性能监控全链路版

复制全文
下载 pdf
接入指南
APMPlus 自研监控系统说明
复制全文
下载 pdf
APMPlus 自研监控系统说明
APMPlus自研监控系统是应用性能监控全链路版自主研发的数据采集工具,负责采集应用与基础设施的监控数据,然后相关数据上报到APMPlus服务端用于可视化查询分析。​
系统框架结构​
​Image​​
由上图可以看出,应用性能监控整体采用了三层架构。​
  • 应用探针:集成Trace、Log、Metrics SDK通过IPC(Inter Process Communication,即进程间通讯)和本机Agent进行通信。​
  • Agent:负责采集宿主机数据和宿主机上容器数据,并且接收应用发送的监控数据,缓存后经过压缩和加密转发到数据中心,同时负责将数据中心的动态配置定时同步给应用。​
  • 数据中心:负责接收数据,清洗存储最终展示给用户,并提供分析和报警功能。​
Java应用功能​
Java应用接入服务端采用无侵入式的插桩方案,以下介绍Java应用接入服务端后支持的功能。​
Trace​
Java应用接入服务端后,JavaAgent可以自动收集Trace信息、自动生成Metric指标。​
目前已经支持的框架请参见支持的框架列表,接入后会自动生成Metrics如下所示:​
​
Metrics​
说明​
Tags​
apminsight.service.trace.called.throughput​
被调用次数​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程ID​
apminsight.service.trace.called.latency.us.​
被调用耗时​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程ID​
apminsight.service.trace.call.throughput​
调用其他服务次数​
service:服务名​
resource:接口名​
status:返回码​
instance_id:进程ID​
call_service:调用服务名​
call_resource:调用接口名​
db.slow_query:是否是慢SQL​
apminsight.service.trace.call.latency.us.​
调用其他服务耗时​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程ID​
call_service:调用服务名​
call_resource:调用接口名​
db.slow_query:是否是慢SQL​
apminsight.service.performance.cpu.core​
服务CPU使用​
service:服务名​
apminsight.service.performance.cpu_limit.core​
服务CPU限制​
service:服务名​
apminsight.service.performance.rss.mb​
服务占用内存​
service:服务名​
apminsight.service.performance.memory_limit.mb​
服务内存限制​
service:服务名​
​
Log​
Java应用接入服务端后可以实现调用链检索、日志检索功能,目前针对如下框架做了集成:​
  • Logback​
  • log4j2​
Metrics​
Java应用接入服务端后支持Metrics打点功能,详情请参见apminsight-server-sdk-java。​
JVM监控​
Java应用接入服务端后支持JVM相关监控,主要包括以下指标:​
​
类型​
Metrics​
说明​
单位​
堆内存​
jvm.init_heap​
JVM初始堆内存​
Byte​
​
jvm.used_heap​
JVM已使用堆内存​
Byte​
​
jvm.max_heap​
JVM最大堆内存​
Byte​
​
jvm.committed_heap​
JVM已提交堆内存​
Byte​
非堆内存​
jvm.init_noheap​
JVM初始非堆内存​
Byte​
​
jvm.used_noheap​
JVM已使用非堆内存​
Byte​
​
jvm.max_noheap​
JVM最大非堆内存​
Byte​
​
jvm.committed_noheap​
JVM已提交非堆内存​
Byte​
内存池-NewGen​
vm.init_newgen​
JVM内存池-初始NewGen​
Byte​
​
jvm.max_newgen​
JVM内存池-最大NewGen​
Byte​
​
jvm.used_newgen​
JVM内存池-已使用NewGen​
Byte​
​
jvm.committed_newgen​
JVM内存池-已提交NewGen​
Byte​
内存池-OldGen​
jvm.init_oldgen​
JVM内存池-初始OldGen​
Byte​
​
jvm.max_oldgen​
JVM内存池-最大OldGen​
Byte​
​
jvm.used_oldgen​
JVM内存池-已使用OldGen​
Byte​
​
jvm.committed_oldgen​
JVM内存池-已提交OldGen​
Byte​
内存池-CodeCache​
jvm.init_code_cache​
JVM内存池-初始CodeCache​
Byte​
​
jvm.max_code_cache​
JVM内存池-最大CodeCache​
Byte​
​
jvm.used_code_cache​
JVM内存池-已使用CodeCache​
Byte​
​
jvm.committed_code_cache​
JVM内存池-已提交CodeCache​
Byte​
内存池-Survivor​
jvm.init_survivor​
JVM内存池-初始Survivor​
Byte​
​
jvm.max_survivor​
JVM内存池-最大Survivor​
Byte​
​
jvm.used_survivor​
JVM内存池-已使用Survivor​
Byte​
​
jvm.committed_survivor​
JVM内存池-已提交Survivor​
Byte​
内存池-MetaSpace​
jvm.init_meta_space​
JVM内存池-初始MetaSpace​
Byte​
​
jvm.max_meta_space​
JVM内存池-最大MetaSpace​
Byte​
​
jvm.used_meta_space​
JVM内存池-已使用MetaSpace​
Byte​
​
vm.committed_meta_space​
JVM内存池-已提交MetaSpace​
Byte​
内存池-PermGen​
jvm.init_perm_gen​
JVM内存池-初始PermGen​
Byte​
​
jvm.max_perm_gen​
JVM内存池-最大PermGen​
Byte​
​
jvm.used_perm_gen​
JVM内存池-已使用PermGen​
Byte​
​
jvm.committed_perm_gen​
JVM内存池-已提交PermGen​
Byte​
类加载​
jvm.loaded_class_count​
JVM当前加载类数量​
count​
​
jvm.total_unloaded_class_count​
JVM总计已卸载类数量​
count​
​
vm.total_loaded_class_count​
JVM总计加载类数量​
count​
程数​
jvm.live_count​
JVM存活线程数​
count​
​
jvm.daemon_count​
JVM守护线程数​
count​
​
jvm.peak_count​
JVM峰值线程数​
count​
​
jvm.runnable_state_thread_count​
JVM可运行线程数​
count​
​
jvm.blocked_state_thread_count​
JVM阻塞线程数​
count​
​
vm.waiting_state_thread_count​
JVM等待线程数​
count​
​
vm.timed_waiting_state_thread_count​
JVM定时等待线程数​
count​
GC-次数​
jvm.gc_count_old​
JVM GC次数-OldGen​
count​
​
jvm.gc_count_new​
JVM GC次数-NewGen​
count​
GC-时间​
jvm.gc_time_old​
JVM GC时间-OldGen​
ms​
​
jvm.gc_time_new​
JVM GC时间-NewGen​
ms​
​
自定义插桩​
Java应用接入服务端后支持自定义代码监控的插桩。在平台上配置全局维度、服务维度的类名和方法名,即可完成对相关方法的插桩,插桩结果会随Trace链路一起上报并查询。​
支持的框架列表​
​
框架/组件​
Maven​
版本​
tomcat​
org.apache.tomcat.embed:tomcat-embed-core​
7.x~8.x​
mysql​
mysql:mysql-connector-java​
5.x~8.x​
oracle​
com.oracle:ojdbc14​
10.x及以上版本​
redis​
redis.clients:jedis​
2.x及以上版本​
​
io.lettuce:lettuce-core​
5.x及以上版本​
Memcached​
net.spy:spymemcached​
2.x及以上版本​
​
com.googlecode.xmemcached:xmemcached​
2.x及以上版本​
MongoDB​
org.mongodb:mongo-java-driver​
2.x~3.x​
​
org.mongodb:mongodb-driver-sync​
4.x及以上版本​
Kafka​
org.apache.kafka:kafka-clients​
0.11.0.0及以上版本​
RocketMQ​
com.alibaba.rocketmq:rocketmq-client​
3.x及以上版本​
​
org.apache.rocketmq:rocketmq-client​
4.x及以上版本​
RabbitMQ​
com.rabbitmq:amqp-client​
5.x及以上版本​
logback​
ch.qos.logback:logback-classic​
1.x及以上版本​
log4j​
org.apache.logging.log4j:log4j-core​
2.x及以上版本​
HttpClient​
com.squareup.okhttp:okhttp​
2.x及以上版本​
​
com.squareup.okhttp3:okhttp​
3.x~4.x​
​
commons-httpclient:commons-httpclient​
3.x及以上版本​
​
org.apache.httpcomponents:httpclient​
4.x及以上版本​
​
org.apache.httpcomponents.client5:httpclient5​
5.x及以上版本​
​
org.apache.httpcomponents:httpasyncclient​
4.x及以上版本​
​
org.asynchttpclient:async-http-client​
2.x及以上版本​
​
io.github.openfeign:feign-core​
9.x​
​
org.springframework.cloud:spring-cloud-starter-feign​
1.x~2.x​
Rest tempalte​
org.springframework:spring-web​
4.x及以上版本​
Spring​
org.springframework:spring-webmvc​
3.x~5.x​
​
org.springframework:spring-context​
3.x~5.x​
​
Go应用功能​
Go应用接入服务端采用侵入式插桩方案,以下介绍Go应用接入服务端后支持的功能。​
Trace​
Go应用接入服务端无法采用无侵入式的插桩方案,只能通过框架集成实现,目前针对如下框架做了集成:​
  • gin-gonic/gin​
  • gorm.io/gorm.v1​
  • net/http​
具体接入方式请参见trace功能说明。 接入后会自动生成如下Metrics:​
​
Metrics​
说明​
Tags​
apminsight.service.trace.called.throughput​
被调用次数​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程ID​
apminsight.service.trace.called.latency.us.​
被调用耗时​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程ID​
apminsight.service.trace.call.throughput​
调用其他服务次数​
service:服务名​
resource:接口名​
status:返回码​
instance_id:进程​
IDcall_service:调用服务名​
call_resource:调用接口名​
db.slow_query:是否是慢​
SQL​
apminsight.service.trace.call.latency.us.​
调用其他服务耗时​
service:被调用服务名​
resource:被调用接口名​
status:返回码​
instance_id:进程​
IDall_service:调用服务名​
call_resource:调用接口名​
db.slow_query:是否是慢SQL​
apminsight.service.performance.cpu.core​
服务CPU使用​
service:服务名​
apminsight.service.performance.cpu_limit.core​
服务CPU限制​
service:服务名​
apminsight.service.performance.rss.mb​
服务占用内存​
service:服务名​
apminsight.service.performance.memory_limit.mb​
服务内存限制​
service:服务名​
​
Log​
Go应用接入服务端,且与Trace和Log框架适配后,可以实现调用链检索、日志检索功能,目前针对如下框架做了集成:​
  • sirupsen/logrus​
具体接入方式请参见log功能说明。 接入后会自动生成如下Metrics:​
​
Metrics​
说明​
Tags​
apminsight.service.log.throughput​
服务日志条目​
service:服务名​
log_level:日志级别​
​
Metrics​
Go SDK提供接口如下:​
​
// 用于度量QPS等场景​
func EmitCounter(name string, value float64, tags map[string]string) error {​
}​
// 用于度量耗时等需要分析均值、分位值的场景​
func EmitTimer(name string, value float64, tags map[string]string) error {​
}​
// 用于度量绝对值场景​
func EmitGauge(name string, value float64, tags map[string]string) error {​
}​
​
具体接入方式请参见metrics功能说明。​
支持的框架列表​
​
框架​
版本​
gin-gonic/gin​
1.x​
gorm.io/gorm.v1​
1.x​
net/http​
-​
sirupsen/logrus​
1.x​
​
​
最近更新时间:2026.02.10 19:56:22
这个页面对您有帮助吗?
有用
有用
无用
无用