e_to_metric データ変換関数を使用して、Logstore のログフィールドを MetricStore のメトリックに変換し、経時的な変化を追跡します。このトピックでは、NGINX アクセスログを例として使用します。
背景情報
アプリケーションのランタイムデータは、ログ、トレース、メトリックの 3 つのカテゴリに分類されます。ログは個別のイベントを記録し、トレースはシステム全体のリクエストを追跡し、メトリックは時系列の数値をキャプチャします。Log Service は、次の 2 種類のストレージを提供します:
-
Logstore
Logstore は、Log Service でログを収集、保存、クエリします。詳細については、「Logstore」をご参照ください。
-
MetricStore
MetricStore は、Log Service でメトリックを収集、保存、クエリします。MetricStore は PromQL クエリをサポートし、Prometheus プロトコルと互換性があります。詳細については、「MetricStore」をご参照ください。
通常、ログデータはメトリックデータよりも包括的です。メトリックは、本質的には構造化されたログエントリです。Log Service は、ログをメトリックに変換するために、次の 2 つの方法をサポートしています:
-
定期 SQL:ログを集計してメトリックを生成します。詳細については、「Logstore から MetricStore にデータをインポートするための定期 SQL ジョブを作成する」をご参照ください。
-
e_to_metric データ変換関数:Logstore のログフィールドを時系列メトリックに変換します。
シナリオ
中国 (杭州) リージョンには、nginx-demo という名前の Logstore があり、NGINX のアクセスログが格納されています。
目的は、バックエンドサーバーごとに request_time (リクエスト時間) と upstream_response_time (アップストリーム応答時間) の傾向を監視することです。Logstore の request_time と upstream_response_time を、host フィールドに基づくラベル付きのメトリックに変換します。
body_bytes_sent:1750
host:www.example.com
http_referer:www.guide.example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:203.0.113.10
remote_addr:203.0.113.10
remote_user:p288
request_length:13741
request_method:GET
request_time:71
request_uri:/request/path-1/file-1
status:200
time_local:11/Aug/2021:06:52:27
upstream_response_time:0.66
前提条件
ログデータが収集されていること。詳細については、「データ収集」をご参照ください。
ステップ 1:MetricStore の作成
変換されたメトリックを格納するために、service-metric という名前の MetricStore を作成します。
Simple Log Service コンソール にログインします。
[プロジェクト] セクションで、目的のプロジェクトをクリックします。

