🎨 10本の絶対値基準線【カラフル完全版】
赤・青・黄・緑・水色・グレー・茶色+3色
🎯 完成イメージ
10本のカラフル基準線
┌────────────────────────────────────────────────┐
│ 2000│━━━━━━━━━━━━━━━━━━━━━━ 🔴 赤ライン │
│ 1800│━━━━━━━━━━━━━━━━━━━━━━ 🟠 オレンジライン│
│ 1600│━━━━━━━━━━━━━━━━━━━━━━ 🟡 黄色ライン │
│ 1400│━━━━━━━━━━━━━━━━━━━━━━ 🟢 緑ライン │
│ │ ╱╲ │
│ 1200│━━━━━━━━━╱━━╲━━━━━━━━━━ 💧 水色ライン │
│ │ ╱ ╲ │
│ 1000│━━━━━━╱━━━━━━╲━━━━━━━━ 🔵 青ライン │
│ │ ╱ ╲ ╱╲ │
│ 800│━━╱━━━━━━━━━━━━━╱━━╲━━ 🟣 紫ライン │
│ │ ╲ │
│ 600│━━━━━━━━━━━━━━━━━━━━╲━ ⚫ グレーライン │
│ 400│━━━━━━━━━━━━━━━━━━━━━━ 🟤 茶色ライン │
│ 200│━━━━━━━━━━━━━━━━━━━━━━ 🩷 ピンクライン │
│ └────────────────────────────────────→ │
└────────────────────────────────────────────────┘
📝 STEP 1: SPLクエリ(10本の基準線)
| inputlookup server_data.csv
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
| timechart span=30m avg(cpu) as データ値
# 10本の絶対値基準線
| eval 赤ライン=2000
| eval オレンジライン=1800
| eval 黄色ライン=1600
| eval 緑ライン=1400
| eval 水色ライン=1200
| eval 青ライン=1000
| eval 紫ライン=800
| eval グレーライン=600
| eval 茶色ライン=400
| eval ピンクライン=200
各行の説明:
| inputlookup server_data.csv
↑ CSVデータを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ タイムスタンプを変換
| timechart span=30m avg(cpu) as データ値
↑ 30分間隔で集計
# ここから10本の基準線
| eval 赤ライン=2000
↑ Y軸の2000の位置に固定
| eval オレンジライン=1800
↑ Y軸の1800の位置に固定
| eval 黄色ライン=1600
↑ Y軸の1600の位置に固定
(以下同様に各位置に固定値を設定)
🎨 STEP 2: 各線の色設定表
完全版カラーコード一覧
| 番号 | 線の名前 | 固定値 | 色 | HEXコード | Line Width |
|---|---|---|---|---|---|
| 1 | データ値 | - | 黒 | #000000 |
2 |
| 2 | 赤ライン | 2000 | 赤 | #FF0000 |
4 |
| 3 | オレンジライン | 1800 | 橙 | #FF8800 |
4 |
| 4 | 黄色ライン | 1600 | 黄 | #FFFF00 |
4 |
| 5 | 緑ライン | 1400 | 緑 | #00FF00 |
4 |
| 6 | 水色ライン | 1200 | 水色 | #00FFFF |
4 |
| 7 | 青ライン | 1000 | 青 | #0000FF |
4 |
| 8 | 紫ライン | 800 | 紫 | #9400D3 |
4 |
| 9 | グレーライン | 600 | 灰 | #808080 |
4 |
| 10 | 茶色ライン | 400 | 茶 | #8B4513 |
4 |
| 11 | ピンクライン | 200 | 桃 | #FF69B4 |
4 |
⚙️ STEP 3: UI設定手順【詳細】
3-1: Configuration を開く
Panel Editor画面
┌────────────────────────────────────────┐
│ 右側パネル │
│ ┌──────────────────────────────────┐ │
│ │ 📊 Configuration ← クリック │ │
│ │ 🎨 Visualization │ │
│ │ 📏 Layout │ │
│ └──────────────────────────────────┘ │
└────────────────────────────────────────┘
3-2: Series を展開
Configuration タブ
┌────────────────────────────────────────┐
│ ▼ Visualization ← クリックして展開 │
│ ▼ Series ← クリックして展開 │
│ • データ値 │
│ • 赤ライン ← ここから設定開始 │
│ • オレンジライン │
│ • 黄色ライン │
│ • 緑ライン │
│ • 水色ライン │
│ • 青ライン │
│ • 紫ライン │
│ • グレーライン │
│ • 茶色ライン │
│ • ピンクライン │
└────────────────────────────────────────┘
3-3: 各線の設定(10回繰り返す)
設定1: 赤ライン
赤ラインをクリック
┌────────────────────────────────────────┐
│ Series: 赤ライン │
├────────────────────────────────────────┤
│ │
│ 🎨 Color │
│ ┌──────────────────────────────────┐ │
│ │ [🔴] #FF0000 ← クリックして入力 │ │
│ └──────────────────────────────────┘ │
│ │
│ 📏 Line Width │
│ ┌──────────────────────────────────┐ │
│ │ [ 4 ] ← 入力 │ │
│ └──────────────────────────────────┘ │
│ │
│ ━━ Line Style │
│ ┌──────────────────────────────────┐ │
│ │ (●) Solid 実線 │ │
│ │ ( ) Dashed 点線 │ │
│ │ ( ) Dotted ドット │ │
│ └──────────────────────────────────┘ │
│ │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定2: オレンジライン
オレンジラインをクリック
┌────────────────────────────────────────┐
│ Series: オレンジライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🟠] #FF8800 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定3: 黄色ライン
黄色ラインをクリック
┌────────────────────────────────────────┐
│ Series: 黄色ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🟡] #FFFF00 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定4: 緑ライン
緑ラインをクリック
┌────────────────────────────────────────┐
│ Series: 緑ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🟢] #00FF00 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定5: 水色ライン
水色ラインをクリック
┌────────────────────────────────────────┐
│ Series: 水色ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [💧] #00FFFF │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定6: 青ライン
青ラインをクリック
┌────────────────────────────────────────┐
│ Series: 青ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🔵] #0000FF │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定7: 紫ライン
紫ラインをクリック
┌────────────────────────────────────────┐
│ Series: 紫ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🟣] #9400D3 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定8: グレーライン
グレーラインをクリック
┌────────────────────────────────────────┐
│ Series: グレーライン │
├────────────────────────────────────────┤
│ 🎨 Color: [⚫] #808080 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定9: 茶色ライン
茶色ラインをクリック
┌────────────────────────────────────────┐
│ Series: 茶色ライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🟤] #8B4513 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
設定10: ピンクライン
ピンクラインをクリック
┌────────────────────────────────────────┐
│ Series: ピンクライン │
├────────────────────────────────────────┤
│ 🎨 Color: [🩷] #FF69B4 │
│ 📏 Line Width: [ 4 ] │
│ ━━ Line Style: (●) Solid │
│ [ Apply ] ← 必ず押す! │
└────────────────────────────────────────┘
💾 STEP 4: 保存
右上のボタン
┌────────────────────────────────────────┐
│ [ 💾 Save ] ← クリック │
└────────────────────────────────────────┘
保存完了メッセージ
┌────────────────────────────────────────┐
│ ✅ Dashboard saved successfully. │
└────────────────────────────────────────┘
🎯 別パターン:点線バージョン
SPLクエリ(同じ)
| inputlookup server_data.csv
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
| timechart span=30m avg(cpu) as データ値
| eval 赤ライン=2000
| eval オレンジライン=1800
| eval 黄色ライン=1600
| eval 緑ライン=1400
| eval 水色ライン=1200
| eval 青ライン=1000
| eval 紫ライン=800
| eval グレーライン=600
| eval 茶色ライン=400
| eval ピンクライン=200
UI設定で Line Style を変更
すべての基準線で:
┌────────────────────────────────────────┐
│ ━━ Line Style │
│ ( ) Solid 実線 │
│ (●) Dashed 点線 ← これを選択 │
│ ( ) Dotted ドット │
└────────────────────────────────────────┘
完成イメージ:
点線バージョン
┌────────────────────────────────────────────────┐
│ 2000│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🔴 赤 │
│ 1800│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🟠 オレンジ │
│ 1600│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🟡 黄色 │
│ 1400│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🟢 緑 │
│ │ ╱╲ │
│ 1200│━ ━ ━ ━ ━╱━━╲━ ━ ━ ━ ━ 💧 水色 │
│ │ ╱ ╲ │
│ 1000│━ ━ ━ ╱━ ━ ━ ━╲━ ━ ━ ━ 🔵 青 │
│ │ ╱ ╲ │
│ 800│━ ╱━ ━ ━ ━ ━ ━ ━╲━ ━ ━ 🟣 紫 │
│ │╱ ╲ │
│ 600│━ ━ ━ ━ ━ ━ ━ ━ ━ ━╲━ ⚫ グレー │
│ 400│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🟤 茶色 │
│ 200│━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ 🩷 ピンク │
│ └────────────────────────────────────→ │
└────────────────────────────────────────────────┘
📋 クイック設定チェックリスト
□ SPLクエリ実行完了
□ 赤ライン設定完了 (#FF0000)
□ オレンジライン設定完了 (#FF8800)
□ 黄色ライン設定完了 (#FFFF00)
□ 緑ライン設定完了 (#00FF00)
□ 水色ライン設定完了 (#00FFFF)
□ 青ライン設定完了 (#0000FF)
□ 紫ライン設定完了 (#9400D3)
□ グレーライン設定完了 (#808080)
□ 茶色ライン設定完了 (#8B4513)
□ ピンクライン設定完了 (#FF69B4)
□ 各線でApply押した
□ Saveボタン押した
□ グラフ確認完了
🎨 色のバリエーション
明るいトーン版
| 線の名前 | 固定値 | 明るい色コード |
|---|---|---|
| 赤ライン | 2000 | #FF6B6B |
| オレンジライン | 1800 | #FFA500 |
| 黄色ライン | 1600 | #FFD700 |
| 緑ライン | 1400 | #90EE90 |
| 水色ライン | 1200 | #87CEEB |
| 青ライン | 1000 | #4169E1 |
| 紫ライン | 800 | #DA70D6 |
| グレーライン | 600 | #C0C0C0 |
| 茶色ライン | 400 | #D2691E |
| ピンクライン | 200 | #FFB6C1 |
暗いトーン版
| 線の名前 | 固定値 | 暗い色コード |
|---|---|---|
| 赤ライン | 2000 | #8B0000 |
| オレンジライン | 1800 | #CC5500 |
| 黄色ライン | 1600 | #B8860B |
| 緑ライン | 1400 | #006400 |
| 水色ライン | 1200 | #008B8B |
| 青ライン | 1000 | #00008B |
| 紫ライン | 800 | #4B0082 |
| グレーライン | 600 | #696969 |
| 茶色ライン | 400 | #654321 |
| ピンクライン | 200 | #C71585 |
💡 カスタマイズのヒント
固定値を変更する場合
# 現在の設定(200刻み)
| eval 赤ライン=2000
| eval オレンジライン=1800
| eval 黄色ライン=1600
...
# 100刻みに変更
| eval 赤ライン=1000
| eval オレンジライン=900
| eval 黄色ライン=800
| eval 緑ライン=700
| eval 水色ライン=600
| eval 青ライン=500
| eval 紫ライン=400
| eval グレーライン=300
| eval 茶色ライン=200
| eval ピンクライン=100
# 50刻みに変更
| eval 赤ライン=500
| eval オレンジライン=450
| eval 黄色ライン=400
| eval 緑ライン=350
| eval 水色ライン=300
| eval 青ライン=250
| eval 紫ライン=200
| eval グレーライン=150
| eval 茶色ライン=100
| eval ピンクライン=50
線の太さを変える
重要な線を太く:
┌────────────────────────────────────────┐
│ 赤ライン Line Width: 6 最重要 │
│ オレンジライン Line Width: 5 │
│ 黄色ライン Line Width: 4 重要 │
│ 緑ライン Line Width: 4 │
│ 水色ライン Line Width: 3 通常 │
│ 青ライン Line Width: 3 │
│ 紫ライン Line Width: 2 参考 │
│ グレーライン Line Width: 2 │
│ 茶色ライン Line Width: 1 補助 │
│ ピンクライン Line Width: 1 │
└────────────────────────────────────────┘
🔧 トラブルシューティング
問題1: 10本すべてが表示されない
解決策:
1. SPLクエリを確認
→ すべての | eval 行があるか
2. Run Query を実行
→ クエリ変更後は必ず実行
3. Y軸の範囲を確認
→ データが0-1000で基準線が2000なら見えない
問題2: 色が反映されない
解決策:
各線の設定後に必ず:
1. Apply ボタンを押す
2. Save ボタンを押す
3. ページをリロード
すべての基準線(10本)に対して繰り返す
問題3: 線が重なって見えない
解決策:
Line Width を調整:
上の線ほど太く → 下の線は細く
または固定値の間隔を広げる:
200刻み → 300刻みに変更
📊 完成版コピペ用
| inputlookup server_data.csv
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
| timechart span=30m avg(cpu) as データ値
| eval 赤ライン=2000
| eval オレンジライン=1800
| eval 黄色ライン=1600
| eval 緑ライン=1400
| eval 水色ライン=1200
| eval 青ライン=1000
| eval 紫ライン=800
| eval グレーライン=600
| eval 茶色ライン=400
| eval ピンクライン=200
色設定のコピペ用:
赤: #FF0000
オレンジ: #FF8800
黄色: #FFFF00
緑: #00FF00
水色: #00FFFF
青: #0000FF
紫: #9400D3
グレー: #808080
茶色: #8B4513
ピンク: #FF69B4
📝 10本基準線コード【1行ずつ完全解説】
🎯 完全版コード(コメント付き)
| inputlookup server_data.csv
説明:
-
|→ パイプ記号。Splunkコマンドの開始 -
inputlookup→ アップロードしたCSVファイルを読み込むコマンド -
server_data.csv→ 読み込むファイル名(Settings > Lookups でアップロードしたファイル) - 結果: CSVの全データがSplunkに読み込まれる
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
説明:
-
|→ 前のコマンドの結果を次のコマンドに渡す -
eval→ 新しいフィールドを作成・計算するコマンド -
_time=→ Splunkの特殊フィールド(時刻を表す)に値を代入 -
strptime()→ 文字列を時刻データに変換する関数 -
timestamp→ CSVの中のタイムスタンプ列の名前 -
"%Y-%m-%d %H:%M:%S"→ 時刻のフォーマット指定-
%Y= 4桁の年(2026) -
%m= 2桁の月(01) -
%d= 2桁の日(22) -
%H= 24時間形式の時(14) -
%M= 分(30) -
%S= 秒(00)
-
- 結果: "2026-01-22 14:30:00" という文字列が、Splunkが認識できる時刻データに変換される
| timechart span=30m avg(cpu) as データ値
説明:
-
|→ パイプ記号 -
timechart→ 時系列グラフを作成するコマンド -
span=30m→ 時間の区切り幅を30分に設定-
30m= 30分 -
1h= 1時間 -
5m= 5分 なども可能
-
-
avg(cpu)→ cpuフィールドの平均値を計算-
avg()= 平均を計算する関数 -
cpu= CSVの中のCPU使用率の列名
-
-
as データ値→ 計算結果に「データ値」という名前を付ける - 結果: 30分ごとにCPUの平均値が計算され、グラフのY軸に表示される
| eval 赤ライン=2000
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
赤ライン→ 新しく作るフィールドの名前(日本語OK) -
=→ 代入演算子 -
2000→ 固定値(絶対値) - 結果: すべての時刻で、Y軸の2000の位置に「赤ライン」という名前の水平線が引かれる
- 重要: この値は時刻が変わっても常に2000のまま(絶対値基準線)
| eval オレンジライン=1800
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
オレンジライン→ フィールド名 -
=→ 代入 -
1800→ 固定値 - 結果: Y軸の1800の位置に水平線が引かれる
- 位置: 赤ライン(2000)の200下
| eval 黄色ライン=1600
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
黄色ライン→ フィールド名 -
=→ 代入 -
1600→ 固定値 - 結果: Y軸の1600の位置に水平線が引かれる
- 位置: オレンジライン(1800)の200下
| eval 緑ライン=1400
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
緑ライン→ フィールド名 -
=→ 代入 -
1400→ 固定値 - 結果: Y軸の1400の位置に水平線が引かれる
- 位置: 黄色ライン(1600)の200下
| eval 水色ライン=1200
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
水色ライン→ フィールド名 -
=→ 代入 -
1200→ 固定値 - 結果: Y軸の1200の位置に水平線が引かれる
- 位置: 緑ライン(1400)の200下
- グラフの真ん中あたり
| eval 青ライン=1000
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
青ライン→ フィールド名 -
=→ 代入 -
1000→ 固定値 - 結果: Y軸の1000の位置に水平線が引かれる
- 位置: 水色ライン(1200)の200下
- ちょうど1000の位置(キリの良い数字)
| eval 紫ライン=800
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
紫ライン→ フィールド名 -
=→ 代入 -
800→ 固定値 - 結果: Y軸の800の位置に水平線が引かれる
- 位置: 青ライン(1000)の200下
| eval グレーライン=600
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
グレーライン→ フィールド名 -
=→ 代入 -
600→ 固定値 - 結果: Y軸の600の位置に水平線が引かれる
- 位置: 紫ライン(800)の200下
| eval 茶色ライン=400
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
茶色ライン→ フィールド名 -
=→ 代入 -
400→ 固定値 - 結果: Y軸の400の位置に水平線が引かれる
- 位置: グレーライン(600)の200下
- グラフの下の方
| eval ピンクライン=200
説明:
-
|→ パイプ記号 -
eval→ 新しいフィールドを作成 -
ピンクライン→ フィールド名 -
=→ 代入 -
200→ 固定値 - 結果: Y軸の200の位置に水平線が引かれる
- 位置: 茶色ライン(400)の200下
- 一番下の基準線
📊 データの流れ図解
STEP 1: CSVファイルを読み込む
┌─────────────────────────────────────┐
│ timestamp cpu memory │
│ 2026-01-22 08:00:00 35 55 │
│ 2026-01-22 08:30:00 42 58 │
│ 2026-01-22 09:00:00 58 64 │
└─────────────────────────────────────┘
↓ inputlookup server_data.csv
STEP 2: timestampを_timeに変換
┌─────────────────────────────────────┐
│ _time cpu memory │
│ 1737507600 35 55 │
│ 1737509400 42 58 │
│ 1737511200 58 64 │
└─────────────────────────────────────┘
↓ eval _time=strptime(...)
STEP 3: 30分ごとに平均を計算
┌─────────────────────────────────────┐
│ _time データ値 │
│ 2026-01-22 08:00 35 │
│ 2026-01-22 08:30 42 │
│ 2026-01-22 09:00 58 │
└─────────────────────────────────────┘
↓ timechart span=30m avg(cpu) as データ値
STEP 4: 10本の基準線を追加
┌───────────────────────────────────────────────────────────┐
│ _time データ値 赤 橙 黄 緑 水 青 紫 灰 茶 桃│
│ 2026-01-22 08:00 35 2000 1800 1600 1400 1200 1000 800 600 400 200│
│ 2026-01-22 08:30 42 2000 1800 1600 1400 1200 1000 800 600 400 200│
│ 2026-01-22 09:00 58 2000 1800 1600 1400 1200 1000 800 600 400 200│
└───────────────────────────────────────────────────────────┘
↓ eval 赤ライン=2000
↓ eval オレンジライン=1800
↓ (以下同様)
STEP 5: グラフ表示
┌────────────────────────────────────────┐
│ 2000│━━━━━━━━━━━━━━━━━━ 🔴 │
│ 1800│━━━━━━━━━━━━━━━━━━ 🟠 │
│ 1600│━━━━━━━━━━━━━━━━━━ 🟡 │
│ 1400│━━━━━━━━━━━━━━━━━━ 🟢 │
│ 1200│━━━━━━━━━━━━━━━━━━ 💧 │
│ 1000│━━━━━━━━━━━━━━━━━━ 🔵 │
│ 800│━━━━━━━━━━━━━━━━━━ 🟣 │
│ 600│━━━━━━━━━━━━━━━━━━ ⚫ │
│ 400│━━━━━━━━━━━━━━━━━━ 🟤 │
│ 200│━━━━━━━━━━━━━━━━━━ 🩷 │
│ │ ╱╲ ╱╲ │
│ 50│ ╱ ╲ ╱ ╲ ← データ値 │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
🔍 各パーツの詳細解説
パート1: データ読み込み
| inputlookup server_data.csv
何が起きているか:
- Splunkが
server_data.csvを探す - ファイルの内容を全部メモリに読み込む
- 各行がイベント(データ行)として扱われる
- 各列がフィールドとして認識される
CSVの中身例:
timestamp,cpu,memory,disk
2026-01-22 08:00:00,35,55,45
2026-01-22 08:30:00,42,58,46
Splunkが認識する形:
-
timestamp= "2026-01-22 08:00:00" -
cpu= 35 -
memory= 55 -
disk= 45
パート2: 時刻変換
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
何が起きているか:
-
timestampフィールドの値を取得(文字列) -
strptime()が文字列を解析 - Unix時刻(1970年1月1日からの秒数)に変換
-
_timeという特殊フィールドに保存
変換例:
入力: "2026-01-22 08:00:00"
出力: 1737507600(Unix時刻)
なぜ必要?
- Splunkのグラフ機能は
_timeフィールドを使う -
_timeがないと時系列グラフが作れない
パート3: 時系列集計
| timechart span=30m avg(cpu) as データ値
何が起きているか:
- データを時刻順に並べる
- 30分ごとに区切る
- 各区間のcpu値の平均を計算
- 結果に「データ値」という名前を付ける
具体例:
元データ:
08:00:00 cpu=35
08:15:00 cpu=40
08:30:00 cpu=42
08:45:00 cpu=48
↓ span=30m avg(cpu)
結果:
08:00 データ値=37.5 (35+40の平均)
08:30 データ値=45 (42+48の平均)
パート4-13: 基準線追加
| eval 赤ライン=2000
| eval オレンジライン=1800
| eval 黄色ライン=1600
| eval 緑ライン=1400
| eval 水色ライン=1200
| eval 青ライン=1000
| eval 紫ライン=800
| eval グレーライン=600
| eval 茶色ライン=400
| eval ピンクライン=200
何が起きているか:
- 既存の各行(時刻ごと)に新しいフィールドを追加
- すべての行で同じ値(固定値)を設定
- この固定値が水平線として表示される
具体例:
timechart実行後:
_time データ値
08:00 37.5
08:30 45.0
↓ eval 赤ライン=2000 実行後
_time データ値 赤ライン
08:00 37.5 2000
08:30 45.0 2000
↓ すべてのeval実行後
_time データ値 赤 橙 黄 緑 水 青 紫 灰 茶 桃
08:00 37.5 2000 1800 1600 1400 1200 1000 800 600 400 200
08:30 45.0 2000 1800 1600 1400 1200 1000 800 600 400 200
グラフ表示:
- データ値: 変動する(37.5 → 45.0)
- 基準線: すべて固定(常に同じ値)
💡 よくある質問
Q1: なぜパイプ | が必要?
答え:
| inputlookup server_data.csv
↓ この結果を次に渡す
| eval _time=strptime(...)
↓ この結果を次に渡す
| timechart ...
↓ この結果を次に渡す
| eval 赤ライン=2000
パイプがないと、各コマンドが独立して実行される
Q2: eval と = の違いは?
答え:
-
eval= フィールドを作成・計算するコマンド -
== 値を代入する記号
eval フィールド名=値
↑ ↑ ↑
コマンド 名前 値
Q3: なぜ as データ値 が必要?
答え:
# as がない場合:
| timechart span=30m avg(cpu)
→ フィールド名: "avg(cpu)" (わかりにくい)
# as がある場合:
| timechart span=30m avg(cpu) as データ値
→ フィールド名: "データ値" (わかりやすい)
グラフの凡例にも「データ値」と表示される
Q4: 固定値を変えるには?
答え:
# 現在
| eval 赤ライン=2000
# 変更したい
| eval 赤ライン=3000
↑
この数字を変える
結果: Y軸の3000の位置に赤い線が引かれる
📝 完全版コード(全コメント付き)
| inputlookup server_data.csv
↑ ①CSVファイルを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ ②タイムスタンプ列を_timeフィールドに変換
| timechart span=30m avg(cpu) as データ値
↑ ③30分ごとにCPUの平均値を計算してグラフ化
| eval 赤ライン=2000
↑ ④Y軸の2000に赤い線を引く(固定値)
| eval オレンジライン=1800
↑ ⑤Y軸の1800にオレンジの線を引く(固定値)
| eval 黄色ライン=1600
↑ ⑥Y軸の1600に黄色の線を引く(固定値)
| eval 緑ライン=1400
↑ ⑦Y軸の1400に緑の線を引く(固定値)
| eval 水色ライン=1200
↑ ⑧Y軸の1200に水色の線を引く(固定値)
| eval 青ライン=1000
↑ ⑨Y軸の1000に青の線を引く(固定値)
| eval 紫ライン=800
↑ ⑩Y軸の800に紫の線を引く(固定値)
| eval グレーライン=600
↑ ⑪Y軸の600にグレーの線を引く(固定値)
| eval 茶色ライン=400
↑ ⑫Y軸の400に茶色の線を引く(固定値)
| eval ピンクライン=200
↑ ⑬Y軸の200にピンクの線を引く(固定値)
🎯 カスタマイズ例
100刻みに変更
| inputlookup server_data.csv
# CSVファイルを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
# タイムスタンプを変換
| timechart span=30m avg(cpu) as データ値
# 30分ごとの平均を計算
| eval 赤ライン=1000
# Y軸の1000に赤線
| eval オレンジライン=900
# Y軸の900にオレンジ線
| eval 黄色ライン=800
# Y軸の800に黄線
| eval 緑ライン=700
# Y軸の700に緑線
| eval 水色ライン=600
# Y軸の600に水色線
| eval 青ライン=500
# Y軸の500に青線
| eval 紫ライン=400
# Y軸の400に紫線
| eval グレーライン=300
# Y軸の300にグレー線
| eval 茶色ライン=200
# Y軸の200に茶線
| eval ピンクライン=100
# Y軸の100にピンク線
📝 Qiita記事【完全版】
# Splunkダッシュボードスタジオで基準線の色を動的に変える方法【完全ガイド】
## はじめに
Splunkダッシュボードスタジオで、**データの値によって基準線の色が自動的に変わる**グラフを作成する方法を解説します。
例えば、CPU使用率が70%未満の時は緑の基準線、70%以上になると赤の基準線に自動的に切り替わる、といった視覚的に分かりやすいダッシュボードを作成できます。
### この記事で作るもの
データが基準値を超えると、基準線の色が**茶色→ピンク**に自動的に変化するグラフ
通常時(データ < 1000)
┌────────────────────────────────────────┐
│ 1000│━━━━━━━━━━━━━━━━━━ (茶色) │
│ │ ╱╲ ╱╲ │
│ 500│ ╱ ╲ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
警告時(データ >= 1000)
┌────────────────────────────────────────┐
│ 1000│━━━━💗💗💗💗💗━━━━━━━ (ピンク) │
│ │ ╱╲╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
## 環境
- Splunk Enterprise 9.x / Splunk Cloud
- Dashboard Studio
- テストデータ: CSV形式
## 目次
1. [仕組みの理解](#仕組みの理解)
2. [基本編:2色で色が変わる基準線](#基本編2色で色が変わる基準線)
3. [応用編:3段階の色変化](#応用編3段階の色変化)
4. [実践編:10段階の色変化](#実践編10段階の色変化)
5. [複数の基準線を同時に色変更](#複数の基準線を同時に色変更)
6. [トラブルシューティング](#トラブルシューティング)
7. [まとめ](#まとめ)
## 仕組みの理解
### コア概念
**「同じ位置に2本の条件付き線を用意する」**
同じ位置(Y=1000)に2本の線:
━━━ 茶色線: データ<1000の時だけ表示
━━━ ピンク線: データ>=1000の時だけ表示
結果: データの値によって表示される線が切り替わる
→ 色が変わったように見える
### データフロー図
┌─────────────────────────────────────────┐
│ STEP 1: データ読み込み │
│ timestamp,cpu │
│ 2026-01-22 08:00:00,800 │
│ 2026-01-22 08:30:00,1200 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ STEP 2: 条件判定 │
│ データ数=800 → 茶色線=1000, ピンク線=null│
│ データ数=1200 → 茶色線=null, ピンク線=1000│
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ STEP 3: グラフ表示 │
│ 08:00 → 茶色の線が表示される │
│ 08:30 → ピンクの線が表示される(色変化)│
└─────────────────────────────────────────┘
## 基本編:2色で色が変わる基準線
### テストデータの準備
まず、CSVファイルを用意します。
**server_data.csv**
```csv
timestamp,cpu,memory,disk
2026-01-22 08:00:00,800,55,45
2026-01-22 08:30:00,1200,58,46
2026-01-22 09:00:00,950,64,47
2026-01-22 09:30:00,1500,71,48
Settings > Lookups > Lookup table files からアップロードしてください。
SPLコード(完全版)
| inputlookup server_data.csv
コメント:
-
inputlookupコマンドでCSVファイルを読み込む -
server_data.csvはアップロード済みのファイル名 - このコマンドでCSVの全データがメモリに読み込まれる
データ状態:
timestamp cpu memory disk
2026-01-22 08:00:00 800 55 45
2026-01-22 08:30:00 1200 58 46
2026-01-22 09:00:00 950 64 47
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
コメント:
-
evalコマンドで新しいフィールドを作成 -
_timeはSplunkの時刻を表す特殊フィールド -
strptime()関数で文字列を時刻データに変換 -
timestampはCSVのタイムスタンプ列の名前 -
"%Y-%m-%d %H:%M:%S"は時刻フォーマット指定- %Y = 4桁年、%m = 月、%d = 日
- %H = 時、%M = 分、%S = 秒
変換例:
入力: "2026-01-22 08:00:00" (文字列)
↓ strptime()で変換
出力: 1737507600 (Unix時刻)
データ状態:
_time timestamp cpu memory disk
1737507600 2026-01-22 08:00:00 800 55 45
1737509400 2026-01-22 08:30:00 1200 58 46
| timechart span=30m avg(cpu) as データ数
コメント:
-
timechartコマンドで時系列グラフを作成 -
span=30mで30分間隔に集計- 他のオプション:
5m(5分),1h(1時間),1d(1日)
- 他のオプション:
-
avg(cpu)でcpuフィールドの平均値を計算 -
as データ数で結果に「データ数」という名前を付ける
集計処理:
元データ(span=30m前):
08:00:00 cpu=800
08:15:00 cpu=850
08:30:00 cpu=1200
08:45:00 cpu=1300
↓ span=30mで集計
結果:
08:00 データ数=825 (800+850の平均)
08:30 データ数=1250 (1200+1300の平均)
データ状態:
_time データ数
2026-01-22 08:00:00 825
2026-01-22 08:30:00 1250
2026-01-22 09:00:00 950
| eval 茶色基準線=if(データ数<1000, 1000, null())
コメント:
-
evalコマンドで「茶色基準線」フィールドを作成 -
if()関数で条件分岐- 構文:
if(条件, 真の時の値, 偽の時の値)
- 構文:
-
データ数<1000が条件(データが1000未満か?) - 条件が真(データ<1000)なら
1000を返す- この1000がY軸の位置になる
- 条件が偽(データ>=1000)なら
null()を返す- null()は「何も表示しない」という意味
重要ポイント:
-
null()を使うことで、条件に合わない時は線を非表示にする - 0や空文字("")ではなく、必ず
null()を使う
条件分岐の動作:
時刻 データ数 条件判定 茶色基準線
08:00 825 825<1000 → 真 1000 ✓表示
08:30 1250 1250<1000 → 偽 null ✗非表示
09:00 950 950<1000 → 真 1000 ✓表示
データ状態:
_time データ数 茶色基準線
2026-01-22 08:00:00 825 1000
2026-01-22 08:30:00 1250 null
2026-01-22 09:00:00 950 1000
| eval ピンク基準線=if(データ数>=1000, 1000, null())
コメント:
-
evalコマンドで「ピンク基準線」フィールドを作成 -
if()関数で条件分岐 -
データ数>=1000が条件(データが1000以上か?) - 条件が真(データ>=1000)なら
1000を返す- 茶色基準線と同じY軸位置(1000)
- 条件が偽(データ<1000)なら
null()を返す
条件分岐の動作:
時刻 データ数 条件判定 ピンク基準線
08:00 825 825>=1000 → 偽 null ✗非表示
08:30 1250 1250>=1000 → 真 1000 ✓表示
09:00 950 950>=1000 → 偽 null ✗非表示
データ状態(最終):
_time データ数 茶色基準線 ピンク基準線
2026-01-22 08:00:00 825 1000 null ← 茶色のみ
2026-01-22 08:30:00 1250 null 1000 ← ピンクのみ
2026-01-22 09:00:00 950 1000 null ← 茶色のみ
結果:
- 同じ位置(Y=1000)に2本の線が条件付きで表示される
- どちらか一方だけが表示されるため、色が切り替わったように見える
完全版コード
| inputlookup server_data.csv
↑ ①CSVファイルを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ ②タイムスタンプを時刻に変換
| timechart span=30m avg(cpu) as データ数
↑ ③30分ごとの平均値を計算
| eval 茶色基準線=if(データ数<1000, 1000, null())
↑ ④データ<1000の時だけY=1000に茶色の線
| eval ピンク基準線=if(データ数>=1000, 1000, null())
↑ ⑤データ>=1000の時だけY=1000にピンクの線
UI設定:色を設定する
Dashboard Studioの右側パネルで以下を設定します。
- Configuration タブをクリック
- Visualization > Series を展開
-
茶色基準線 を選択
- Color:
#8B4513(茶色) - Line Width:
4 - Line Style:
Dashed(点線)
- Color:
-
ピンク基準線 を選択
- Color:
#FF1493(ピンク) - Line Width:
4 - Line Style:
Dashed(点線)
- Color:
完成イメージ
08:00(データ=825 < 1000)
┌────────────────────────────────────────┐
│ 1000│━ ━ ━ ━ ━ ━ ━ ━ ━ (茶色) │
│ │ ╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
08:30(データ=1250 >= 1000)
┌────────────────────────────────────────┐
│ 1000│━ ━ ━ ━ ━ ━ ━ ━ ━ (ピンク) │
│ │ ╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
│ 色が変わった! │
└────────────────────────────────────────┘
応用編:3段階の色変化
データの値に応じて緑→黄→赤の3段階に色が変化する基準線を作成します。
SPLコード
| inputlookup server_data.csv
↑ CSVファイルを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ タイムスタンプを時刻に変換
| timechart span=30m avg(cpu) as データ数
↑ 30分ごとの平均値を計算
| eval 緑基準線=if(データ数<800, 1000, null())
↑ データ<800の時: 緑の線を表示
データ>=800の時: 非表示
| eval 黄基準線=if(データ数>=800 AND データ数<1200, 1000, null())
↑ データ800-1199の時: 黄色の線を表示
それ以外: 非表示
ANDで2つの条件を結合
| eval 赤基準線=if(データ数>=1200, 1000, null())
↑ データ>=1200の時: 赤の線を表示
データ<1200の時: 非表示
条件の詳細解説
| eval 黄基準線=if(データ数>=800 AND データ数<1200, 1000, null())
AND演算子の動作:
データ数=600 → 600>=800? 偽 → 全体が偽 → null
データ数=950 → 950>=800? 真 AND 950<1200? 真 → 全体が真 → 1000
データ数=1500 → 1500>=800? 真 AND 1500<1200? 偽 → 全体が偽 → null
条件範囲:
- 緑基準線: 0 ≤ データ数 < 800
- 黄基準線: 800 ≤ データ数 < 1200
- 赤基準線: 1200 ≤ データ数
データフロー
時刻 データ数 緑基準線 黄基準線 赤基準線 表示色
08:00 600 1000 null null 緑
08:30 950 null 1000 null 黄
09:00 1400 null null 1000 赤
09:30 750 1000 null null 緑
グラフの変化
データ=600(正常)
┌────────────────────────────────────────┐
│ 1000│━━━━━━━━━━━━━━━━━━ 🟢 緑 │
│ │ ╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
データ=950(注意)
┌────────────────────────────────────────┐
│ 1000│━━━━━━━━━━━━━━━━━━ 🟡 黄 │
│ │ ╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
データ=1400(警告)
┌────────────────────────────────────────┐
│ 1000│━━━━━━━━━━━━━━━━━━ 🔴 赤 │
│ │ ╱╲ │
│ 500│ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
UI色設定
| フィールド名 | 色 | HEXコード | Line Width |
|---|---|---|---|
| 緑基準線 | 緑 | #00FF00 |
4 |
| 黄基準線 | 黄 | #FFFF00 |
4 |
| 赤基準線 | 赤 | #FF0000 |
4 |
実践編:10段階の色変化
データの値を200刻みで10段階に分け、それぞれ異なる色の基準線を表示します。
SPLコード(完全版)
| inputlookup server_data.csv
↑ CSVデータを読み込む
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ 時刻フィールドに変換
| timechart span=30m avg(cpu) as データ数
↑ 30分ごとに集計
| eval レベル1_緑=if(データ数<200, 1000, null())
↑ レベル1: データ0-199 → 緑色
| eval レベル2_水色=if(データ数>=200 AND データ数<400, 1000, null())
↑ レベル2: データ200-399 → 水色
| eval レベル3_青=if(データ数>=400 AND データ数<600, 1000, null())
↑ レベル3: データ400-599 → 青色
| eval レベル4_紫=if(データ数>=600 AND データ数<800, 1000, null())
↑ レベル4: データ600-799 → 紫色
| eval レベル5_茶=if(データ数>=800 AND データ数<1000, 1000, null())
↑ レベル5: データ800-999 → 茶色
| eval レベル6_灰=if(データ数>=1000 AND データ数<1200, 1000, null())
↑ レベル6: データ1000-1199 → グレー
| eval レベル7_黄=if(データ数>=1200 AND データ数<1400, 1000, null())
↑ レベル7: データ1200-1399 → 黄色
| eval レベル8_橙=if(データ数>=1400 AND データ数<1600, 1000, null())
↑ レベル8: データ1400-1599 → オレンジ
| eval レベル9_赤=if(データ数>=1600 AND データ数<1800, 1000, null())
↑ レベル9: データ1600-1799 → 赤色
| eval レベル10_桃=if(データ数>=1800, 1000, null())
↑ レベル10: データ1800以上 → ピンク
レベル定義表
| レベル | データ範囲 | 色 | HEXコード | 状態 |
|---|---|---|---|---|
| 1 | 0-199 | 緑 | #00FF00 |
非常に低い |
| 2 | 200-399 | 水色 | #00FFFF |
低い |
| 3 | 400-599 | 青 | #0000FF |
やや低い |
| 4 | 600-799 | 紫 | #9400D3 |
普通 |
| 5 | 800-999 | 茶 | #8B4513 |
やや高い |
| 6 | 1000-1199 | 灰 | #808080 |
高い |
| 7 | 1200-1399 | 黄 | #FFFF00 |
かなり高い |
| 8 | 1400-1599 | 橙 | #FF8800 |
非常に高い |
| 9 | 1600-1799 | 赤 | #FF0000 |
危険 |
| 10 | 1800+ | 桃 | #FF69B4 |
非常に危険 |
データフロー図
入力データ:
┌────────────────────────────┐
│ データ数=350 │
└────────────────────────────┘
↓
条件判定(10個のif文を順番に評価):
┌────────────────────────────┐
│ レベル1: 350<200? → 偽 │
│ レベル2: 200<=350<400? → 真 │ ✓
│ レベル3: 400<=350<600? → 偽 │
│ ... (以下省略) │
└────────────────────────────┘
↓
出力(レベル2のみ1000、他はnull):
┌────────────────────────────┐
│ レベル1_緑=null │
│ レベル2_水色=1000 ← 表示 │
│ レベル3_青=null │
│ ... (以下省略) │
└────────────────────────────┘
↓
グラフ表示:
水色の線がY=1000に表示される
完成グラフ
データの値に応じて10色に変化
┌────────────────────────────────────────┐
│ 1000│━━━━━━━━━━━━━━━━━━ │
│ │ 🟢💧🔵🟣🟤⚫🟡🟠🔴💗 │
│ │ ↑データの値で色が変化 │
│ 500│ ╱ ╲ ╱ ╲ ╱ ╲ │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
複数の基準線を同時に色変更
3つの異なる位置の基準線が、それぞれ独立して色変化する例です。
SPLコード
| inputlookup server_data.csv
↑ データ読み込み
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
↑ 時刻変換
| timechart span=30m avg(cpu) as データ数
↑ 集計
# 基準線A(Y=500の位置)
| eval A_緑=if(データ数<800, 500, null())
↑ データ<800の時、Y=500に緑の線
| eval A_赤=if(データ数>=800, 500, null())
↑ データ>=800の時、Y=500に赤の線
結果: 基準線Aが緑→赤に変化
# 基準線B(Y=1000の位置)
| eval B_緑=if(データ数<800, 1000, null())
↑ データ<800の時、Y=1000に緑の線
| eval B_赤=if(データ数>=800, 1000, null())
↑ データ>=800の時、Y=1000に赤の線
結果: 基準線Bが緑→赤に変化
# 基準線C(Y=1500の位置)
| eval C_緑=if(データ数<800, 1500, null())
↑ データ<800の時、Y=1500に緑の線
| eval C_赤=if(データ数>=800, 1500, null())
↑ データ>=800の時、Y=1500に赤の線
結果: 基準線Cが緑→赤に変化
グラフの変化
通常時(データ<800)
┌────────────────────────────────────────┐
│ 1500│━━━━━━━━━━━━━━━━━━ 🟢 C_緑 │
│ 1000│━━━━━━━━━━━━━━━━━━ 🟢 B_緑 │
│ │ ╱╲ │
│ 500│━━╱━━╲━━━━━━━━━━━━ 🟢 A_緑 │
│ └─────────────────────────→ │
└────────────────────────────────────────┘
警告時(データ>=800)
┌────────────────────────────────────────┐
│ 1500│━━━━━━━━━━━━━━━━━━ 🔴 C_赤 │
│ 1000│━━━━━━━━━━━━━━━━━━ 🔴 B_赤 │
│ │ ╱╲ │
│ 500│━━━━━━╱━━╲━━━━━━━━ 🔴 A_赤 │
│ └─────────────────────────→ │
│ 3本とも同時に色変化! │
└────────────────────────────────────────┘
トラブルシューティング
問題1: 線が表示されない
原因:
❌ 間違い:
| eval 緑線=if(データ数<1000, 1000, 0)
↑
0を返している
解決策:
✅ 正しい:
| eval 緑線=if(データ数<1000, 1000, null())
↑
必ずnull()を使う
理由:
-
0を返すとY=0の位置に線が表示される -
""(空文字)も正しく動作しない -
null()だけが「非表示」を意味する
問題2: 両方の線が同時に表示される
原因:
条件が重複している
❌ 間違い:
| eval 緑線=if(データ数<=1000, 1000, null())
↑
| eval 赤線=if(データ数>=1000, 1000, null())
↑
データ=1000の時、両方とも真
解決策:
✅ 正しい:
| eval 緑線=if(データ数<1000, 1000, null())
↑ < (未満)
| eval 赤線=if(データ数>=1000, 1000, null())
↑ >= (以上)
データ=1000の時は赤線のみ表示
問題3: AND条件が動かない
原因:
全角スペースや構文エラー
❌ 間違い:
| eval 黄線=if(データ数>=800 AND データ数<1200, 1000, null())
↑ ↑
全角スペース
解決策:
✅ 正しい:
| eval 黄線=if(データ数>=800 AND データ数<1200, 1000, null())
↑ ↑
半角スペース
ANDは大文字
問題4: 色が変わらない
チェックリスト:
□ Run Query を実行したか?
□ Configuration > Series で色設定をしたか?
□ Apply ボタンを押したか?
□ Save ボタンを押したか?
□ ページをリロードしたか?
設定確認:
Configuration > Series
┌────────────────────────────────────────┐
│ 茶色基準線 │
│ Color: #8B4513 ← HEXコード確認 │
│ [ Apply ] ← 必ず押す │
└────────────────────────────────────────┘
まとめ
重要ポイント
-
条件分岐には
if()関数を使うif(条件, 真の時の値, 偽の時の値) -
非表示には必ず
null()を使うif(データ数<1000, 1000, null()) ↑ これが重要! -
同じ位置に複数の条件付き線を配置
| eval 緑線=if(データ数<800, 1000, null()) | eval 黄線=if(データ数>=800 AND データ数<1200, 1000, null()) | eval 赤線=if(データ数>=1200, 1000, null()) ↑ ↑ ↑ すべて同じ位置(1000) -
AND で条件を組み合わせる
データ数>=800 AND データ数<1200 ↑ ↑ 以上 未満
コピペ用テンプレート
2色バージョン:
| inputlookup あなたのファイル.csv
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
| timechart span=30m avg(フィールド名) as データ数
| eval 茶色基準線=if(データ数<閾値, 位置, null())
| eval ピンク基準線=if(データ数>=閾値, 位置, null())
3色バージョン:
| inputlookup あなたのファイル.csv
| eval _time=strptime(timestamp, "%Y-%m-%d %H:%M:%S")
| timechart span=30m avg(フィールド名) as データ数
| eval 緑基準線=if(データ数<800, 1000, null())
| eval 黄基準線=if(データ数>=800 AND データ数<1200, 1000, null())
| eval 赤基準線=if(データ数>=1200, 1000, null())
応用アイデア
- 時間帯によって色が変わる基準線
- 曜日によって色が変わる基準線
- 複数のメトリクスを組み合わせた条件
次のステップ
この技術を使って、以下のような応用が可能です:
-
複雑な条件での色変更
| eval 条件1=時刻>=9 AND 時刻<18 | eval 条件2=データ数>1000 | eval 基準線=if(条件1 AND 条件2, 1000, null()) -
複数データソースの組み合わせ
| eval 複合条件=cpu使用率>80 OR メモリ使用率>90 | eval 警告線=if(複合条件, 1000, null())
参考リンク
以上、Splunkダッシュボードスタジオで基準線の色を動的に変える方法の完全ガイドでした。
質問やフィードバックがあれば、コメント欄でお気軽にどうぞ!