
前回のブログでは、OpenTelemetryの導入方法と、メトリクスデータの収集について解説しました(前回のブログは後述のリンクを参照)。
今回は実践編その3として、収集されたデータをOpenSearchで活用する方法についてご紹介させていただきます。
SAP Cloud Logging Service 関連ブログ
Cloud Logging Service(CLS)関連のブログを以下の通り掲載しております。目的に応じてご参照ください。
- 【SAP BTP】新サービス「SAP Cloud Logging Service」を使ってみた
- 【SAP BTP】SAP Cloud Logging Service実践編 その1:アプリケーションログ収集の応用
- 【SAP BTP】SAP Cloud Logging Service実践編 その2:メトリクス監視してみよう
- 【SAP BTP】SAP Cloud Logging Service実践編 その3:収集したデータを分析・ログを一元管理してみよう(本記事)
前提条件

全体構成やCLSの構築については「【SAP BTP】新サービス「SAP Cloud Logging Service」を使ってみた」で解説した通りです。実践編では主に以下のポイントで解説します。
・ロギングフレームワークと組み合わせたログ出力とCLSへの送信(実践編その1で解説)
・OpenTelemetryを使用したメトリクスデータの収集(実践編その2で解説)
・ダッシュボードやアラート機能を使用したデータ活用(本記事で解説 ※上図の赤枠部分)
OpenSearchを使用した収集データの視覚化
OpenSearchとは、検索および分析のためのオープンソースのソフトウェアスイートで、リアルタイムでのアプリケーションのモニタリングやログ分析が可能です。主な機能は以下のものが挙げられます。
・分析機能(ダッシュボード)
・ログ監視機能(アラート)
OpenSearchへのアクセス方法は「【SAP BTP】新サービス「SAP Cloud Logging Service」を使ってみた」を参照してください。
ダッシュボードによる分析
作成例
CPU稼働率の推移を表示するダッシュボードを作成します。

ダッシュボードの新規作成
「Create dashbord」からダッシュボードを作成します。


データの表示形式を選択
今回の例では「TSVB」を選択してグラフ作成します。下記にその他の主要なグラフも紹介しています。

◆TSVB(The time-series visual builder)
詳細な時系列推移を表現するために使用するグラフ
◆Line
折れ線グラフ
◆Pie
円グラフ
◆Heat Map
ヒストグラム (数値データの分布をグラフで表したもの) を時間経過に沿って表示するグラフ
◆Metric
異なるメジャーの値を比較するグラフ
例えば、メトリックの視覚化を作成して、実際の売上と売上目標など、2 つの値を比較できる
参考:https://opensearch.org/docs/1.3/dashboards/visualize/viz-index/
Panel optionsの設定
使用するテーブルや表示の間隔を設定します。
4) の設定でFieldを表示するために必要になります。

1) Index pattern
使用するテーブルを選択(アスタリスクで全日程指定可能)
2) Time field
X軸に使用する時間フィールドを選択
3) Interval
表示するデータの間隔を設定
4) Panel filter
選択したテーブルのnameカラム内をフィルター
Dataの設定
データの見出しやテーブル内で使用するカラムを設定します。
Fieldは3) でテーブルを選択するとカラムが選択できるようになります。


◆Metrics
1) Label
表示しているデータのラベル
2) Aggregation
集計方法
3) Field
選択したテーブル内のカラムを設定
4) Scale
表示するデータの規模
◆Options
5) Data Formatter
Y軸のデータの表示形式を設定
表示確認
ダッシュボートへの追加が確認できました。
上部メニューの「Save」ボタンで作成したダッシュボートを保存できます。

アラート設定
作成例
監視時間の間でCPU稼働率が20%を超えた際に、Slackへ通知が飛ぶように設定します。

モニターの作成
Alerting/Monitors画面の「Create monitor」でモニターを作成します。

モニターの設定
「Per query monitor」「Extraction query editor」を選択します。

Extraction query editor
モニターをクエリで定義できる項目
監視対象の選択
アスタリスクで全日程のデータソースを取得可能です。

クエリの設定
作成例に基づき現在時刻から2分前~現在時刻の間で、CPU稼働率が20%以上のものを選出します。時間の指定はtimeカラムを降順に並べ替えて設定しています(ログはUS時間で取得されます)。

{
"query": {
"bool": {
"must": [
{
"term": {
"name": {
"value": "jvm.cpu.recent_utilization",
"boost": 1
}
}
},
{
"range": {
"value": {
"from": 0.2,
"to": null,
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
},
{
"range": {
"time": {
"from": "now-2m",
"to": null,
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"sort": [
{
"time": {
"order": "desc"
}
}
]
}
トリガーの設定
設定したクエリでしきい値にヒットした回数(hits.total.value)が1以上の時にアラートを設定します。

通知設定
アラートが出た際に他のアプリケーションへ通知が行くように宛先を設定します。通知先のアプリケーションは以下から選択可能です。
・Amazon Chime
・Slack
・Custom webhook
・Email(SMTP経由でのアラート通知はサポートされていない)


追加した接続先を選択します。

通知確認
通知が来ていることを確認できました。

最後に
収集したメトリクスデータをダッシュボードで視覚化したり、アラート機能を用いて通知を飛ばすことで、より分かりやすくデータ管理ができますね。
私自身、今回初めてログ収集ツールを使用してみて、視覚的にログを一元管理できることの便利さを実感することができました。
今回は3つの記事にわたり SAP Cloud Logging Service の活用方法をご紹介いたしました。 SAP Cloud Logging Service は最近リリースされたサービスであるため、今後もっと利用ユーザが増えていくかと思います。皆様が Cloud Logging を活用する際にこの記事がお役に立てれば幸いです。
最後までご覧いただきありがとうございました。
投稿者プロフィール

-
2022年新卒入社。Vue.js と Spring boot を用いた社内用経歴管理の開発に1年間携わり、現在は SAP Fiori を用いた開発案件を担当しております。「理解しやすいコード・使いやすいUI・伝わりやすい資料」を作れる人になるために日々勉強中です。
趣味は絵を描くことです。