谁玩过《Openopen falcon 4.7下载4.7》

open-falcon 源码解析(一) - 推酷
open-falcon 源码解析(一)
Agent 部分
Agent 获取的数据格式为:
type MetricValue struct {
Endpoint& string& & & `json:”endpoint”`
Metric& & string& & & `json:”metric”`
Value& & &interface{} `json:”value”`
Step& & & int64& & & &`json:”step”`
Type& & & string& & & `json:”counterType”`
Tags& & & string& & & `json:”tags”`
Timestamp int64& & & &`json:”timestamp”`
1. Type 是 rrd DsType(数据源类型),比如 GAUGE、COUNTER 和 DERIVE;
2. 当收集 网卡、硬盘使用率、硬盘 IO、进程、端口、目录大小、url 时,会使用 Tags,其他不会,因为这些信息需要额外知道比如 网卡设备、硬盘分区、硬盘设备、进程名称、端口号、目录名称、url 链接等信息;
3. Agent 会起一个 goroutine,获取要检测的 url 链接、端口号、进程名、目录大小等信息,这些信息是本机无法知道;
4. Step 值由配置文件中的 Transfer.Interval 决定;
5. 每个 Metric 收集和传输时间间隔由 Transfer.Interval 决定,收集到的信息会传递给 Transfer;
6. 支持「插件」,插件目录列表通过 RPC 获取,目录列表中的所有目录下的脚本都会当做插件执行,脚本名称要包括执行超时时间(以 _ 分割),而且脚本的输出要符合 MetricValue 的格式。
Transfer 部分
Transfer 收到 Agent 发来的数据后,会先做一下清理,不合法的数据会被忽略,比如&Type 不合法,Value 为空,Step &= 0 等。
然后 Transfer 把格式改成 MetaData:
type MetaData struct {
Metric& & & string& & & & & & `json:”metric”`
Endpoint& & string& & & & & & `json:”endpoint”`
Timestamp& &int64& & & & & & &`json:”timestamp”`
Step& & & & int64& & & & & & &`json:”step”`
Value& & & &float64& & & & & &`json:”value”`
CounterType string& & & & & & `json:”counterType”`
Tags& & & & map[string]string `json:”tags”`
1. CounterType 是 MetricValue 的&Type 值 。2. Tags 会从 key1=value1,key2=value2 字符串变成类似 {key1:value1, key2:value2} 的 map。
然后 Tansfer 会把数据发给 Graph 和 Judge,Graph 和 Judge 的数据都暂存在内存队列里(Transfer 收到数据处理之后分别放到&Graph 和 Judge 的队列里,然后会有各自的 goroutine 负责发送)。
数据在插入 Graph 的队列之前会被改成下面的格式:
type GraphItem struct {
Endpoint& string& & & & & & `json:”endpoint”`
Metric& & string& & & & & & `json:”metric”`
Tags& & & map[string]string `json:”tags”`
Value& & &float64& & & & & &`json:”value”`
Timestamp int64& & & & & & &`json:”timestamp”`
DsType& & string& & & & & & `json:”dstype”`
Step& & & int& & & & & & & &`json:”step”`
Heartbeat int& & & & & & & &`json:”heartbeat”`
Min& & & &string& & & & & & `json:”min”`
Max& & & &string& & & & & & `json:”max”`
1. DsType、Step、Heartbeat、Min 和 Max 都是 rrd 的概念;
2. Step 不能小于 30s;
3. 如果 MetaData 的 CounterType 是 GAUGE,则 DsType 也是&GAUGE,如果&CounterType 是&COUNTER 或&DERIVE,DsType 都会被改成&DERIVE;
4. DsType 如果是 GAUGE,Min 和 Max 分别是 U、U,如果是&DERIVE,Min 和 Max 分别是 0、U。
rrd 的相关内容参考
Graph 部分
收到的 GraphItem 数据存储在&GraphItemMap 结构的 GraphItems 变量中,GraphItemMap 结构如下:
type GraphItemMap struct {
sync.RWMutex
A & &[]map[string]*SafeLinkedList
1. map[string]*SafeLinkedList 的 key 格式是&checksum_dsType_step(称为 ckey),其中 checksum 是 Endpoint, Metric 和 Tags 三者的 md5,*SafeLinkedList 存的则是 GraphItem;2. A 中 有 Size 个 map[string]*SafeLinkedList,0 到 Size-1 这些数字由 hashKey(ckey) % Size 取得。
Graph 收到数据后,会做三件事:1. 存入定义的&GraphItems 结构中,Graph 会事先启动一个叫 rrdtool 的 goroutine,不断从&GraphItems 中读取 GraphItem 存入 rrd 数据库。
rrd 文件路径格式是:基础目录/md5前两位/md5/dsType/step.rrd
2. 存入&indexedItemCache,供建立索引,indexedItemCache&以 Endpoint、Metric 和 Tags 的 md5 为 key。
3. 存入 HistoryCache,HistoryCache 供查看最近收到的 GraphItem,HistoryCache同样以 Endpoint、Metric 和 Tags 的 Checksum 为 key,每个 key 默认只保存三条 GraphItem。
额外的,Graph 提供 /proc http 接口来更新全量索引(数据从 indexedItemCache 中获取),默认建立两天内数据的索引,索引信息存在 Mysql 中。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致open falcon 4.7-
規避空空導彈 -
分享这个视频的人喜欢
热门视频推荐
热门日志推荐
同类视频推荐
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场open-falcon报警 - 开源中国社区
当前访客身份:游客 [
当前位置:
你好,想跟你请教个问题:
&我要让open-faclon发送报警邮件&&&因为公司没邮件服务器&&&所以我自己搭建一个sendmail&&&好了之后把这个ip地址跟端口号添加到send这个模块&&&就好了嘛
共有3个答案
<span class="a_vote_num" id="a_vote_num_
sender模块发短信的时候是调用的http接口,所以你要把sendmail封装为http接口,接口接收的参数规范在文档中有写。
或者,你也可以直接修改sender模块的代码,找到发送邮件的逻辑,使用系统调用的方式,调用一个shell脚本利用sendmail发送邮件
<span class="a_vote_num" id="a_vote_num_
好像没看到Window操作系统支持?
<span class="a_vote_num" id="a_vote_num_
楼主加我qq
更多开发者职位上
有什么技术问题吗?
类似的话题2877人阅读
其它技术类文章(16)
  近期,为保障线上商城9月大促,准备在原有的监控系统基础上,再部署OpenFalcon监控系统,在保障监控可靠性的同时,为后期切换到OpenFalcon监控做准备。
  目前正在使用的监控系统为内部开发,目前每天日志量大概在1千万条,按大促期间5倍流量预估,大促期间每天的日志量在5千万条。
  按每条日志50kb计算,每天日志量大概在250G左右,目前计划OpenFalcon中只存储一天的日志,主要用于异常预警。
  OpenFalcon部署:2台虚拟机,配置为:4核CPU,4G内存,200G硬盘。
  以处记录,以便后期观察对比分析。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:359200次
积分:4557
积分:4557
排名:第4689名
原创:75篇
转载:171篇
评论:24条
(1)(1)(1)(3)(2)(2)(1)(4)(3)(2)(1)(9)(5)(3)(10)(3)(2)(9)(5)(3)(18)(5)(2)(1)(2)(4)(3)(1)(3)(4)(1)(3)(3)(9)(3)(11)(1)(1)(3)(1)(3)(1)(2)(2)(1)(1)(1)(4)(10)(6)(1)(33)(24)(1)(2)(5)}

我要回帖

更多关于 open falcon官网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信