当我在全公司范围内介绍Datadog时我做了什么


本文是VISITS Advent Calendar 2019的21天文章。

我是@ syogun,VISITS Technologies的基础架构工程师。
今天,我们在全公司范围内介绍了Datadog,所以我想回顾一下我们所做的事情和改进的地方。
从现在开始,我希望它对那些想介绍Datadog的人有所帮助。
我们走吧。

你为什么要介绍它?

因为我想使用它!我是认真的。
我还以为我将工作转给了@ham的工程师,但是
我的印象是,初创公司在选择技术时具有高度的自由度。 (不用说,这是我的个人看法)
当然,我认为有必要说服同事和老板,并准备精打细算直到最后。

具体原因是仅Datadog可以覆盖很大的监视领域。
除了基础结构层之外,还具有诸如外部监视,APM和日志监视之类的功能,并且能够在发生某些事情时对Datadog进行基本调查非常有吸引力。

我做了什么

从这里,我将回顾一下在介绍时所做的事情。

积分

在我们公司,该系统在AWS和GCP等云服务上运行。
仅接触过AWS的服务器工程师尝试使用GCP(第1部分)进行操作
一位仅接触过AWS的服务器工程师尝试使用GCP(第2部分)

使用

Datadog,仅通过设置AWS和GCP的集成设置就可以获取很多指标。
目前,所有集成都是免费的,并且种类繁多,所以我建议您使用。

集成
Datadog集成列表(确实存在.. !!)

有关AWS和GCP的集成方法,请参阅以下文章。
Datadog AWS集成过程
Datadog GCP集成过程

多组织

Datadog具有多组织功能。
在我们公司,我们有多种产品,例如构思图和设计思维测验,并且我们为每个产品创建和运营一个Datadog Organization。
这样,每种产品的工程师都准备好参与他们开发的组织。
スクリーンショット 2019-12-12 14.28.17.png
切换组织时,您需要再次进行身份验证(我是Google Authenticator)有点麻烦。有望提高。

合成物

有一个称为Synthetics的外部监视功能。我们将此综合的执行结果用作SLO的目标值。
有两种类型的合成器,APIテストブラウザテスト

API测试

这是一个简单的外部监视。
您要做的就是设置要监视的URL,位置和条件(包括响应时间,状态代码等)。
条件设置如下。
スクリーンショット 2019-12-12 14.45.06.png
执行结果如下。
您可以检查诸如DNS名称解析时间和TTFB之类的信息。
スクリーンショット 2019-12-13 11.37.54.png

浏览器测试

仅通过记录要浏览器测试的服务的屏幕转换就可以设置浏览器测试。
スクリーンショット 2019-12-12 14.48.34.png
此外,用户信息和密码等帐户信息可以保存在Datadog上,并且浏览器测试可以使用保存的帐户信息进行登录。
浏览器测试比API测试贵一些,因此请注意执行次数。
点击这里查看价格

APM

通过实施APM,我们正在帮助识别应用程序层中仅由基础结构指标和日志无法识别的瓶颈。
スクリーンショット 2019-12-12 15.17.54.png
正如我们的首席技术官@mayah的出现日历中提到的那样,我们定期举办名为Kaizen Week的活动,以集中消除一周的技术债务。
我们的工程师@ kshibata101使用Kaizen Week上的Datadog APM进行了性能调整,并获得了Best KAIZEN Award奖。
APM还可以检查应用程序错误消息,这在进行故障排除时非常有用。
スクリーンショット 2019-12-16 17.14.39.png

请参阅以下文章,了解如何安装APM。
检测您的应用程序

另外,关于APM,包括我在内的我们的成员也发表了有关Qiita的文章。如果您有时间,也请参考。
介绍Datadog APM to Go应用程序。
将Datadog APM引入GAE

基础设施

正如我在

集成中所介绍的那样,您可以获得诸如ALB和RDS之类的指标。
可以根据这些指标灵活设置警报。

货柜

AWS Fargate和GKE已安装在某些环境中,但是Datadog也很有吸引力,因为它在容器监视方面很强大。
对于GKE,您可以通过使用DeaemonSet部署Datadog来获取每个容器的指标,对于Fargate而言,可以使用SideCar方法进行部署来获取每个容器的指标。
スクリーンショット 2019-12-13 12.50.16.png

有关每种安装方法,请参阅以下文章。
如何使用Datadog监视Google Kubernetes Engine
使用Datadog

监视AWS Fargate应用程序

无服务器

仅通过启用集成即可自动获取Lambda等指标。
能够仅通过一个集成设置来获取指标是很有吸引力的。
スクリーンショット 2019-12-13 12.59.44.png
单击此处获取容器和无服务器费用

显示器

托管监视器

警报可以从监视器设置,警报可以从任何信息(指标,日志,事件等)设置。
除了常规的简单阈值监视(例如,CPU使用率达到90%或更高)之外,
能够使用机器学习(例如Anomaly DetectionRorecast Alert)设置阈值也很有吸引力。
スクリーンショット 2019-12-13 11.45.15.png
看起来它可以满足一些需求,例如难以固定阈值并且想要检测与通常情况不同的运动。
该区域是
异常检测
离群值警报
预测警报
它写有详细信息,因此如果您喜欢请参考它。
将来,我可以预见这些技术将被刷光,人类将不再发出警报。

SLO

在介绍Datadog时,我们决定为每种产品确定SLI / SLO,并根据它进行监视。
关于SLI / SLO,我将不对其进行详细描述,因为它与主要主题略有不同,但是

1
2
3
4
Syntheticsによる5分毎のAPI Testが以下の条件を満たすこと
?レスポンスタイム:Response Timeがxxx msで完了すること
?ステータスコード:200を返すこと
?上記条件を正常とみなし、可用率が99.9%以上となること。

我决定在咨询每种产品和PM的工程师时,感觉像

。 (我还在这里摸索)

Datadog具有SLO功能,之所以使用它是因为它可以可视化SLO的实现状态。
您可以通过设置什么是SLI并设置目标利用率(SLO)和SLO目标期限来形象化SLO成就状态。
另外,将发布基于SLO的Error Budget,因此对于发布计划来说似乎很有用。
例如,似乎可能有这样的对话,例如"产品A剩余的错误预算很小,所以现在Sprint将停止发布新功能,而专注于改进任务和故障单"。
スクリーンショット 2019-12-12 14.36.22.png

日志管理

日志管理可以聚合各种日志。
最方便的是易于使用的过滤功能。
如果将日志转换为json,则将在Datadog端进行解析,并且可以根据需要在Datadog端进行解析处理,因此可以灵活地进行处理。
这也很方便,因为您可以从日志中生成自己的指标。
以下是一些用例。

ALB和GCLB日志

您可以使用Log Managemen可视化AWS ALB和GCP GCLB的访问日志。当然,也可以基于此日志设置警报。
スクリーンショット 2019-12-13 13.20.22.png
请注意,对于具有大量访问权限的服务,S3-