|
|
@@ -74,101 +74,101 @@ func (c *collectorMetricsQuerier) QueryLocalStorageActiveMinutes(start, end time
|
|
|
return queryCollector(c, start, end, metric.LocalStorageActiveMinutesID, source.DecodeLocalStorageActiveMinutesResult)
|
|
|
}
|
|
|
|
|
|
-func (c *collectorMetricsQuerier) QueryLocalStorageCost(start, end time.Time) *source.Future[source.LocalStorageCostResult] {
|
|
|
- queryResults := source.NewQueryResults("LocalStorageCost")
|
|
|
- collector := c.collectorProvider.GetStore(start, end)
|
|
|
- if collector != nil {
|
|
|
- minutesResults, err := collector.Query(metric.LocalStorageActiveMinutesID)
|
|
|
- if err != nil {
|
|
|
- queryResults.Error = err
|
|
|
- }
|
|
|
- minutesByNode := map[string]float64{}
|
|
|
- for _, result := range minutesResults {
|
|
|
- node := result.MetricLabels[source.NodeLabel]
|
|
|
- if node == "" || len(result.Values) == 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- nodeStart := result.Values[0].Timestamp
|
|
|
- nodeEnd := result.Values[len(result.Values)-1].Timestamp
|
|
|
- if nodeStart == nil || nodeEnd == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- minutesByNode[node] = nodeEnd.Sub(*nodeStart).Minutes()
|
|
|
-
|
|
|
- }
|
|
|
- bytesResults, err := collector.Query(metric.LocalStorageBytesID)
|
|
|
- if err != nil {
|
|
|
- queryResults.Error = err
|
|
|
- }
|
|
|
- for _, result := range bytesResults {
|
|
|
- instance := result.MetricLabels[source.InstanceLabel]
|
|
|
- if instance == "" || len(result.Values) == 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- mintues, ok := minutesByNode[instance]
|
|
|
- if !ok {
|
|
|
- continue
|
|
|
- }
|
|
|
- queryResult := result.ToQueryResult()
|
|
|
- bytes := queryResult.Values[0].Value
|
|
|
- GiBs := bytes / GiB
|
|
|
- hours := mintues / 60
|
|
|
- queryResult.Values[0].Value = GiBs * hours * LocalStorageCostPerGiBHr
|
|
|
- queryResults.Results = append(queryResults.Results, queryResult)
|
|
|
- }
|
|
|
- }
|
|
|
- ch := make(source.QueryResultsChan, 1)
|
|
|
- ch <- queryResults
|
|
|
- return source.NewFuture(source.DecodeLocalStorageCostResult, ch)
|
|
|
-}
|
|
|
-
|
|
|
-func (c *collectorMetricsQuerier) QueryLocalStorageUsedCost(start, end time.Time) *source.Future[source.LocalStorageUsedCostResult] {
|
|
|
- queryResults := source.NewQueryResults("LocalStorageUsedCost")
|
|
|
- collector := c.collectorProvider.GetStore(start, end)
|
|
|
- if collector != nil {
|
|
|
- minutesResults, err := collector.Query(metric.LocalStorageUsedActiveMinutesID)
|
|
|
- if err != nil {
|
|
|
- queryResults.Error = err
|
|
|
- }
|
|
|
- minutesByNode := map[string]float64{}
|
|
|
- for _, result := range minutesResults {
|
|
|
- node := result.MetricLabels[source.InstanceLabel]
|
|
|
- if node == "" || len(result.Values) == 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- nodeStart := result.Values[0].Timestamp
|
|
|
- nodeEnd := result.Values[len(result.Values)-1].Timestamp
|
|
|
- if nodeStart == nil || nodeEnd == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- minutesByNode[node] = nodeEnd.Sub(*nodeStart).Minutes()
|
|
|
-
|
|
|
- }
|
|
|
- bytesResults, err := collector.Query(metric.LocalStorageUsedAverageID)
|
|
|
- if err != nil {
|
|
|
- queryResults.Error = err
|
|
|
- }
|
|
|
- for _, result := range bytesResults {
|
|
|
- instance := result.MetricLabels[source.InstanceLabel]
|
|
|
- if instance == "" || len(result.Values) == 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- mintues, ok := minutesByNode[instance]
|
|
|
- if !ok {
|
|
|
- continue
|
|
|
- }
|
|
|
- queryResult := result.ToQueryResult()
|
|
|
- bytes := queryResult.Values[0].Value
|
|
|
- GiBs := bytes / GiB
|
|
|
- hours := mintues / 60
|
|
|
- queryResult.Values[0].Value = GiBs * hours * LocalStorageCostPerGiBHr
|
|
|
- queryResults.Results = append(queryResults.Results, queryResult)
|
|
|
- }
|
|
|
- }
|
|
|
- ch := make(source.QueryResultsChan, 1)
|
|
|
- ch <- queryResults
|
|
|
- return source.NewFuture(source.DecodeLocalStorageUsedCostResult, ch)
|
|
|
-}
|
|
|
+// func (c *collectorMetricsQuerier) QueryLocalStorageCost(start, end time.Time) *source.Future[source.LocalStorageCostResult] {
|
|
|
+// queryResults := source.NewQueryResults("LocalStorageCost")
|
|
|
+// collector := c.collectorProvider.GetStore(start, end)
|
|
|
+// if collector != nil {
|
|
|
+// minutesResults, err := collector.Query(metric.LocalStorageActiveMinutesID)
|
|
|
+// if err != nil {
|
|
|
+// queryResults.Error = err
|
|
|
+// }
|
|
|
+// minutesByNode := map[string]float64{}
|
|
|
+// for _, result := range minutesResults {
|
|
|
+// node := result.MetricLabels[source.NodeLabel]
|
|
|
+// if node == "" || len(result.Values) == 0 {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// nodeStart := result.Values[0].Timestamp
|
|
|
+// nodeEnd := result.Values[len(result.Values)-1].Timestamp
|
|
|
+// if nodeStart == nil || nodeEnd == nil {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// minutesByNode[node] = nodeEnd.Sub(*nodeStart).Minutes()
|
|
|
+
|
|
|
+// }
|
|
|
+// bytesResults, err := collector.Query(metric.LocalStorageBytesID)
|
|
|
+// if err != nil {
|
|
|
+// queryResults.Error = err
|
|
|
+// }
|
|
|
+// for _, result := range bytesResults {
|
|
|
+// instance := result.MetricLabels[source.InstanceLabel]
|
|
|
+// if instance == "" || len(result.Values) == 0 {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// mintues, ok := minutesByNode[instance]
|
|
|
+// if !ok {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// queryResult := result.ToQueryResult()
|
|
|
+// bytes := queryResult.Values[0].Value
|
|
|
+// GiBs := bytes / GiB
|
|
|
+// hours := mintues / 60
|
|
|
+// queryResult.Values[0].Value = GiBs * hours * LocalStorageCostPerGiBHr
|
|
|
+// queryResults.Results = append(queryResults.Results, queryResult)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// ch := make(source.QueryResultsChan, 1)
|
|
|
+// ch <- queryResults
|
|
|
+// return source.NewFuture(source.DecodeLocalStorageCostResult, ch)
|
|
|
+// }
|
|
|
+
|
|
|
+// func (c *collectorMetricsQuerier) QueryLocalStorageUsedCost(start, end time.Time) *source.Future[source.LocalStorageUsedCostResult] {
|
|
|
+// queryResults := source.NewQueryResults("LocalStorageUsedCost")
|
|
|
+// collector := c.collectorProvider.GetStore(start, end)
|
|
|
+// if collector != nil {
|
|
|
+// minutesResults, err := collector.Query(metric.LocalStorageUsedActiveMinutesID)
|
|
|
+// if err != nil {
|
|
|
+// queryResults.Error = err
|
|
|
+// }
|
|
|
+// minutesByNode := map[string]float64{}
|
|
|
+// for _, result := range minutesResults {
|
|
|
+// node := result.MetricLabels[source.InstanceLabel]
|
|
|
+// if node == "" || len(result.Values) == 0 {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// nodeStart := result.Values[0].Timestamp
|
|
|
+// nodeEnd := result.Values[len(result.Values)-1].Timestamp
|
|
|
+// if nodeStart == nil || nodeEnd == nil {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// minutesByNode[node] = nodeEnd.Sub(*nodeStart).Minutes()
|
|
|
+
|
|
|
+// }
|
|
|
+// bytesResults, err := collector.Query(metric.LocalStorageUsedAverageID)
|
|
|
+// if err != nil {
|
|
|
+// queryResults.Error = err
|
|
|
+// }
|
|
|
+// for _, result := range bytesResults {
|
|
|
+// instance := result.MetricLabels[source.InstanceLabel]
|
|
|
+// if instance == "" || len(result.Values) == 0 {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// mintues, ok := minutesByNode[instance]
|
|
|
+// if !ok {
|
|
|
+// continue
|
|
|
+// }
|
|
|
+// queryResult := result.ToQueryResult()
|
|
|
+// bytes := queryResult.Values[0].Value
|
|
|
+// GiBs := bytes / GiB
|
|
|
+// hours := mintues / 60
|
|
|
+// queryResult.Values[0].Value = GiBs * hours * LocalStorageCostPerGiBHr
|
|
|
+// queryResults.Results = append(queryResults.Results, queryResult)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// ch := make(source.QueryResultsChan, 1)
|
|
|
+// ch <- queryResults
|
|
|
+// return source.NewFuture(source.DecodeLocalStorageUsedCostResult, ch)
|
|
|
+// }
|
|
|
|
|
|
func (c *collectorMetricsQuerier) QueryLocalStorageUsedAvg(start, end time.Time) *source.Future[source.LocalStorageUsedAvgResult] {
|
|
|
return queryCollector(c, start, end, metric.LocalStorageUsedAverageID, source.DecodeLocalStorageUsedAvgResult)
|