open-falcon监控系统组件学习之——judge组件

open-falcon部署 open-falcon是一款用golang和python写的监控系统,由小米启动这个项目。1、监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器、操作系统、中间件、应用进行全面的监控,及报警,对我们的系统正常运行的作用非常重要。2、基础监控 CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口采集、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset采集、DNS解析采集,这些指标,都是open-falcon的agent 阅读详情

在 open-falcon 监控系统中,judge 模块负责告警判断,它会定期向 hbs 请求告警策略信息,然后将告警信息推送到 redis ,本文向大家介绍 judge 是如何进行告警诊断的,希望对你有帮助。

阅读前需要了解的概念:
1. 监控数据分类
  • GAUGE:实测值,直接使用采集的原始数值,比如气温;
  • COUNTER:记录连续增长的数据,只增不减。比如汽车行驶里程,网卡流出流量,cpu_idle等;
  • DERIVE:变化率,类似COUNTER ,但是可增可减;

GAUGE 类型的值在进行告警诊断的时候直接与告警值比较即可,另外两种则需要根据差值进行判断。

2. 数据模型

open-falcon的"监控项"模型如下:

{
    metric: cpu.busy,               // 监控项名称
    endpoint: open-falcon-host,     // 目标服务器的主机名
    tags: srv=falcon,group=az1,     // tag标签,作用是聚合和归类,在配报警策略时会比较方便。
    value: 10,                      // 监控项数值
    timestamp: `date +%s`,          // 采集时间
    counterType: GAUGE,             // 监控项类型。 只能是COUNTER或者GAUGE二选一,前者表示该数据采集项为计时器类型,后者表示其为原值 (注意大小写)
    step: 60                        // 采集间隔。 秒。
}

这种模型有两个好处:

  • 一是方便从多个维度来配置告警

    比如tag的使用起到了给机器进行归类的作用,比如有3台机器:host1、host2和host3,如果tags依次配置为"group=java", "group=java"和"group=erlang",那么配置报警策略"metric=cpu/group=java“时就只会对java标签的机器(即host1,host2)生效。
    
  • 二是可以灵活的进行自主数据采集。

    由于agent会自发现的采集很多基本的系统指标,但是对业务应用等需要研发人员自己写脚本收集和上报。这里openfalcon定义了监控项模型,相当于定义了一个规范,当研发人员需要监控某个对象(比如mysql、redis等),只需采集数据,并遵守规范包装成监控项模型,再上报即可。
    
3. 告警模板参数说明
type Strategy struct {
	Id         int               `json:"id"`
	Metric     string            `json:"metric"`     // 告警适用的 metric
	Tags       map[string]string `json:"tags"`       // 告警适用的 tag
	Func       string            `json:"func"`       // e.g. max(#3) all(#3)
	Operator   string            `json:"operator"`   // e.g. < !=
	RightValue float64           `json:"rightValue"` // 告警阈值
	MaxStep    int               `json:"maxStep"`    // 表示该数据采集项的汇报周期,这对于后续的配置监控策略很重要,必须明确指定。
	Priority   int               `json:"priority"`   // 比如P0/P1/P2等等,每个及别的报警都会对应不同的redis队列
	Note       string            `json:"note"`       // 告警信息
	Tpl        *Template         `json:"tpl"`
}

