这篇文章结束,YARP 的学习就先告一段落了。还有很多省略的章节(比如:中间件、HTTPS和TLS、GRPC等等)。想要了解更多的小伙伴可以自己去官网的文档了解。介绍
当我们构建大型的应用程序或系统时,通常会将其拆分成多个部分,这些部分可能运行在不同的计算机或进程中。这种分布式架构有助于提高系统的可伸缩性和性能,但也增加了故障诊断的难度。分布式跟踪就像是应用程序的侦探工具,可以帮助工程师找出应用程序中的问题,特别是那些可能横跨多个计算机或进程的问题。作为 ASP.NET Core 的组件,YARP 可以像任何其他 Web 应用程序一样轻松集成到不同的跟踪系统中。可以使用以下程序配置分布式跟踪,详情参考:
举个例子,假设我们有一个典型的网页服务,用户发送请求后,这个请求可能经过负载均衡器,然后传递给后端的Web服务器进程,最后可能会涉及数据库的多次查询。使用分布式跟踪,就像我们在调查一桩案件一样,工程师可以追踪整个请求的过程。他们能够分辨每个步骤是否成功,每个步骤花费了多少时间,甚至可以记录每个步骤产生的详细信息。
在内部,YARP 使用 EventSource 来收集来自许多用于处理请求的子系统的遥测事件和指标。3.关键文件
要监听这些指标,需要在 DI(依赖注入)中注册实现每个功能接口的类。以下是该类库提供的功能:
功能概述:
- Proxy(代理):代表整个代理操作,包括成功或失败。
- 事件包括:
- 代理请求的启动和停止时
- 请求/响应主体处理时
- 指标包括:
- 启动的请求数量
- 进行中的请求数量
- 失败的请求数量
- Kestrel:处理传入请求的 Web 服务器。
- 事件包括:
- 请求的启动/停止或失败时
- 指标包括:
- 连接速率 - 每秒打开的连接数
- 总连接数
- TLS 握手次数
- 入站队列长度
- Http:用于向目标服务器发出出站请求的 HttpClient。
- 事件包括:
- 连接创建时
- 请求的启动/停止或失败时
- 标头/内容发送/接收时
- 请求在连接可用时出队列时
- 指标包括:
- 启动的出站请求数量
- 失败的请求数量
- 活动请求数量
- 出站连接数量
- Sockets:涉及连接尝试的事件和有关发送和接收的数据量的指标。
- NameResolution:涉及名称解析尝试的事件和有关目标的 DNS 查询的指标。
- NetSecurity:涉及 SslStream 握手的事件和有关每个协议的握手数量和延迟的指标。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |