You need to enable JavaScript to run this app.
导航

服务监控

最近更新时间2023.04.27 17:20:51

首次发布时间2021.12.08 10:38:14

服务监控整合了Trace、Metrics、日志、基础监控等和服务有关联的信息,提供了服务列表、全局服务拓扑、服务总览、进程分析等便捷的监控能力。

前提条件

服务指标和链路追踪功能需要应用接入Trace能力。具体请参见应用接入

全局服务拓扑

全局拓扑可以帮助您快速梳理整体服务架构、上下游调用关系,并且可以实时看到各个服务间调用的成功率,快速发现问题服务。
图片
服务拓扑页面说明:

  • 服务拓扑默认展示树状图,您可以根据需求切换为星状图。
    • 树状图:展示层级的关系,更清晰的查看服务之间的调用顺序和链路。
    • 星状图:展示分组的关系,更直观的了解有几条服务链路。
  • 服务用点
    • 点的大小:服务被调用次数关联,次数越多越大。
    • 点的颜色:服务成功率关联,根据用户在配置中配置的阈值,分别展示为:
      • 绿色:满意
      • 黄色:一般
      • 红色:较差
  • 调用关系用线
    • 红色(较差):用于标记失败率高于50%的调用
  • 单击服务会弹出服务调用QPS、错误率、延迟等核心指标,单击详情进入服务详情页面查看服务具体情况。

服务列表

图片

  • 接入监控的服务,启动后会自动添加到服务列表,也可以在服务启动前手动创建服务信息。
  • 列表展示服务名称、服务类型、运行状态、错误率、QPS、延时、CPU使用率、内存使用率、最近查看时间等信息。所有指标均支持排序。
  • 支持根据服务名称进行关键字搜索。
  • 支持订阅、配置和删除服务。通过配置服务,可以修改Trace采样率、配置采集内容(是否采集请求参数、是否采集请求返回值、对象解析深度)、添加自定义指标等。

服务详情

服务详情页面涉及的指标说明:

指标名

指标

说明

单位

调用下游请求数

apminsight.service.trace.call.throughput

服务对下游服务的调用次数。

-

调用下游平均延时

apminsight.service.trace.call.latency.us.avg

服务调用下游服务延时的平均值。

μs

QPS

apminsight.service.trace.called.throughput

服务的每秒被调用次数。

/s

平均延时

apminsight.service.trace.called.latency.us.avg

服务被调用的延时平均值。

μs

错误日志数

apminsight.service.log.throughput

服务产生的错误日志数。错误日志指日志级别为"错误"的日志,错误日志对应的Level关键字可在参数配置 > 错误日志配置中修改。

-

CPU使用量

apminsight.service.performance.cpu.core

服务使用的CPU核心数。

-

调用下游错误数

apminsight.service.trace.call.throughput

服务调用下游服务的错误次数。

-

错误数

apminsight.service.trace.called.throughput

服务被调用时的错误次数。

-

调用下游延时pct99

apminsight.service.trace.call.latency.us.pct99

服务调用下游服务延时的PCT99。

μs

延时pct50

apminsight.service.trace.called.latency.us.pct50

服务被调用的延时PCT50。

μs

延时pct90

apminsight.service.trace.called.latency.us.pct90

服务被调用的延时PCT90。

μs

延时pct99

apminsight.service.trace.called.latency.us.pct99

服务被调用的延时PCT99。

μs

每秒错误日志数

apminsight.service.log.throughput

服务产生的每秒错误日志数。错误日志指日志级别为"错误"的日志,错误日志对应的Level关键字可在参数配置 > 错误日志配置中修改。

/s

CPU总量

apminsight.service.performance.cpu_limit.core

服务的CPU核心数限额。

-

内存使用量

apminsight.service.performance.rss.mb

服务的内存使用量。

MiB

每秒错误数

apminsight.service.trace.call.throughput

服务被调用时的每秒错误次数。

/s

服务CPU使用比例

apminsight.service.performance.cpu.ratio

服务CPU使用比例。计算方式为服务使用的CPU核数/CPU总核数。

%

调用下游延时pct50

apminsight.service.trace.call.latency.us.pct50

服务调用下游服务延时的PCT50。

μs

调用下游延时pct90

