dbwatcher mcp
MCP(模型上下文协议)服务器 历史性能分析 由监控的Azure SQL数据库 数据库监视器.
数据库观察器从Azure SQL资源收集遥测数据,并将其存储在Kusto(ADX)集群中。此MCP服务器查询遥测数据,以帮助您分析过去的工作负载、识别性能瓶颈和排除问题——所有这些都是通过与Copilot的自然语言对话实现的。
支持的目标:目前支持 Azure SQL 数据库 仅遥测。Azure SQL托管实例支持计划在未来的版本中提供。
备注:这是一个只读的取证分析工具。它分析历史遥测数据——它不直接连接到SQL数据库或进行任何更改。
特性
- 等待统计分析 -识别瓶颈类别(CPU、IO、锁、并行性)
- 查询分析 -按CPU、读取、持续时间查找最消耗资源的查询
- 按查询等待细分 -了解等待处理的具体查询
- 阻塞检测 -查找等待其他会话持有的锁的会话
- 资源利用 -分析CPU、数据IO和日志IO随时间的变化趋势
- 性能计数器 -监控PLE、缓冲区缓存命中率、内存授权
- 磁盘I/O延迟 -分析数据和日志文件的读/写延迟
- 缺少索引 -获取索引建议以提高查询性能
- 参数嗅探检测 -识别执行时间差异较大的查询
- 诊断策略 -系统故障排除的内置方法指南
- 可视化图表 -为时间序列数据、分布和区块链生成Mermaid图表
先决条件
- .NET 10.0 SDK(用于从源代码构建)
- Azure命令行界面(
az login)或用于身份验证的VS Code Azure帐户扩展 - 使用数据库监视器遥测技术访问Kusto集群
在VS代码中使用
步骤1:配置MCP服务器
创建或编辑 .vscode/mcp.json 在您的工作空间中:
{
"servers": {
"dbwatcher": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/dbwatcher-mcp/src/DbWatcher.Mcp"
]
}
}
}步骤2:通过Azure身份验证
在使用服务器之前,请确保您已登录:
az login或者使用VS Code Azure帐户扩展并登录。
步骤3:启动诊断会话
在VS Code中打开Copilot Chat,然后开始:
- “连接到我的Kusto集群https://mycluster.eastus.kusto.windows.net,数据库“dbwatcher” -建立连接
- “列出受监视的数据库” -查看哪些SQL数据库具有遥测功能
小贴士:服务器暴露了一个 diagnostic-strategy 资源中推荐的诊断方法。当您询问故障排除方法时,Copilot可以自动阅读此内容。第四步:分析绩效
连接后,问以下问题:
- “分析我的数据库在过去24小时内的等待统计数据”
- “CPU使用率最高的10个查询是什么?”
- “显示昨天下午2点到4点之间的屏蔽事件”
- “是否有任何缺失的索引建议?”
- “检查参数嗅探问题”
服务器包括内置的阈值和解释,以帮助您理解结果。
工作流示例
You: Connect to https://mycluster.kusto.windows.net database telemetry-db
Copilot: Connected to Kusto cluster.
You: What databases are being monitored?
Copilot: [Lists databases with telemetry]
You: Analyze wait stats for production-db
Copilot: [Shows wait stats with interpretations - e.g., "PAGEIOLATCH_SH is 35%
of waits, indicating memory pressure or missing indexes"]
You: Find the top queries causing those IO waits
Copilot: [Shows top queries sorted by reads with recommendations]用图表可视化结果
MCP服务器返回结构化的JSON数据,可以使用 美人鱼图表。当您要求视觉表示时,Copilot可以自动生成这些图表。
示例提示:
- “显示过去一小时的CPU使用情况图表”
- “创建等待类型分布的饼图”
- “可视化阻断链”
Copilot将生成Mermaid标记,并可以将其写入 .md 文件。打开文件并预览(Cmd+Shift+V 在Mac上, Ctrl+Shift+V 在Windows上)查看渲染的图表。
支持的图表类型:
- 资源利用率随时间变化的折线图/条形图
- 等待类型分布的饼图
- 阻断链流程图
- 查询执行时间表的甘特图
从源头构建
# Clone the repository
git clone https://github.com/markgar/dbwatcher-mcp.git
cd dbwatcher-mcp/src/DbWatcher.Mcp
# Build
dotnet build
# Run directly (for testing)
dotnet run然后配置VS Code以使用构建的项目,如上面的“在VS Code中使用”所示。
______________________________________________________________________
发布到NuGet
# Create the NuGet package
dotnet pack -c Release
# Publish to NuGet.org
dotnet nuget push bin/Release/*.nupkg --api-key --source https://api.nuget.org/v3/index.json看 aka.ms/nuget/mcp/guide 完整的指南。
______________________________________________________________________
平台支持
MCP服务器被构建为一个自包含的应用程序。默认配置为:
win-x64,win-arm64osx-arm64linux-x64,linux-arm64,linux-musl-x64
