【Falcon】Falcon-Agent基礎(chǔ)數(shù)據(jù)采集

下面列出的采集項(xiàng)都是falcon-agent直接支持的,每隔一段時間(目前是60s)采集匯報(bào)一次

CPU相關(guān)采集項(xiàng)

計(jì)算方法:每秒采集一次/proc/stat萌京,計(jì)算差值。都是GAUGE類型的囚衔。

  • cpu.idle 是個百分比的數(shù)字题篷,比如80.3
  • cpu.busy 與cpu.idle相對=100-cpu.idle
  • cpu.guest guest時間占比
  • cpu.iowait iowait時間占比
  • cpu.irq irq時間占比
  • cpu.softirq softirq時間占比
  • cpu.nice nice時間占比
  • cpu.steal steal時間占比
  • cpu.system system時間占比
  • cpu.user user時間占比
  • cpu.cnt cpu核數(shù)
  • cpu.switches cpu上下文切換次數(shù),COUNTER類型

磁盤相關(guān)采集項(xiàng)

計(jì)算方法:先讀取/proc/mounts拿到所有掛載點(diǎn)屡穗,然后通過syscall.Statfs_t拿到blocks和inode的使用情況贴捡,都是GAUGE類型的。
每個metric都會有個tag:mount=mount,fstype=fstype村砂,mount是掛載點(diǎn)烂斋,fstype是文件系統(tǒng),比如ext4

  • df.bytes.free 是個integer础废,表示free的block數(shù)目
  • df.bytes.free.percent 是個float汛骂,表示free的block數(shù)目占總的block數(shù)目的百分比,比如32.1
  • df.bytes.total 是個integer评腺,表示block總數(shù)
  • df.bytes.used 不解釋
  • df.bytes.used.percent 不解釋
  • df.inodes.total 是個integer帘瞭,表示inode總數(shù)
  • df.inodes.free 是個integer,表示free的inode數(shù)目
  • df.inodes.free.percent 是個float歇僧,表示free的inode占比
  • df.inodes.used 不解釋
  • df.inodes.used.percent 不解釋

LSI RAID
使用 megacli 工具讀取 RAID 相關(guān)信息图张,10分鐘采集一次,tag 表明所屬 PD 或者 VD:

PD=Enclosure_ID:SLOT_ID诈悍,如 PD=32:0 表明第一塊磁盤

VD=0 表明第一個邏輯磁盤

  • sys.disk.lsiraid.pd.Media_Error_Count 這個及以下三個指標(biāo)目前僅作為數(shù)據(jù)收集祸轮,不一定意味磁盤損壞(概率變大)
  • sys.disk.lsiraid.pd.Other_Error_Count
  • sys.disk.lsiraid.pd.Predictive_Failure_Count
  • sys.disk.lsiraid.pd.Drive_Temperature
  • sys.disk.lsiraid.pd.Firmware_state 如果值不為0,則此物理磁盤出現(xiàn)問題
  • sys.disk.lsiraid.vd.cache_policy 如果值不為0侥钳,表示此邏輯磁盤緩存策略和設(shè)置不符
  • sys.disk.lsiraid.vd.state 如果值不為0适袜,表示此邏輯磁盤出現(xiàn)問題

SMART
使用 smartctl 工具讀取磁盤 SMART 信息,10分鐘采集一次舷夺,目前所有指標(biāo)僅作為數(shù)據(jù)收集苦酱,不一定意味磁盤損壞(概率變大),tag 表明盤符给猾,device=/dev/sda

  • sys.disk.smart.Reallocated_Sector_Ct
  • sys.disk.smart.Spin_Retry_Count
  • sys.disk.smart.Reallocated_Event_Count
  • sys.disk.smart.Current_Pending_Sector
  • sys.disk.smart.Offline_Uncorrectable
  • sys.disk.smart.Temperature_Celsius

分區(qū)讀寫監(jiān)控
測試所有已掛載分區(qū)是否可讀寫疫萤,1分鐘采集一次,tag 表明掛載點(diǎn)敢伸,mount=/home

  • sys.disk.rw 如果值不為0扯饶,表明此分區(qū)讀寫出現(xiàn)問題

IO相關(guān)采集項(xiàng)

