feat(platform): expose structured capacity metrics

This commit is contained in:
lingniu
2026-07-04 19:10:04 +08:00
parent 68b260c704
commit cbe7882d51
10 changed files with 297 additions and 42 deletions

View File

@@ -9,17 +9,24 @@ import (
)
type CapacityCheckResult struct {
Status string `json:"status"`
ActiveConnections int64 `json:"active_connections"`
KafkaLag float64 `json:"kafka_lag"`
Findings []string `json:"findings"`
Status string `json:"status"`
CapacityMetrics CapacityMetrics `json:"capacity_metrics"`
Findings []string `json:"findings"`
}
type capacityCheckReport struct {
Status string `json:"status"`
Totals struct {
ActiveConnections int64 `json:"active_connections"`
KafkaLag float64 `json:"kafka_lag"`
ActiveConnections int64 `json:"active_connections"`
KafkaLag float64 `json:"kafka_lag"`
BridgeConsumerPending float64 `json:"bridge_consumer_pending"`
BridgeAckPending float64 `json:"bridge_ack_pending"`
BridgeBatchPendingMessages float64 `json:"bridge_batch_pending_messages"`
FastWriterConsumerPending float64 `json:"fast_writer_consumer_pending"`
FastWriterAckPending float64 `json:"fast_writer_ack_pending"`
FastWriterBatchPending float64 `json:"fast_writer_batch_pending_messages"`
HistoryBatchPending float64 `json:"history_batch_pending_messages"`
HistoryRowsPending float64 `json:"history_rows_pending"`
} `json:"totals"`
Findings []string `json:"findings"`
}
@@ -45,9 +52,19 @@ func (c *CapacityCheckCommand) CheckCapacity(ctx context.Context) (CapacityCheck
return CapacityCheckResult{}, jsonErr
}
return CapacityCheckResult{
Status: report.Status,
ActiveConnections: report.Totals.ActiveConnections,
KafkaLag: report.Totals.KafkaLag,
Findings: report.Findings,
Status: report.Status,
CapacityMetrics: CapacityMetrics{
ActiveConnections: int(report.Totals.ActiveConnections),
KafkaLag: int(report.Totals.KafkaLag),
BridgeConsumerPending: int(report.Totals.BridgeConsumerPending),
BridgeAckPending: int(report.Totals.BridgeAckPending),
BridgeBatchPendingMessages: int(report.Totals.BridgeBatchPendingMessages),
FastWriterConsumerPending: int(report.Totals.FastWriterConsumerPending),
FastWriterAckPending: int(report.Totals.FastWriterAckPending),
FastWriterBatchPending: int(report.Totals.FastWriterBatchPending),
HistoryBatchPending: int(report.Totals.HistoryBatchPending),
HistoryRowsPending: int(report.Totals.HistoryRowsPending),
},
Findings: report.Findings,
}, nil
}