はじめに
Splunk Core(Enterprise / Cloud)を使っていて、Observability Cloud(以下o11y cloud)も利用している、その時にCore側のダッシュボードでo11y cloudのデータも一緒に表示したいなと思ったときの方法です。
-
Infrastructure Monitoring Add-on
SPLからo11y cloudのメトリクスを取得する方法です。Data inputとしても動作させられるので、一時的 or Index化のどちらも可能です。 -
Dashboard Studio
最近追加された機能で、Dashboard Studioからo11y cloud上のメトリクスを簡単に選択、取得することができます。
それでは見ていきましょう。
Infrastructure Monitoring Add-on
事前準備
まずAdd-onをインストールします。
その後にAdd-onを開き、設定 > Connect an Accountからo11y cloudのRealmとAccess Token(API)を設定します。
無事登録されればOKです。
取り込んでみよう(simコマンド)
Add-onをインストールすると|sim
コマンドが使えるようになります。
これは、o11y cloudのSignalFlow(後述)をSPLで実行することができるものです。
こちらでo11y cloud上のメトリクス、もしくはDetectorで発行されたアラートも取得できます。
SignalFlowとは?
メトリクスの分析に特化したo11y cloudで使われる言語です。
一番簡単な例はこちらで、cpu.utilizationというメトリクスを表示する、というものはこうなります。
data("cpu.utilization").publish();
これに対してフィルターや関数をかける場合は以下のようになります。
data("cpu.utilization"), filter=filter('demo_customer', 'zibobodesign.net')).max().publish(label='A')
詳細はこちら。
既存のチャートからSignalFlowの取得
ただし、一からSignalFlowを組むことはあまりありません。
代わりに既存のチャートから簡単にSignalFlowを取得することができます。
まずチャートのタイトルをクリックしてエディターを開きます。
Veiw SignalFlowをクリックします。
するとSignalFlowが出力されます。これをコピーすればOKです。
|simコマンドで取得する
|sim
コマンドの内、flowを使います。
諸々オプションはありますが、もっともシンプルには以下でOKです。
| sim flow query="SignalFlow"
コピーしたもので試してみましょう。
| sim flow query="A = data('demo.trans.latency').max().publish(label='A')
B = data('demo.trans.latency').percentile(pct=50).publish(label='B')
C = data('demo.trans.latency').min().publish(label='C')"
このようにSplunkからo11y cloudへクエリを投げ、メトリクスを取得できました。
後は通常のSPLで処理できます。
Data Inputで取得する
|sim
コマンドはIndexに蓄えることはありません。
もしIndexに保存したい場合はData Inputを使えます。
設定 > データ入力
「Splunk Infrastructure Monitoring Data Streams」を開きます
いくつかサンプルがありますね。今回は新しく作ってみましょう。「新規」をクリックします。
適当に名前を付け、SignalFlow ProgramにSignalFlowをコピペ。
複数行ある場合は;
で区切りましょう。
どこのIndexに保存されるの?という疑問は、その他の設定の中にあります。
Add-onインストール時に作成されるsim_metrics
というMetric Indexです。
もちろん他のIndexに変更することもできます。
次へを押すと設定完了です。
ただし、まだ有効化されていないのが注意です。
もう一度Data Inputを開き(ブラウザバックがお勧め)、「有効化」をクリックします。
時間が経つといい感じに取れました。
Metricsなので| mstats
系を使うか、
「アナリティクス」機能を使いましょう。
Dashboard Studio (現状Splunk Cloudのみ)
Splunk Cloudユーザーはもう少しお手軽なことができます。
Dashboard Studioで直接メトリクス名を指定してグラフを作ることができます。
事前準備
AppのDiscover Splunk Observability Cloud
を開きます。
RealmとAccess Token(API)を入力して保存します。
Dashboard Studio
Dashboard Studioでラインチャートなど置いてみると、データソースに「Splunk Observability Cloud metric search」というメニューが表示されます。
Search for metric or metadataに取得したいメトリクス名を入力すると検索されます。
フィルタ条件、関数も適用できます。
「適用して閉じる」をするとグラフが作られました。
既存のo11y cloudのチャートを丸ごとコピーしたい場合、Content importをクリックして
ChartのURL(タイトルをクリックして開くページ)を貼り付け、Importします。
すると各フィルタ条件などを引き継いでチャートが作られました。
※注意としてOOTBのダッシュボードの場合はChartを開くとコピー状態になり、そのURLだとうまくいきません。一旦自分のダッシュボードに張り付けてから改めてURLを取得する必要があります。
おわりに
o11y cloudのメトリクスを取得する方法をまとめました。
Splunkで何でも集めて可視化しちゃいましょう。
Happy Splunking!