計(jì)算方法:每秒采集一次/proc/diskstats,計(jì)算差值,都是COUNTER類型的尾序。
每個metric都會有個tag: device=$device钓丰,表示設(shè)備,比如sda1每币、sdb

下面各個采集項(xiàng)都是Integer携丁,意思用中文表達(dá)不好說,直接給英文doc

  • disk.io.ios_in_progress Number of actual I/O requests currently in flight.
  • disk.io.msec_read Total number of ms spent by all reads.
  • disk.io.msec_total Amount of time during which ios_in_progress >= 1.
  • disk.io.msec_weighted_total Measure of recent I/O completion time and backlog.
  • disk.io.msec_write Total number of ms spent by all writes.
  • disk.io.read_merged Adjacent read requests merged in a single req.
  • disk.io.read_requests Total number of reads completed successfully.
  • disk.io.read_sectors Total number of sectors read successfully.
  • disk.io.write_merged Adjacent write requests merged in a single req.
  • disk.io.write_requests total number of writes completed successfully.
  • disk.io.write_sectors total number of sectors written successfully.
  • disk.io.read_bytes 單位是byte的數(shù)字
  • disk.io.write_bytes 單位是byte的數(shù)字
  • disk.io.avgrq_sz 下面幾個值就是iostat -x 1看到的值
  • disk.io.avgqu-sz
  • disk.io.await
  • disk.io.svctm
  • disk.io.util 是個百分?jǐn)?shù)兰怠,比如56.43梦鉴,表示56.43%

機(jī)器負(fù)載相關(guān)采集項(xiàng)

計(jì)算方法:讀取/proc/loadavg,都是GAUGE類型的痕慢。沒啥好解釋的尚揣,metric名稱如下:

  • load.1min
  • load.5min
  • load.15min

網(wǎng)絡(luò)相關(guān)采集項(xiàng)

計(jì)算方法:讀取/proc/net/dev,每秒采集一次掖举,計(jì)算差值快骗,都是Integer類型,都是COUNTER類型的塔次。
每個metric都對應(yīng)一個tag: iface=$iface方篮,比如eth0

metric中帶有in的表示流入情況,out表示流出情況励负,total是總量in+out藕溅,支持的metric如下:

  • net.if.in.bytes
  • net.if.in.compressed
  • net.if.in.dropped
  • net.if.in.errors
  • net.if.in.fifo.errs
  • net.if.in.frame.errs
  • net.if.in.multicast
  • net.if.in.packets
  • net.if.out.bytes
  • net.if.out.carrier.errs
  • net.if.out.collisions
  • net.if.out.compressed
  • net.if.out.dropped
  • net.if.out.errors
  • net.if.out.fifo.errs
  • net.if.out.packets
  • net.if.total.bytes
  • net.if.total.dropped
  • net.if.total.errors
  • net.if.total.packets

端口采集項(xiàng)

計(jì)算方法:ss -ln,獲取里邊正在處于listen狀態(tài)的端口继榆。GAUGE類型巾表,值要么是1:代表在監(jiān)聽,要么是0略吨,代表沒有在監(jiān)聽

每個metric有tag:port=port集币,port就是端口

更新說明 最新版本不會把所有端口都上報(bào),用戶在portal上配置監(jiān)控策略翠忠,對某些端口做監(jiān)控鞠苟,配置了哪些端口就匯報(bào)哪些端口

  • net.port.listen

機(jī)器內(nèi)核配置

都是GUAGE類型

  • kernel.maxfiles 讀取的/proc/sys/fs/file-max
  • kernel.files.allocated 讀取的/proc/sys/fs/file-nr第一個Field
  • kernel.files.left 值=kernel.maxfiles-kernel.files.allocated
  • kernel.maxproc 讀取的/proc/sys/kernel/pid_max

ntp采集項(xiàng)

使用 ntpq -pn 獲取本機(jī)時間相對于 ntp 服務(wù)器的 offset,10分鐘采集一次

  • sys.ntp.offset 本機(jī)偏移時間秽之,單位為ms当娱,值過大或者為0則表明有異常,需要報(bào)警

進(jìn)程監(jiān)控

  • proc.num 進(jìn)程數(shù)目考榨,可以通過tag指定具體指哪個進(jìn)程跨细,比如name=sshd,如果是Java的應(yīng)用進(jìn)程名可能都是java河质,沒法做區(qū)分冀惭,此時可以配置cmdline申鱼,比如cmdline=./falcon_agent-c./cfg.ini

