功能

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/月的费用

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

【AWS】使用X-Ray做AWS云上全链路追踪监控系统的更多相关文章

  1. 容器云平台No.7~kubernetes监控系统prometheus-operator

    简介 prometheus-operator Prometheus:一个非常优秀的监控工具或者说是监控方案.它提供了数据搜集.存储.处理.可视化和告警一套完整的解决方案.作为kubernetes官方推 ...

  2. 持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

    9月11日,在腾讯全球数字生态大会大数据专场上,腾讯云大数据产品副总经理雷小平重磅发布了全链路数据开发平台WeData,同时发布和升级了流计算服务.云数据仓库.ES.企业画像等6款核心产品,进一步优化 ...

  3. Storm实战:在云上搭建大规模实时数据流处理系统(Storm+Kafka)

    在大数据时代,数据规模变得越来越大.由于数据的增长速度和非结构化的特性,常用的软硬件工具已无法在用户可容忍的时间内对数据进行采集.管理和处理.本文主要介绍如何在阿里云上使用Kafka和Storm搭建大 ...

  4. [转帖]重估BAT与华为的云上野心

    重估BAT与华为的云上野心 https://www.leiphone.com/news/201910/Z5aLhckqUjCNJ49o.html 本文作者:王刚 2019-10-11 16:19 导语 ...

  5. 阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力

    近日,阿里云正式发布OSS同城冗余存储产品.这是国内目前提供同城多AZ冗余部署能力覆盖最广的云上对象存储产品,可以实现云存储的同城双活,满足企业级客户对于“发生机房级灾难事件时数据不丢失,业务不中断” ...

  6. 【阿里云新品发布·周刊】第13期:链路追踪 Tracing Analysis 商业化首发

    点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 链路追踪 Tracing Analysis 商业化首发 2019年6月12日15 ...

  7. [Full-stack] 一切皆在云上 - AWS

    一元课程:https://edu.51cto.com/center/course/lesson/index?id=181407[非常好] Based on AWS Lambda. 包含:DevOps ...

  8. AWS系列之一 亚马逊云服务概述

    云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术.每天如果你和互联网打交道,那么或多或少都会和云扯上关系.gmail.github.各种网盘.GAE.heroku等 ...

  9. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

随机推荐

  1. 实现前后端分离,最好的方案就是SPA(Single Page Application)

    从通常意义来讲,说到必须,就是指最佳实践上,实现前后端分离,最好的方案就是SPA.所以才会有 前后端分离=SPA 的近似,忽视了其中的差别.但是,既然有疑问了,我们就来看一下,为什么SPA是实现前后端 ...

  2. Go语言核心36讲(Go语言进阶技术二)--学习笔记

    08 | container包中的那些容器 我们在上次讨论了数组和切片,当我们提到数组的时候,往往会想起链表.那么 Go 语言的链表是什么样的呢? Go 语言的链表实现在标准库的container/l ...

  3. 浅尝装饰器-@staticmethod 和@classmethod

    [写在前面] 本帖归属于装饰器单元的学习,可以点击关键词'装饰器'查看其他博文讲解 [正文部分] 说到装饰器一开始我觉得很陌生,看了一下别人的博客讲解,原来以前学习遇到的静态方法@staticmeth ...

  4. 关于takin-data,你想知道的都在这里(二)trace日志篇

    相信大家在使用takin的过程中都见到过压测过程中实时展示的请求流量明细和请求详情了吧,像这样: 还有这样: 这样的请求流量明细和调用链详情是怎么实现的呢,今天就带大家探究下. 在前面的启动命令篇(h ...

  5. 易维巡APP技术支持

    亲爱的用户 如果您在使用我们的产品时遇到任何问题,请随时与我们联系,我们将全力全意为您解决! 请发邮件与我们联系,我们将24小时为您服务! 电话:18251927768 邮箱地址:xshm999@16 ...

  6. 2020年OO助教工作总结

    随着这学期课程的落幕,我一学期的OO助教工作也宣告结束.这学期我的工作主要在系统组,和OO后台的数据库打交道. 作业查重 我几乎每周都会做的例行工作,是对每周的homework进行查重管理.由于使用了 ...

  7. 力扣 - 剑指 Offer 57. 和为s的两个数字

    题目 剑指 Offer 57. 和为s的两个数字 思路1(哈希表) 这题首先想到的是使用两个for遍历,查找是哪两个相加等于target,但是时间复杂度确实\(O(N^2)\),时间复杂度太高,因此我 ...

  8. Redis核心原理与实践--Redis启动过程源码分析

    Redis服务器负责接收处理用户请求,为用户提供服务. Redis服务器的启动命令格式如下: redis-server [ configfile ] [ options ] configfile参数指 ...

  9. Noip模拟43 2021.8.18

    T1 地一体 可以树形$dp$,但考场没写出来,只打了没正确性的贪心水了$30$ 然后讲题的时候B哥讲了如何正确的贪心,喜出望外的学习了一下 不难发现 每次士兵都会直接冲到叶子节点 从深的点再返回到另 ...

  10. Noip模拟33垫底反思 2021.8.8

    T1 Hunter 考场上没写$%p$挂了25分.也是很牛皮,以后打完过了样例一定要检查 因为样例太小了......很容易忘记%%%% 正解随便手模就出来了. 1 #include<bits/s ...