LoginSignup
2
5

More than 3 years have passed since last update.

[Azure] IoT Hub が受信したデータを Service Bus Explorer を使って確認する

Posted at

IoT Hub が受信したデータを確認するには

IoT Hub が受信したデータを確認する方法としては、以下のように様々な方法があります。

  • Device Explorer を使う
    • クライアントツールとしてローカル PC にインストールして使用します(以下の機能をもっています)
      • デバイスの登録
      • デバイス ID ごとに IoT Hub が受信したメッセージのモニタリング
      • Cloud 側からデバイス側へメッセージの送信
      • デバイス上のメソッド呼び出し
  • サンプルプログラムを利用する
  • Service Bus Explorer を使う
    • クライアントツールとしてローカル PC にインストールして使用します

よく使うのは1つ目に記載した「Device Explorer」ではないでしょうか。
Device Explorer の場合、デバイス ID ごとにメッセージを確認するため、メッセージの到達やメッセージの内容は確認できますが、IoT Hub のどのパーティションにデータが格納されているのか?までは確認することができません。IoT Hub は大量のデバイスから大量のデータを受信するため、性能試験等を行った際、どのパーティションにどれだけのデータが入っているか等を確認する必要がある場合があります。
これを可能にするのが3つ目の Service Bus Explorer です。
ちなみに、IoT Hub はデバイス ID をもとにパーティション分割されており、任意のパーティション分割は許可されていません。そのため、どのパーティションにどのデータが格納されているかは、自分で確認する必要があります。

Service Bus Explorer とは

詳細はこちらを確認いただきたいですが、ユーザーが Service Bus の名前空間に接続し、メッセージングエンティティを効率的に管理できるツールです。
IoT Hub では、messages/events 組み込みエンドポイントをバックエンドサービスに公開して、ハブで受信した D2C(Device to Cloud)メッセージを読み取ります。Service Bus Explorer は、この組み込みエンドポイントを読み取ることができます。

Service Bus Explorer を使ってみる

前提条件

Service Bus Explorer の動作確認を行うために、以下を事前に準備しておくこと。

  • IoT Hub の作成
  • IoT Hub へデータを送信するプログラムの準備
    • 事前に IoT Edge をインストールする Linux VM を作成する(データ送信プログラムの環境なのでローカル PC でも良い)
    • 今回は、こちら を参考に、Market Place から「Simulated Temperature Sensor」モジュールを IoT Edge 上のモジュールとして動作させる

Service Bus Explorer のダウンロード

https://github.com/paolosalvatori/ServiceBusExplorer/releases からダウンロードする。
現在だと、以下の「ServiceBusExplorer-4.1.112.zip」が最新版で良いと思います。
ServiceBusExplorerDL01.jpg

任意の場所で解凍すると以下のフォルダが展開されます。
「ServiceBusExplorer.exe」が本体となります。
ServiceBusExplorerDL02.jpg

使い方

IoT Hub の接続文字列をひかえておく。
接続文字列は、IoT Hub の「共通アクセスポリシー」→「iothubowner」→ 共有アクセスキーの「接続文字列-プライマリキー」をコピーする。
IoTHub01.jpg

次に、Service Bus Explorer を起動する。
ServiceBusExplorer01.jpg

メニューバーの「Actions」→「Create IoT Hub Listner」をクリックする。
ServiceBusExplorer02.jpg

IoT Hub の接続文字列を入力する画面が表示されるので、先ほどコピーした接続文字列を貼り付け、「OK」をクリックする。
ServiceBusExplorer03.jpg

これで、IoT Hub の messages/events 組み込みエンドポイントを読み込む設定が完了したので、「Start」をクリックする。
事前に IoT Hub にデータを送信しておくこと。
ServiceBusExplorer04.jpg

IoT Hub が受信したデータを確認することができる。赤枠で囲った部分が、IoT Hub のパーティション情報。今回のデータは、「PartitionId=3」に格納されていることが分かります。
ServiceBusExplorer05.jpg

Service Bus Explorer の上段に「Listener」と「Events」の2つのタブがあります。「Events」タブをクリックすると、IoT Hub が受信したデータを確認できます。
ここでは、Events List に表示された「SequenceNumber」が「672」のものを確認しています。
すぐ下に Event Text で表示されているのは、IoT Hub が受信したデータです。
ServiceBusExplorer06.jpg

ちなみに、Device Explorer だと以下の図のように、IoT Hub が受信したデータをデバイス ID 単位で確認することができます。
DeviceExplorer01.jpg

IoT Hub のパーティション数は、以下のように Azure Portal 画面で設定可能です。
「IoT Hub」→「組み込みのエンドポイント」→「パーティション」を参照ください。
IoTHub02jpg.jpg

まとめ

Service Bus Explorer を使うと、IoT Hub のどのパーティションにどのデータが格納されているかを確認することができます。
これは、性能試験等で性能が出ないケースなどにおいて、調査するのに役立ちます。

たまたま IoT Hub の後続処理がシリアル処理になっている事案があって、その原因調査を行う際に、Service Bus Explorer を使いました。IoT Hub のパーティションの中身を確認できるので、1つのパーティションに固まってデータが格納されていると、後続処理はもちろんシリアルになりますよね。性能試験を行う際は、複数のデバイス ID を用いて試験を行うことをお勧めします。

Service Bus Explorer ぜひ使ってみてください。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5