其他采集項(xiàng)

  • agent.alive 只有一個值,就是1云头,可以配合nodata(600)來做機(jī)器是否宕機(jī)的輔助判斷依據(jù)

/proc/net/netstat中的部分采集項(xiàng),TcpExt.拼接上下面各個字段就是metric淫半,比如TcpExt.PruneCalled

  • PruneCalled 慢速路徑中溃槐,如果不能將數(shù)據(jù)直接復(fù)制到user space,需要加入到sk_receive_queue前科吭,會檢- 查receiver side memory是否允許昏滴,如果rcv_buf不足就可能prune ofo queue。此時計(jì)數(shù)器加1
  • LockDroppedIcmps tcp_v4_err(): 接收到ICMP錯誤報(bào)文对人,但tcp socket被user鎖住
  • ArpFilter 在三手握手時的SYN_RECV狀態(tài)中接收到RST或者SYN的次數(shù)
  • TW inet_twdr_do_twkill_work(): TIME_WAIT超時的socket數(shù)量(timeout >= 4s)
  • DelayedACKLocked ACK定時器因?yàn)閡ser已經(jīng)鎖住而無法發(fā)送ACK的次數(shù)
  • ListenOverflows 三路握手最后一步完全之后谣殊,Accept queue隊(duì)列超過上限時加1
  • ListenDrops 任何原因,包括Accept queue超限牺弄,創(chuàng)建新連接姻几,繼承端口失敗等,加1
  • TCPPrequeueDropped 如果因?yàn)閮?nèi)存不足(ucopy.memory < sk->rcv_buf)而加入到prequeue失敗势告,重新由backlog處理蛇捌,計(jì)數(shù)器加1
  • TCPTSReorder Recovery狀態(tài)時,接收到到部分確認(rèn)(snd_una < high_seq)時但已經(jīng)undo完成(undo_retrans == 0)的次數(shù)咱台。 數(shù)量上與TCPPartialUndo相等络拌。
  • TCPDSACKUndo Disorder狀態(tài)下,undo完成(undo_retrans == 0)的次數(shù)
  • TCPLoss 丟包
  • TCPLostRetransmit 根據(jù)SACK數(shù)據(jù)推測出的重段包丟失計(jì)數(shù)器:在tcp_sacktag_write_queue()->tcp_mark_lost_retrans()回溺, 如果發(fā)現(xiàn)tcp_highest_sack_seq(tp)超過某skb在重傳時的snd_nxt(TCB->ack_seq)春贸,就認(rèn)為這個重傳包 已經(jīng)丟失了,加1(加的不是段數(shù))遗遵。tcp_highest_sack_seq(tp)是被SACK過的具有最高SEQ號的skb的seq
  • TCPLossFailures tcp_retransmit_timer(): icsk_retransmit==0(第一次進(jìn)入重傳狀態(tài))并且處于Loss狀態(tài)下萍恕,計(jì)數(shù)器加1
  • TCPFastRetrans (非RTO timer)快速重傳次數(shù),即tcp_fastretrans_alert()/tcp_simple_retransmit()->tcp_xmit_retransmit_queue()中瓮恭,如果不是LOSS狀態(tài)雄坪,就加1
  • TCPTimeouts 在RTO timer中,從CWR/Open狀態(tài)下第一次超時的次數(shù)屯蹦,其余狀態(tài)不計(jì)入這個計(jì)數(shù)器;SYN-ACK的超時次數(shù)
  • TCPSchedulerFailed tcp_delack_timer(): 在delay ACK處理功能內(nèi)维哈,如果prequeue中仍有數(shù)據(jù),計(jì)數(shù)器就加1;加入到prequeue登澜,本來是期待著userspace(使用tcp_recvmsg()之類的系統(tǒng)調(diào)用)盡快處理之阔挠。其中仍有數(shù)據(jù),可能隱含著userspace行為不佳脑蠕。
  • TCPAbortOnMemory 在執(zhí)行tcp_close()/probe timer/keepalive timer時购撼,orphan sockets數(shù)量和tcp_memory_allocated是否超過最大值的次數(shù)
  • TCPAbortOnTimeout RTO/probe/keepalive timer到達(dá)最大重試次數(shù)或者最長重試時間的次數(shù)
  • TCPAbortFailed tcp_send_active_reset(): alloc_skb()或者tcp_transmit_skb()失敗跪削。
  • TCPMemoryPressures tcp_enter_memory_pressure()在從“非壓力狀態(tài)”切換到“有壓力狀態(tài)”時計(jì)數(shù)器加1
  • TCPSpuriousRTOs tcp_process_frto(),如果frto_counter !=0 && frto_counter != 1加1
  • TCPBacklogDrop 如果socket被user鎖住迂求,后退一步內(nèi)核會把包加到sk_backlog_queue碾盐,但如果因?yàn)閟k_rcv_buf不足的原因入隊(duì)失敗,計(jì)數(shù)器加1
  • TCPMinTTLDrop 在接收到TCP報(bào)文或者TCP相關(guān)的ICMP報(bào)文時揩局,檢查IP TTL毫玖,如果小于socket option設(shè)置的一個閥值,就丟包

