Splunkで様々な単位を換算する

# もっと簡潔に...

Splunkはさまざまなデータを解析して見える化できるツールです。
見える化することのメリットは、いままで分かり得なかったことが分かるようになること。
見える化した結果を他の人に見せることで、共通認識を持って相互理解を得て共同作業ができるようになることだと思います。
このあたりがSplunkが超使えるツールである理由の一つだと思います。

ただ、使いこなしてゆくうちにSplunkのサーチ言語（SPL: Search Processing Language）をガリガリ書いていくと、ついつい長くなってごちゃごちゃしがち。
もっと簡潔にSPLを書きたい！

---
# まずは数値を扱いやすく

Splunkは検索機能＋解析機能をもつツールと言えるので、ツールの使い方次第ではいろいろな種類の数値を扱うことになります。
今回は、この「いろいろな種類の数値」をもっと簡潔に扱うために何ができるかという観点で、単位換算を行うマクロライブラリを作成しました。

* 面積： 1坪は何畳？ 何平米（㎡）、何平方フィート？
* 長さ： 1インチは何センチ？何フィート、何ヤード？
* 体積： 1ガロンは何リットル？
* 温度： 摂氏（°C）は華氏（°F）で何度？何ケルビン（K）？
* データ通信速度： バイト/sは、何Mbps？

他にも以下の単位の換算に対応しています。（同じカテゴリ内の単位を相互変換できます。）

---
## マクロで換算可能な単位一覧
<table>
<thead>
<tr>
<th>カテゴリ</th>
<th>単位</th>
</tr>
</thead>
<tr>
<td>エネルギー</td>
<td>キロカロリー[kcal], キロジュール[kJ], キロワット時[kW-h], グラムカロリー[cal], ジュール[J], フィート重量ポンド[ft lbf], ワット時[W-h], 米サーム[therm(US)], 英熱量[Btu], 電子ボルト[eV]</td>
</tr>
<tr>
<td>データ容量</td>
<td>キビバイト[KiB], キビビット[KiBit], キロバイト[KB], キロビット[Kbit], ギガバイト[GB], ギガビット[Gbit], ギビバイト[GiB], ギビビット[GiBit], テビバイト[TiB], テビビット[TiBit], テラバイト[TB], テラビット[Tbit], バイト[bytes], ビット[bit], ペタバイト[PB], ペタビット[Pbit], ペビバイト[PiB], ペビビット[PiBit], メガバイト[MB], メガビット[Mbit], メビバイト[MiB], メビビット[MiBit]</td>
</tr>
<tr>
<td>データ通信速度</td>
<td>キビバイト毎秒[KiB/s], キビビット毎秒[KiBit/s], キロバイト毎秒[KB/s], キロビット毎秒[kbps], ギガバイト毎秒[GB/s], ギガビット毎秒[Gbps], ギビビット毎秒[GiBit/s], テビバイト毎秒[TiB/s], テビビット毎秒[TiBit/s], テラバイト毎秒[TB/s], テラビット毎秒[Tbps], バイト毎秒[B/s], ビット毎秒[bps], メガバイト毎秒[MB/s], メガビット毎秒[Mbps], メビバイト毎秒[MiB/s], メビビット毎秒[MiBit/s]</td>
</tr>
<tr>
<td>体積</td>
<td>カップ (英)[c (Imp)], ミリリットル[ml], リットル[l], 立方インチ[cu in], 立方フィート[cu ft], 立方メートル[m3], 米ティースプーン[tsp (US)], 米テーブルスプーン[tbsp (US)], 米国規格計量カップ[c (US)], 米液量オンス[US fl oz], 米液量ガロン[gal (US)], 米液量クォート[qt (US)], 米液量パイント[pt (US fl)], 英ガロン[gal (Imp)], 英クォート[qt (Imp)], 英ティースプーン[tsp (Imp)], 英テーブルスプーン[tbsp (Imp)], 英パイント[pt (Imp)], 英液量オンス[fl oz (Imp)]</td>
</tr>
<tr>
<td>周波数</td>
<td>
キロヘルツ[kHz], ギガヘルツ[GHz], ヘルツ[Hz], メガヘルツ[MHz]</td>
</tr>
<tr>
<td>圧力</td>
<td>トル[Torr], バール[bar], パスカル[Pa], 気圧[atm], 重量ポンド毎平方インチ[psi]</td>
</tr>
<tr>
<td>平面角</td>
<td>グラード[grad], ミル[μ], ラジアン[rad], 分[′], 度[°], 秒[″]</td>
</tr>
<tr>
<td>時間</td>
<td>か月[mo], ナノ秒[ns], マイクロ秒[μs], ミリ秒[ms], 世紀[C], 分[min], 十年紀[decade], 年[y], 日[d], 時間[h], 秒[s], 週間[wk]</td>
</tr>
<tr>
<td>温度</td>
<td>ケルビン[K], 摂氏[°C], 華氏[°F]</td>
</tr>
<tr>
<td>燃費</td>
<td>100キロメートル毎リッター[l/100km], キロメートル毎リットル[km/L], マイル毎ガロン (米)[mpg (US)], マイル毎ガロン (英)[mpg (Imp)]</td>
</tr>
<tr>
<td>速度</td>
<td>キロメートル毎時[km/h], ノット[kn], フィート毎秒[fps], マイル毎時[mph], メートル毎秒[m/s]</td>
</tr>
<tr>
<td>重量</td>
<td>オンス[oz av], キログラム[kg], グラム[g], ストーン[st], トン[t], ポンド[lb av], マイクログラム[μg], ミリグラム[mg], 米トン[sh tn], 英トン[long tn]</td>
</tr>
<tr>
<td>長さ</td>
<td>インチ[in], キロメートル[km], センチメートル[cm], ナノメートル[nm], フィート[ft], マイクロメートル[μm], マイル[mi], ミリメートル[mm], メートル[m], ヤード[yd], 海里[nmi]</td>
</tr>
<tr>
<td>面積</td>
<td>エイカー[ac], ヘクタール[ha], 坪[坪], 平方インチ[sq in], 平方キロメートル[km2], 平方フィート[sq ft], 平方マイル[sq mi], 平方メートル[m2], 平方ヤード[sq yd], 畳 (京間)[畳]</td>
</tr>
</table>

