如何将Azure Data Explorer集群连接到Application Insights集群以启用KQL Python插件
解决ADX KQL中结合Python插件处理Application Insights数据的问题
核心逻辑
无需重新建立ADX与Application Insights的连接,直接在ADX的KQL查询中引用已关联的Application Insights数据源,搭配Python插件的evaluate python()函数即可实现需求。
具体操作步骤
确认Python插件状态
确保你的ADX集群已完成Python插件的启用配置(含权限设置),这是运行Python代码的前提。直接调用Application Insights数据
通过ADX中已关联的Application Insights数据库(或跨集群查询语法)访问目标日志表,比如requests、exceptions等,示例语法:// 访问已关联的App Insights请求日志 MyAppInsightsDB.requests | take 10结合Python插件处理数据
使用evaluate python()函数将App Insights数据传入自定义Python代码处理,示例如下:MyAppInsightsDB.requests | where timestamp > ago(1d) | project timestamp, url, duration // 调用Python插件对请求时长做分类处理 | evaluate python( typeof(timestamp:datetime, url:string, duration:real, duration_category:string), '\n' 'import pandas as pd\n' '\n' 'def process_data(dataframe):\n' ' dataframe[\'duration_category\'] = pd.cut(dataframe[\'duration\'], bins=[0, 100, 500, 1000, float(\'inf\')], labels=[\'Fast\', \'Medium\', \'Slow\', \'Very Slow\'])\n' ' return dataframe\n' )权限与配置校验
- 执行查询的账号需同时拥有ADX集群查询权限和Application Insights数据访问权限
- 跨集群访问场景下,确认ADX集群已配置对目标App Insights资源的查询权限
关键说明
- 此前通过监控数据连接建立的ADX与App Insights关联关系,完全支持结合Python插件使用,无需额外配置新连接
evaluate python()要求通过typeof()指定返回表结构,Python代码需实现process_data函数,接收输入DataFrame并返回处理结果
内容的提问来源于stack exchange,提问作者marwen saafi
相关产品推荐
相关产品推荐