apminsight.service.trace.call.latency.us.pct90

服务调用下游服务延时的PCT90。

μs

请求数

apminsight.service.trace.called.throughput

服务的被调用次数。

-

内存总量

apminsight.service.performance.memory_limit.mb

服务的内存限额。

MiB

调用下游每秒错误数

apminsight.service.trace.call.throughput

服务调用下游服务的每秒错误次数。

/s

服务内存使用比例

apminsight.service.performance.memory.rss_ratio

服务内存使用比例。计算方式为服务使用的内存大小/内存总大小。

%

调用下游QPS

apminsight.service.trace.call.throughput

服务对下游服务的每秒调用次数。

/s

调用下游错误率

apminsight.service.trace.call.error_ratio

服务调用下游服务的错误率。计算方式为服务被调用时的错误次数/服务被调用次数。

%

错误率

apminsight.service.trace.called.error_ratio

服务被调用时的错误率。计算方式为服务调用下游服务的错误次数/服务对下游服务的调用次数。

%

服务总览

图片
通过服务总览可以快速获取当前服务最关键的监控指标,帮助您确定是否存在调用过多、失败率过高、延迟过高等问题。

  • 调用指标:QPS、请求数、请求/错误数、请求/错误QPS。
  • 错误指标:错误率、错误数、每秒错误数。
  • 耗时指标:响应耗时均值和分位值。
  • 日志指标:错误日志数、每秒错误日志数。
    图片
    除了服务指标外,还包括服务整体性能指标:
  • CPU:服务部署环境整体CPU配额限制和当前使用的CPU核心数目。
  • 内存:服务部署环境整体内存配额限制和当前占用的内存大小。

服务拓扑

图片
通过服务拓扑可以看到服务所有调用全链路的调用情况,包括下游和上游拓扑两种视角,并且提供了对于接口、返回码、耗时的过滤功能。
单击服务会弹出服务的调用QPS、错误率、延迟等核心指标,单击详情进入服务详情页面查看服务具体情况。

进程分析

图片
进程分析统计归属于服务的应用进程信息并进行监控,在进程列表中可以查看当前运行中的进程,并提供了进程所在主机、容器、进程接口调用错误率、进程接口调用平均QPS、进程接口调用延迟PCT90、进程CPU使用率、进程内存使用率等核心指标。

  • 单击主机名和容器名,分别进入主机的基础监控和容器的基础监控。
    图片
  • 单击进程启动时间,进入进程详情,展示基础监控指标、Runtime指标和RED指标。
    图片
  • JVM指标:堆内存、非堆内存、GC次数、GC时间、分区内存、类加载、线程数。
    图片
  • Runtime指标:goroutine数量、GC次数、GC占用CPU比例、单次GC时间分布、cgo调用次数、堆内存、栈内存、非堆内存、两个采样之间的GC耗时、单次GC耗时、HeapAlloc等。
    图片
  • RED指标:请求数、QPS、错误数、错误率、延时avg、延时pct90。
    图片

接口监控

图片
通过接口监控,可以看到服务所有接口列表,并支持在所选时间段内根据QPS、总体错误率、时延PCT90进行排序,并且可以看到所选接口核心指标趋势图。

  • 调用指标:QPS、请求数
  • 错误指标:错误率、错误数、每秒错误数
  • 耗时指标:响应耗时均值和分位值
    单击接口列表中的接口,可以快速下钻到接口调用详情检索页面,同时可以针对耗时进行排序过滤快速定位慢查询,针对状态码进行过滤快速定位错误查询。
    图片
    单击TraceID可以查看Trace详情,并高亮显示所选Span信息。
    图片

上下游调用

图片
通过上下游监控,可以看到服务所有上下游调用服务和接口列表,并展示所选时间段内平均QPS、总体错误率、时延PCT90,并且可以看到所选调用核心指标趋势图。

  • 调用指标:QPS、请求数
  • 错误指标:错误率、错误数、每秒错误数
  • 耗时指标:响应耗时均值和分位值
    单击调用接口和调用服务,可以快速下钻到接口调用详情检索页面。

日志分析

图片
日志分析为服务日志提供了聚类和列表两种分析方式查找相应的日志。通过日志过滤和搜索日志功能,可以更好的查询日志。

