1. 建立測試資料 (patient.log)
在cancer-dashboard資料夾裡,建立一個檔案:touch patient.log
內容可以先模擬「肝癌病人的AFP(甲型胎兒蛋白)指標」
例如:
補充:AFP指標常被用來追蹤肝癌患者病情,數值上升可能代表疾病進展,這裡我們用假資料模擬。
2. 設定Promtail收集log
在cancer-dashboard新增一個promtail-config.yml,內容輸入:
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: patient-logs
static_configs:
- targets:
- localhost
labels:
job: patient-data
__path__: /var/log/patient.log
這個代表Promtail會去讀取 /var/log/patient.log,然後把資料送進Loki。
3. 修改docker-compose.yml
把Promtail部分改掉,讓它能讀patient.log:
promtail:
image: grafana/promtail:2.9.0
volumes:
- ./patient.log:/var/log/patient.log # 把本地檔案掛進容器
- ./promtail-config.yml:/etc/promtail/config.yml
command: -config.file=/etc/promtail/config.yml
儲存後重新啟動服務
4. 在Grafana新增Loki Data Source
打開http://localhost:3000,並且登入
點選左邊選單 → Connections → Data sources → Add data source → 選擇Loki
URL輸入:http://loki:3100
最後點Save & Test,應該會顯示綠色「Data source is working」。
5. 建立第一張圖表
(1)左邊選單 → Dashboards → New → New dashboard
(2)點Add a new panel
(3)查詢語法輸入: {job="patient-data"}
(4)先看結果跑出來,再改成顯示「折線圖」
就會看到AFP數值隨時間上升的第一張圖表了!