agent
    用于采集机器负载监控指标
    每隔60秒push到transfer
    agent与transfer建立长连接
    agent提供 http接口/v1/push   用于接收用户手工push的一些数据,然后通过长连接迅速转发给trasfer
transfer    
    数据转发服务
    按照hash规则进行数据分片
    将分片后的数据分别push到  graph,judge等组件

graph
    存储绘图数据的组件

    接收transfer组件推送上来的监控数据
    同时处理api组件的查询请求,返回绘图数据
API
    提供统一的restAPI操作接口
    比如:api组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据
    然后汇总拿到的数据,最后统一返回给用户
dashboard
    仪表盘
HBS    
    心跳服务器
    所有的agent都会连接到HBS
    每分钟发一次心跳请求
Judage
    用于告警判断
    agent将数据push给transfer
    trasfer不但会转发给graph组件来绘图,还会转发给Judage用于判断是否触发告警
Alarm
    用于处理告警event的
    judage产生的告警event写入redis
    alarm 从redis读取处理,并进行不同渠道的发送(微信,钉钉,米聊)

Task
    是监控系统一个重要的辅助模块
    定时任务
    实现的功能如下:
        index更新--包括图表索引的全量更新和垃圾索引清理
        falcon服务组件的自身状态数据采集--定时采集trasfer,graph,task三个服务的内部状态
        自监控


Gateway

    多IDC时,可能会遇到“网络质量差”“公网ACL不通”
    这时,可以在分区内部署一套数据路由服务(gateway)
    接收本分区内的所有流量(包括所有agent流量)
    然后通过公网(开通ACL)
    将数据push给中心的trasfer

Nodata
    用于检测监控数据的上报异常
    nodata和实时报警judage模块协同工作
    过程为:
        配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据
        用户配置相应的报警策略,收到mock数据就产生了报警
        采集项上报异常检测,作为judage模块的一个必要补充,能够使judage的实时报警功能更加可靠,完善


Aggregator
    集群聚合模块
    聚合某个集群下的所有机器的某个指标的值,提供一种集群视角的监控体验


Agent-update
    用于管理falcon-agent
    agent-update也有一个agent:ops-update,
    可以看做是一个超级agent,用于管理其他agent的agent
    ops-update推荐在装机的时候一起安装上