手动管理Datadog是一个非常繁琐且容易出错的过程。
针对Datadog的API编写自动化工具将带来很多好处,但付出的代价是巨大的。
幸运的是,有更好的方法。 更好的方法。 这样可以通过Terraform 管理Datadog ,从而为您免费提供自动化 (以及更多)。
Terraform帮助您管理Datadog的方法
- 在几秒钟内对所有Datadog组件进行可靠的扫描更改。 无论您是一台,十台还是一百台显示器,运行Terraform所花费的时间都约为十秒钟。
- 就像在更改代码时一样,在GitHub拉取请求中跟踪和查看对Datadog设置的更改。 并使用您喜欢的文本编辑工具编辑整个DD设置。
- 模板化警报消息,并在监视器和时间表上重用查询。 例如,为您的显示器提供一个一致的页脚(如下所示,显示代码中的方式),其中包括指向Datadog仪表板和Kibana日志的链接,您的值班人员可以迅速解决这些问题。
- 在几秒钟内为所有监视器和时间表设置一个新的Datadog帐户以适应新的环境。 例如,您开始使用具有唯一帐户的Datadog作为开发人员,然后为产品创建一个单独的帐户并需要对其进行配置。
您如何使用Terraform?
您使用HCL (Hashicorp的配置语言)编写配置。 您将描述所需的组件,例如“我想要一个名为disk_usage的DD监视器,用于度量system.disk.in_use,在85%或更高级别时发出警报”。 然后,TF找出并运行您的DD帐户所需的任何更改,以达到您所描述的所需状态。
虽然HCL是一种声明性语言,但它是动态的,提供诸如变量之类的功能; 计数 ; 条件; 列表和地图等类型; 内置函数,例如format(用于格式化字符串,join(连接)以使用定界符连接列表项和element(元素)以访问列表项); 和模块。 因此,除了配置语言以外,您不需要模板语言来弥补后者的缺点。 例如,当使用由YAML配置的工具时,通常需要使用诸如Jinja2之类的模板语言及其条件和循环来生成有效的YAML。 只需HCL。
您可以使用易于使用的CLI运行Terraform。 每天要运行几个Shell命令:计划并应用。 对TF进行规划,以找出您想要的与DD之间的差异,并规划达到所需状态所需的更改。 并申请在DD上运行这些更改并到达那里。
使用TF管理DD的示例
这是一个示例,显示了如何使用变量创建具有一致的警报消息,查询和阈值的监视器和时间表。 您可以按照此示例repo进行操作 。 克隆它并使用试用版的Datadog帐户运行(如果您没有同名的显示器/时间表,您自己的帐户也可以)。
下面的脚本/要旨中发生了什么:
- 该脚本定义了两个监视器,磁盘使用率和CPU使用率。 他们共享Pagerduty和Slack警报的页脚。 时间表图表中也使用了用于监视器的查询,因此您可以直观地确认监视器是正确的,并对照其警报阈值检查每个指标的历史记录。
- 然后,脚本定义了一个时间表,其中包含两个磁盘使用率和CPU使用率的图形。
- 该脚本还定义了变量,因此在一个地方定义了常量值,而不是使它们乱七八糟,而必须在它们更改时进行挖掘。
您可以阅读Terraform的Datadog提供程序文档以了解API的详细信息。
使用Terraform! 越早越好
Terraform是支付复利的工具。 您首先需要进行少量投资,例如Datadog,Kubernetes和AWS。 尽管可以单独管理它们,但是通过将它们连接在一起,您可以在模块中组成服务的基础结构。 现在,您可以轻松扩展每个环境的所有基础架构-开发,分段,生产(甚至每个IaaS-AWS和GCP)。
Terraform是有史以来最好的操作工具之一。 如果您知道它在那里并且不使用它,则说明您是受虐狂。 即使使用Datadog,它也是一个很大的福音。
–
如果您觉得有用,请点按👏,并随时分享。
谢谢阅读。
From: https://hackernoon.com/managing-datadog-with-terraform-89abe0eb62f5