分析Microsoft聊天机器人负载测试结果(Application Insights)

时间:2019-01-06 05:54:30

标签: azure botframework performance-testing

以下是其中一项交易的详细信息(对于大多数交易,观察结果是相同的)。下面的屏幕快照是在Application Insights的“性能选项”下找到的“端到端交易详细信息”。

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

时间轴 enter image description here

遥测

enter image description here

有人可以帮助我了解第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());

是在执行此行之后-等待Conversation.SendAsync(activity,()=> new EchoDialog()); ,它将消息放入某个队列中,然后由一段时间后返回EchoDialog?

谢谢!

1 个答案:

答案 0 :(得分:0)

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