Arrange json as the frontend expects it

This commit is contained in:
Peter Rabbitson 2020-09-26 21:29:11 +02:00
parent 8955b8d8a7
commit 10cdbadd82

View File

@ -43,8 +43,9 @@ func init() {
} }
type dealCountResp struct { type dealCountResp struct {
Total int64 `json:"total"`
Epoch int64 `json:"epoch"` Epoch int64 `json:"epoch"`
Endpoint string `json:"endpoint"`
Payload int64 `json:"payload"`
} }
func (dss *dealStatsServer) handleStorageDealCount(w http.ResponseWriter, r *http.Request) { func (dss *dealStatsServer) handleStorageDealCount(w http.ResponseWriter, r *http.Request) {
@ -56,7 +57,8 @@ func (dss *dealStatsServer) handleStorageDealCount(w http.ResponseWriter, r *htt
} }
if err := json.NewEncoder(w).Encode(&dealCountResp{ if err := json.NewEncoder(w).Encode(&dealCountResp{
Total: int64(len(deals)), Endpoint: "COUNT_DEALS",
Payload: int64(len(deals)),
Epoch: epoch, Epoch: epoch,
}); err != nil { }); err != nil {
log.Warnf("failed to write back deal count response: %s", err) log.Warnf("failed to write back deal count response: %s", err)
@ -65,8 +67,9 @@ func (dss *dealStatsServer) handleStorageDealCount(w http.ResponseWriter, r *htt
} }
type dealAverageResp struct { type dealAverageResp struct {
AverageSize int64 `json:"average_size"`
Epoch int64 `json:"epoch"` Epoch int64 `json:"epoch"`
Endpoint string `json:"endpoint"`
Payload int64 `json:"payload"`
} }
func (dss *dealStatsServer) handleStorageDealAverageSize(w http.ResponseWriter, r *http.Request) { func (dss *dealStatsServer) handleStorageDealAverageSize(w http.ResponseWriter, r *http.Request) {
@ -83,7 +86,8 @@ func (dss *dealStatsServer) handleStorageDealAverageSize(w http.ResponseWriter,
} }
if err := json.NewEncoder(w).Encode(&dealAverageResp{ if err := json.NewEncoder(w).Encode(&dealAverageResp{
AverageSize: totalBytes / int64(len(deals)), Endpoint: "AVERAGE_DEAL_SIZE",
Payload: totalBytes / int64(len(deals)),
Epoch: epoch, Epoch: epoch,
}); err != nil { }); err != nil {
log.Warnf("failed to write back deal average response: %s", err) log.Warnf("failed to write back deal average response: %s", err)
@ -92,8 +96,9 @@ func (dss *dealStatsServer) handleStorageDealAverageSize(w http.ResponseWriter,
} }
type dealTotalResp struct { type dealTotalResp struct {
TotalBytes int64 `json:"total_size"`
Epoch int64 `json:"epoch"` Epoch int64 `json:"epoch"`
Endpoint string `json:"endpoint"`
Payload int64 `json:"payload"`
} }
func (dss *dealStatsServer) handleStorageDealTotalReal(w http.ResponseWriter, r *http.Request) { func (dss *dealStatsServer) handleStorageDealTotalReal(w http.ResponseWriter, r *http.Request) {
@ -109,7 +114,8 @@ func (dss *dealStatsServer) handleStorageDealTotalReal(w http.ResponseWriter, r
} }
if err := json.NewEncoder(w).Encode(&dealTotalResp{ if err := json.NewEncoder(w).Encode(&dealTotalResp{
TotalBytes: totalBytes, Endpoint: "DEAL_BYTES",
Payload: totalBytes,
Epoch: epoch, Epoch: epoch,
}); err != nil { }); err != nil {
log.Warnf("failed to write back deal average response: %s", err) log.Warnf("failed to write back deal average response: %s", err)
@ -119,6 +125,12 @@ func (dss *dealStatsServer) handleStorageDealTotalReal(w http.ResponseWriter, r
} }
type clientStatsOutput struct { type clientStatsOutput struct {
Epoch int64 `json:"epoch"`
Endpoint string `json:"endpoint"`
Payload []*clientStats `json:"payload"`
}
type clientStats struct {
Client address.Address `json:"client"` Client address.Address `json:"client"`
DataSize int64 `json:"data_size"` DataSize int64 `json:"data_size"`
NumCids int `json:"num_cids"` NumCids int `json:"num_cids"`
@ -136,13 +148,13 @@ func (dss *dealStatsServer) handleStorageClientStats(w http.ResponseWriter, r *h
return return
} }
stats := make(map[address.Address]*clientStatsOutput) stats := make(map[address.Address]*clientStats)
for _, d := range deals { for _, d := range deals {
st, ok := stats[d.deal.Proposal.Client] st, ok := stats[d.deal.Proposal.Client]
if !ok { if !ok {
st = &clientStatsOutput{ st = &clientStats{
Client: d.resolvedWallet, Client: d.resolvedWallet,
cids: make(map[cid.Cid]bool), cids: make(map[cid.Cid]bool),
providers: make(map[address.Address]bool), providers: make(map[address.Address]bool),
@ -156,12 +168,15 @@ func (dss *dealStatsServer) handleStorageClientStats(w http.ResponseWriter, r *h
st.NumDeals++ st.NumDeals++
} }
out := make([]*clientStatsOutput, 0, len(stats)) out := clientStatsOutput{
for _, cso := range stats { Epoch: epoch,
cso.NumCids = len(cso.cids) Endpoint: "CLIENT_DEAL_STATS",
cso.NumMiners = len(cso.providers) Payload: make([]*clientStats, 0, len(stats)),
}
out = append(out, cso) for _, cs := range stats {
cs.NumCids = len(cs.cids)
cs.NumMiners = len(cs.providers)
out.Payload = append(out.Payload, cs)
} }
if err := json.NewEncoder(w).Encode(out); err != nil { if err := json.NewEncoder(w).Encode(out); err != nil {