设置数据狗警报的lambda cloudformation自定义资源
cfn-datadog的Python项目详细描述
#自述库是用来做什么的?###
*要通过cloudformation设置datadog监控,它做什么?###
它设置一个lambda函数,该函数与datadog api上的monitors资源通信
lambda通过cloudformation自定义资源调用。此repo
为所有4种监视器类型提供自定义资源类。
自定义资源具有与dd api相同的精确数据结构
###
>
*克隆这个回购协议
~~~~
git-clone-git@github.com.org:nordcloud/cfn datadog.git
~~~~~~~~
>>
*构建lambda包
~~~~~~~~~
chmod+x create-zip.sh&&;/create-zip.sh
~~~~~~~~
>
>
>*将datadog-lambda.zip上传到s3桶
>>
*从datadog-datadog-datadog-lambda.zip中获取api和应用程序密钥
*生成lambda模板
~~~~
python lambda-template.py>;/tmp/lambda.template
~~~~
*如果您还没有设置加密堆栈,现在就这样做(https://bitbucket.org/nordcloud/cfn撸encrypt)
*从“lambda.template”文件创建一个堆栈
*lambda现在已经设置好,可以使用了。
###
安装cfn_datadog库
~~~~~
pip install cfn encrypt
~~~~~~
从cfn_datadog import导入要使用的自定义资源类(
metricalert、metricalertoptions、composite、compositeoptions、
eventalertonoptions、servicecheck,serviceCheckOptions
)
~~~~
添加一个参数,以便可以引用lambda堆栈
~~~~
datadog_lambda_stackname=t.add_参数(参数(
“datadog lambda stackname”,
type=“string”,
description=“datadog lambda stackname”,
)
~~~~~~~~~~~~~~~~~>
t.add_资源(metricalert(
'alert2',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~名称}-lambdaarn“),
name=“mytesthost上接收的字节”,
message=“some message@myddhandle”,
tags=[“tag1”,“tag2”],
options=metricalertoptions(
notify_no_data=true,
no_data timeframe=50
)
~~~~~~
*要通过cloudformation设置datadog监控,它做什么?###
它设置一个lambda函数,该函数与datadog api上的monitors资源通信
lambda通过cloudformation自定义资源调用。此repo
为所有4种监视器类型提供自定义资源类。
自定义资源具有与dd api相同的精确数据结构
###
>
*克隆这个回购协议
~~~~
git-clone-git@github.com.org:nordcloud/cfn datadog.git
~~~~~~~~
>>
*构建lambda包
~~~~~~~~~
chmod+x create-zip.sh&&;/create-zip.sh
~~~~~~~~
>
>
>*将datadog-lambda.zip上传到s3桶
>>
*从datadog-datadog-datadog-lambda.zip中获取api和应用程序密钥
*生成lambda模板
~~~~
python lambda-template.py>;/tmp/lambda.template
~~~~
*如果您还没有设置加密堆栈,现在就这样做(https://bitbucket.org/nordcloud/cfn撸encrypt)
*从“lambda.template”文件创建一个堆栈
*lambda现在已经设置好,可以使用了。
###
安装cfn_datadog库
~~~~~
pip install cfn encrypt
~~~~~~
从cfn_datadog import导入要使用的自定义资源类(
metricalert、metricalertoptions、composite、compositeoptions、
eventalertonoptions、servicecheck,serviceCheckOptions
)
~~~~
添加一个参数,以便可以引用lambda堆栈
~~~~
datadog_lambda_stackname=t.add_参数(参数(
“datadog lambda stackname”,
type=“string”,
description=“datadog lambda stackname”,
)
~~~~~~~~~~~~~~~~~>
t.add_资源(metricalert(
'alert2',
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~名称}-lambdaarn“),
name=“mytesthost上接收的字节”,
message=“some message@myddhandle”,
tags=[“tag1”,“tag2”],
options=metricalertoptions(
notify_no_data=true,
no_data timeframe=50
)
~~~~~~