進(jìn)程資源監(jiān)控

威波寫了一個插件凌盯,監(jiān)控god啟動進(jìn)程占用的資源情況付枫,大家可以用來監(jiān)控服務(wù)進(jìn)程的狀態(tài),并且繼承g(shù)od部署時使用tag驰怎,具體Metric如下:
1阐滩、process.cpu.all #進(jìn)程和它的子進(jìn)程使用的sys+user的cpu,單位是jiffies
2县忌、process.cpu.sys #進(jìn)程和它的子進(jìn)程使用的sys cpu掂榔,單位是jiffies
3、process.cpu.user #進(jìn)程和它的子進(jìn)程使用的user cpu芹枷,單位是jiffies
4衅疙、process.swap #進(jìn)程和它的子進(jìn)程使用的swap,單位是page
5鸳慈、process.fd #進(jìn)程使用的文件描述符個數(shù)
6饱溢、process.mem #進(jìn)程占用內(nèi)存,單位byte

服務(wù)器 門神 管理口 狀態(tài)監(jiān)控

Metric 如下:
1走芋、 xm.menshen # 服務(wù)器門神是否可用绩郎。值為整數(shù)類型,1 可用翁逞,其他不可用
2肋杖、xm.ipmi # 服務(wù)器管理接口是否可用。值為整數(shù)類型挖函,1 可用状植,其他不可用

其他命令采集

ss -s

  • ss.orphaned
  • ss.closed
  • ss.timewait
  • ss.slabinfo.timewait
  • ss.synrecv
  • ss.estab

轉(zhuǎn)載:http://git.n.xiaomi.com/falcon/doc/wikis/agent_metric_intro

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市怨喘,隨后出現(xiàn)的幾起案子津畸,更是在濱河造成了極大的恐慌,老刑警劉巖必怜,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肉拓,死亡現(xiàn)場離奇詭異,居然都是意外死亡梳庆,警方通過查閱死者的電腦和手機(jī)暖途,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門卑惜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驻售,你說我怎么就攤上這事露久。” “怎么了欺栗?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵抱环,是天一觀的道長。 經(jīng)常有香客問我纸巷,道長,這世上最難降的妖魔是什么眶痰? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任瘤旨,我火速辦了婚禮,結(jié)果婚禮上竖伯,老公的妹妹穿的比我還像新娘存哲。我一直安慰自己,他們只是感情好七婴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布祟偷。 她就那樣靜靜地躺著,像睡著了一般打厘。 火紅的嫁衣襯著肌膚如雪修肠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天户盯,我揣著相機(jī)與錄音嵌施,去河邊找鬼。 笑死莽鸭,一個胖子當(dāng)著我的面吹牛吗伤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播硫眨,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼足淆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了礁阁?” 一聲冷哼從身側(cè)響起巧号,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氮兵,沒想到半個月后裂逐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泣栈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年卜高,在試婚紗的時候發(fā)現(xiàn)自己被綠了弥姻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡掺涛,死狀恐怖庭敦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薪缆,我是刑警寧澤秧廉,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站拣帽,受9級特大地震影響疼电,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜减拭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一蔽豺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拧粪,春花似錦修陡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至癣朗,卻和暖如春拾因,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旷余。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工盾致, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荣暮。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓庭惜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親穗酥。 傳聞我的和親對象是個殘疾皇子护赊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351