Azure Event Hubsに対してApache JMeter™からメッセージを送信する

Azure Event Hubsで大量のメッセージを受けてから後続に流す処理のテストをするために、Apache JMeter™を利用する方法を紹介します。

Azure Event HubsのパフォーマンステストをJMeterで実施することはあまりないかもしれませんが、Azure Event Hubsが大量のメッセージを受け後続のコンポーネントに流す一連の処理のテストのために、JMeterで大量のメッセージを発生させることができます。
ここでは、弊社で作成したJMeterのAzure Event Hubsプラグインを利用して、Azure Event Hubsにメッセージを投げる方法を紹介します。

なお今回は、Azure Event HubsにAMQPプロトコルでShared Access Signatureを利用してアクセスしています。

設定概要

  1. Azure Event Hubs用JMeterプラグインを導入
  2. スレッドグループを追加
  3. Azure Event Hubs Samplerを追加
  4. 実行結果を参照するリスナーを追加
  5. テストを実行

設定詳細

  1. Azure Event Hubs用JMeterプラグインを導入 Azure Event HubsにAMQPでメッセージを送信するために、Microsoft Azure plugin for Apache JMeter™のAzure Event Hubs Samplerプラグインを導入します。
    1. プラグインをダウンロード Webブラウザを利用して以下のページから最新のプラグイン(jmeter-plugins-azure-eventhubs-{version}.jar)をダウンロードします。
      https://github.com/pnopjp/jmeter-plugins/releases

    2. ダウンロードしたファイルをJMeterのプラグイン用ディレクトリに配置
      先ほどダウンロードしたjarファイルを $JMETER_HOME/lib/ext にコピーします。

      $ cp jmeter-plugins-azure-eventhubs-{version}.jar /usr/local/jmeter/lib/ext
      
    3. JMeterを起動または再起動します。

  2. スレッドグループを追加
    Test Planに"スレッド グループ"を追加します。
    Add (追加) > Threads (Users) > Tread Group (スレッド グループ)
  3. Azure Event Hubs Samplerを追加
    追加したスレッド グループに"Azure Event Hubs Sampler"を追加します。
    Add (追加) > Sampler (サンプラー) > Azure Event Hubs Sampler
    Azure Event Hubs Sampler
    • Event Hubs Namespace: メッセージ送信先Azure Event Hubs名前空間 (ex. demo-eh.servicebus.windows.net)
    • Event Hub: メッセージ送信先Event Hub
    • Partition: メッセージを投入するパーティション
      「Partition ID」、「Partition Key」、「指定しない」から選択してIDまたはキーを入力
    • Auth type: 今回は「Shared Access Signature」を選択
    • Shared Access Policy: 共有アクセスポリシー名
      Event Hubs名前空間か、Event Hubの共有アクセスポリシーに設定されているポリシー名
    • Shared Access Key: 対象の共有アクセスポリシーのキー
    • Event data
      複数のメッセージを一括して送信できます。
      • message type: 送信するメッセージのタイプ。「UTF-8文字列(String)」「バイナリをBase64エンコードした文字列(Base64 encoded binary)」、「ファイル(File)」から選択します。
      • message: 送信するメッセージ (Fileを選択した場合はフルパスでのファイル名 ex. /tmp/demo.png)
  4. 実行結果を参照するリスナーを追加
    Test Planかスレッドグループに"View Results Tree (結果をツリーで表示)“リスナーを追加します。 Add (追加) > Listener (リスナー) > View Results Tree (結果をツリーで表示)
  5. テストを実行
    Run (実行) > Start (開始) でテストを実行します。
    Azure Portalで該当のEvent Hubsに要求やメッセージが届いていることを確認します。
    Azure Event Hubs - Overview

参考までに、今回作成したTest Planを以下にアップロードしました。
https://github.com/pnopjp/jmeter-plugins/raw/master/samples/AzEventHubsSampler.jmx

以上、今回は、Apache JMeter™でAzure Event Hubsにテストをする基本的な方法を紹介しました。

【宣伝】
AzureでJMeterを使うなら簡単構築Load Tester Powered by Apache JMeter™