debugging test

This commit is contained in:
Samir Patel 2021-05-27 11:21:37 -05:00 committed by Samir Patel
parent 1e5df36fb7
commit 0b083da126
2 changed files with 42 additions and 18 deletions

40
api.go
View file

@ -954,33 +954,37 @@ func (api *API) Usage(ctx context.Context, remote bool) (map[string]NodeUsage, e
api.calculateUsage()
}
if !remote {
api.requestUsageOfNodes(ctx)
}
// if !remote {
// api.requestUsageOfNodes(ctx)
// }
api.server.logger.Infof("disk usage results last updated: %v", api.usageCache.lastUpdated.Format(time.RFC1123))
return api.usageCache.data, nil
}
// Makes a ui/usage request for each node in cluster to calculates its usage and adds it to the cache
func (api *API) requestUsageOfNodes(ctx context.Context) {
func (api *API) requestUsageOfNodes() {
nodes := api.cluster.Nodes()
for _, node := range nodes {
if node.ID == api.server.nodeID {
continue
}
fmt.Printf("Node URI: %v\n", node.URI)
fmt.Printf("Server ID: %v, Node ID: %v, Node URI: %v\n", api.server.nodeID, node.ID, node.URI)
// if node.URI.Scheme == "" || node.URI.Host == "" {
// continue
// }
nodeUsage, err := api.server.defaultClient.GetNodeUsage(ctx, &node.URI)
nodeUsage, err := api.server.defaultClient.GetNodeUsage(context.Background(), &node.URI)
if err != nil {
api.server.logger.Infof("couldn't collect disk usage from %s: %s", node.URI, err)
}
api.usageCache.muRead.Lock()
fmt.Println("NU: 2")
// api.usageCache.muRead.Lock()
fmt.Println("NU: 3")
api.usageCache.data[node.ID] = nodeUsage[node.ID]
api.usageCache.muRead.Unlock()
fmt.Println("NU: 4")
// api.usageCache.muRead.Unlock()
fmt.Println("NU: 5")
}
}
@ -989,9 +993,9 @@ func (api *API) calculateUsage() {
api.usageCache.muWrite.Lock()
defer api.usageCache.muWrite.Unlock()
api.usageCache.muRead.Lock()
// api.usageCache.muRead.Lock()
lastUpdated := api.usageCache.lastUpdated
api.usageCache.muRead.Unlock()
// api.usageCache.muRead.Unlock()
if time.Since(lastUpdated) > api.usageCache.refreshInterval {
fmt.Printf("RefreshRate, expired: time: %v, current time: %v \n", api.usageCache.lastUpdated, time.Now())
@ -1034,8 +1038,8 @@ func (api *API) calculateUsage() {
},
LastUpdated: time.Now(),
}
api.usageCache.muRead.Lock()
defer api.usageCache.muRead.Unlock()
// api.usageCache.muRead.Lock()
// defer api.usageCache.muRead.Unlock()
api.usageCache.data = make(map[string]NodeUsage)
api.usageCache.data[api.server.nodeID] = nodeUsage
}
@ -1048,11 +1052,17 @@ func (api *API) RefreshUsageCache(refresh time.Duration) {
refreshInterval: refresh,
}
for {
fmt.Println(1)
api.calculateUsage()
// api.requestUsageOfNodes()
api.usageCache.muRead.Lock()
fmt.Println(2)
api.requestUsageOfNodes()
fmt.Println(3)
// api.usageCache.muRead.Lock()
fmt.Println(4)
api.usageCache.lastUpdated = time.Now()
api.usageCache.muRead.Unlock()
fmt.Println(5)
// api.usageCache.muRead.Unlock()
fmt.Println(6)
time.Sleep(api.usageCache.refreshInterval)
}
}

View file

@ -509,16 +509,30 @@ func TestHandler_Endpoints(t *testing.T) {
fmt.Printf("%+v\n", w.Body)
t.Fatalf("unexpected status code: %d", w.Code)
}
t.Logf("Usage w body string: %+v\n", w.Body.String())
nodeUsages := make(map[string]pilosa.NodeUsage)
if err := json.Unmarshal(w.Body.Bytes(), &nodeUsages); err != nil {
t.Fatalf("unmarshal")
}
w2 := httptest.NewRecorder()
h.ServeHTTP(w2, test.MustNewHTTPRequest("GET", "/schema", nil))
if w2.Code != gohttp.StatusOK {
t.Fatalf("unexpected status code: %d", w2.Code)
}
schemaBody := w2.Body.String()
t.Fatalf("Schema: %+v\n", schemaBody)
if schemaBody != "{\"indexes\":[]}\n" {
t.Fatalf("unexpected empty schema: '%v'", schemaBody)
}
for _, nodeUsage := range nodeUsages {
numIndexes := len(nodeUsage.Disk.IndexUsage)
fmt.Printf("Node Usage: +%v\n", nodeUsage)
fmt.Printf("Disk Usage: +%v\n", nodeUsage.Disk)
fmt.Printf("Index Usage: +%v\n", nodeUsage.Disk.IndexUsage)
fmt.Printf("Node Usage: %+v\n", nodeUsage)
fmt.Printf("Disk Usage: %+v\n", nodeUsage.Disk)
for k, v := range nodeUsage.Disk.IndexUsage {
fmt.Printf("Index Usage: K: %+v V: %+v \n", k, v)
}
// if nodeUsage.Disk.TotalUse < 75000 || nodeUsage.Disk.TotalUse > 700000 {
if nodeUsage.Disk.TotalUse < 1 {
// Usage measurements are not consistent between machines, or