运行时监控

针对Java应用服务提供了服务视角的运行时核心指标监控,包括指标:已使用堆内存、已使用非堆内存、已使用堆内存-Top10进程、已使用非堆内存-Top10进程、NewGen Size、NewGen Size Top10进程、OldGen Size、OldGenSize-Top10进程、GC次数、GC时间、类加载数量、线程数量、线程数量Top10进程。
图片
Java线程池的指标说明:

指标名

指标

说明

单位

Java线程池-空闲线程数量

apminsight.service.pool.idle.count

空闲线程数量。由PoolSize-ActiveCount获得。

-

Java线程池-最大线程数

apminsight.service.pool.max.size

线程池允许的最大线程数。

-

Java线程池-等待任务数

apminsight.service.pool.queue.size

线程池中的等待任务队列长度。

-

Java线程池-活跃线程数

apminsight.service.pool.active.count

正在执行任务的线程数量。

-

Java线程池-线程核心数

apminsight.service.pool.core.size

线程核心数。

-

Java线程池-执行任务数

apminsight.service.pool.task.count

线程池运行的任务数数量总和。

-

Java线程池-当前大小

apminsight.service.pool.size

当前线程池中的线程数。

-

JVM的指标说明:

指标名

指标

说明

单位

JVM最大非堆内存

apminsight.service.performance.jvm.max_noheap

JVM最大非堆内存。

Byte

JVM内存池-已使用OldGen

apminsight.service.performance.jvm.used_oldgen

JVM内存池-已使用OldGen。

Byte

JVM内存池-最大MetaSpace

apminsight.service.performance.jvm.max_meta_space

JVM内存池-最大MetaSpace。

Byte

JVM内存池-初始PermGen

apminsight.service.performance.jvm.init_perm_gen

JVM内存池-初始PermGen。

Byte

JVM内存池-已提交PermGen

apminsight.service.performance.jvm.committed_perm_gen

JVM内存池-已提交PermGen。

Byte

JVM峰值线程数

apminsight.service.performance.jvm.peak_count

JVM峰值线程数。

-

JVM总计加载类数量

apminsight.service.performance.jvm.total_loaded_class_count

JVM总计加载类数量。

-

JVM已提交堆内存

apminsight.service.performance.jvm.committed_heap

JVM已提交堆内存。

Byte

JVM内存池-已使用CodeCache

apminsight.service.performance.jvm.used_code_cache

JVM内存池-已使用CodeCache。

Byte

JVM内存池-已提交MetaSpace

apminsight.service.performance.jvm.committed_meta_space

JVM内存池-已提交MetaSpace。

Byte

JVM守护线程数

apminsight.service.performance.jvm.daemon_count

JVM守护线程数。

-

JVM当前加载类数量

apminsight.service.performance.jvm.loaded_class_count

JVM当前加载类数量。

-

JVM GC次数-OldGen

apminsight.service.performance.jvm.gc_count_old

JVM GC次数-OldGen。

-

JVM已使用堆内存

apminsight.service.performance.jvm.used_heap

JVM已使用堆内存。

Byte

JVM内存池-最大NewGen

apminsight.service.performance.jvm.max_newgen

JVM内存池-最大NewGen。

Byte

JVM可运行线程数

apminsight.service.performance.jvm.runnable_state_thread_count

JVM可运行线程数。

-

JVM内存池-初始MetaSpace

apminsight.service.performance.jvm.init_meta_space

JVM内存池-初始MetaSpace。

Byte

JVM GC时间-NewGen

apminsight.service.performance.jvm.gc_time_new

JVM GC时间-NewGen。

ms

JVM初始非堆内存

apminsight.service.performance.jvm.init_noheap

JVM初始非堆内存。

Byte

JVM已提交非堆内存

apminsight.service.performance.jvm.committed_noheap

JVM已提交非堆内存。

Byte

JVM内存池-最大CodeCache

apminsight.service.performance.jvm.max_code_cache

JVM内存池-最大CodeCache。

Byte

JVM内存池-初始NewGen

apminsight.service.performance.jvm.init_newgen

JVM内存池-初始NewGen。

Byte

JVM内存池-已使用NewGen

apminsight.service.performance.jvm.used_newgen

JVM内存池-已使用NewGen。

