Azure Application Insights中Operations与Dependencies的区别及划分标准
Azure Application Insights 中 Operations 与 Dependencies 的划分判定标准
两个板块的核心划分边界,是站在当前接入监控的应用自身视角,按遥测数据在调用链路里的角色区分,具体判定规则如下:
Operations(操作)判定规则
Operations是应用对外承接业务动作的端到端独立工作单元,是整条调用链路的根节点,符合这些特征的监控项会归入该板块:
- 由外部触发启动,当前应用是逻辑执行的责任主体:常见的包括用户/上游服务发来的HTTP请求、消息队列触发的消费任务、定时跑的后台作业、前端页面加载、自定义标记的全链路业务操作等,这类条目在遥测里通常是
request类型。 - 它是关联所有相关遥测的锚点:操作执行过程中打印的日志、抛出的异常、埋点的自定义事件、发起的出站调用,都会通过操作ID绑定到对应条目下。它的成功/失败状态、总耗时,直接代表对应业务动作的最终交付结果。
- 举个实际例子:用户调用你的
/api/pay支付接口,从服务收到请求开始,到返回支付结果响应结束,这整个执行过程就是一个独立的Operation。
Dependencies(依赖项)判定规则
Dependencies是应用执行Operation的过程中,主动向外部组件/服务发起的出站调用,是调用链路里的子节点,符合这些特征的监控项会归入该板块:
- 执行主体不是当前接入监控的应用:当前应用只是调用方,必须等外部组件返回结果才能往下执行逻辑,常见的包括数据库/缓存查询、第三方HTTP接口调用、对象存储/消息队列访问、其他内部微服务调用等,这类条目在遥测里通常是
dependency类型。 - 它一定从属于某一个Operation,不会作为链路根节点单独存在:依赖调用失败不一定导致整个操作失败——比如缓存查不到降级读数据库,接口照样能正常返回。它的耗时只是整个Operation总耗时的组成部分。
- 还是拿支付接口举例:接口执行时查Redis拿用户余额、写MySQL存支付流水、调微信支付接口统一下单,这三个出站调用,都会被记录在Dependencies板块下。
一句话快速区分:别人找你办的事,整个办事过程归Operations;你办事中途找别人搭手的单次调用,归Dependencies。
内容的提问来源于stack exchange,提问作者Pine Code
相关产品推荐
相关产品推荐

