云原生APM如何提供应用的监控数据查询功能

云原生APM(Application Performance Monitoring,应用性能监控)通过以下方式提供应用的监控数据查询功能:
数据采集
云原生APM通过在应用程序中部署代理(Agent)来采集监控数据。这些代理可以收集各种类型的信息,包括:
Spans(范围事件):包含特定代码路径的执行信息,从活动开始到结束进行度量,可以有父子关系。
Transactions(事务事件):特殊的Span,没有父Span,可派生子Span,代表服务中最高级别的工作单元,如HTTP请求或后台作业。
Errors(错误事件):包含原始异常信息或异常时的日志信息。
Metrics(指标事件):自动获取主机级别指标,如CPU和内存指标,以及特定于代理的指标,如JVM指标。
数据传输与处理
采集到的数据会被流式传输到APM Server,在Server端进行验证和处理。处理后的数据可以被存储在数据库中,以便后续查询和分析。
数据查询与分析
用户可以通过APM提供的界面或API进行数据查询和分析。例如,在Kibana中,可以进行以下操作:
应用总览:显示应用的关键指标、上下游依赖组件以及拓扑图。
应用详情:监控应用以及应用各实例的拓扑、请求数、响应时间、慢调用次数、HTTP状态码等信息。
接口调用监控:监控应用下的接口调用详情,包括SQL调用分析、NoSQL调用分析、异常分析、错误分析、链路上下游和调用链查询。
数据库调用监控:了解应用的数据库调用情况,包括概况、SQL调用、异常、调用来源、调用链列表等信息。
NoSQL调用监控:了解应用的NoSQL调用情况,包括概况、NoSQL调用、异常分析、调用链列表等信息。
外部调用监控:监控的外部调用,定位应用外部调用缓慢或出错的问题。
JVM监控:监控重要的JVM指标,包括GC(Garbage Collection)瞬时指标、堆内存指标、非堆内存指标、元空间指标、直接缓冲区指标、JVM线程数等。
线程池和连接池监控:监控具体应用所使用的线程池或连接池的各项指标,包括核心线程数量、当前线程数量、最大线程数量、活跃线程数量、任务队列容量。
主机监控:监控CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包的各项指标。
容器监控:了解应用的Pod情况,包括CPU、物理内存、网络流量、网络数据包等信息。
异常分析:了解应用的异常情况。
错误分析:了解应用的错误情况。
调用链查询:了解应用所有接口的被调用情况,包括产生时间、耗时、状态等信息。
智能洞察:对应用进行定时巡检的智能运维工具,针对巡检后发现的问题,可以给出具体的根因分析和建议,同时支持订阅告警。
事件中心:将云产品所生成的事件数据进行统一管理、存储、分析和展示,当应用使用了相关的产品,对应的事件会自动接入事件中心进行统一的分析展示,方便查看与分析。
调用链查询:通过TraceId精确查询调用链路详细情况,或结合多种条件筛选查询调用链路。
可视化展示
APM工具通常提供直观的可视化界面,将监控数据以图表、图形等形式展示,帮助用户快速理解和分析数据。例如,展示CPU使用率的趋势图、内存使用情况的图表等。
告警与通知
当监控数据达到预设的阈值或出现异常时,APM系统可以触发告警,通知相关人员。例如,通过邮件、短信或即时通讯工具发送告警信息,以便及时处理问题。
Lei
April 25, 2025
技术探讨