分析 Microsoft Chat Bot 负载测试结果 (Application Insights)

Analysing Microsoft Chat Bot Load Test result (Application Insights)

这是其中一笔交易的详细信息(对于大多数交易,观察结果是相同的)。下面的屏幕截图是在 Application Insights 的性能选项下找到的 "End-to-End transaction details"。

交易的总持续时间约为 29.4 秒,在下面的时间轴和遥测屏幕截图中标记的第 1 步和第 2 步之间花费了约 26 秒。

时间线

遥测

有人可以帮助我了解第 1 步和第 2 步之间的差距,以及如何减少差距以提高性能。

正如您在 Telemetery 屏幕截图中还可以看到的那样,还打印了 MessagesController.cs

中提到的自定义跟踪消息(以红色突出显示)
[ResponseType(typeof(void))]
    public virtual async Task<HttpResponseMessage> Post([FromBody] Activity activity)
    {

        var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
    telemetry.TrackTrace("MessagesController POST",
            Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning,
            new Dictionary<string,string> { {"Activity Id", activity.Id} });

        // check if activity is of type message
        if (activity != null && activity.GetActivityType() == ActivityTypes.Message)
        {
            telemetry.TrackTrace("MessagesController Type:Message",
            Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning,
            new Dictionary<string,string> { {"Activity Id", activity.Id} });

            //var reply = activity.CreateReply(String.Empty);
            //reply.Type = ActivityTypes.Typing;
            //await context.SendResponse(reply);
            await Conversation.SendAsync(activity, () => new EchoDialog());

是不是在执行完这一行后 - await Conversation.SendAsync(activity, () => new EchoDialog());某个队列中的消息然后在一段时间后被 EchoDialog 拾取?

提前致谢!

这是因为我创建了加载脚本。加载脚本正在为多个用户创建相同的对话 ID,因此检索对话记录需要时间。