1. Tùy Chỉnh Màu Sắc Biểu Đồ Trên Dashboard
Để thay đổi màu sắc của các biểu đồ trên dashboard, bạn cần mở trang dashboard, nhấp vào nút "Edit", sau đó chuyển sang chế độ "Source". Trong mã XML, hãy thêm tùy chọn sau vào phần biểu đồ bạn muốn chỉnh sửa:
<option name="charting.fieldColors">{"trang_thai_1":"#FF0000", "trang_thai_2":"#00FF00", "trang_thai_3":"#0000FF"}</option>
2. Tạo Drilldown Trên Dashboard
Drilldown cho phép người dùng nhấp vào một phần tử trên dashboard để chuyển đến một trang khác. Để cấu hình, hãy chỉnh sửa dashboard, nhấp vào biểu đồ bạn muốn thiết lập, sau đó chọn "Edit Drilldown" ở góc trên bên phải. Bạn có thể chọn các loại liên kết khác nhau như: Link to search, link to dashboard, link to report, link to custom URL, hoặc quản lý tokens. Sau khi chọn loại liên kết, bạn có thể tùy chỉnh nội dung chi tiết.
3. Lệnh streamstats để Phân Tích Dữ Liệu
Lệnh `streamstats` rất hữu ích để tính toán các thống kê trên một luồng dữ liệu. Ví dụ sau đây minh họa cách tìm ra trạng thái UE (User Equipment) mới nhất và 3 sự kiện trạng thái UE phổ biến nhất cho mỗi thiết bị.
index="idx_md_mita_web" messageType="keep_alive"
| where thiet_bi_id="thiet_bi_A" OR thiet_bi_id="thiet_bi_B" OR thiet_bi_id="thiet_bi_C"
| table thiet_bi_id, trang_thai_ue, thoi_diem_cap_nhat, su_kien_trang_thai_ue
| fillnull value="Chưa Xác Định"
| where trang_thai_ue != "Chưa Xác Định" AND su_kien_trang_thai_ue != "Chưa Xác Định"
| sort 0 thiet_bi_id - thoi_diem_cap_nhat
| streamstats count as stt_index by thiet_bi_id, trang_thai_ue
| streamstats count as su_kien_index by thiet_bi_id, su_kien_trang_thai_ue
| eval trang_thai_ue = if(stt_index > 1, null(), trang_thai_ue), su_kien_trang_thai_ue = if(su_kien_index > 1, null(), su_kien_trang_thai_ue)
| streamstats sum(stt_index) as stt_rank, sum(su_kien_index) as su_kien_rank by thiet_bi_id
| eval trang_thai_ue = if(stt_rank > 1, null(), stt_rank . "|" . trang_thai_ue . "|" . thoi_diem_cap_nhat), su_kien_trang_thai_ue = if(su_kien_rank > 3, null(), su_kien_rank . "|" . su_kien_trang_thai_ue . "|" . thoi_diem_cap_nhat)
| stats values(trang_thai_ue) as trang_thai_moi_nhat, values(su_kien_trang_thai_ue) as top3_su_kien by thiet_bi_id
| eval thoi_diem_trang_thai = mvindex(split(trang_thai_moi_nhat, "|"), 2), trang_thai_moi_nhat = mvindex(split(trang_thai_moi_nhat, "|"), 1), thoi_diem_su_kien = mvmap(top3_su_kien, mvindex(split(top3_su_kien, "|"), 2)), top3_su_kien = mvmap(top3_su_kien, mvindex(split(top3_su_kien, "|"), 1))
| table thiet_bi_id, trang_thai_moi_nhat, thoi_diem_trang_thai, top3_su_kien, thoi_diem_su_kien
Mục đích của đoạn mã: Hiển thị trạng thái UE mới nhất và 3 sự kiện trạng thái UE phổ biến nhất trong một khoảng thời gian.
Giải thích logic từ lệnh `sort` đến 7 lệnh tiếp theo:
- Sắp xếp dữ liệu theo `thiet_bi_id` tăng dần và `thoi_diem_cap_nhat` giảm dần.
- Gán chỉ số sắp xếp cho từng `trang_thai_ue` của mỗi `thiet_bi_id`.
- Gán chỉ số sắp xếp cho từng `su_kien_trang_thai_ue` của mỗi `thiet_bi_id`.
- Chỉ giữ lại `trang_thai_ue` đầu tiên (mới nhất) và loại bỏ các bản ghi trùng lặp.
- Chỉ giữ lại `su_kien_trang_thai_ue` đầu tiên (mới nhất) và loại bỏ các bản ghi trùng lặp.
- Chỉ giữ lại chỉ số đầu tiên cho `stt_index` và `su_kien_index`.
- Gán hạng cho `stt_index` và `su_kien_index`.
- Kết hợp hạng, giá trị và timestamp cho `trang_thai_ue`, chỉ giữ lại bản ghi đầu tiên.
- Kết hợp hạng, giá trị và timestamp cho `su_kien_trang_thai_ue`, chỉ giữ lại 3 bản ghi đầu tiên.
4. Lệnh xyseries để Chuẩn Hóa Dữ Liệu Biểu Đồ
| xyseries trục_x trục_y ten_truong_gia_tri
# Chuyển đổi kết quả thành định dạng phù hợp để vẽ biểu đồ
# Tham số: tên trường trục hoành, tên trường trục tung, tên trường chứa giá trị
5. Sử Dụng hàm coalesce để Hợp Nhất Giá Trị
Hàm `coalesce` trả về giá trị không rỗng đầu tiên từ một hoặc nhiều trường.
| eval ten_truong_hop = coalesce(ten_truong_hop, ten_truong_hop_khac)
# Lấy giá trị không rỗng từ hai trường
6. Tính Toán Giá Trị Tích Lũy với accum
Lệnh `accum` được sử dụng để tính toán giá trị tích lũy của một trường.
...| stats sum(gia_tri_hop_le) as tong_hop_le, count as tong_so_ban_ghi by thoi_gian
| sort 0 thoi_gian
| accum tong_so_ban_ghi as tong_hop_le_tich_luy
| table thoi_gian, tong_hop_le, tong_hop_le_tich_luy