feat(obs): 访问日志 SSOT 与 edge_health,去掉协议兼容层

Agent 仅上报 host_metrics/edge_health/access_logs;业务流量与 UV 由
Server 侧访问日志聚合。新增 of_node_edge_health 与 of_access_log_hourly,
删除 request_reports/openresty 吞吐路径;API 不再暴露 traffic_reports
与 openresty_rx|tx。心跳/离线默认阈值与回填迁移一并入库。
This commit is contained in:
ryan
2026-07-18 11:53:11 +08:00
parent 9a0974cce8
commit f0e234df1f
60 changed files with 1799 additions and 2164 deletions
@@ -14,34 +14,35 @@ import (
"github.com/stretchr/testify/require"
)
func TestInsertNodeObsOpenresty_EmptyNodeID(t *testing.T) {
err := InsertNodeObsOpenresty(context.Background(), analyticsmodel.NodeObsOpenresty{})
func TestInsertNodeEdgeHealth_EmptyNodeID(t *testing.T) {
err := InsertNodeEdgeHealth(context.Background(), analyticsmodel.NodeEdgeHealth{})
require.NoError(t, err)
}
func TestInsertNodeObsOpenresty_UsesModelBatchSQL(t *testing.T) {
func TestInsertNodeEdgeHealth_UsesEdgeHealthBatchSQL(t *testing.T) {
ctx := context.Background()
mockBatch := &mockBatch{}
mockConn := &mockConn{
batch: mockBatch,
batchQuery: analyticsmodel.NodeObsOpenresty{}.BatchInsertSQL(),
batchQuery: analyticsmodel.NodeEdgeHealth{}.BatchInsertSQL(),
}
db.SetChConnForTest(mockConn)
t.Cleanup(func() { db.SetChConnForTest(nil) })
capturedAt := time.Now().UTC()
err := InsertNodeObsOpenresty(ctx, analyticsmodel.NodeObsOpenresty{
NodeID: "node-a",
CapturedAt: capturedAt,
OpenrestyRxBytes: 100,
OpenrestyTxBytes: 200,
OpenrestyConnections: 3,
CreatedAt: capturedAt,
err := InsertNodeEdgeHealth(ctx, analyticsmodel.NodeEdgeHealth{
NodeID: "node-a",
CapturedAt: capturedAt,
Status: "",
Connections: 3,
CreatedAt: capturedAt,
})
require.NoError(t, err)
assert.True(t, mockConn.prepareCalled)
assert.Equal(t, analyticsmodel.NodeObsOpenresty{}.BatchInsertSQL(), mockConn.preparedQuery)
assert.Equal(t, analyticsmodel.NodeEdgeHealth{}.BatchInsertSQL(), mockConn.preparedQuery)
assert.True(t, mockBatch.sendCalled)
require.Len(t, mockBatch.rows, 1)
assert.Equal(t, "node-a", mockBatch.rows[0][1])
assert.Equal(t, "unknown", mockBatch.rows[0][3]) // status default
assert.Equal(t, int64(3), mockBatch.rows[0][4]) // connections
}