Byte

JVM内存池-已提交NewGen

apminsight.service.performance.jvm.committed_newgen

JVM内存池-已提交NewGen。

Byte

JVM存活线程数

apminsight.service.performance.jvm.live_count

JVM存活线程数。

-

JVM阻塞线程数

apminsight.service.performance.jvm.blocked_state_thread_count

JVM阻塞线程数。

-

JVM总计已卸载类数量

apminsight.service.performance.jvm.total_unloaded_class_count

JVM总计已卸载类数量。

-

JVM初始堆内存

apminsight.service.performance.jvm.init_heap

JVM初始堆内存。

Byte

JVM内存池-初始CodeCache

apminsight.service.performance.jvm.init_code_cache

JVM内存池-初始CodeCache。

Byte

JVM内存池-最大OldGen

apminsight.service.performance.jvm.max_oldgen

JVM内存池-最大OldGen。

Byte

JVM内存池-已提交Survivor

apminsight.service.performance.jvm.committed_survivor

JVM内存池-已提交Survivor。

Byte

JVM等待线程数

apminsight.service.performance.jvm.waiting_state_thread_count

JVM等待线程数。

-

JVM已使用非堆内存

apminsight.service.performance.jvm.used_noheap

JVM已使用非堆内存。

Byte

JVM内存池-已提交OldGen

apminsight.service.performance.jvm.committed_oldgen

JVM内存池-已提交OldGen。

Byte

JVM内存池-已使用Survivor

apminsight.service.performance.jvm.used_survivor

JVM内存池-已使用Survivor。

Byte

JVM内存池-已使用MetaSpace

apminsight.service.performance.jvm.used_meta_space

JVM内存池-已使用MetaSpace。

Byte

JVM内存池-已使用PermGen

apminsight.service.performance.jvm.used_perm_gen

JVM内存池-已使用PermGen。

Byte

JVM内存池-初始OldGen

apminsight.service.performance.jvm.init_oldgen

JVM内存池-初始OldGen。

Byte

JVM内存池-初始Survivor

apminsight.service.performance.jvm.init_survivor

JVM内存池-初始Survivor。

Byte

JVM内存池-最大Survivor

apminsight.service.performance.jvm.max_survivor

JVM内存池-最大Survivor。

Byte

JVM内存池-最大PermGen

apminsight.service.performance.jvm.max_perm_gen

JVM内存池-最大PermGen。

Byte

JVM GC时间-OldGen

apminsight.service.performance.jvm.gc_time_old

JVM GC时间-OldGen。

ms

JVM GC次数-NewGen

apminsight.service.performance.jvm.gc_count_new

JVM GC次数-NewGen。

-

JVM最大堆内存

apminsight.service.performance.jvm.max_heap

JVM最大堆内存。

Byte

JVM内存池-最大CodeCache

apminsight.service.performance.jvm.committed_code_cache

JVM内存池-最大CodeCache。

Byte

JVM定时等待线程数

apminsight.service.performance.jvm.timed_waiting_state_thread_count

JVM定时等待线程数。

-

针对Go应用服务提供了指标:goRoutine数量、goRoutine数量-Top10进程、GC次数、GC次数-Top10进程、GC总耗时、GC总耗时-Top10进程、单次GC耗时-MAX/AVG/MIN、单次耗时-PCT、cgo调用次数、cgo调用次数-Top10进程、HeapAlloc、HeapAlloc-Top10进程、HeapSys、HeapSys-Top10进程、HeapIdle、HeapIdle-Top10进程、HeapInuse、HeapInuse-Top10进程、HeapReleased、HeapReleased-Top10进程、HeapObject、HeapObject-Top10进程。
图片
goruntime的指标说明:

指标名

指标

说明

单位

goroutine数量

apminsight.runtime.go.routine.num

goroutine的数量。

-

cgo调用次数

apminsight.runtime.go.cgo.call_count

调用cgo的次数。

-

GC次数

apminsight.runtime.go.gc.count

GC次数。

-

两次采样之间的GC耗时

apminsight.runtime.go.gc.cost_total.us

两次采样之间一次或多次GC占用的时间之和,采样间隔30s。

μs

单次GC耗时

apminsight.runtime.go.gc.cost_distribute.us

