So sánh thời gian trong splunk
Kết quả sau khi sử dụng eval để tính toán được lưu ở cả hai trường hiện tại hoặc trường mới vừa được chỉ định
Giá trị trường có phân biệt chữ hoa chữ thường. Lệnh eval cho phép bạn:
Các loại toán tử:
Chi tiết thêm lệnh eval, xem tại : https://docs.splunk.com/Documentation/Splunk/7.0.3/SearchReference/CommonEvalFunctions 1.2 Convert Values Xét ví dụ sau đây: Câu search trên hiển thị tổng số byte được sử dụng cho mỗi danh mục sử dụng, kết quả trên rất khó để xác định lượng băng thông đang được sử dụng bằng cách tính theo đơn vị byte. Do đó, cần sử dụng lệnh “eval” để chuyển đổi giá trị byte thành megabyte.
Như vậy, ta đã chuyển đối giá trị từ byte sang megabyte, tuy nhiên, kết quả vẫn khó để đọc, vì có nhiều số sau dấu phẩy, do đó cần làm tròn các giá trị này. 1.3 Round Values Để làm tròn các giá trị, ta sử dụng hàm sau: round(field/number, decimals): hàm sẽ thực hiện làm tròn field/number theo số chữ số sau dấu phẩy được chỉ định trong “decimals”. Ví dụ, làm tròn giá trị trong trường Bandwidth đến 2 chữ số sau dấu phẩy: Trong trường hợp muốn loại bỏ cột Bytes ra khỏi bảng sau khi đã có cột Bandwidth, sử dụng lệnh “fields” với toán tử “-“ để loại bỏ trường, ví dụ: 1.4 Calculating Values Có thể thực hiện các phép toán trên các trường có giá trị số thập phân. Xét ví dụ sau: Câu search: index=web sourcetype=access_combined product_name=* action=purchase Liệt kê các sự kiện được mua thành công (action=purchase) từ tất cả các mặt hàng ( product_name=*). Trong đó có 2 trường cần quan tâm là price(giá gốc của sản phẩm) và sale_price(giá sale của sản phẩm): Sử dụng lệnh “stats” để tạo ra bảng gồm product_name, price(đổi tên thành tp), sale_price(đổi tên thành tsp): Sử dụng lệnh “eval” để tính toán phần trăm giảm giá, lưu tại Discount, sau đó định dạng trường Discount dưới dạng %: Sử dụng lệnh “sort” để sắp xếp giảm dần các giá trị trong trường Discount. Tiếp tục sử dụng lệnh “eval” để chuyển dịnh dạng trường Discount từ số sang %. Sau khi hoàn thành tính toán, dùng lệnh “rename” để đổi tên:
Để hỗ trợ cho việc hiển thị, lệnh eval có thêm hàm “tostring” để chuyển đổi các giá trị số sang chuỗi ký tự. Cấu trúc lệnh: tostring(field, “option”) Các Options bao gồm:
Xét ví dụ: Đưa ra doanh thu bán hàng trực tuyến đã bị mất bao nhiêu trong tuần trước do lỗi máy chủ 503. Sau khi sử dụng tostring , giá trị của của trường AvegraLostSales và TotalLostRevenue được chuyển từ giá trị số sang chuỗi ký tự. Xét tiếp ví dụ: Xác định năm phiên của người dùng sử dụng dài nhất trong 4 giờ qua ở định dạng HH: MM: SS. 1.5 Formatting và Sorting Values Với hai kết quả trên có sự khác biệt vì lệnh eval thêm ký tự vào để chuyển đổi các giá trị số thành chuỗi. Do đó, để sắp xếp một cách chính xác: sắp xếp theo giá trị số trước, sau đó sử dụng eval. 1.6 Multiple Expressios Trong lệnh eval, có thể sử dụng nhiều biểu thức với quy tắc như sau:
Cấu trúc biểu thức như sau: eval fieldname1 = expression1,fieldname2 = expression2, fieldname3 = expression3... Xét ví dụ sau: Tính new sale price thấp hơn 5% so với tỷ lệ phần trăm chiết khấu hiện tại cho dữ liệu bán hàng trực tuyến. A: Dựa trên các giá trị của list_price và current_sale_price, tính tỷ lệ phần trăm current_discount B: Tính giá trị new_discount bằng cách trừ 5 từ current_discount C: Tính new_sale_price bằng cách áp dụng phần trăm new_discount 1.7 if Function Cấu trúc hàm if như sau: Cú pháp: if(X,Y,Z) . Trong đó:
Xét ví dụ sau: Hiển thị doanh số bán lẻ của tuần trước, được chia theo Asia và Rest of the World. Các bước thự hiện câu search trên như sau:
1.8 case Function Cấu trúc hàm case như sau: Cú pháp: case(X1,Y1,X2,Y2...) . Trong đó:
Các ví dụ sẽ được thảo luận trong các phần tiếp theo. 2. Filtering Results – search and where Lệnh search và where được sử dụng để với mục đích để lọc các kết quả. Phân biệt hai lệnh này như sau: -search:
-where:
2.1 search Command Xét ví dụ: Đưa ra các sản phẩm trong 24 giờ qua đã bán được hơn 500$ qua hình thức trực tuyến. 2.2 where Command where command: Sử dụng cú pháp biểu thức giống như lệnh eval Sử dụng các biểu thức boolean để lọc kết quả tìm kiếm và chỉ giữ lại kết quả là True Các chuỗi được trích dẫn kép được hiểu là các giá trị trường(Field Values). Xử lý các giá trị trường theo cách phân biệt chữ hoa chữ thường Các chuỗi không được trích dẫn hoặc được trích dẫn đơn được coi là các trường(Field). Để xem chi tiết lệnh where, đọc thêm tại: https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Where?r=searchtip Xét ví dụ sau: Đưa những ngày trong tuần trước: có nhiều hành động remove hơn hành động change. Xét ví dụ sau: Báo cáo số lượng sự kiện trong 24 giờ qua theo địa chỉ IP với một loạt địa chỉ có bắt đầu bằng 10x.y.x.t: |