Azure / Azure/data-api-builder

[Bug]: Bad connection string health check shows "threshold exceeded" instead of connection error

未关闭
#3,571 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
2.x health-endpoint
主要语言
C#
星标
1.5k
派生
370
平均合并
3 天 22 小时
30 天内合并 PR
9

描述

When the data source connection string points to a non-existent server, the health check reports `"The threshold for executing the request has exceeded."` instead of a connection error.

Operators monitoring health endpoints cannot determine the root cause of an Unhealthy status. A threshold exceeded vs. connection failure require very different remediation actions.

## Expected

The health check should report a connection-related exception, e.g.:
```json
{
"status": "Unhealthy",
"name": "primary-sql-db",
"exception": "A network-related or instance-specific error occurred while establishing a connection to SQL Server.",
"tags": ["data-source"]
}
```

## Actual

```json
{
"status": "Unhealthy",
"name": "primary-sql-db",
"exception": "The threshold for executing the request has exceeded.",
"tags": ["data-source"],
"data": {"response-ms": 137, "threshold-ms": 1500}
}
```

The actual connection failure gets swallowed and replaced with a generic threshold message. This makes it impossible to distinguish between "database is slow" and "database is unreachable" from the health response alone.

贡献指南

打开贡献指南

调研方向

首先定位数据源健康检查的入口点,以及将失败的 SQL 连接转换为阈值消息的处理逻辑。重现服务器不存在的情况,然后验证健康响应会保留与连接相关的异常,同时对于确实缓慢的请求,阈值数据仍然存在。

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp, sql
领域
databases, observability
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
冷清
描述清晰度
基本清楚
新手友好度
58/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。