没有项目描述
graphitepager的Python项目详细描述
Graphite是一个很好的记录度量的工具,但是它不容易被调用 当指标通过某个阈值时。
石墨寻呼机是一个易于使用的石墨报警工具,将发送 如果度量达到警告或严重级别,则发出通知警报。
要求
- Python2.7+
- 石墨
- redis
- libmagic
安装
使用pip:
来自github:
pip install git+git://github.com/seatgeek/graphitepager.git@0.2.11#egg=graphitepager
来自PYPI:
pip install graphitepager==0.2.11
运行
目前,安装石墨寻呼机最简单的方法是使用Heroku!见 在https://github.com/philipcristiano/graphite-pager-heroku-example的例子。
设置环境变量:
exportGRAPHITE_USER=HTTP-basic username exportGRAPHITE_PASS=HTTP-basic password exportGRAPHITE_URL=HTTPS(hopefully) URL to your Graphite installation exportPAGERDUTY_KEY=Specific PagerDuty application key exportREDIS_URL=redis://localhost:6379/ # REDISTOGO_URL is also supported
在alerts.yml文件中设置警报
运行graphite-pager:
graphite-pager --config alerts.yml
其中文件alerts.yml采用以下格式。
环境变量也可以在顶层的yaml文件中指定。只需将环境变量的大小写改为小写,如下所示:
redis_url:"redis://localhost:6379/"
警报配置
警报的配置由yaml文件处理。这可以用
graphite-pager verfify --config=config.yml
如果它是无效的石墨寻呼机将可能崩溃。
通知
通知程序是与您首选的警报服务进行通信的工具。目前 Graphite寻呼机支持以下通知程序:
- hipchat
- 页面输出
- 按钮
- 松弛度
pagerduty需要将环境中的应用程序密钥设置为PAGERDUTY_KEY
hipchat需要一个应用程序密钥HIPCHAT_KEY和通知空间HIPCHAT_ROOM
松弛需要松弛SLACK_URL。
pushBullet需要应用程序密钥PUSHBULLET_KEY,并且可以选择 PUSHBULLET_DEVICES和/或逗号中以逗号分隔的设备列表 PUSHBULLET_CONTACTS中联系人的分隔列表。
更多的通知程序很容易写,如果有什么问题,你想提交!
文档url
配置中的docs\_uls属性将向 警报的文档。目前的格式是 {docs\_url}/{alertname}#{alert legend name}
警报格式
警报有4个必需参数和2个可选参数。
必需参数:
- name—警报组的名称
- 警告-警告值的整数
- 临界值-临界值的int
- target-要检查的Graphtie度量,如果有别名则最佳
石墨寻呼机了解警告和临界值,以便 选中<;和>;。如果警告小于临界值,则以上值都将 触发警报。如果警告大于临界值,则 触发警报。
Example: Warning: 1 Critical: 2 0 is fine, 3 will be critical Warning: 2 Critical: 1 0 is critical, 3 is fine.
可选参数:
- from-graphite
from
参数,用于查询ex.-10mindefault-1min的时间。 - 排除-要包括的目标列表。这必须与完整目标匹配,因此建议您使用graphite函数alias()使这些内容可读。
警报排序
具有相同名称和目标的警报将只检查一次!这很有用 如果您想要一个子集具有不同的检查时间和/或 值
-name:Loadtarget:aliasByNode(servers.worker-*.loadavg01,1)warning:10critical:20-name:Loadtarget:aliasByNode(servers.*.loadavg01,1)warning:5critical:10
在上面的示例中,任何worker-*节点都将为10个或更高的节点发出警报,但catchall节点除外 将允许在不发出警报的情况下检查其余度量 高于5的工作节点