聚光灯
AWSets:简化AWS资源列表
宣布AWSets,这是一个新的开源实用程序,用于抓取AWS帐户并导出其所有资源以进行进一步分析。
ServiceLens通过提供一个“单一的窗格”来统一X-Ray跟踪与指标和警报等CloudWatch功能,从而弥合X-Ray和CloudWatch之间的鸿沟。由此产生的体验绝对让人感觉是X射线风格的,它围绕“服务图”的概念而构建,您可以深入了解该服务图以获取有关效果不佳的请求的更多信息。新的控制台体验使按维度(例如客户端IP或URL)对请求进行切片和切分变得容易,以快速发现和理解您的系统。 -- 阿甘(Forrest Brazeal)
为了有效地理解ServiceLens,我们需要一个多样化的测试用例。以下是提供的存储库,该存储库利用了许多不同的服务以及这些服务之间的交互点。这将成为我们测试ServiceLens必须提供的所有功能的测试平台。
涉及的服务和交互如下。一切都通过AWS无服务器应用程序模型(SAM)进行部署。
您可以 签出仓库, 和 even deploy it easily to your own account with sam build && sam deploy
if you would like!
您会发现我们已经证明了相当广泛的日志记录功能,并且对一些代码进行了测试。
Globals:
Function:
Runtime: nodejs10.x
MemorySize: 256
Timeout: 3
Tracing: Active
Environment:
Variables:
SAMPLE_TABLE: !Ref SampleTable
Api:
EndpointConfiguration: REGIONAL
TracingEnabled: True
MethodSettings:
- LoggingLevel: INFO
MetricsEnabled: False
DataTraceEnabled: True
ResourcePath: "/*"
HttpMethod: "*"
const AWSXRay = require('aws-xray-sdk');
// Create a DocumentClient that represents the query to add an item
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({
service: new AWS.DynamoDB()
});
AWSXRay.captureAWSClient(docClient.service);
仅用这几样东西,就可以在ServiceLens中打开相当多的功能。
首先,我们得到一个“ ServiceMap”,可以用不同的方式对其进行过滤。对于我们的“列出”端点,这就是它的样子。
查看我们的请求图。您能了解系统中可能存在错误的地方吗?
因此,我们迅速发现存在问题,让我们看看是否可以找出问题所在。
Yep. We found that error saw it was a POST
request from API Gateway.
The body was {"id": 1, "key2":"value2"}
和 our error was One or more parameter values were invalid: Type mismatch for key id expected: S actual: N
. Oops! Our id
was supposed be a string.
轻松修复!
让我们假装我们只是获得了巨大的流量高峰。我们如何才能快速了解其起源?
让我们玩一下跟踪屏幕。
好了,有人(我)决定用ApacheBench猛击我们的服务,并产生了94%的流量。我们可以看到其他所有人的行为正常。
如果需要,我们可以深入研究特定IP或用户代理的具体工作,通过响应代码或URL进行过滤,等等。一旦获得了有趣的跟踪信息,我们便可以自由地对其进行详细调查以了解呼叫。呼吁演员们在做什么。
借助X-Ray以及扩展的ServiceLens,您可以根据预先投资的价值获得价值。您的通话越仪表化,越多 注解 和 元数据 添加到X射线中,您将能够提取更多的价值。
我认为ServiceLens是我们在本机AWS工具中看到的最大可观察性飞跃之一。