---
## マクロを探したり使い方を調べる画面（ダッシュボード）が便利！

早見表のようにも使えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589834/03d0a75b-ab5a-cf0c-19d2-09068d36266b.png)

---
ドリルダウン（表をクリック）すると、使用例のSPLをサーチで開くことが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589834/72615514-d879-f872-e1fe-46daebaa0e18.png)

マクロ使用方法の凡例

```
| eval 変換後の値フィールド = `numeral_変換前単位_to_変換後単位(変換前の値フィールド)`
```

---
また、すでに以下の記事でも紹介した、大きな数を「1億5000万」等の命数法で表示するマクロや、
バイト数を人が読みやすい単位に変換するマクロについても使い方を調べる画面を追加しました。

"[Splunkで巨大な数値を「兆」「億」「万」等で表示する](https://qiita.com/Joh256/items/11b2eea50af0e59ced12)"

"[Splunkで大きな数のBytesを人が見やすい単位（KiB, MiB, GiB）に変換する方法](https://qiita.com/Joh256/items/bb54f2bb7a1ec0416766)"

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589834/e1226c53-6570-3e5e-bf8c-4bdb094f6cf5.png)

---
調べ終わって、もう画面が必要ないなと思ったら、画面を非表示にしてマクロだけ使い続けることも可能です。

Appを非表示にする手順：
「Appの管理」→Numeral system macros for Splunkの「プロパティの編集」→表示：「いいえ」にチェック→「保存」

---
# ご利用中のSplunkに今すぐ導入可能！

数々のAppをダウンロードできるSplunkbaseで公開されているので、今すぐ導入が可能です。

[Numeral system macros for Splunk](https://splunkbase.splunk.com/app/6595)

https://splunkbase.splunk.com/app/6595

以下の方法でも導入できます。
ご利用中のSplunkの画面から、
「Appの管理」→「他のAppを参照」→「Numeral」で検索→
「Numeral system macros for Splunk」を「インストール」

Splunk.comのユーザー名とパスワード（Splunkダウンロード時に作成したアカウントなど。[無料でここから作成](https://www.splunk.com/en_us/sign-up.html)できます）を入力し、
利用規約に「同意してインストール」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589834/a4cc0c9b-bb62-434e-f7fe-57c390b827d8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589834/d20cd6f5-369f-1a99-9ffc-acc0b2949cd3.png)

---

ぜひ試してみてくださいね！
Let's give it a try!
(Please rate this app ★★★★★!) 

[Numeral system macros for Splunk](https://splunkbase.splunk.com/app/6595)

https://splunkbase.splunk.com/app/6595

---

# 2025/01/21追記
ver3.x.x では新たな機能も追加されました。
下記記事もぜひご確認ください。

https://qiita.com/Joh256/items/91ca48ff18704fcdef51