文档章节

carbon配置

摩云菜
 摩云菜
发布于 2016/07/05 09:29
字数 2313
阅读 263
收藏 0
点赞 1
评论 0

carbon配置

所有carbon的配置文件都放在/opt/graphite/conf/目录下。如果你的graphite是新安装的,那么conf文件夹下不会有任何.conf的文件存在,但是有很多.conf.example的文件。你只需要把.conf.example相应的文件复制一份,并且把.example后缀去掉,然后就生成了你自己的配置文件,再对配置文件进行配置就可以了:

pushd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage-schemas.conf.example storage-schemas.conf

carbon.conf

这是一个主要的配置文件,定义了每个carbon daemon的运行环境。

配置文件里面的每个配置项,在配置文件里面都有相应的注释和说明。

配置文件被分成了几个部分,用来配置不同的daemon。carbon-cache使用[cache]这个部分的配置项,carbon-relay使用[relay]这部分的配置项,carbon-aggregator使用[aggregator]这部分的配置项。如果你是第一次使用graphite,除了[cache]这部分配置需要修改外,其他的两个部分的配置可以先不用关心。

提示:

carbon-cache和carbon-relay可以运行在一台机器上。试着交换列在[cache]和[relay]下面的LINE_RECEIVER_PORT和PICKLE_RECEIVER_PORT两个默认的端口,这样指标发送端不需要做任何修改,就可以把指标发送给carbon-relay。在设置[relay]下面的DESTINATIONS字段的时候,记得[relay]下面的PICKLE_RECEIVER_PORT端口已经修改成新的端口了。

storage-schemas.conf

这个配置文件详细地定义了数据的采样频率,存储时长以及指标的的匹配规则。Whisper数据库将使用这个配置文件来生成数据库里面的所有数据点。

一些重要的提示:

1:这个文件里面可能会有多个section

2:匹配数据的时候,文件里面的section是从上到下顺序遍历的。

3:匹配规则使用的是正则表达式

4:第一个匹配上metrics的名字的规则会被使用。

5:收到第一个metrics的时候设置采样频率

6:改变这个配置文件不会改变已经生成的.wsp文件,使用whisper-resize.py来改变已经生成的文件。

规则由三行组成:

1:名字,定义在方括号里面

2:正则表达式,定义方式:pattern=xxx

3:数据采样频率,定义方式:retentions=xxx

采样频率这一项可一定义多个采样频率,使用逗号分隔开

采样频率的定义使用到下面一些后缀:

1:s : 秒

2:m :分钟

3:h :小时

4:d:天

5:y:年

下面是个简单的例子:

[garbage_collection]
pattern = garbageCollections$
retentions = 10s:14d

名字garbage_collection主要是写日志的需求,当有metrics匹配上这个规则后,这个名字会出现在create.log里面。

所有以garbageCollections结尾的metrics都会匹配到这个规则。比如说com.acmeCorp.instance01.jvm.memory.garbageCollections可以匹配上这个规则,但是com.acmeCorp.instance01.jvm.memory.garbageCollections.full 不会匹配上这个规则。

retentions这一行的意思是:采样频率为10秒采样一次,并且保存14天的数据。

下面是个复杂的例子:

[apache_busyWorkers]
pattern = ^servers\.www.*\.workers\.busyWorkers$
retentions = 15s:7d,1m:21d,15m:5y

在这个例子里面,假设你的指标数据格式是servers.<servername>.<metrics>,这个正则表达式可以匹配名字以‘www’开头,接着可以是任何字符,然后以‘‘.workers.busyWorkers’结尾的服务器名字。

这个例子使用了多个采样频率。设置指标采样频率的一般规则是高精度短时长到低精度长时长– whisper会根据指定的聚合规则(默认是取平均值)对指标进行聚合。

通过使用多个retentions,你可以存储很长时间的数据,但是又不浪费磁盘空间。

比如说你按1m:1y,1h:5y这个retentions来存储销售额数据。如果你想知道去年1月1号总共的销售额,然后你可以从whisper数据库里面查到24个数据点,每个小时一个数据点。然后你把每个数据点乘以60,就得到了每个小时的总销售额。

storage-aggregation.conf

