Apache JMeter™のResponse Time GraphをAzure Application Insights / Log Analyticsで表示する

Azure Application Insights / Log AnalyticsでJMeterのResponse Time Graphを見る方法を紹介します。

jmeter-backend-azureプラグインを利用してMeterでのテスト結果をAzure Application Insightsに送ることで、Application InsightsやLog AnalyticsでJMeterのテスト結果を参照することができるようになります。

今回はApplication InsightでJMeterのResponse Time Graphを表示してみましょう。

jmeter-backend-azureプラグインの導入と設定

こちらの記事を参照してください。

Application Insights / Log AnalyticsでのResponse Time Graphの表示

今回はApplication InsightsのログでResponse Time Graphを表示します。
Log Analyticsで表示する場合はテーブル名や列名が異なるので、以下の対応表に従って置き換えてください。

- Application Insights Log Analytics
テーブル requests AppRequests
name Name
duration DurationMs
customDimensions Properties
  • 表示/分析対象の絞り込み
    requests (Application Insights) / AppRequests (Log Analytics)テーブルにはApplication Insightsに送った全てのテスト結果や、JMeterではない他のログも含まれている可能性があります。
    1つのテストのみを対象とした結果を表示/分析したい場合は、nameとcustomDimensions.TestStartTimeで、絞り込むことができます。(テストの度にBackend ListenerのtestNameを変更すればnameのみで絞り込むこともできます。)

    以下のKustoでは、nameとTestStartTimeの一覧を取得します。

    requests
    | extend
        TestStartTime = tostring(customDimensions.TestStartTime)
    | distinct TestStartTime, name
    | extend
        formattedTestStartTime
            = format_datetime(
                unixtime_milliseconds_todatetime(tolong(TestStartTime)),
                'yyyy/MM/dd HH:mm:ss'
            )
    | sort by TestStartTime desc
    

    テスト一覧

  • Response Time Graph 先ほど取得したnameとTestStartTimeを指定して、対象となるテストのResponse Time Graphを表示します。

    let testName = "<先ほど取得したnameの値>";
    let TestStartTime = "<先ほど取得したTestStartTimeの値>";
    let interval = "<interval (100ms, 1sなど)>";
    requests
    | where name == testName
        and customDimensions.TestStartTime == TestStartTime
    | extend
        Label = tostring(customDimensions.SampleLabel),
        SampleStartTime
            = unixtime_milliseconds_todatetime(tolong(customDimensions.SampleStartTime))
    | summarize duration = avg(duration) by bin(SampleStartTime, totimespan(interval)), Label
    | render timechart
    

    Application Insights Response Time GraphJMeter Response Time Graph

以上、JMeterのResponse Time GraphをAzure Application Insights / Log AnalyticsでKusto queryを利用して表示する方法を紹介しました。

【宣伝】
AzureにJMeterの分散テスト環境を簡単構築
『Load Tester Powered by Apache JMeter™』