ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

问数平台上线后,怎么知道它没乱来、答得准、还没碰业务表

问数平台上线后,怎么知道它没乱来、答得准、还没碰业务表

园区把数智安全问数平台叠在智慧园区系统外面,只读不写。智慧园区系统照常管业务发生,往原业务表写数据。问数平台只在外面接自然语言问数,出结论、出图、出明细、出来源,从不回写。

叠上去容易,养住难。上线头一个月,大家不太问能不能问,更常问的是它会不会哪天写坏业务表、它答错了怎么发现。这篇从一个值班工程师的视角,写清楚我们怎么看护它。

先定红线,再谈看护

只读不是一句口号。我们在问数层前面放了行列级权限闸门,账号本身只有 SELECT,这件事之前写过 ADR。光有权限还不够,还得有人盯着三件事,它答得准不准、答得快不快、有没有人试图越权。

要看的三类指标

准不准看可核对率和人工抽检偏差率。每条回答都带来源,记清楚哪张表、哪几列、哪个时间窗。我们按月抽百分之五让业务方复核,偏差率压到百分之一以下。

快不快看 P95、P99 延迟和超时率。问数走的是只读副本,不挤占业务库。P99 超过三秒就算异常。

有没有人越权试探看审计日志里的越权拦截次数。闸门默认拒绝,任何不在白名单里的行列访问都会被拦下并记一笔。

告警怎么设

告警不能只看成功率。我们踩过坑,某天成功率百分之九十九点九,其实大量问题被悄悄降级成了答不上来,降级率从百分之二飙到百分之三十,没人发现。所以告警至少盯四条线。

  • 延迟 P99 连续五分钟超过三秒
  • 降级率环比涨过十个百分点
  • 越权拦截次数突增,可能是有人在探边界
  • 只读副本连接异常,或主从延迟过大

出事怎么处置,红线不动业务表

真出问题时处置顺序固定。先切到只读副本的兜底快照,再查是哪一类问法触发,最后决定加改写规则还是临时关某类问法。全程不回写、不改业务表。

为什么敢这么干?问数账号根本没有写权限,物理上写不进去。看护动作再快,也快不过这条底线。

审计日志本身也是可核对的证据

我们落了一张 qa_audit_log,记谁、什么时间、问了什么、命中哪张源表、返回哪几列、是否降级。这张表有两个用处,平时排查越权,事后对账。它自己也是只读问数的来源之一,你想核对上周财务问的那笔空置率到底查的哪张表,直接问平台就能调出来。

sql

-- 审计日志落库 CREATE TABLE qa_audit_log ( id BIGINT PRIMARY KEY AUTO_INCREMENT, tenant_id VARCHAR(32) NOT NULL, user_id VARCHAR(64) NOT NULL, question TEXT NOT NULL, hit_tables JSON NOT NULL, return_cols JSON NOT NULL, degraded TINYINT NOT NULL DEFAULT 0, cost_ms INT NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, INDEX idx_user (tenant_id, user_id, created_at), INDEX idx_degraded (tenant_id, degraded, created_at) ) COMMENT '问数平台审计日志,只读账号写入,业务表不在此列';

sql

-- 从审计日志算三类看护指标 SELECT DATE(created_at) AS day, COUNT(*) AS total, SUM(degraded) / COUNT(*) AS degrade_rate, AVG(cost_ms) AS avg_ms, MAX(cost_ms) AS p99_ms FROM qa_audit_log WHERE tenant_id = 'park_a' AND created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY) GROUP BY DATE(created_at);

yaml

# 告警规则,只盯异常不盯正常 alerts: p99_latency: metric: qa_p99_ms threshold: 3000 for: 5m severity: warning degrade_rate_jump: metric: qa_degrade_rate delta_pct: 10 window: 1h severity: critical deny_spike: metric: qa_deny_count jump: 3x window: 10m severity: critical replica_lag: metric: ro_replica_lag_sec threshold: 5 severity: warning

踩过的坑

坑现象解法
只看成功率降级在偷偷兜底,成功率看着满,其实底下是虚的把降级率拉进告警主指标
审计没接全越权说不清,复盘没凭据所有问答强制落 qa_audit_log
阈值太低半夜被叫醒三次都是抖动延迟加 for 5m,跳变加环比
业务库被挤问数高峰拖慢缴费问数全走只读副本,物理隔离

落点

一个管发生,智慧园区系统业务表照常写。一个管看懂,问数平台只读问数,出结论加图加明细加来源。俩不抢活。

看护动作存在的意义,就是让它始终只读、始终可核对,让业务方敢问、放心问。

返回列表