这个配置文件里面定义了怎么样把高精度数据聚合成低精度数据的数据聚合规则。定义格式跟storage-schema.conf类似。但是有以下几点必须注意:

1:这个文件是可选的,如果没有提供,则会使用默认的配置。

2:配置里面没有retentions这一项了,而是增加了xFilesFactor和aggregationMethod这两项

3:xFilesFactor必须是0到1之间的浮点型数值,这个数值指定了高精度的数据必须有多少个非空值,才能把这些高精度值聚合成一个非空的低精度值。默认值是0.5。

4:aggregationMethod指定了用于聚合的函数,合法的函数有:average, sum, min, max和last。默认值是average。

5:当收到第一个指标数据的时候,这些值会被设置。

6:修改这个配置文件对已经生成的.wsp文件不会产生影响。可以使用whisper-set-aggregation-method.py来修改已经生成的.wsp文件。

下面是个例子:

[all_min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min

上面这个例子将匹配所有以.min结尾的指标。使用的聚合方式是取最小值。高精度的数据只需要有10%的非空数据就能聚合成一个低精度数据。

如果xFilesFactor或者aggregationMethod没有设置,将会使用默认值。

聚合参数和retentions参数分开设置是因为聚合规则的定义由要收集的数据类型决定,而retentions规则由数据的存储容量和重要性来决定。

relay-rules.conf

当需要把特定的指标数据发送给特定的后端时,需要定义相关的relay规则。Relay规则是由carbon-relay这个模块来处理的。你可以使用正则表达式来过滤指标并且定义过滤出来的指标要被发送给哪个后端服务器。

例子:

[example]
pattern = ^mydata\.foo\..+
servers = 10.1.2.3, 10.1.2.4:2004, myserver.mydomain.com

你必须至少定义一个section作为默认设置。

aggregation-rules.conf

这个配置文件里面定义的规则可以帮助你在收集到多个指标的时候,把多个指标聚合成一个指标。跟其他的配置文件不一样,这个配置文件一旦修改,立马生效。要使用这个功能,必须运行carbon-aggregation。

这个文件里面每一行的格式如下所示:

<env>.applications.<app>.<server>.<metric>

比如你可以配置像下面这样的聚合规则:

<env>.applications.<app>.all.requests (60) = sum <env>.applications.<app>.*.requests
<env>.applications.<app>.all.latency (60) = avg <env>.applications.<app>.*.latency

如果你配置了上面这样的聚合规则,那么当你收到如下指标的时候:

prod.applications.apache.www01.requests
prod.applications.apache.www02.requests
prod.applications.apache.www03.requests
prod.applications.apache.www04.requests
prod.applications.apache.www05.requests

这些指标数据会被送到统一的聚合缓冲区里面,60秒后,carbon-aggregation会把缓冲区里面的这些指标数据相加,然后生成一个‘prod.applications.apache.all.requests’指标数据。

carbon-aggregation除了这个使用场景外,还有另外一个常用的使用场景,就是用来对多个同样的指标数据进行聚合。当你需要从多个主机上收集相同的指标时,或者指标的发送频率高于事先定义好的收集频率时,使用carbon-aggregation对这些指标进行聚合会非常方便。

rewrite-rules.conf

rewrite 规则允许你使用Python的正则表达式对收到的指标名进行重命名。跟其他的配置文件不一样,这个配置文件一旦修改,立马生效。要使用这个功能,必须运行carbon-aggregation。

这个配置文件里面的每一行,都使用下面的格式定义:

regex-pattern = replacement-text

所有匹配上regex-pattern的指标名称都会被捕获,然后被重命名成replacement-text。regex-pattern必须是合法的Python正则表达式,replacement-text可以是任意的值。你也可以使用捕获组:

^collectd\.([a-z0-9]+)\. = \1.system.

使用这个规则可以导致下面的结果:

collectd.prod.cpu-0.idle-time => prod.system.cpu-0.idle-item

Rewrite-rules.conf由[pre]和[post]两个部分组成。指标刚被收到的时候要改名,使用pre里面的规则。数据聚合以后要改名使用post里面的规则。

例子:

[post]
_sum$ =
_avg$ =

这个定义的意思是说,数据聚合以后,去掉所有以_sum或者以_avg结尾的指标名称里面的_sum或者_avg。

whitelist and blacklist

使用whitelist这个功能可以让carbon daemons只接受白名单里面的指标,拒绝黑名单里面的指标。设置carbon.conf里面的USE_WHITELIST字段可以启用这个功能。当很多指标发送给graphite或者有人发送了很多没有的指标的时候,这个功能会很有用。

Carbon daemon会在GRAPHITE_CONF_DIR路径下搜索whitelist.conf 和 blacklist.conf。配置文件里面的每一行都定义了一个匹配指标的正则表达式。如果whitelist.conf不存在,或者里面的内容是空的,那么所有的指标都会被graphite接受。

-----------------------------------------------------

欢迎关注我的微信公众号 ^_^

© 著作权归作者所有

共有 人打赏支持
摩云菜
粉丝 27
博文 34
码字总数 42147
作品 0
闵行
高级程序员
carbon进程

Carbon进程 当我们谈起”Carbon”的时候,我们指的是一个或者多个carbon进程,Graphite的存储后端就由这些进程所组成。在最简单的安装场景下,只有一个carbon进程carbon-cache.py。 这份文档...

摩云菜
2016/07/05
104
0
使用graphite和grafana进行应用程序监控

graphite+grafana 介绍 grafana,按照官方的说法是 。grafana 负责数据的展示,可以配置各种不同的数据源,其中包括 graphite。 graphite 包含多个模块,这里我们使用的模块包括: Whisper:...

ChanningBJ
2016/11/21
631
0
安装Collectd+Statsd + Graphite 监控openstack swift

Graphite 安装必要软件包: $ sudo apt-get install apache2 libapache2-mod-wsgi python-django python-twisted python-cairo python-pip python-django-tagging 用 pip 安装 whisper (简单......

icheer
2013/12/03
0
0
graphite-web只能展示最新6个小时的数据

业务需求描述:kafka的监控在grfana的展示 监控方案:kafkaoffsetmonitor + graphite + grafana kafka信息描述: kafka的0.9.x版本位移offset信息不在保存在zookeeper上面了,所有kafkaoffset...

liuhuang9496
2017/04/06
0
0
Lenovo Thinkpad X1 Helix 上手记录

我想换本本的想法由来已久,我的现任(现在可以说是前任)T60 已经服役6年,真是惊天地泣鬼神啊!这说明 Thinkpad 的品质确实杠杠的,虽然这期间风扇老出问题,不过我都可以自己换了,所以不...

虫虫
2013/05/24
0
99
WSO2 Carbon Kernel 4.3.0 Alpha 发布

WSO2 Carbon Kernel 4.3.0 Alpha 发布,此版本现已提供下载: wso2carbon-4.3.0-SNAPSHOT.zip 更新内容: 支持可插式 log provider,简化日志记录 升级了 Hazelcast, Log4j, BouncyCastle 版...

oschina
2014/10/02
272
0
Carbon 论坛的安卓客户端--Android-Carbon-Forum

Android-Carbon-Forum 是Carbon 论坛的安卓客户端。 大体已经完成,登录、注册、看帖、发帖、回帖、通知、设置之类的基础功能都没问题了。 每个使用 PHP 轻论坛程序 Carbon Forum 的网站,都...

lincanbin
2015/11/23
1K
0
Carbon是什么?

Carbon是苹果电脑操作系统的应用程序编程接口(API)之一: Carbon和Cocoa,Toolbox,POSIX,JAVA并列成为Mac OS X 五个主要的API。与Cocoa相较之下,Carbon是非物件导向(Procedural)的编程...

万能的匹诺曹
2016/06/22
16
0
graphite的搭建

因为公司打算监控kafka队列信息,但是又不想直接安装KafkaOffsetMonitor这个工具,希望能够将kafka的监控信息内嵌到grafana上面,在这个项目的github上面无意中看到这个个工具可以当作一个插...

liuhuang9496
2017/04/01
0
0
Carbon Forum 携 Android 客户端重磅发布

客户端大体已经完成,登录、注册、看帖、发帖、回帖、通知、设置之类的基础功能都没问题了。 每个使用PHP轻论坛程序 Carbon Forum 的网站,都可以修改客户端源码中的接口信息,在三分钟内编译...

lincanbin
2015/11/23
3K
13

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
34分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
6
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
138
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部