Open-Falcon源码解读(前言二)

2023-11-06  本文已影响0人  周山

开篇

https://book.open-falcon.org/zh_0_2/

图解

image.png

从这张图中可以发现,主要的组件有:falcon-agent、transfer、hbs(hearbeat server)、Judge、Graph、alarm、剩下的就是常见的redis、和mysql了
每台服务器,都有安装falcon-agent,falcon-agent是一个golang开发的daemon程序,用于自发现的采集单机的各种数据和指标,只要安装了falcon-agent的机器,就会自动开始采集各项指标,主动上报;open-falcon,采用和opentsdb相同的数据格式:metric、endpoint加多组key value tags,

{
    metric: load.1min,
    endpoint: open-falcon-host,
    tags: srv=falcon,idc=aws-sgp,group=az1,
    value: 1.5,
    timestamp: `date +%s`,
    counterType: GAUGE,
    step: 60
}
{
    metric: net.port.listen,
    endpoint: open-falcon-host,
    tags: port=3306,
    value: 1,
    timestamp: `date +%s`,
    counterType: GAUGE,
    step: 60
}

通过这样的数据结构,我们就可以从多个维度来配置告警,配置dashboard等等。agent发送给谁呢?看图,是给了transfer,transfer接收客户端发送的数据,做数据规整,检查之后,转发到多个后端系统去处理。其中,transfer会根据一致性hash算法,进行数据分片,来达到后端业务系统的水平扩展。
transfer 提供jsonRpc接口和telnet接口两种方式,transfer自身是无状态的,挂掉一台或者多台不会有任何影响,同时transfer性能很高,每分钟可以转发超过500万条数据。transfer目前支持的业务后端,有三种,judge、graph、opentsdb。judge是我们开发的高性能告警判定组件,graph是我们开发的高性能数据存储、归档、查询组件,opentsdb是开源的时间序列数据存储服务。可以通过transfer的配置文件来开启。
transfer的数据来源,一般有三种:

上一篇 下一篇

猜你喜欢

热点阅读