[发布项目]LPM和LPMP

两个项目的代码都在GemCube上:
[url]http://gemcutter.org/gems/lpm[/url]
[url]http://gemcutter.org/gems/lpmp[/url]
这两个项目其实是一个大项目--> <<倩女幽魂>>
但分开用完全没问题.

为什么叫倩女幽魂呢?
因为我想发扬中华传统文化.

这个监控跟别的监控系统相比的优势我认为在于:
1.安装和运行非常方便.
2.实时监控!

安装:
gem i lpm --source http://gemcutter.org/
gem i lpmp --source http://gemcutter.org/


运行:
[quote](sudo )lpmp --memcache=10.2.226.133:11011,10.2.226.133:11012 --log_level=0 --mode=XQPUSH
(sudo )lpm -t 15 --memcache=10.2.226.133:11011,10.2.226.133:11012 -P --pids=28261,28263 --log_level=3[/quote]

设计思路:
我随便写下啊,
LPM是Rest Server提供主机数据,安装在被监控服务器上.
LPMP也是Rest Server,处理LPM得到的数据.安装在监控服务器上.
LPM和LPMP可以N对1,也就是同时监控多台服务器.
LPMP提供web服务,有动态的图表展示,实时更新数据,这是由前端JS控制的.
但由于我美工没什么功底,目前只会用EXT做页面,所以LPMP体积有点大,大部分是Extjs占用掉了.

目前设计了三种LPM和LPMP的通讯模式:
1.LPMP主动抓LPM数据.实时得到最新数据.
2.LPMP主动抓LPM数据.后台若干进程抓取,然后放到memcache里,请求来了后LPMP主进程直接从cache里面拿做好的数据.
3.LPM直接往Cache里面扔数据,LPMP主进程直接访问cache.
第三个最常用,第一个做演示用或者没有cache时候用.当我想到第三种设计方式的时候,第二种设计就暂停了,没必要.

顺便再说一句,LPM目前只支持Linux系统监控.

下面是LPMP和LPM的使用帮助:
安装好LPMP后,可以在命令行直接敲入命令:lpmp --help =>

[quote]ubuntu:~$ lpmp --help
CaiChen [also named => L(inux) P(roc) M(onitor) P(ortal)] :
Mail/Gtalk: zheng.cuizh@gmail.com

Usage: lpmp [options] argv...
(sudo )lpmp --memcache=10.2.226.133:11011,10.2.226.133:11012 --log_level=0 --mode=XQPUSH
LPMP optins useage:
-p, --port=PORT lpmp server requires a port number.
default port=6789
--mode [MODE] PULL : (default) lpmp server will request data from lpm server when a request coming.
This mode require a high performance lpmp server,it's used to be a daemon.
BGPULL : This mode will run some background process at lpmp server.
It needs memcaches.see --memcache=[LIST,LIST]
XQPUSH : This mode will get data from memcache when a request come from client.
This mode is the heighest performance of the three.
It also needs memcaches.see --memcache=[LIST,LIST]
default --mode=PULL.
-m, --memcache=LIST,LIST memcache list,such as : --memcache=10.2.226.38:11211,10.2.226.37:11211
memcache server(s) must be alive.
-l, --log=LogPath default --log=/var/log/lpmp.log
--log_level=LogLevel 1 => DEBUG
2 => INFO
3 => WARN
4 => ERROR
5 => FATAL
default --log_level=3
-t=60 Make sure the LPMP server's datatime is same as LPM server,
or the difference is little than timeout,else the memcache data will not available for LPMP
(sudo )ntpdate 10.2.228.8(your date server ip)
default -t=60
common options:
--help show this message
--version show version
[/quote]

同样,安装好LPM后,直接敲入:lpm --help =>

[quote]ubuntu:~$ lpm --help
XiaoQian [also named => L(inux) P(roc) M(onitor)] :
Mail/Gtalk: zheng.cuizh@gmail.com

Usage: lpm [options] argv...

LPM optins useage:
-p, --port=PORT lpm rest server requires a port number.
default port=9876
-P, --[no-]push if push is given, the --memcache must be set,
and a job will push server performance data to memcache server.
default --push=false.
-t, --timer=Second periodic timer to push cache
default --timer=10(second).
-m, --memcache=[LIST,LIST] memcache list,such as : --memcache=10.2.226.38:11211,10.2.226.37:11211
memcache server(s) must be alive.
-l, --log=LogPath default --log=/var/log/lpm.log
--log_level=LogLevel 1 => DEBUG
2 => INFO
3 => WARN
4 => ERROR
5 => FATAL
default --log_level=3
--pids=[PID,PID] pids list,such as : --pids=1234,2134,4321
common options:
--help show this message
--version show version[/quote]


LPM is short for Linux Proc Monitor.

LPM是一个监控Linux主机性能参数的类库,带有一个web server,提供网页访问接口,前提是你安装过"sinatra".主要监控的是Linux主机性能常用参数,比如主机CPU,Load,Memory等,还可以监控单个进程的参数指标比如单进程消耗的CPU等.

