tencent cloud

Cloud Log Service

テーマ横断関連分析

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 15:02:18
AI翻訳

操作シナリオ

ログデータが複数のトピックに分散している場合、SQLを使用してトピックをまたいで統計分析を行うことができます。例えば以下のシナリオです:
マイクロサービスアーキテクチャでは、各サービスのログは異なるトピックに保存されます。リクエストIDに基づいて各サービスの処理時間を集計して照会する必要があります。
ログはエラーログと業務アクセスログに分けられ、異なるトピックに保存されます。エラーログ内のユーザーID、注文IDなどの情報に基づいて、アクセスログから関連するアクセス記録を照会する必要があります。

前提条件

ログは標準ストレージに取り込まれます。低頻度ストレージではSQLを使用した統計分析はサポートされていません。
複数のトピックを関連付けて分析する場合、これらのトピックに対する照会権限を同時に持つ必要があります。そうでない場合、権限がないために照会エラーが発生します。最大で同時に5つのログトピックを関連付けて分析できます。

操作手順

クロストピック関連分析はSQL文によって実現され、ログ検索分析、ダッシュボード、定期SQL、アラートポリシーで使用できます。ログ検索分析を例にとると、操作手順については検索分析構文ルールの操作手順を参照してください。

構文規則

SQLでは、各ログトピックは1つのデータベーステーブルに相当し、JOIN、UNION、INTERSECT、EXCEPTなどの構文を使用して関連分析を行うことができます。

テーブル名

テーブル名はトピックIDです。トピックIDに特殊文字-が含まれる場合、SQLでは二重引用符で囲む必要があります。例えば"0c037c7c-dbf0-4646-bb8b-9e414e5928f7"です。
現在のトピック内のデータを照会する場合、logを使用して現在のトピックを表すことができます。省略することも可能です。例えば* | select * from log、* | select *です。

クエリ時間範囲

SQLはデフォルトでクエリ文全体に指定された時間範囲を引き継ぎます。関連クエリの複数のトピックが同じ時間範囲を使用する場合、SQLでクエリ時間範囲を追加で指定する必要はありません。例を参照してください。
トピックのクエリ時間範囲を個別に指定する必要がある場合、WHERE構文を使用してログ時間__TIMESTAMP__をフィルタリングできます。

検索条件

クエリ文では、パイプ記号の前の検索条件は現在のクエリのログトピックにのみ適用されます。他のトピックに対してデータをフィルタリングする必要がある場合は、SQLのWHERE構文を使用してください。
例えば以下のクエリでは、18cae058-c290-xxx-ade9-97d8eca2c86aは現在のログトピックIDではなく、検索条件level:errorは有効になっておらず、count(*)が統計したのは全ログ件数です。
level:error | select count(*) from "18cae058-c290-xxx-ade9-97d8eca2c86a"
このトピックのエラーログ件数を統計する必要がある場合、以下の文を使用できます:
* | select count(*) from "18cae058-c290-xxx-ade9-97d8eca2c86a" where level = 'error'

例

シナリオ説明

ある業務システムには2つのサービスが含まれています。注文管理サービスのログはトピックAに保存され、支払いサービスのログはトピックBに保存されます。リクエストIDに基づいて各サービスの処理時間を照会する必要があります。
ログトピックAのIDは"0c037c7c-dbf0-4646-bb8b-9e414e5928f7"です。ログデータは以下の通りです。
{
"RequestId": "4f7g2k9m",
"timeCost": 856,
"timestamp": "2024-01-31T19:44:08+08:00",
},
{
"RequestId": "6m4v1ztf",
"timeCost": 1452,
"timestamp": "2024-01-31T19:45:08+08:00",
}
ログトピックBのIDは"8c05119c-c3e8-4e8f-95b7-81eab4702b0a"です。ログデータは以下の通りです。
{
"reqid": "4f7g2k9m",
"costms": 247,
"timestamp": "2024-01-31T19:44:08+08:00",
},
{
"reqid": "6m4v1ztf",
"costms": 365,
"timestamp": "2024-01-31T19:45:08+08:00",
}

クエリ文

注文管理サービスのログトピックAでこのクエリ文を実行します。
* |
SELECT
order_service.RequestId,
order_service.timeCost AS "注文管理サービス処理時間",
pay_service.costms AS "支払いサービス処理時間"
FROM
log AS order_service
JOIN "8c05119c-c3e8-4e8f-95b7-81eab4702b0a" AS pay_service
ON order_service.RequestId = pay_service.reqid
LIMIT 100

クエリ結果

RequestId
注文管理サービスの処理時間
決済サービス処理時間
4f7g2k9m
856
247
6m4v1ztf
1452
365

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック