diamond是使用python實現的用於收集監控資料的工具,主要收集metrics型別的資料,即資料格式一般是metric timestamp value
簡單來說, diamond就是python實現的守護程序,自動定時的從你的服務或是其它指定資料來源中提取數值,併發送到指定的後端(handler)
diamond支援多種後端handler, 可以將資料傳送到graphite,opentsdb,mysql,logfile等,並且可以很容易的定製handler
【安裝】
git chone
cd diamond
python setup.py install
【啟動】
python ./bin/diamond --configfile=conf/diamond.conf
【配置】
[server]
# 具體使用的handler,用來發布/儲存metrics, 可以配置多個
handlers = diamond.handler.tsdb.tsdbhandler, diamond.handler.archive.archivehandler
# handler的路徑,如果需要新增handler,則將具體的py實現檔案放到該目錄,
handlers_path = /usr/share/diamond/handlers/
# collector的路徑
collectors_path = /usr/share/diamond/collectors/
[handler]
# 該section下配置詳細的handler資訊,比如使用mysql儲存資料
[[mysqlhandler]]
hostname = 127.0.0.1
port = 3306
username = root
password =
database = diamond
table = metrics
col_time = timestamp
col_metric = metric
col_value = value
[collectors]
# 該session下配置具體的collector資訊
[[democollector]]
enabled = true -- true表示啟動該collector
interval = 60 -- metrics資料收集的間隔時間
【定製】
擴充套件handler
handler對應的py實現指令碼在handlers_path目錄下
擴充套件乙個handler:
需要繼承handler類,主要實現process方法
def process(self, metric)
擴充套件collector
collector對應的py實現指令碼在collector_path目錄下
擴充套件乙個collector
需要繼承diamond.collector.collector類,實現collect方法
def collect(self)
【例項】
使用mysql進行儲存時,發現如果表不存在不會自動建立,而是返回寫資料失敗; 對其進行修改,載入handler時,如果表不存在則建立。
新增配置,用於指定資料表的字段型別
col_time_type = int unsigned
col_metric_type = varchar(255)
col_value_type = varchar(255)
修改handler實現類: src/diamond/handler/mysql.py
def __init__(self, config=none)
...self.col_time_type = self.config['col_time_type']
self.col_metric_type = self.config['col_metric_type']
self.col_value_type = self.config['col_value_type']
# connect
self._connect()
self._prepare()
def _prepare(self):
"""create table if not exist
"""createsql = "create table if not exists %s (%s %s, %s %s, %s %s)" % (self.table, self.col_metric, self.col_metric_type, self.col_time, self.col_time_type, self.col_value, self.col_value_type)
try:
cursor = self.conn.cursor()
cursor.execute(createsql)
cursor.close()
self.conn.commit()
except baseexception, e:
self.log.error("mysqlhandler: failed to create data. %s.", e)
sys.exit(1)
使用GraphEdit使用
1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....
MySQL使用學習使用 mysql學習使用
1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...
學習使用CSDN markdown使用
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...