该项目将和另外一个项目合并,当然完全可以单独拿出来使用。
合并后, LPM中文项目名将叫:小倩

另外一个项目--LPMP中文项目名将叫:采臣

采臣将使用小倩提供的数据,提供一个对外的统一监控界面,强大之处在于采臣支持分布式多服务器端监控。

[quote]残寒消尽,疏雨过,清明后。 花径款余红,风沼萦新皱。 乳燕穿庭户,飞絮沾襟袖。 正佳时,仍晚昼,著人滋味,真个浓如酒。
频移带眼,空只恁,厌厌瘦。 不见又思量,见了还依旧。为问频相见,何似长相守。 天不老,人未偶,且将此恨,分付庭前柳。[/quote]

It provides current performance of a linux host,and the command 'lpm' is a web server supported by sinatra,you could type in 'lpm' in command shell,then access the http://localhost:9876/,some information will be show.

If you want get some help,plz check out the test/.rb.

Example:

# below are some test cases for LPM::Proc

require "lpm" 
require "Benchmark"
require "pp"

Benchmark.bm do |x|
x.report("CPU"){pp LPM::Proc.cpu}
x.report("CPU(5)"){pp LPM::Proc.cpu(5)}
x.report("CPU(10)"){pp LPM::Proc.cpu(10)}
x.report("CPU(15)"){pp LPM::Proc.cpu(15)}
end
# => below test is for LPM::Proc
pp "LPM::Proc.loadavg => #{LPM::Proc.loadavg}"
pp "LPM::Proc.uptime => #{LPM::Proc.uptime}"
pp "LPM::Proc.meminfo => #{LPM::Proc.meminfo}"
pp "LPM::Proc.cpuinfo => #{LPM::Proc.cpuinfo}"

# below are some test cases for LPM::Process

require "lpm" require "Benchmark" require "pp"

# => below test is for LPM::Utils
pp "LPM::Utils.ulimit => #{LPM::Utils.ulimit}"
pp "LPM::Utils.locale => #{LPM::Utils.locale}"
pp "LPM::Utils.sysctl => #{LPM::Utils.sysctl}"

# => LPM::Utils can also be used as
pp "LPM::Proc.ulimit => #{LPM::Proc.ulimit}"
pp "LPM::Proc.locale => #{LPM::Proc.locale}"
pp "LPM::Proc.sysctl => #{LPM::Proc.sysctl}"


这里是LPMP的截图:


[img]http://dl.iteye.com/upload/attachment/163781/b91c09d1-99e8-3686-8be2-5f03dd60ca36.jpg[/img]


点击一个主机可以打开一个tab


[img]http://dl.iteye.com/upload/attachment/163779/1984c9d1-92bb-3f3a-88a8-491d3c1a80cd.png[/img]


页面还比较简陋

大家多包涵.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LPM_ROM和LPM_RAM设计 一 实验目的 掌握FPGA中LPM_ROM的设置: 1 作为只读寄存器ROM的工作特性和配置方法; 2 学习将程序代码或数据以MIF格式文件加载于LPM_ROM中; 掌握lpm_ram_dp的参数设置和使用方法: 1 掌握lpm_ram_dp作为随即存储器RAM的设置; 2 掌握lpm_ram_dp的工作特性和读写方法; 3 掌握lpm_ram_dp的仿真测试方法。 二 实验要求 1 LPM_ROM定制和测试 LPM_ROM的参数设置: LPM_ROM中数据的写入,即初始化文件的编写; LPM_ROM的实际应用,在GW48实验台上用N0.0电路模式测试。 2 LPM_RAM定制和测试 LPM_RAM的参数设置; LPM_RAM的实际应用,在GW48实验台上用N0.0电路模式测试。 三 实验原理 用户可编程硬件FPGA芯片设计,有许多可调用参数化库模块LPM(Library Parameterized Modules),课直接调用设置,利用嵌入式阵列块EAB(Embed Array Block)构成lpm_ROM,lpm_RAM等各种存储器结构。 Lpm_ROM有5组信号: 地执信号address[]; 数据信号q[]; 时钟信号inclock、outclock; 允许信号memenable. 其参数是可以设定的。由于ROM是只读寄存器,它的数据口试单向的输出端口,数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。 Lpm_ram_dq的输入/输出信号如下: 地址信号 address[]; RAM_dqo的存储单元地址; 数据输入信号DATA[] RAM_dqo的数据输入端; 数据输出信号Q[]; RAM_dqo的数据输出端; 时钟信号CLK; 读/写时钟脉冲信号; 读写信号W/R 读/写控制信号端 数据从总线端口DATA[]输入。丹输入数据和地址准备好以后,由于在inclock上的信号是地址锁存时钟,当信号上升沿到来时,地址被锁存,于是数据被写入存储单元。数据的读出控制是从A[]输入存储单元地址,在CLK信号上升沿到来时,该单元数据从Q[]输出。W/R为读/写控制端,低电平时进行读操作,高电平时进行写操作; 四 实验步骤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值