get openAI and mongo integration tests working (#55)
Signed-off-by: Alex Meijer <ameijer@kubecost.com>
This commit is contained in:
parent
5ebd41de6d
commit
b60c571ab9
|
|
@ -338,11 +338,11 @@ func postProcess(ccResp *pb.CustomCostResponse) {
|
|||
|
||||
ccResp.Costs = processLogUsage(ccResp.Costs)
|
||||
|
||||
// removes any items that have 0 usage, either because of post processing or otherwise
|
||||
ccResp.Costs = removeZeroUsages(ccResp.Costs)
|
||||
|
||||
// DBM queries have 200 * number of hosts included. We need to adjust the costs to reflect this
|
||||
ccResp.Costs = adjustDBMQueries(ccResp.Costs)
|
||||
|
||||
// removes any items that have 0 usage, either because of post processing or otherwise
|
||||
ccResp.Costs = removeZeroUsages(ccResp.Costs)
|
||||
}
|
||||
|
||||
// as per https://www.datadoghq.com/pricing/?product=database-monitoring#database-monitoring-can-i-still-use-dbm-if-i-have-additional-normalized-queries-past-the-a-hrefpricingallotmentsallotteda-amount
|
||||
|
|
@ -383,7 +383,7 @@ func adjustDBMQueries(costs []*pb.CustomCost) []*pb.CustomCost {
|
|||
return costs
|
||||
}
|
||||
|
||||
// removes any items that have 0 usage, either because of post processing or otherwise
|
||||
// removes any items that have 0 usage or cost, either because of post processing or otherwise
|
||||
func removeZeroUsages(costs []*pb.CustomCost) []*pb.CustomCost {
|
||||
for index := 0; index < len(costs); index++ {
|
||||
if costs[index].UsageQuantity < 0.001 {
|
||||
|
|
@ -392,6 +392,15 @@ func removeZeroUsages(costs []*pb.CustomCost) []*pb.CustomCost {
|
|||
index = 0
|
||||
}
|
||||
}
|
||||
|
||||
for index := 0; index < len(costs); index++ {
|
||||
if costs[index].ListCost == 0.0 && costs[index].BilledCost == 0.0 {
|
||||
log.Debugf("removing cost %s because it has 0 billed and list costs", costs[index].ProviderId)
|
||||
costs = append(costs[:index], costs[index+1:]...)
|
||||
index = 0
|
||||
}
|
||||
}
|
||||
|
||||
return costs
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,8 +77,8 @@ func validate(respDaily, respHourly []*pb.CustomCostResponse) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
if len(respHourly) == 0 {
|
||||
log.Errorf("no hourly response received from mongodb-atlas plugin")
|
||||
if len(respHourly) != 0 {
|
||||
log.Errorf("mongo plugin does not support hourly costs")
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ func (d *OpenAICostSource) getOpenAIBilling(start time.Time, end time.Time) (*op
|
|||
req, errReq = http.NewRequest("GET", openAIBillingURL, nil)
|
||||
if errReq != nil {
|
||||
log.Warnf("error creating billing export request: %v", errReq)
|
||||
log.Warnf("retrying request after 30s")
|
||||
log.Infof("retrying request after 30s")
|
||||
time.Sleep(30 * time.Second)
|
||||
continue
|
||||
}
|
||||
|
|
@ -246,7 +246,7 @@ func (d *OpenAICostSource) getOpenAIBilling(start time.Time, end time.Time) (*op
|
|||
|
||||
errReq = fmt.Errorf("received non-200 response for billing export request: %d", resp.StatusCode)
|
||||
log.Warnf("got non-200 response for billing export request: %d, body is: %s", resp.StatusCode, bodyString)
|
||||
log.Warnf("retrying request after 30s")
|
||||
log.Infof("retrying request after 30s")
|
||||
time.Sleep(30 * time.Second)
|
||||
continue
|
||||
} else {
|
||||
|
|
@ -304,7 +304,7 @@ func (d *OpenAICostSource) getOpenAITokenUsages(targetTime time.Time) (*openaipl
|
|||
resp, errReq = client.Do(req)
|
||||
if errReq != nil {
|
||||
log.Warnf("error doing token request: %v", errReq)
|
||||
log.Warnf("retrying request after 30s")
|
||||
log.Infof("retrying request after 30s")
|
||||
time.Sleep(30 * time.Second)
|
||||
continue
|
||||
}
|
||||
|
|
@ -320,7 +320,7 @@ func (d *OpenAICostSource) getOpenAITokenUsages(targetTime time.Time) (*openaipl
|
|||
bodyString = string(bodyBytes)
|
||||
}
|
||||
log.Warnf("got non-200 response for token usage request: %d, body is: %s", resp.StatusCode, bodyString)
|
||||
log.Warnf("retrying request after 30s")
|
||||
log.Infof("retrying request after 30s")
|
||||
time.Sleep(30 * time.Second)
|
||||
continue
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ func validate(respDaily, respHourly []*pb.CustomCostResponse) bool {
|
|||
if cost.GetBilledCost() == 0 {
|
||||
log.Debugf("got zero cost for %v", cost)
|
||||
}
|
||||
if cost.GetBilledCost() > 1 {
|
||||
if cost.GetBilledCost() > 2 {
|
||||
log.Errorf("daily cost returned by plugin openai for %v is greater than 1", cost)
|
||||
return false
|
||||
}
|
||||
|
|
@ -120,7 +120,6 @@ func validate(respDaily, respHourly []*pb.CustomCostResponse) bool {
|
|||
expectedCosts := []string{
|
||||
"GPT-4o mini",
|
||||
"GPT-4o",
|
||||
"Other models",
|
||||
}
|
||||
|
||||
for _, cost := range expectedCosts {
|
||||
|
|
|
|||
Loading…
Reference in New Issue