IoT Platform のデバイスログ機能を使用すると、デバイスメッセージのトレースを表示できます。トレース ID またはメッセージ ID に基づいて、IoT Platform でのメッセージの送信をトレースできます。また、エラーノードに基づいて問題を分析および解決することもできます。このトピックでは、メッセージトレースを表示する方法について説明します。
手順
IoT Platform コンソール にログインします。
[概要] ページで、[すべての環境] をクリックします。[すべての環境] タブで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。[クラウド実行ログ] タブで、表示するメッセージトレースのトレース ID またはメッセージ ID を見つけます。
- [メッセージ軌跡] タブをクリックします。検索ボックスに、トレース ID またはメッセージ ID を入力します。
アイコンをクリックして、メッセージトレースマップを表示します。- メッセージトレースマップは、通信ノードと接続線で構成されています。緑色のノードと線は、通信が成功したことを示します。赤色のノードと線は、通信が失敗したことを示します。
- 通信ノードにポインターを移動すると、通信時間、成功メッセージ、または失敗原因を表示できます。
たとえば、家庭用サーモスタットが IoT Platform にデータを送信した後に、次のデータ転送ルールを構成できます。データ処理には、次の 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"温度、湿度、デバイス名、および 時間 データを転送する操作を追加します。
- Tablestore にデータを挿入する: プライマリキーを
${deviceName}に設定します。 - サブスクライブされている Advanced Message Queuing Protocol (AMQP) コンシューマーグループにデータを公開する: デフォルトのコンシューマーグループを選択します。
- ApsaraDB RDS にデータを挿入する: データベーステーブルの 時間 フィールドが自動インクリメントプライマリキーとして設定されていることを確認します。
- 別の Topic にデータを公開する:
/g***/TH_sensor/user/updateを入力します。
詳細については、「データ転送ルールの構成」をご参照ください。
デバイスがデータを送信した後、メッセージトレースマップとデータ転送操作の結果を表示できます
- マップでは、再公開、ots、および amqp ノードは緑色です。メッセージは別の Topic に公開され、Tablestore に挿入され、サブスクライブされている AMQP コンシューマーグループに公開されます。
- マップでは、Vpc 内の Tsdb および rds ノードは赤色です。無効なパラメーターが原因で、メッセージはインスタンスの時系列および時空間データベースに保存されず、サービス構成の異常が原因で ApsaraDB RDS に挿入されません。
次のステップ
メッセージトレースマップで処理失敗ノードが見つかった場合は、失敗原因に基づいて問題のトラブルシューティングを行う必要があります。トラブルシューティング方法の詳細については、「IoT Platform ログ」のエラーコードの説明をご参照ください。前のメッセージトレースマップの問題を解決するには、コンソールで を選択し、ルール名に基づいてデータ転送ルールを見つけ、次のデータ転送操作を変更します。
- ApsaraDB RDS にデータを挿入する: データベーステーブルの 時間 フィールドがプライマリキーではないことを確認します。
デバイスが再度データを送信した後、メッセージトレースマップを表示できます メッセージはすべてのノードに転送されます。