近期在整理項目總結材料,順便利用學到的ELK知識對項目管理過程資料進行抽取、導入和分析。
手上的資料來源有禅道管理系統、會議紀要和問題跟蹤記錄,禅道管理系統用于日常任務配置設定和工時記錄,具有較高的參考價值,首先就以禅道管理系統中的資料為例進行工時統計。
1.導出源資料
禅道管理系統提供了資料導出功能,是以很友善拿到想要的資料。登入後進入“項目>任務”,選取所有任務,點選“導出”,選擇需要的字段并另存為CSV檔案。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs8mTYF2MS12Y2hnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyAjNyQzY3QWZ0UGZ4EGN4IWOhRTN0EmM5UTZ4QzN3EzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.通過Logstash将資料導入Elasticsearch
啟動Elasticsearch,位址為http://****:9200。
啟動Kibana,位址為http://****:5601。
建立配置檔案task.conf
# 輸入
input {
stdin { }
file{
path => "D:/CSV檔案路徑/task.csv"
start_position => "beginning"
sincedb_path => "D:/記錄資料/History"
}
}
# 過濾器
filter {
csv {
separator => ","
columns => ["編号","任務名稱","任務類型","優先級","預計開始","實際開始","截止日期","任務狀态","最初預計","總計消耗","預計剩餘","進度","由誰建立","建立日期","指派給","指派日期","由誰完成","實際完成","由誰取消","取消時間","由誰關閉","關閉時間","關閉原因"]
}
mutate {
convert => {"最初預計" => "float"}
convert => {"總計消耗" => "float"}
convert => {"預計剩餘" => "float"}
remove_field => ["message"]
}
}
# 輸出
output {
stdout {
codec => json_lines
}
elasticsearch {
hosts => "localhost:9200"
index => "task"
document_type => "_doc"
}
}
定義輸入input、過濾器filter和輸出output。在input中定義需要導入的CSV檔案路徑,在filter中定義需要導入的列和需要轉換格式的字段,在output中定義Elasticsearch服務的位址和索引名稱(定義索引為task)。
使用指令行啟動logstash
.\logstash.bat -f ..\config\task.conf
啟動後可以看到飛速滾動的輸出日志,說明資料在導入了。
使用浏覽器通路Kibana(http://****:5601),打開“Management>開發工具”,檢視已導入的資料。
可以看到已導入資料4773條,同時也可以使用DSL語言進行搜尋查詢。
3.使用Kibana建立可視化圖表
3.1建立索引模式
在Kibana中打開“StackManagement>Kibana>索引模式”,點選“建立索引模式”開始建立。
從現有索引中選擇,點選“下一步”繼續。
3.2 建立可視化圖表
在Kibana中選擇“Dashboard儀表闆”,建立儀表闆并建立可視化。
在可視化編輯面闆左側工具欄選擇索引模式為task。
在中間闆塊選擇圖表類型為柱狀圖。
在右側面闆中分别定義X軸和Y軸,在這個圖表裡計劃使用開發人員姓名作為Y軸,累計工時作為X軸。是以Y軸的的設定為資料來源是“由誰完成.keyword”,顯示名稱為“完成人”。
X軸的設定為資料源為“總計消耗”的求和,顯示名稱為“工時消耗合計”。
點選儲存即可作為可視化圖表在儀表盤中使用和檢視。最終效果如下。
儀表盤可作為獨立連結釋出或者嵌入至iframe中。如果覺得Kibana的圖表不好看,可以将Kibana查詢資料的接口提供給echarts等圖表控件,同樣能有很好的效果。