服务
关于
CloudProse博客
开发人员经验

ServiceLens:视觉概述

通过Cloud Native视角查看您的架构。
贾里德·崔特(Jared Short Trek)
贾里德·肖特(Jared Short) | 2019年12月3日

ServiceLens通过提供一个“单一的窗格”来统一X-Ray跟踪与指标和警报等CloudWatch功能,从而弥合X-Ray和CloudWatch之间的鸿沟。由此产生的体验绝对让人感觉是X射线风格的,它围绕“服务图”的概念而构建,您可以深入了解该服务图以获取有关效果不佳的请求的更多信息。新的控制台体验使按维度(例如客户端IP或URL)对请求进行切片和切分变得容易,以快速发现和理解您的系统。 -- 阿甘(Forrest Brazeal)

准备我们的测试用例

为了有效地理解ServiceLens,我们需要一个多样化的测试用例。以下是提供的存储库,该存储库利用了许多不同的服务以及这些服务之间的交互点。这将成为我们测试ServiceLens必须提供的所有功能的测试平台。

涉及的服务和交互如下。一切都通过AWS无服务器应用程序模型(SAM)进行部署。

  • AWS Lambda
  • 亚马逊DynamoDB
  • Amazon API网关
  • X射线

您可以 签出仓库, 和 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工具中看到的最大可观察性飞跃之一。

作者
贾里德·崔特(Jared Short Trek)
贾里德·肖特(Jared Short)