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

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

現時点:2021/03/10では、Azure Event HubsプラグインがShared Access Key以外の承認には対応していません。リクエストが多いものから対応しようと考えています。 [リクエストする]

設定概要

  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
    • Shared Access Policy: 共有アクセスポリシー名
      Event Hubs名前空間か、Event Hubの共有アクセスポリシーに設定されているポリシー名
    • Shared Access Key: 対象の共有アクセスポリシーのキー
    • Partition: メッセージを投入するパーティション
      「Partition ID」、「Partition 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™