将aws cloudwatch度量值推送到graphite的助手

cloudwatch-to-graphite的Python项目详细描述


https://travis-ci.org/crccheck/cloudwatch-to-graphite.svg

cloudwatch to graphite(leadbutt)是一个小型实用程序,可以从 云表到石墨。

安装

使用pip安装:

pip install cloudwatch-to-graphite

配置boto

cloudwatch to graphite使用boto,因此请确保遵循它的configuration instructions。最简单的方法是设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量。

用法

配置文件

如果您有一个简单的设置,最简单的方法是设置 配置名称您可以复制包含的config.yaml.example。然后运行:

leadbutt

如果要在多个配置之间切换,可以指定 自定义配置文件:

leadbutt --config-file=production.yaml -n 20

您甚至可以动态生成配置,并通过设置stdin将其发送到 “-”的配置文件:

generate_config_from_inventory | leadbutt --config-file=-

有一个助手可以生成名为plumbum的配置文件。像这样使用:

plumbum [-r REGION] [-f FILTER] [--token TOKEN] template namespace

namespace是相关资源的cloudwatch命名空间;例如AWS/RDS。 模板是Jinja2模板。您可以添加任意替换令牌,例如{{ replace_me }},然后 通过--token在cli上传递值。例如,如果您拨打电话:

plumbum --token replace_me='hello, world' sample_templates/rds.yml.j2 AWS/RDS

您将得到模板空间中{{ replace_me }}的所有实例替换为hello, world

过滤器

您可以将简单的key=value过滤器传递到plumbum;请注意限制:

  • 过滤器运行在aws api返回的任何内容上;如果有很多任何类型的对象,则api请求需要一段时间。
  • 它们只对api返回的对象属性和标记起作用。例如,可以标记rds和elb对象,但由于获取标记是每个对象的子请求,plumbum不执行这些操作,因此只能对对象属性进行筛选。

示例:plumbum -fName=my-dev-instance sample_templates/ec2.yml.j2 ec2

向Graphite发送数据

如果graphite服务器位于graphite.local,则可以通过链接发送度量 使用Netcat:

leadbutt | nc -q0 graphite.local 2003

或者如果要使用udp:

leadbutt | nc -uw0 graphite.local 2003

如果需要为托管Graphite提供程序命名度量,可以 提供自定义格式化程序,但最简单的方法是运行输出 通过awk:

leadbutt | \
  awk -v namespace="$HOSTEDGRAPHITE_APIKEY" '{print namespace"."$0}' | \
  nc -uw0 my-graphite-provider.xxx 2003

自定义Graphite度量名称

设置Formatter选项以设置用于生成石墨的模板 指标名称。我不确定默认值是多少,所以我复制了 cloudwatch2graphite的。下面是它的外观:

cloudwatch.%(Namespace)s.%(dimension)s.%(MetricName)s.%(statistic)s.%(Unit)s

基于标题的变量直接来自yaml配置,而小写 导出变量:

  • statistic–自Statistics以来的当前统计可以是列表
  • dimension–维度值,例如“i-r0b0t”或“我的负载平衡器”

格式字符串是python的%-style

配置yaml

在yaml配置文件中提取哪些度量。看这个例子 config.yaml.example了解您可以做什么。

开发

见::Contributing

现有技术

CloudWatch to Graphite的灵感来源于Edasque的cloudwatch2graphite。我是 想扩展它,但我想使用boto

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

推荐PyPI第三方库


热门话题
文件名的java正则表达式限制名称大小和文件扩展名   Mac上的java Android SDK:jspawnhelper意外退出   java SQL Server 2000到Oracle 12c重音字符   在Java中快速比较大数据集中的值和小数据集中的值   java在代码中的许多地方保留对对象的引用   Java规范中私有内部类的jvm访问标志与反射API不一致?   比较2个int数组中匹配的数字   java Apache Commons数学简化回归:get prediction stderr   安卓 Java SDK管理器因命令行输出中的“flashplayerplugin”而崩溃   JavaSQLite:关闭DB时必须关闭游标吗?   泛型Java设计抽象类声明示例说明   java应用程序在添加片段时崩溃   如何在java中使用注释为字段加载值