需要重点说的是 func 参数,下面是 func 参数可以配置的类型:

  • max 根据最大值判断是否触发告警。

    max(#3): 对于最新的3个点,其最大值满足阈值条件则报警
    
  • min 根据最小值判断是否触发告警。

    min(#3): 对于最新的3个点,其最小值满足阈值条件则报警
    
  • all

    all(#3): 最新的3个点都满足阈值条件则报警
    
  • sum 根据和判断是否触发告警。

    sum(#3): 对于最新的3个点,其和满足阈值条件则报警
    
  • avg 根据平均值判断是否触发告警。

    avg(#3): 对于最新的3个点,其平均值满足阈值条件则报警
    
  • diff 只要有一个点的diff触发阈值,就报警,diff是当前值减去历史值

    diff(#3): 拿最新push上来的点(被减数),与历史最新的3个点(3个减数)相减,得到3个差,只要有一个差满足阈值条件则报警
    
  • pdiff

    pdiff(#3): 拿最新push上来的点,与历史最新的3个点相减,得到3个差,再将3个差值分别除以减数,得到3个商值,只要有一个商值满足阈值则报警
    
  • lookup

    lookup(#2,3): 最新的3个点中有2个满足条件则报警;
    
  • stddev

    离群点检测函数,更多请参考3-sigma算法:https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule
    	stddev(#10) = 3 //取最新 **10** 个点的数据分别计算得到他们的标准差和均值,分别计为 σ 和 μ,其中当前值计为 X,那么当 X 落在区间 [μ-3σ, μ+3σ] 之外时则报警。
    
4. falcon_protal 数据库表结构

在这里插入图片描述

一、 judge 模块的启动流程

1. 加载配置文件
{
    "debug": true,
    "debugHost": "nil",
    "remain": 11,
    "http": {
        "enabled": true,
        "listen": "0.0.0.0:6081"
    },
    "rpc": {
        "enabled": true,
        "listen": "0.0.0.0:6080"
    },
    "hbs": {
        "servers": ["127.0.0.1:6030"], # hbs最好放到lvs vip后面,所以此处最好配置为vip:port
        "timeout": 300,
        "interval": 60
    },
    "alarm": {
        "enabled": true,
        "minInterval": 300, # 连续两个报警之间至少相隔的秒数,维持默认即可
        "queuePattern": "event:p%v",
        "redis": {
            "dsn": "127.0.0.1:6379", # 与alarm、sender使用一个redis
            "maxIdle": 5,
            "connTimeout": 5000,
            "readTimeout": 5000,
            "writeTimeout": 5000
        }
    }
}
2. 接收命令行参数

这里提供了两个参数,-c 参数用来指定配置文件,-v 参数用来查看 judge 组件版本。

[root@localhost judge]# ./falcon-judge --help
Usage of ./falcon-judge:
  -c string
        configuration file (default "cfg.json")
  -v    show version

同样使用 flag 标准库接收命令行参数:

cfg := flag.String("c", "cfg.json", "configuration file")
version := flag.Bool("v", false, "show version")
flag.Parse()
3. 初始化 redis 连接池

这里使用配置文件中指定的 redis 信息,创建 redis 连接池,Judge 模块会将告警信息推送到 redis 中,alarm 模块从 redis 中定期读取告警信息,并进行推送。

4. 初始化 hbs 连接池

通过 Rpc 的方式与 hbs 进行通信,这里主要用来同步告警策略。

func InitHbsClient() {
	HbsClient = &SingleConnRpcClient{
		RpcServers:  Config().Hbs.Servers,
		Timeout:     time.Duration(Config().Hbs.Timeout) * time.Millisecond,
		CallTimeout: time.Duration(3000) * time.Millisecond,
	}
}
5. 初始化监控数据池

源码中创建了一个Map:

type JudgeItemMap struct {
	sync.RWMutex
	M map[string]*SafeLinkedList
}

var HistoryBigMap = make(map[string]*JudgeItemMap)

// 初始化HistoryBigMap,为什么这样初始化,需要参考 graph 模块数据存储方式,我会出一片博客讲。
func InitHistoryBigMap() {
	arr := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}
	for i := 0; i < 16; i++ {
		for j := 0; j < 16; j++ {
			HistoryBigMap[arr[i]+arr[j]] = NewJudgeItemMap()
		}
	}
}
// 初始化 HistoryBigMap 的值,本质上其实是一个双向链表
func NewJudgeItemMap() *JudgeItemMap {
	return &JudgeItemMap{M: make(map[string]*SafeLinkedList)}
}

在 map 中每个键对应的值是一个双向的安全链表,链表的值保存了 transfer 模块发送的监控数据:

type JudgeItem struct {
	Endpoint  string            `json:"endpoint"`    // 告警的服务器名称,一般是 hostname
	Metric    string            `json:"metric"`      // 监控项
	Value     float64           `json:"value"`       // 采集到的值
	Timestamp int64             `json:"timestamp"`   // 时间戳,根据这个值判断是否清理该节点,有效期为一周
	JudgeType string            `json:"judgeType"`   // 类型
	Tags      map[string]string `json:"tags"`
} 
6. 启动 rpc 进程以及 http 服务

(1)rpc

judge 模块 rpc 只提供了两个方法:

type Judge int
// 测试连通性
func (this *Judge) Ping(req model.NullRpcRequest, resp *model.SimpleRpcResponse) error {
	return nil
}
// transfer 通过 Send 方法将监控数据发送给 Judge 模块,Judge 将 监控数据保存到 HistoryBigMap 中
func (this *Judge) Send(items []*model.JudgeItem, resp *model.SimpleRpcResponse) error {
	remain := g.Config().Remain
	// 把当前时间的计算放在最外层,是为了减少获取时间时的系统调用开销
	now := time.Now().Unix()
	for _, item := range items {
		exists := g.FilterMap.Exists(item.Metric)
		if !exists {
			continue
		}
		pk := item.PrimaryKey()
		store.HistoryBigMap[pk[0:2]].PushFrontAndMaintain(pk, item, remain, now)
	}
	return nil
}

(2)http

这里主要定义了一些查看系统参数以及监控信息到的接口:

http://IP:6081/health      查看服务健康状态
http://IP:6081/version     查看模块版本
http://IP:6081/workdir     查看工作目录
http://IP:6081/config/reload 重新加载配置文件
http://IP:6081/strategy/:endpoint/:metric 查看告警策略
http://IP:6081/expression/metric/tag 查看告警表达式
http://IP:6081/count       查看HistoryBigMap大小
http://IP:6081/history/:pk 查看graph节点的数据大小
7. 定期更新告警策略
func SyncStrategies() {
	duration := time.Duration(g.Config().Hbs.Interval) * time.Second
	for {
		// 更新告警策略
		syncStrategies()
		syncExpression()
		syncFilter()
		time.Sleep(duration)
	}
}
8. 定期清理监控数据

监控数据最多保存一周时间,超时会被清理

func CleanStale() {
	for {
		time.Sleep(time.Hour * 5)
		cleanStale()
	}
}

func cleanStale() {
    // 清理一周前的数据
	before := time.Now().Unix() - 3600*24*7
	arr := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}
	for i := 0; i < 16; i++ {
		for j := 0; j < 16; j++ {
			store.HistoryBigMap[arr[i]+arr[j]].CleanStale(before)
		}
	}
}

二、judge 模块的告警检测机制

1. 配置告警策略

下图是 open-falcon 自带的 Dashboard 中策略配置的截图:

在这里插入图片描述

在图中我们可以看到,告警策略中需要配置一下几类监控信息:

  • 监控项:metric、tag、最大步长、最多出现次数、等级、告警信息。

  • 表达式:具体的告警规则。

  • 生效时间:可以配置开始时间和结束时间。

  • 告警通知:配置报警接收组以及告警方式(短信、邮件、IM等)。

2. 策略表达式

下图为策略表达式的配置:

在这里插入图片描述

可以看到策略表达式和策略很像,唯一的区别就是,策略表达式可以针对 tag 配置监控策略,而策略模板精确到具体的 Metric 。两者相比,表达式比较简洁,在结合 tag 时可以使用策略表达式。当无法区分类别时,比如所有监控项都没有加tag,只有进行人工分类,即使用”机器分组”,然后将”策略模板”绑定到”机器分组”。

3. 告警诊断

当 transfer 向 judge 模块发送监控数据时,会自动触发告警诊断功能:

// PushFrontAndMaintain 将监控数据保存,并通过 Jusge 方法进行诊断。
func (this *JudgeItemMap) PushFrontAndMaintain(key string, val *model.JudgeItem, maxCount int, now int64) {
	if linkedList, exists := this.Get(key); exists {
		needJudge := linkedList.PushFrontAndMaintain(val, maxCount)
		if needJudge {
			Judge(linkedList, val, now)
		}
	} else {
		NL := list.New()
		NL.PushFront(val)
		safeList := &SafeLinkedList{L: NL}
		this.Set(key, safeList)
		Judge(safeList, val, now)
	}
}
// Judge Judge 会根据告警策略以及告警表达式进行告警判断
func Judge(L *SafeLinkedList, firstItem *model.JudgeItem, now int64) {
	CheckStrategy(L, firstItem, now)
	CheckExpression(L, firstItem, now)
}

(1)告警模板诊断

func CheckStrategy(L *SafeLinkedList, firstItem *model.JudgeItem, now int64)

诊断流程如下:

  1. 从缓存中读取告警策略,如果没有相关的告警策略直接退出。

  2. 筛选告警策略,根据 tag 筛选出相匹配的告警策略。

  3. 诊断,根据采集到的监控数据及监控策略计算出是否需要告警,不满足告警条件则退出。

  4. 发送告警信息给 redis。

(2)告警表达式诊断

func CheckExpression(L *SafeLinkedList, firstItem *model.JudgeItem, now int64)

告警表达式诊断过程与根据告警模板诊断的过程类似:

  1. 根据监控数据的 metric、endpoint、tag 信息生成 keys 列表。
  2. 从缓存中读取告警策略。
  3. 筛选告警策略,根据 key 筛选出相匹配的告警策略,如果没有相关的告警策略直接退出。
  4. 诊断,根据采集到的监控数据及监控策略计算出是否需要告警,不满足告警条件则退出。
  5. 发送告警信息给 redis。
4. 总结

Judge 模块同样通过使用缓存的方式提高诊断速度,通过链表的方式确保数据有序,系统内部提供了丰富的诊断策略,可以覆盖绝大部分监控场景,通过告警模板以及告警表达式覆盖更多监控场景。

open-falcon的部署流程<1> 本文档记录了centos6.4下open-falcon监控系统的部署流程,以及一些需要注意的地方。 参考了官方文档 http://book.open-falcon.org/zh/ 部署前的准备 设置环境变量 redis安装 MySql安装 初始化Mysql脚本 下载open-falcon 安装GoLang环境 开始部署 安装agent 安装hbs 安装transfer 安装graph 安装que 阅读详情

相关推荐

【监控系列】open-falcon

Open-Falcon 是一款由小米开源的分布式监控系统,具备高性能、高可用性和易扩展的特点。

yunqi1215的博客 1223

open-falcon原理以及使用(不断更新)

文章目录 概述 Open-falcon的特性 监控控范围 1)基础监控。 2)业务应用监控。 3)第三方开源软件监控。 一、设计原理 1.模块架构 2.模块拆解(模块配置项查看第三章)   part01:数据采集&上报   part02: 告警   part03:归档&绘图   part04:报警策略配置 4.执行过程 5.模块描述表 二、Web使用​​​​ 1.图表监控项目 Dashboard 使用 监控项解释(第三章第二节)

Danielsm的博客 1万+

Ubuntu单机部署Open-Falcon监控系统实战指南

监控系统是现代IT基础设施的核心组件,Open-Falcon作为轻量级开源监控解决方案,采用Go语言编写,具有高效的数据处理能力和良好的扩展性。其单机部署模式通过资源整合与优化,能够在8核16G配置下支持日均5亿级监控指标,大幅降低中小型业务的运维复杂度。Ubuntu Server LTS版本凭借稳定的内核和apt包管理体系,成为部署Open-Falcon的理想平台,特别是在处理高并发数据时表现出更优的内存管理特性。本文详细解析从系统调优、依赖安装到核心组件配置的全流程,涵盖MySQL参数优化、Redis内

375

python脚本 + falcon数据 = 测算磁盘是否满足需求

随着业务的上量,日志的增加,最先达到硬件资源瓶颈的也许就是硬盘,传统的手工观察磁盘监控曲线图直观,大方,但是多机器的时候就有点累了;而且单纯靠人测算的很有误差。 手工计算脚本 根据一天数据计算脚本 根据三天数据计算脚本如下#!/usr/bin/env python #-*- coding:utf8 -*-import requests import time import json import s

vbaspdelphi的专栏 1019

小米高性能开源监控系统Open-Falcon实战解析

简介:Open-Falcon是小米公司推出的高效能开源监控系统,采用Go语言开发,在性能、可扩展性和并发处理方面优于传统监控工具如Zabbix和Nagios。系统涵盖数据采集、传输、存储、分析到可视化与告警的完整链路,核心组件包括falcon-agent、falcon-transfer、falcon-judge、falcon-alarm等,支持高并发场景下的大规模监控需求。本项目适合深入学习分布式监控架构设计与Go语言工程实践,为构建企业级监控平台提供可靠参考。

weixin_29607511的博客 446

生信实战:用bcftools玩转VCF文件处理(从压缩到注释全流程)

本文详细介绍了使用bcftools处理VCF文件的全流程实战指南。从数据准备、压缩索引、信息提取、质量统计到核心的变异过滤与功能注释,手把手教你高效管理基因组变异数据。重点阐述了如何利用bcftools进行VCF文件注释,整合外部数据库信息,为变异位点添加关键的生物学标签,是生物信息学数据分析的必备技能。

rgv23456789的博客 342

openfalcon源码分析之Judge

openfalcon源码分析之Judge 本节内容 Judge功能 源码分析 设计优缺点 1. Judge功能 在open-falcon中,Judge模块的功能是通过从HBS上同步告警的strategys(告警策略),及Expression,用来在接收transfer上报过来的数据时,对数据进行检测,每收到一条上报的数据,就去匹配对应的strategy和Expression是否满足条件,判断是...

weixin_33738555的博客 225

强化学习-----DQN(Deep Q-network)

DQN(Deep Q-Network)是一种基于深度学习和强化学习的算法,由DeepMind提出,用于解决离散动作空间下的马尔科夫决策过程(MDP)问题。它是首个成功将深度学习应用于解决强化学习任务的算法之一。DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。那什么是Q-leaning?可以看上一篇文章Q-learning是一种经典的强化学习算法,用于解决马尔可夫决策过程(Markov Decision Process,MDP)中的控制问题。

qq_74722169的博客 2万+

open-falcon之judge

功能 judge 模块主要从transfer中接收数据,并从HBS中获取报警策略,然后进行阈值报警判断 从HBS获取报警策略 接收transfer 上报的数据,并存储最新几个点 判断阈值,产生报警事件 判断报警事件是否写入redis 老旧报警数据的清理 配置文件 { "debug": true, "debugHost": "nil", #用于调适,...

weixin_30872337的博客 360

C300 | 5680t | 新格林| AN5516 | 远程ONU升级指导

ONU的远程管理升级 1、ZTE C300 OLT : 1.1 环境拓扑: PC1(filezilla server)------(uplink_default-vlanID)OLT---------ONU | | mng1 1.2 配置部署: 1):PC1(filezilla server): IP:192.168.88.252 255.255.255.0 配置FTP-Server的用户名:gp...

Shelly的博客 3770

FPGA—DHT11数字温湿度传感器

1. DH1T11温湿度传感器与DS18B20温湿度传感器非常类似,都是严格按照时序要求写代码。建议可以比较学习。2. 显示温度与湿度部分的数据处理,采用 X10 进行在数码管上的移一位显示,配合了数码管小数部分的显示特点又区分了温度与湿度。3. 程序是按照一个接一个状态及顺序跳转的,建议使用状态机。说明:本人使用的是野火家Xilinx Spartan6系列开发板及配套教程,以上内容如有疑惑或错误欢迎评论区指出,或者移步B站观看野火家视频教程。

m0_72885897的博客 4779

openfalcon - 再谈数据类型

通过 https://blog.goquxiao.com/posts/2016/09/11/open-falcon-source-reading-1-arch-and-agent/ 的了解, falcon的数据类型基于RRD的数据类型: COUNTER: 必须是递增的,除非是计数器溢出(overflows)。在这种情况下,RRDtool 会自动修改收到的值。例如网络接口流量、收到的packets 数

vbaspdelphi的专栏 2246

51单片机———UART串口通信

传统理解就是信息的传输与交换。单片机与单片机之间,单片机与电脑之间,以及单片机与各式各样的模块之间都可以进行通信。如果没有通信,那么单片机的功能仅仅局限于它本身,它没办法从其他设备获取有用信息,也无法将自己产生的信息告诉其他设备,这样子单片机与外围器件的合作就会收到限制,没办法完成更多的功能,就像一个没办法拓展业务的公司。:实现我们程序当中写的P0=0xFC,就是一次同时对8位进行信号的输出;习惯上,我们还称P0、P1、P2、P3为单片机的4组并行总线:实现低位先发 高位在后。

m0_74225397的博客 3296

open-falcon监控系统组件学习之——transfer组件

在open-falcon监控系统中,agent采集到数据后就会将数据上报的 transfer 组件,那transfer都做了什么呢?带着这个问题,我们一起学习transfer组件,希望对你有帮助。 一、 transfer 启动的时候都做了什么 同样我们从main函数入手,下面时main函数的执行流程: #mermaid-svg-AJRPKzW60NAb9hkn .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--merm.

random_w的博客 770

普通用户也能免费使用 SAP Joule!

点击 SAP Joule 给出的按钮之后,SAP Business Application Studio 左侧显示的界面,就从 SAP Joule 替换成了 SAP Fiori tools 的 Project Accelerator 工具。接下来就是在后者中标准的操作流程了。笔者之前的文章,有朋友提问,既然 ChatGPT,DeepSeek,Grok 这些主流 AI 工具,回答 SAP 相关问题时都经常翻车,那 SAP 自家的 Joule 表现又如何呢?还有朋友评论:如何才能使用 SAP Joule?

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1018

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 519

Open-falcon技术实践V1.0

OPEN-FALCON技术实践

super_chenzhou 1438

Java 部分笔试题解析

合法的 try 语句块必须包含 try 块,并且至少包含一个 catch 块或一个 finally 块。给定一个长度为n的数组,数组中的每个元素,表示一根水管的长度,水管可以在任意位置锯开。调用 sleep() 方法、创建新线程、高优先级线程进入就绪状态只会暂停或抢占线程的执行,而不会终止线程的运行。A.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。接口中的成员变量必须是常量(static final),而抽象类可以有普通成员变量。

博客 2579

了解open-falcon及组件

OpenFalcon是一款企业级、高可用、可扩展的开源监控解决方案。 Open-Falcon是一个比较大的分布式系统,有十几个组件。按照功能,这十几个组件可以划分为 基础组件、作图链路组件和报警链路组件。 特点 强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model lik...

real向往的博客 1343

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

open-falcon使用

http://book.open-falcon.org open-falcon是一个监控系统,里面提供了很多api,可供使用。 公司是做的加速器,用open-falcon来监控调度系统各种信息,便于监控各个节点的调度信息。在服务器安装了falcon-agent,自动采集各项指标,主动上报。 agent 采集机器负载监控指标,每隔60秒push给transfer。agent与transfer...

Yu的博客 1100

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

小米的开源监控系统open-falcon架构设计,看完明白如何设计一个好的系统

小米的开源监控系统open-falcon架构设计,看完明白如何设计一个好的系统 小米的http://book.open-falcon.org/zh/intro/ 早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。 因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRE、SA、...

深度Java 9659

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ope-falcon plus judge模块

解读:open-falcon监控系统组件学习之——judge组件_random_w的博客-优快云博客策略stragedy:{ "id": 228, "result": { "hostStrategies": [{ "hostname": "open-falcon-1", "strategies": [{ "id": 5, "metr

weixin_36013896的博客 200

open-falcon开放式运维监控系统官方docker部署与二次开发,调试,部署

open-falcon官方推荐docker部署说明 the latest version in docker hub is v0.2.1 1.在第一次运行之前启动mysql并初始化mysql表 ## start mysql in container docker run -itd \ --name falcon-mysql \ -v /hom...

无恋-zx的博客 1525

open-falcon组件介绍

open-falcon 组件特性 强大灵活的数据采集:自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value tags) 强大水平扩展能力:支持每个周期上亿次的数据采集、告警判定、历史数据存储和查询 强大高效率的告警策略管理:高效的port...

qq_38814358的博客 493

10_小米监控Open-Falcon告警判断-Judge

小米监控Open-Falcon告警判断-Judge更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习(干货)一、 介绍Judge用于告警判断,agent将数据push给Transfer,Transfer不但会转发给Graph组件来绘图,还会转发...

架构师的成长之路的博客 3704

Open-Falcon安装部署配置说明文档

@(架构师之路) Open-Falcon安装部署配置说明文档 欢迎关注作者简书 csdn传送门 文章目录Open-Falcon安装部署配置说明文档单机安装环境准备1. 环境准备2. 从源码编译3. 下载编译好的二进制版本启动后端创建工作目录解压二进制包在一台机器上启动所有的后端组件更多的命令行工具用法安装前端创建工作目录克隆前端组件代码安装依赖包初始化数据库修改配置以开发者模式启动在生产环境启动停...

阿祥小王子的博客 1598
上一篇: open-falcon监控系统组件学习之——transfer组件
下一篇: Go语言标准库学习之reflect——Go语言中如何通过反射获取interface{}类型数据的值、类型以及方法调用
random_w
博客等级 码龄9年 130粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值