IoT Platform では、デバイスがオンプレミスログをクラウドにレポートできます。 コンソールでデバイスログをクエリし、問題のトラブルシューティングを行うことができます。
- 次の Link SDK を使用するデバイスは、オンプレミスログを IoT Platform にレポートできます。 オンプレミスログをレポートする機能を有効にする独自の SDK を開発できます。
- デバイスのログをレポートするには、デバイスの [デバイスの詳細] ページに移動し、[デバイスローカルログレポート] スイッチをオンにする必要があります。
オンプレミスデバイスログをクエリする方法の詳細については、「ローカルデバイスログ」をご参照ください。
デバイスが IoT Platform からログ構成をリクエストする
デバイスが IoT Platform にリクエストを送信し、IoT Platform がデバイスに応答を送信するときに、次のトピックが使用されます。
- リクエストトピック:
/sys/${productKey}/${deviceName}/thing/config/log/get
- レスポンストピック:
/sys/${productKey}/${deviceName}/thing/config/log/get_reply
Alink JSON 形式のリクエスト例:
{
"id" : "123",
"version":"1.0",
"sys":{
"ack":0
},
"params" : {
"configScope":"device", // 構成の範囲
"getType":"content" // 返される構成の形式
},
"method":"thing.config.log.get"
}
パラメーター | タイプ | 説明 |
id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
version | String | プロトコルのバージョン。有効な値: 1.0。 |
sys | Object | 拡張機能のパラメーター。値には、各機能のフィールドが含まれています。 説明 デバイス SDK を使用してデバイス機能を開発するときに拡張機能が構成されていない場合、このパラメーターは使用できません。拡張機能はデフォルトの構成を使用します。 |
ack | Integer | sys パラメーターの拡張機能フィールド。このフィールドは、IoT Platform が登録リクエストのレスポンスデータを返すかどうかを指定します。有効な値:
重要 パラメーターの詳細については、「TSL モデルの使用方法の例」をご参照ください。 機能が構成されていない場合、このパラメーターは使用できません。デフォルトでは、IoT Platform は登録リクエストのレスポンスデータを返します。 |
configScope | String | ログ構成の範囲。IoT Platform は、デバイスレベルのログ構成のみをサポートしています。デフォルト値: device。 |
getType | String | 構成が返される形式。デフォルト値: content。デフォルトでは、ログ構成の内容はサイズが小さく、テキスト形式で直接返されます。 |
method | String | リクエストメソッド。有効な値: thing.config.log.get。 |
Alink JSON 形式のレスポンス例:
{
"id":"123",
"version":"1.0",
"code":200, // HTTPステータスコード
"data" :{
"getType":"content",
"content":{
"mode":0 // デバイスログをレポートするために使用されるモード
}
}
}
パラメーター | タイプ | 説明 |
id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
version | String | プロトコルのバージョン。有効な値: 1.0。 |
code | Integer | レスポンスの HTTP ステータスコード。200 が返された場合、リクエストは成功しました。他のステータスコードが返された場合、リクエストは失敗しました。 HTTP ステータスコード 6717 および 6718 の詳細については、次の表を参照してください。その他の HTTP ステータスコードの詳細については、「デバイスの共通コード」をご参照ください。 |
data | Object | IoT Platform によって返されるデータ。 |
getType | String | 構成が返される形式。デフォルト値: content。デフォルトでは、ログ構成の内容はサイズが小さく、テキスト形式で直接返されます。 |
content | String | テキスト形式のログ構成の内容。 |
mode | Integer | デバイスログのレポートに使用されるモード。値 0 は、デバイス SDK がログのレポートに使用されていないことを示します。値 1 は、デバイス SDK がログのレポートに使用されていることを示します。 |
HTTP ステータスコード | 原因 | トラブルシューティング |
6717 | getType リクエストパラメーターが無効です。デバイスログをレポートするには、このパラメーターを content に設定する必要があります。 | IoT Platform コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[デバイスローカルログ] タブで、getType パラメーターの値を確認します。または、オンプレミスデバイスログでパラメーター値を確認します。 |
6718 | configScope リクエストパラメーターが無効です。デバイスログをレポートするには、このパラメーターを device に設定する必要があります。 | IoT Platform コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[デバイスローカルログ] タブで、configScope パラメーターの値を確認します。または、オンプレミスデバイスログでパラメーター値を確認します。 |
デバイスが IoT Platform からログ構成を受信する
IoT Platform がデバイスにリクエストを送信し、デバイスが IoT Platform にレスポンスを送信するときに、次のトピックが使用されます。
トピック: /sys/${productKey}/${deviceName}/thing/config/log/push
。
Alink JSON 形式で送信される構成データ:
{
"id":"123",
"version":"1.0",
"params" :{
"getType":"content",
"content":{
"mode":0 // デバイスログをレポートするために使用されるモード
}
}
}
パラメーター | タイプ | 説明 |
id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
version | String | プロトコルのバージョン。有効な値: 1.0。 |
getType | String | 構成が返される形式。デフォルト値: content。デフォルトでは、ログ構成の内容はサイズが小さく、テキスト形式で直接返されます。 |
content | String | テキスト形式のログ構成の内容。 |
mode | Integer | デバイスログのレポートに使用されるモード。値 0 は、デバイス SDK がログのレポートに使用されていないことを示します。値 1 は、デバイス SDK がログのレポートに使用されていることを示します。 |
デバイスがログをレポートする
デバイスが IoT Platform にリクエストを送信し、IoT Platform がデバイスに応答を送信するときに、次のトピックが使用されます。
- リクエストトピック:
/sys/${productKey}/${deviceName}/thing/log/post
- レスポンストピック:
/sys/${productKey}/${deviceName}/thing/log/post_reply
Alink JSON 形式のリクエスト例:
{
"id" : "123", // メッセージID
"version":"1.0",
"sys":{
"ack":0
},
"params" :[{ // リクエストパラメーター。params パラメーターには、配列に最大 40 個の要素を含めることができます。
"utcTime": "2020-03-06T15:15:27.464+0800", // デバイスがログを収集した時刻
"logLevel": "ERROR", // ログレベル
"module": "ModuleA", // モジュールの名前
"code" :"4103", // HTTPステータスコード
"traceContext": "123456", // コンテキストでトレースされるコンテンツ
"logContent" : "some log content" // ログのコンテンツ
}],
"method" : "thing.log.post" // リクエストメソッド
}
パラメーター | タイプ | 説明 |
id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
version | String | プロトコルのバージョン。有効な値: 1.0。 |
sys | Object | 拡張機能のパラメーター。値には、各機能のフィールドが含まれています。 説明 デバイス SDK を使用してデバイス機能を開発するときに拡張機能が構成されていない場合、このパラメーターは使用できません。拡張機能はデフォルトの構成を使用します。 |
ack | Integer | sys パラメーターの拡張機能フィールド。このフィールドは、IoT Platform が登録リクエストのレスポンスデータを返すかどうかを指定します。有効な値:
重要 パラメーターの詳細については、「TSL モデルの使用方法の例」をご参照ください。 機能が構成されていない場合、このパラメーターは使用できません。デフォルトでは、IoT Platform は登録リクエストのレスポンスデータを返します。 |
params | List | リクエストパラメーター。params パラメーターには、配列に最大 40 個の要素を含めることができます。 |
utcTime | String | デバイスがログを収集した時刻。時刻は UTC で、タイムゾーンが含まれています。単位: ミリ秒。データ形式: yyyy-MM-dd'T'HH:mm:ss.SSSZ。他のデータ形式を使用することもできます。ただし、トラブルシューティングを容易にするために、このデータ形式を使用することをお勧めします。 |
logLevel | String | ログレベル。デフォルトのログレベルを使用するか、ログレベルをカスタマイズできます。次のデフォルトのログレベルは、重大度の高い順にリストされています。
|
module | String | モジュールの名前。
|
code | String | レスポンスの HTTP ステータスコード。 HTTP ステータスコードは、デバイス SDK によって生成されるか、ユーザーによってカスタマイズされる場合があります。デバイスが Android 用 SDK を使用している場合に返される可能性のあるステータスコードの詳細については、「エラーコード」をご参照ください。デバイスが C 用 SDK を使用している場合に返される可能性のあるステータスコードの詳細については、「一般的なエラーコード」をご参照ください。 |
traceContext | String | オプション。コンテキストでトレースされるコンテンツ。デバイスの場合は、このパラメーターを Alink メッセージの id パラメーターの値に設定します。アプリケーションの場合は、このパラメーターを TraceId パラメーターの値に設定します。 |
logContent | String | ログのコンテンツ。 |
method | String | リクエストメソッド。有効な値: thing.log.post。 |
Alink JSON 形式のレスポンス例:
{
"id" : "123",
"code":200, // HTTPステータスコード
"data" : {}
}
パラメーター | タイプ | 説明 |
id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
code | Integer | レスポンスの HTTP ステータスコード。200 が返された場合、リクエストは成功しました。他のステータスコードが返された場合、リクエストは失敗しました。詳細については、「デバイスの共通コード」をご参照ください。 |
data | Object | IoT Platform によって返されるデータ。ログをレポートするリクエストへのレスポンスでは、データは返されません。 |