IoT Platform 向けの Simple Log Service を使用すると、デバイス通信のメッセージトレースを表示できます。`TraceID` または `MessageId` を使用して、IoT Platform を経由するメッセージの完全なパスをトレースできます。また、このトレースを使用して、失敗したノードに基づいて問題を迅速に分析し、特定することもできます。このトピックでは、メッセージトレースの表示方法について説明します。
操作手順
IoT Platform コンソールにログインします。
[概要] ページで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。[IoT プラットフォームログ] タブで、トレースするメッセージの TraceID または MessageId を見つけます。
- [メッセージトレース] をクリックします。検索ボックスに TraceID または MessageId を入力します。
- 右側の検索
アイコンをクリックして、トレイルマップを表示します。- トレイルマップは、通信ノードのアイコンと接続線で構成されます。緑色は通信フローの成功を示し、赤色は失敗を示します。
- 通信ノードにカーソルを合わせると、通信時間、成功情報、または失敗の理由が表示されます。
たとえば、家庭用サーモスタットプロダクトから報告されたデータに対して、データ転送ルールが次のように構成されているとします:データ処理用の SQL ステートメント:
SELECT items.temperature.value as temperature, items.humidity.value as humidity, deviceName() as deviceName, timestamp() as time FROM "/g***/TH_sensor/thing/event/property/post"このルールは、temperature、humidity、deviceName、time のデータを次のように転送します:
- データは Tablestore に挿入され、プライマリキーは
${deviceName}に設定されます。 - データは、AMQP サーバー側サブスクリプションのコンシューマーグループである [Default Consumer Group] に公開されます。
- データは ApsaraDB RDS に挿入され、データベーステーブルの time フィールドは自動増分プライマリキーとして設定されます。
- データは別の Topic である
/g***/TH_sensor/user/updateに公開されます。
詳細については、「データ転送ルールの設定」をご参照ください。
デバイスがデータを報告した後、メッセージトレースにはデータ転送操作に関する次の結果が表示されます:
- 別の Topic への公開 ([再パブリッシュ])、Tablestore への挿入 ([ots])、または AMQP サーバー側サブスクリプションのコンシューマーグループへの公開の場合、メッセージは正常に処理されます。
- プロダクト構成に異常がある ApsaraDB ([RDS]) にデータを挿入する場合、メッセージ処理は失敗します。
次のステップ
通信トレースで失敗したノードが見つかった場合は、失敗の理由に基づいて問題をトラブルシューティングし、修正します。トラブルシューティング方法の詳細については、「IoT プラットフォームログ」のエラーコードの説明をご参照ください。前述のトレイルマップの例に基づき、 ページに移動します。ruleName に対応する転送ルールを見つけ、失敗した転送操作を修正します: ApsaraDB RDS にデータを挿入する際は、データベーステーブルの time フィールドからプライマリキー設定を削除します。
デバイスが再度データを報告した後、メッセージトレースを表示します。メッセージが正常に処理されたことがわかります。