如何获取Azure Application Insights中用户选定的指标图表类型?
你提到用Application Insights的REST API能拿到指标数据,但拿不到用户选定的图表类型——确实,纯指标API只返回数值,不包含可视化配置。不过有几个途径可以获取到用户保存的图表类型配置:
通过Azure Monitor Dashboards API获取固定的图表
如果用户把App Insights的指标图表固定到了Azure Dashboard上,你可以调用Dashboard的管理API来获取整个仪表板的定义。每个固定的tile都会包含完整的可视化配置,其中就有图表类型(比如折线图、柱状图)。
调用示例:GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Portal/dashboards/{dashboardName}?api-version=2021-09-01解析返回的JSON时,找到
properties.lenses[0].order下对应的App Insights tile,里面的visualization字段会明确标注图表类型(比如lineChart、barChart)。通过Application Insights Workbooks API获取工作簿中的图表
如果用户的图表是在App Insights工作簿里创建并保存的,工作簿的定义会完整记录所有可视化组件的配置。调用Workbooks API就能拿到这些信息:GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/workbooks/{workbookName}?api-version=2021-03-08重点看
properties.serializedData字段(需要先解析这个JSON字符串),里面每个可视化模块都会有visualization或type字段,直接对应用户选择的图表类型。注意事项
这些方法只适用于已保存的图表配置——如果用户是在Metrics Explorer里临时创建的图表(没保存到仪表板或工作簿),这类临时配置不会持久化到Azure资源中,也就无法通过API获取。另外,调用这些API需要对应的RBAC权限,比如Microsoft.Portal/dashboards/read或Microsoft.Insights/workbooks/read权限。
内容的提问来源于stack exchange,提问作者rr14

