文档章节

carbon进程

摩云菜
 摩云菜
发布于 2016/07/05 09:54
字数 1088
阅读 131
收藏 0

Carbon进程

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

这份文档对carbon进程提供的功能,以及如何使用这些功能构建出复杂的存储后端进行了简要的概述。

所有的carbon进程都使用同样的协议监听并且接收时间序列数据。但是不同的进程收到这些数据后,会进行一些不同的操作。

Carbon-cache.py

carbon-cache.py接收各种协议的指标数据,并且尽可能高效地把它们写入磁盘。这就要求首先把接收到的指标缓存在RAM里面,然后定期地使用底层的whisper库把RAM里面的指标数据写入磁盘。

运行carbon-cache.py需要一些基本的配置文件:

carbon.conf

配置文件里面的[cache]部分的配置,告诉carbon-cache.py使用什么端口[2003/2004/7002],什么协议(newline delimited, pickle)以及网络协议(TCP/UFP)来监听。

storage-schema.conf

这个配置文件里面主要使用正则表达式定义了一些指标的收集规则,以及每个.wsp文件存储多长时间的数据。这些规则是给whispter数据库使用的,当.wsp文件创建的时候,会使用到这些规则。

随着数据量的增加,一个carbon-cache.py实例可能满足不了IO负载。为了扩容,可以在一台或者多台机器上运行多个carbon-cache.py实例,carbon-cache.py前面使用carbom-aggregator.py或者carbon-relay.py进行负载均衡。

警告:

如果客户端连接carbon-cache.py的时候,出现连接失败的错误,比如说连接被daemon拒绝,这种错误最常见的原因是文件句柄不够了。

在日志文件里面,如果你发现下面的日志:

Could not accept new connection (EMFILE)

或者是下面的日志:

exceptions.IOError: [Errno 24] Too many open files:

'/var/lib/graphite/whisper/systems/somehost/something.wsp'

这说明carbon-cache.py可以打开的文件数需要增加了。很多系统里面,单个进程可以打开的最大文件数默认为1024,在实际情况下可能需要配置成8129或者更高,这取决于有多少个客户端同时连接到carbon-cache.py的daemon上。

Linux系统上,可以通过sysctl来设置系统全局文件句柄数的最大值,也可以通过ulimit设置。

Carbon-relay.py

carbon-relay有两个不同的功能:集群和分区

当使用RELAY_METHOD = rules模式运行时,carbon-relay.py可以代替carbon-cache.py,然后把所有收到的指标数据转发给多个运行在后端的carbon-cache.py,这些后端的carbon-cache.py可以运行在不同的主机上的不同端口上。

当使用RELAY_METHOD = consistent-hashing模式运行时,需要配置DESTINATIONS,DESTINATIONS定义了基于后端多个carbon-cache.py的分区策略。同样的哈希列表可以通过CARBONLINK_HOSTS 提供给graphite webapp,这样对不同数据的查询就可以被分发到不同的后端carbon-cache上。

carbon-relay使用的配置文件:

carbon.conf

carbon-relay.py使用配置文件里面的[relay]部分的配置,在这里可以配置监听的主机,端口以及RELAY_METHOD。

relay-rules.conf

当使用 RELAY_METHOD = rules 启动carbon-relay.py的时候, 这个配置文件里面的pattern/servers组合定义了匹配相应正则表达式的指标数据应该发给后端的哪个主机。

Carbon-aggregator.py

carbon-aggregator.py可以运行在carbon-cache.py前面,用来缓存指标数据。当指标数据的发送频率大于事先定义好的数据收集频率时,carbon-aggregator.py就很有用,使用carbon-aggregator.py可以部署在前端用来降低IO负载和防止数据风暴。

carbon-aggregator.py使用的配置文件:

carbon.conf

carbon- aggregator.py使用配置文件里面的[aggregator]部分的配置,在这里可以配置监听的主机,端口以及目的地主机和端口。

aggregation-rules.conf

定义了一个时间间隔(秒)以及aggregation 函数(sum或者average),用来匹配收到的指标数据。在每个时间间隔的最后,会把收到的多个指标数据聚合成一个指标数据,再发给carbon-cache.py。

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

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

© 著作权归作者所有

共有 人打赏支持
摩云菜
粉丝 27
博文 34
码字总数 42147
作品 0
闵行
高级程序员
私信 提问
graphite-web只能展示最新6个小时的数据

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

liuhuang9496
2017/04/06
0
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
聊聊 Statsd 和 Collectd 那点事!

StatsD 是由 Etsy 开发并发布的汇总和总结应用指标的一个简单的守护进程,近些年来发展迅速,已经变成了一个用于收集应用性能指标的统一的协议。 关于 Statsd 的使用已经有很多文章介绍过,所...

OneAPM蓝海讯通
2015/12/10
266
0
PHP向服务器错误记录、文件或远程目标发送一个错误

一、用到的函数说明 1语法: error_log(error, type, destination, headers) 2 参数说明: error: 必需, 要记录的错误消息 type: 可选。规定错误记录的类型, 可能的看记录类型: 0 - 默认...

雪之丞
2015/01/12
0
0
Graphite 介绍

Overview 概述 What Graphite is and is not ? Graphite能做什么和不能做什么? Graphite does two things: Graphite 做两件事情: Store numberic time-series data 存储 numberic time-seri......

nao
2016/08/19
413
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么只有你每次提交代码,log里面会出现merge

http://www.cnblogs.com/Sinte-Beuve/p/9195018.html

踏破铁鞋无觅处
5分钟前
0
0
如何学习大数据:spark发布程序

一、对于spark程序只是用于默认的spark包的情况 直接点击pcakage 将程序进行在linux当中进行发布 客户端模式:测试 spark-submit --class com.keduox.App \ --master yarn \ --deploy-mode ...

架构师springboot
5分钟前
0
0
oracle job(定时任务)

创建 定时任务 job declare job number;BEGIN DBMS_JOB.SUBMIT( JOB => job, -- job任务的唯一标识(自动生成) WHAT => 'INSERT into TEXTL (id) VALUES(TEXT......

骑羊放狼灬
9分钟前
0
0
Spring声明式事务在抛出异常时不回滚(RollBack)

Spring声明式事务默认只在RuntimeException时Rollback(回滚),不当的try catch会导致事务不回滚。 spring事务默认运行时异常回滚,RuntimeException 配置时添加异常回滚 rollback-for="Th...

叶落花开
9分钟前
0
0
赋能时空云计算 阿里云数据库时空引擎Ganos上线

随着移动互联网、位置感知技术、对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像...

阿里云云栖社区
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部