-
[] タブで、[+] アイコンをクリックします。
-
「Create Metricstore」パネルで、以下のパラメーターを設定し、OK をクリックします。
パラメーター
説明
Metricstore Name
Metricstore 名は、プロジェクト内で一意である必要があります。作成後に名前を変更することはできません。
データ保持時間
Metricstore で Simple Log Service によって収集された時系列データの保持期間。
-
[日数限定] をデータ保持パターンとして選択し、必要に応じてデータ保持期間を設定します。単位: 日。有効な値: 1~3000。
警告-
ログの保持期間が終了すると、ログは削除されます。
-
データ保持期間を短縮すると、Simple Log Service は期限切れのすべてのログを 1 時間以内に削除します。ただし、Simple Log Service コンソールのホームページにある 使用明細 は翌日に更新されます。たとえば、データ保持期間を 5 日から 1 日に変更した場合、Simple Log Service は過去 4 日分のログを 1 時間以内に削除します。
-
-
データ保持モードとして恒久的な保管:を選択すると、Simple Log Service は、収集されたメトリックを永続的に保持します。
説明SDK を使用してデータ保持期間を照会し、返された値が 3650 の場合、それは永久保持を示します。
シャード数:
シャード数。Simple Log Service は、データの読み取りと書き込みを可能にするシャードを提供します。各シャードは、5 MB/秒の書き込み容量と 500 回/秒の書き込み、および 10 MB/秒の読み取り容量と 100 回/秒の読み取りをサポートします。各 Metricstore に最大 10 個のシャード、各プロジェクトに最大 200 個のシャードを作成できます。詳細については、「シャード」をご参照ください。
自動シャーディング:
「自動シャーディング:」を有効にすると、Simple Log Service は、既存のシャードが書き込まれるデータを処理できない場合にシャード数を増加させます。詳細については、「シャードの管理」をご参照ください。
最大破片:
「自動シャーディング:」スイッチをオンにすると、システムは最大256個の読み書きシャードへの自動シャーディングをサポートします。
-
ステップ 2:データ変換ジョブの作成
e_to_metric 関数を使用して、ステップ 1 で作成した MetricStore に結果を出力するデータ変換ジョブを作成します。
-
対象のログが Rawデータ タブに表示されるように、右上隅で時間範囲を選択します。
-
以下のデータ変換ステートメントを入力します。これにより、
request_timeとupstream_response_timeはメトリクスに変換され、hostはラベルとしてhostnameに名前変更されます。e_to_metric( names=[("request_time", "RequestTime"), ("upstream_response_time", "ResponseTime")], labels=[("host", "hostname")], ) -
データのプレビュー をクリックし、Transformation Results タブを確認します。
このタブには、
__name__:RequestTimeと__value__:71.0、および__name__:ResponseTimeと__value__:0.66の 2 つのメトリックデータポイントが表示されます。どちらも__labels__はhostname#$#www.example.com、__time_nano__は1716172083000000000です。 -
データ変換ジョブを作成します。
-
データ処理の保存 をクリックします。
-
データ処理タスクの作成 パネルで、次のパラメーターを設定し、OK をクリックします。パラメーターの詳細については、「データ変換ジョブの作成」をご参照ください。
パラメーター
説明
ジョブ名、表示名
ジョブ名は一意である必要があります。表示名は、log2metric など、ユーザーが定義します。
認証方式
ソース Logstore の読み取り権限を付与するには、Default Role を選択します。
宛先
宛先名
宛先の名前 (例: log2metric)。
宛先リージョン
宛先プロジェクトのリージョン (例: 中国 (杭州))。
宛先プロジェクト
変換結果を保存する宛先プロジェクト。
宛先ストア
宛先の MetricStore (例: service-metric)。
認証方式
Default Role を選択して、宛先の MetricStore service-metric への書き込み権限を付与します。
処理範囲
時間範囲
すべて を選択します。
-
-
データ変換ジョブのステータスを確認します。
左側メニューで [Logstore] アイコンをクリックし、対象の Logstore を展開して [データ処理] > [データ変換] を選択し、対象のジョブをクリックして進行状況を表示します。
ステップ 3:時系列データのクエリ
-
左側メニューで、 を選択し、対象の MetricStore を選択します。
-
右上隅で、[直近 15 分 (相対)] をクリックしてクエリ時間範囲を設定します。
説明クエリと分析の結果には、最大 1 分の遅延が発生する場合があります。
-
Preview Raw Data をクリックします。表示されたパネルで時間範囲を選択して、メトリクスが書き込まれていることを確認します。
プレビューには、
service-metricからの 2 つのメトリック、__name__:RequestTimeと__value__:71.0、および__name__:ResponseTimeと__value__:0.66が表示されます。 -
次のいずれかの方法を使用してクエリステートメントを入力します。詳細な手順については、「時系列データのクエリと分析」をご参照ください。
-
PromQL 文を入力し、今すぐ実行 をクリックします。
複数のクエリを追加できます。 結果は同じ時系列グラフに重ねて表示されます。
-
[メトリクス探索] ペインで、メトリックの横にある
アイコンをクリックすると、クエリ文が自動的に生成されます。また、[メトリクス探索] ペインでメトリックの 検索を続ける をクリックしてラベル値を設定し、クエリを自動生成することもできます。 詳細については、「メトリック探索」をご参照ください。
-
各ホストの RequestTime の傾向

-
各ホストの ResponseTime の傾向

-