用于收集sla数据的连续测试运行器

sla-runner的Python项目详细描述


#sla monitor worker

这是sla monitor/reporter的测试运行器部分。它重复执行测试(或任何您想要的命令),并将成功/失败发布到sns主题以进行外部处理(例如,使用lambda写入自定义的cloudwatch度量),还可以选择将日志上载到s3存储桶。


安装

我可以在AWS的生产环境中使用。这通过使用实际角色运行来模拟该环境。

terraform

excute the following in the root folder to run terraform.显然,安装了Terraform。将bucket和table变量设置为远程状态的现有后端资源。

**重要提示:如果要切换帐户(例如dev、stage、prod),请在新环境中运行之前删除.terraform文件夹**

```shell
`pip install iam starter
cd terraform&;&;\
导出aws_env="dev"&;\
导出aws_backend_region="us-east-1"&;\
导出aws_default_region="us-east-1"&;\
导出aws_remote_bucket="billtrust tfstate-$aws_env"&;\
导出aws_remote_table="tfstate_$aws_env"&;\
iam starter \
--配置文件$aws_env \
--命令\
"terraform init \
-后端配置=\"region=$aws_backend_region\"\
-后端配置=\"bucket=$aws_remote_bucket\"\
-后端配置=\"dynamodb_table=$aws_remote_table\"&;\
terraform apply \
--自动批准\
-var\"aws_env=$aws_env\"\
-var\"aws_region=$aws_default_region\"
````


在实际的ECS场景中,可以通过PYPI在服务容器中安装sla runner,并将"--image"设置为包含测试的服务容器的映像。

``bash
docker build-t sla monitor/sla runner:latest.


export aws_env="dev"
iam docker run\
-e slarunner_command="/bin/bash/src/test scripts/run tests.sh"\
-e slarunner_service=example service\
-e slarunner_groups="dev team,critical"\
-e slarunner_delay=30\
-e slarunner_snstopicname="sla monitor result published-$aws_env"\
-e slarunner_s3bucketname="sla监视日志-$aws_env"\
--完整入口点"sla runner"\
--区域US-East-1\
--配置文件$aws_env\
--角色sla monitor runner role-$aws_env\
--映像sla monitor/sla runner:latest
```

在ECS中,将这些添加为环境变量在任务定义或通过ssm starter从ssm加载中:

```
--完整入口点"ssm starter--ssm name sla runner--command‘sla runner’"
```



很直截了当。如果有中断,运行程序将尝试在退出前优雅地完成命令。


这将用作S3上载的前缀,并将在JSON事件中作为"服务"传递给SNS。



这将在json事件中作为"groups"作为列表传递给sns,如果多个服务是同一组件的一部分,则它将提供辅助统计信息。

它在命令之间以秒为单位运行。


它将作为json对象发布。例如,上面的命令将生成以下内容:

``json
{
"service":"example service",
"group":["dev team","critical"],
"succeeded":true,
"timestamp":"1574515200",
"testExecutionSecs":"914"
}
````

"s3 bucket"-name

$slarunner_s3bucketname

这是一个可选参数。对象将被命名为时间戳,后跟结果,以便按结果进行搜索,并且将以服务名称作为前缀。例如"example service/1574514000u success"


\帽子会写在桶上。它不会发布到sns或将对象写入s3。仅用于测试目的。

s-east-1\
--主机源路径。\
--容器源路径/src\
--shell
```

&;\
docker run--rm-it--entrypoint使sla runner发布

在提示下,输入pypi.org repo的用户名和密码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
检查java中两个链表之间的子集   java仅在findViewById()下显示一个ImageButton   在Java Graphics2D中,文本如何在矩形上居中对齐?   java需要一个用于电子表格计算器的正则表达式   ^java中的运算符   java通过一些属性配置文件根据环境动态更改wsdl端点URL   java Ebean/Play框架关系未更新   集合如何将POJO列表转换为Java流中的映射<String,List>?   java为什么JFrame不显示整个图像?   java如何将调用静态导入的泛型方法的结果传递给另一个方法?   迭代器或foreach中的java延迟   需要java socket logback日志接收器   在Java中初始化Map的静态数组   雅加达邮件Java MimeMail:解码后获得额外字符   java为什么这个xmldom解析器不能正确解析rtept、name和cmt标记?   java如何刷新Log4J2中的异步记录器(带中断器)   java使用构建插件pom生成的jar。xml作为同一pom中的依赖项   java基于位置的序列ADT如何在O(1)时间内插入元素?   java ORM实体与DDD实体   Java对象分配