【AWS】使用X-Ray做AWS云上全链路追踪监控系统
功能
AWS X-Ray 是一项服务,收集应用程序所请求的相关数据,并提供用于查看、筛选和获取数据洞察力的工具,以确定问题和发现优化的机会。
对于任何被跟踪的对您应用程序的请求,不仅可以查看请求和响应的详细信息,还可以查看应用程序对下游AWS 资源、微服务、数据库和 HTTP Web API 进行的调用的详细信息。
类似的全链路追踪监控系统还有:
总结: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/月的费用
结论:这个费用值得承担。
【AWS】使用X-Ray做AWS云上全链路追踪监控系统的更多相关文章
- 容器云平台No.7~kubernetes监控系统prometheus-operator
简介 prometheus-operator Prometheus:一个非常优秀的监控工具或者说是监控方案.它提供了数据搜集.存储.处理.可视化和告警一套完整的解决方案.作为kubernetes官方推 ...
- 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData
9月11日,在腾讯全球数字生态大会大数据专场上,腾讯云大数据产品副总经理雷小平重磅发布了全链路数据开发平台WeData,同时发布和升级了流计算服务.云数据仓库.ES.企业画像等6款核心产品,进一步优化 ...
- Storm实战:在云上搭建大规模实时数据流处理系统(Storm+Kafka)
在大数据时代,数据规模变得越来越大.由于数据的增长速度和非结构化的特性,常用的软硬件工具已无法在用户可容忍的时间内对数据进行采集.管理和处理.本文主要介绍如何在阿里云上使用Kafka和Storm搭建大 ...
- [转帖]重估BAT与华为的云上野心
重估BAT与华为的云上野心 https://www.leiphone.com/news/201910/Z5aLhckqUjCNJ49o.html 本文作者:王刚 2019-10-11 16:19 导语 ...
- 阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力
近日,阿里云正式发布OSS同城冗余存储产品.这是国内目前提供同城多AZ冗余部署能力覆盖最广的云上对象存储产品,可以实现云存储的同城双活,满足企业级客户对于“发生机房级灾难事件时数据不丢失,业务不中断” ...
- 【阿里云新品发布·周刊】第13期:链路追踪 Tracing Analysis 商业化首发
点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 链路追踪 Tracing Analysis 商业化首发 2019年6月12日15 ...
- [Full-stack] 一切皆在云上 - AWS
一元课程:https://edu.51cto.com/center/course/lesson/index?id=181407[非常好] Based on AWS Lambda. 包含:DevOps ...
- AWS系列之一 亚马逊云服务概述
云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术.每天如果你和互联网打交道,那么或多或少都会和云扯上关系.gmail.github.各种网盘.GAE.heroku等 ...
- 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计
设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...
随机推荐
- Vue3学习(五)之集成HTTP库axios
一.安装axios npm install axios@0.21.0 --save 二.axios的使用 1.在主页中引用axios 在Vue3新增了setup初始化方法,所以我们在这里开始使用并测试 ...
- Nginx安装及核心配置解析
安装 使用yum进行安装 yum install -y nginx 查看nginx的安装位置 whereis nginx 启动测试 nginx 核心配置文件结构 读取Nginx自带的Nginx配置文件 ...
- 7-Zip
7-Zip https://www.7-zip.org/
- 文本域textarea的一个小细节
文本域代码在编写时,最好写在一行上,就像: 如果没写在一行上,如: 那么就会在后续生成的页面上输入的时候就会产生一段空白无法删除: 这是写文本框的时候的一个小细节
- Java泛型背后是什么?
文Java中泛型的应用,让大家更好地理解泛型,以及常说的泛型类型擦除是什么概念,举一个简单的例子,如下: 这里可以看出来在代码编写阶段就已经报错了,不能往string类型的集合中添加int类型的数据. ...
- go-zero 实战之 blog 系统
go-zero 实战项目:blog 本文以 blog 的网站后台为例,着重介绍一下如何使用 go-zero 开发 blog 的用户模块. 本文涉及的所有资料都已上传 github 仓库 kougazh ...
- 【c++ Prime 学习笔记】第4章 表达式
表达式由一个或多个运算对象组成,对表达式求值返回结果. 字面值和变量是最简单的表达式 把运算符和运算对象组合可得到复杂表达式. 4.1 基础 4.1.1 基本概念 一元运算符作用于一个对象,如取地址符 ...
- Scrum Meeting 0602
零.说明 日期:2021-6-2 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 困难 qsy PM&前端 完成后端管理 ...
- BUAA_2020_软件工程_软件案例分析作业
项目 内容 这个作业属于那个课程 班级博客 这个作业的要求在哪里 作业要求 我在这个课程的目标是 学习掌握软件工程的相关知识 这个作业在哪个具体方面帮我实现目标 通过对具体软件案例的分析学习软件工程 ...
- [调试笔记] 晚测5 T1 容易题
众所周知,sbwzx在考试一结束就嚷嚷T1是个sb题.那他为什么调了2小时才调出来呢?快和小编一起看看吧. Sb题:指除了sbwzx别人都能做出来的题 1.CE:震惊!sbwzx竟然连map都不会用, ...