ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【AWS】使用X-Ray做AWS云上全链路追踪监控系统

2021-11-30 09:01:21  阅读:219  来源: 互联网

标签:USD 请求 app AWS xray 云上 Ray


功能

AWS X-Ray 是一项服务,收集应用程序所请求的相关数据,并提供用于查看、筛选和获取数据洞察力的工具,以确定问题和发现优化的机会。

对于任何被跟踪的对您应用程序的请求,不仅可以查看请求和响应的详细信息,还可以查看应用程序对下游AWS 资源、微服务、数据库和 HTTP Web API 进行的调用的详细信息。

类似的全链路追踪监控系统还有:

pinpoint

zipkin

skywalking

总结:X-Ray本质上是一个适用于AWS的分布式系统调用链追踪工具,我们选择X-Ray的原因是我们的应用都是原生在AWS云上,能够很好的跟X-Ray实现集成,尤其是对于AWS服务的调用记录,X-Ray原生支持。

缺点:与AWS强绑定,牺牲了使用多云的灵活性。

云架构的设计是一个多因素综合结果,前期的过度设计可能会导致成本和复杂度过高,需要根据公司实际业务需求选择合适的设计方案。

关于X-Ray详见:X-Ray

用途

1,快速定位程序故障原因,降低MTTR

2,自动生成云端架构图,统一视图

3,发现系统中可以优化的点

特点

自动根据请求生成云端结构图

图中:app_1和app_2为我们开发的程序,其他部分结构为自动生成

可以根据此图,快速的定位到接口问题,比如响应慢,返回错误等等

分析接口每一步操作延时

通过跟踪请求,能够详细分析请求中每一步的操作时间。

能够协助排查问题,优化方案。

如何使用

引入X-Ray的SDK即可,对开发改动不大

适用于 .NET 的 AWS X-Ray 开发工具包 - AWS X-Ray

以Python为例

仅需在原始代码部分增加上部分的引入库,以及下面的初始化X-Ray的SDK即可。

from aws_xray_sdk.core import patch_all
patch_all()
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.ext.flask.middleware import XRayMiddleware
<原始代码部分>
xray_recorder.configure(service='app-2')
XRayMiddleware(app, xray_recorder)

性能影响测试

接口性能影响

使用X-Ray

10000次请求,分别测试10次取平均值

使用X-Ray:129.1466495196024

不用X-Ray:121.5133796532948

结论:初步测试,使用X-Ray约有6%的性能损失。

实例影响

CPU占用:0.1%

内存占用:0.0%

结论:几乎没影响

压力测试

按照我们的一个中等项目的访问量:

250000/分钟,100台服务器计算

每台服务器的速率为42QPS

上述测试性能时,单台服务器的QPS为77,未出现任何性能问题。

由此结论:再达到中等项目的量级2倍之前,不会存在性能问题。

AWS技术支持关于性能问题的回复:

监控

目前X-Ray提供的是问题排查工具,未提供告警功能。

可以借助AWS SDK,在发生问题时,获取X-Ray的图表,集成到现有的告警体系中。

费用

以us-west-2区域计算

每月记录的前 100000 条轨迹免费。

超出免费套餐的限额后,每一百万条的记录轨迹费用为 5.00 USD(每条轨迹 0.000005 USD)。

超出免费套餐的限额后,每一百万条的接收轨迹费用为 0.50 USD(每条轨迹 0.000005 USD)。

以中等项目的API访问量为例,计算使用X-Ray的费用:

25万/分钟*60*24h*30d/100万*$0.5*5%采样率=$270/月

即,如开启X-Ray,则增加$270/月的费用

结论:这个费用值得承担。

标签:USD,请求,app,AWS,xray,云上,Ray
来源: https://www.cnblogs.com/zhenglisai/p/15602894.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有