单次GC的耗时。

μs

HeapAlloc

apminsight.runtime.go.mem_stats.heap_alloc

分配在Heap上的对象占用的内存大小。

Byte

HeapSys

apminsight.runtime.go.mem_stats.heap_sys

Heap的虚拟内存空间大小。

Byte

HeapIdle

apminsight.runtime.go.mem_stats.heap_idle

空闲的heap spans的内存大小。空闲span是指span中不包含对象。

Byte

HeapInuse

apminsight.runtime.go.mem_stats.heap_inuse

使用中的heap spans的内存大小。使用中的span是指span其中至少包含有一个对象。

Byte

HeapReleased

apminsight.runtime.go.mem_stats.heap_released

归还给操作系统的物理内存大小。

Byte

HeapObjets

apminsight.runtime.go.mem_stats.heap_objects

Heap中的对象个数。

-

runtime指针查找数

apminsight.runtime.go.mem_stats.lookups.count

runtime指针查找数。

-

StackInuse

apminsight.runtime.go.mem_stats.stack_inuse

使用中的stack spans的内存大小。使用中的span是指span其中至少包含有一个对象。

Byte

StackSys

apminsight.runtime.go.mem_stats.stack_sys

stack从OS获得的内存大小。

Byte

MSpanInuse

apminsight.runtime.go.mem_stats.m_span_inuse

使用中的MSpans的内存大小。MSpan存放runtime与内存管理相关的对象。

Byte

MSpanSys

apminsight.runtime.go.mem_stats.m_span_sys

MSpans从OS获得的内存大小。MSpan存放runtime与内存管理相关的对象。

Byte

MCacheInuse

apminsight.runtime.go.mem_stats.m_cache_inuse

使用中的MCache的内存大小。MCache存放runtime与内存管理相关的对象。

Byte

MCacheSys

apminsight.runtime.go.mem_stats.m_cache_sys

MCache从OS获得的内存大小。MCache存放runtime与内存管理相关的对象。

Byte

BuckHashSys

apminsight.runtime.go.mem_stats.buck_hash_sys

BucketHash占用的内存大小。BucketHash存放profiling相关的数据结构。

Byte

GcSys

apminsight.runtime.go.mem_stats.gc_sys

GC相关的元数据占用的内存大小。

Byte

OtherSys

apminsight.runtime.go.mem_stats.other_sys

其他runtime内部数据结构占用的内存大小。

Byte

GC后期望的堆大小

apminsight.runtime.go.mem_stats.next_gc

GC后期望的heap大小。

Byte

强制GC数量

apminsight.runtime.go.mem_stats.forced_gc.num

应用程序调用GC方法发起的GC次数。

-

GC占用的CPU比例

apminsight.runtime.go.mem_stats.gc_cpu_fraction

从程序启动至今,GC使用的CPU时间占比。

%

存活的对象数

apminsight.runtime.go.mem_stats.live_objects

heap中存活的对象数。

-

HeapRetained

apminsight.runtime.go.mem_stats.heap_retained

可以归还给OS但是runtime保留的内存大小,再次分配内存时可以避免从OS申请。计算方式为HeapIdle-HeapReleased。

Byte

HeapFragment

apminsight.runtime.go.mem_stats.heap_fragment

内存碎片大小,计算方式为HeapInuse-HeapAlloc。

Byte

错误分析

图片
通过错误分析,可以直观的看出系统中存在的各类型的接口错误及其在各维度的分布,同时也可以查看系统中存在的各类异常,并且数据与Trace链路数据打通,便于查看错误和异常的上下文,分析、解决系统中存在的接口错误和异常。

SQL分析

图片
SQL分析展示该服务产生的所有SQL查询,可以查看SQL请求趋势,去掉参数后的SQLPattern列表,以及每种pattern的上报量、失败占比和平均响应耗时。
单击SQLPattern可以查看所有符合该pattern的经过脱敏的原始sql。

性能分析

图片
性能分析页面可以查看任务采集状态、上报数据/最后上报时间、采集范围/内容、采集方式、任务创建时间等。
单击查看详情,可以查看采集任务的详细情况,包括火焰图、调用树等。
单击修改配置,可以修改采集任务,包括任务名称、采集内容、采集方式等。