首页 > 解决方案 > Application Insights Analytics 中的单独 apdex 阈值

问题描述

使用 Application Insights 的默认 Apdex 工作簿,我尝试按查询名称分隔 apdex 阈值,因为不同的查询具有不同的满意度请求持续时间。我添加了两个参数,每个参数都用于特定的查询名称。我通过 apdexThresholdByName 列扩展了分析查询,每个查询名称都不同。然后我改变了这一行:extend UserExperience = case(AverageDuration <= apdexThresholdByName, 'Satisfied', AverageDuration <= 4 * apdexThreshhold, 'Tolating', 'Frustrated') 把我的 apdexThresholdByName 列名而不是静态单个参数放在那里是以前。

这是行不通的。

语法错误:“无法解析实体 'apdexThresholdByName'”

let apdexData = {Type}
| where timestamp {TimeRange}
| where name in ({Operations}) or '*' in ({Operations})
{OperationsFilter}
| extend success = columnifexists('success', true)
| extend Failure = iff('{Calculations}' == 'ConsiderFailures' and success == false, 1, 0)
| extend InterestingDimension = iff(isempty({SegmentBy})== true, 'Unknown', {SegmentBy})
| extend apdexThresholdByName = iff('POST Insurance/PostModel [actionName/elementid/widgetname/workspace]' == ["name"], {Insurance_PostModel_actionName_elementid_widgetname_workspace_threshold}, iff('POST Insurance/PostModel [actionName/elementid/widgetname/workspace]' == ["name"], {Insurance_PostModel_widgetname_workspace_threshold}, 0))
| where InterestingDimension in ({SegmentFilters}) or '*' in ({SegmentFilters})
| summarize AverageDuration = avg(duration), Failures = sum(Failure) by user_Id, InterestingDimension
| extend UserExperience = case(AverageDuration <= apdexThresholdByName, 'Satisfied', AverageDuration <= 4 * apdexThreshhold, 'Tolerating', 'Frustrated')
| extend UserExperience = case(Failures > 0, "Frustrated", UserExperience)
| summarize Satisfied = countif(UserExperience == 'Satisfied'), Tolerating = countif(UserExperience == 'Tolerating'), Frustrated = countif(UserExperience == 'Frustrated'), Total = count() by InterestingDimension
| project InterestingDimension, ["Satisfied Users"] = Satisfied, ["Tolerating Users"] = Tolerating, ["Frustrated Users"] = Frustrated, ["Apdex Score"] = round((Satisfied + (Tolerating / 2.0)) / Total, 2), Total
| extend Relevance = iff(["Apdex Score"] == 0, pow(Total, 1.6), Total / ["Apdex Score"])
| project-rename Users = Total
| order by {ShowSegmentsBy}
| project-away Users, Relevance;
apdexData
| extend ["Apdex Interpretation"] = case(["Apdex Score"] <= 0.5, '⛔ Unacceptable', ["Apdex Score"] <= 0.7, '⚠️ Poor', ["Apdex Score"] <= 0.85, '⚠️ Fair', ["Apdex Score"] <= 0.94, '✔️ Good', '✔️ Excellent')
| project Values = InterestingDimension, ["Apdex Score"], ["Apdex Interpretation"], ["Satisfied Users"], ["Tolerating Users"], ["Frustrated Users"]

标签: azure-application-insightsms-app-analyticsapdex

解决方案


字段 apdexThresholdByName 不传递其后面的汇总子句。

此汇总子句在 by 部分中既不包含“名称”也不包含“apdexThresholdByName”:

| summarize AverageDuration = avg(duration), Failures = sum(Failure) by user_Id, InterestingDimension

这样分割就不会向前传播


推荐阅读