kibana日誌成圖

前言

既然已經搭了es和kibana, 那肯定要做一下kibana的圖表, 看日誌超級方便的, 首先寫個腳本生成一點測試數據

生成測試數據

"""
@author xiaofei
@date   2019-05-20
@desc   百度雲es添加數據
"""

from elasticsearch import Elasticsearch
from elasticsearch import helpers
import random

import json

host = 'IP:9200'
es_conn = Elasticsearch(hosts=host, maxsize=25)

# 操作索引  請不要在意我的命名...
index_name = "pics_a"
type_name = "pic"
online_alias = "pics"

# mapping
doc_mapping = {
    "properties": {
        "code": {"type": "long"},
        "timeout": {"type": "long"},
        "timeline": {"type": "float"},
        "url": {"type": "keyword"},
        "ctime": {"type": "date"}
    }
}

# # 刪除索引
# res = es_conn.indices.delete(index=index_name)
# print(res)
# # 創建庫
# es_conn.indices.create(index=index_name, ignore=400)
# es_conn.indices.put_mapping(index=index_name, doc_type=type_name, body=doc_mapping)
# es_conn.indices.put_alias(index_name, online_alias)

code = [200, 404, 302, 500]
timeline = [1.1, 0.4, 0.1, 0.02, 0.29, 3, 0.5, 1.2]
url = ["Add", "list", "update", "del"]
date = ["2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04"]

data = []
for x in range(1000):
    dat = {
        "code": random.choice(code),
        "timeline": random.choice(timeline),
        "url": random.choice(url),
        "ctime": random.choice(date)
    }
    dat["timeout"] = 1 if dat['timeline'] > 1 else 0
    action = {"_index": index_name, "_type": type_name, "_source": dat}
    data.append(action)
helpers.bulk(es_conn, data)
print("插入成功")

開始圖表

應該都能看出來我的測試數據是什麼, 就是api請求統計, 首先來畫一個每天請求狀態碼分佈圖
首先添加一個圖表

點擊添加
選擇折線圖
折線圖
選擇需要畫圖的索引
選擇對應索引
x軸用ctime添加日期維度, 點擊紅圈生成圖像
添加x軸以天爲維護, 點擊紅圈成圖
再次添加x軸聚合統計x軸
再次添加x軸, 選擇code
ok, 這就是成品了
成品圖
點擊保存寫上標題就成功了
完事
要是感覺不夠細緻, 還可以在加一層, 每個路由的狀態碼統計
在這裏插入圖片描述
成品圖
在這裏插入圖片描述
顏色什麼的自己都可以隨便改變, 這是隨機的測試數據, 正常的肯定不能是這種花裏胡哨的曲線

ok, 基礎玩法就這樣了, 更多玩法自己挖掘

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章