2
0
Эх сурвалжийг харах

Added more custom cost properties for aggregation and filtering.

Signed-off-by: Nik Willwerth <nwillwerth@kubecost.com>
Nik Willwerth 2 жил өмнө
parent
commit
6c47dda98a

+ 8 - 0
pkg/customcost/matcher.go

@@ -36,8 +36,16 @@ func customCostFieldMap(cc *CustomCost, identifier ast.Identifier) (string, erro
 		return cc.AccountName, nil
 	case CustomCostChargeCategoryProp:
 		return cc.ChargeCategory, nil
+	case CustomCostDescriptionProp:
+		return cc.Description, nil
+	case CustomCostResourceNameProp:
+		return cc.ResourceName, nil
 	case CustomCostResourceTypeProp:
 		return cc.ResourceType, nil
+	case CustomCostProviderIdProp:
+		return cc.ProviderId, nil
+	case CustomCostUsageUnitProp:
+		return cc.UsageUnit, nil
 	case CustomCostDomainProp:
 		return cc.Domain, nil
 	}

+ 4 - 0
pkg/customcost/parser.go

@@ -8,7 +8,11 @@ var customCostFilterFields = []*ast.Field{
 	ast.NewField(CustomCostZoneProp),
 	ast.NewField(CustomCostAccountNameProp),
 	ast.NewField(CustomCostChargeCategoryProp),
+	ast.NewField(CustomCostDescriptionProp),
+	ast.NewField(CustomCostResourceNameProp),
 	ast.NewField(CustomCostResourceTypeProp),
+	ast.NewField(CustomCostProviderIdProp),
+	ast.NewField(CustomCostUsageUnitProp),
 	ast.NewField(CustomCostDomainProp),
 }
 

+ 12 - 0
pkg/customcost/props.go

@@ -11,7 +11,11 @@ const (
 	CustomCostZoneProp           CustomCostProperty = "zone"
 	CustomCostAccountNameProp                       = "accountName"
 	CustomCostChargeCategoryProp                    = "chargeCategory"
+	CustomCostDescriptionProp                       = "description"
+	CustomCostResourceNameProp                      = "resourceName"
 	CustomCostResourceTypeProp                      = "resourceType"
+	CustomCostProviderIdProp                        = "providerId"
+	CustomCostUsageUnitProp                         = "usageUnit"
 	CustomCostDomainProp                            = "domain"
 )
 
@@ -42,8 +46,16 @@ func ParseCustomCostProperty(text string) (CustomCostProperty, error) {
 		return CustomCostAccountNameProp, nil
 	case strings.TrimSpace(strings.ToLower(CustomCostChargeCategoryProp)):
 		return CustomCostChargeCategoryProp, nil
+	case strings.TrimSpace(strings.ToLower(CustomCostDescriptionProp)):
+		return CustomCostDescriptionProp, nil
+	case strings.TrimSpace(strings.ToLower(CustomCostResourceNameProp)):
+		return CustomCostResourceNameProp, nil
 	case strings.TrimSpace(strings.ToLower(CustomCostResourceTypeProp)):
 		return CustomCostResourceTypeProp, nil
+	case strings.TrimSpace(strings.ToLower(CustomCostProviderIdProp)):
+		return CustomCostProviderIdProp, nil
+	case strings.TrimSpace(strings.ToLower(CustomCostUsageUnitProp)):
+		return CustomCostUsageUnitProp, nil
 	case strings.TrimSpace(strings.ToLower(CustomCostDomainProp)):
 		return CustomCostDomainProp, nil
 	}

+ 8 - 0
pkg/customcost/types.go

@@ -207,8 +207,16 @@ func generateAggKey(cc *CustomCost, aggregateBy []CustomCostProperty) (string, e
 			aggKey = cc.AccountName
 		} else if agg == CustomCostChargeCategoryProp {
 			aggKey = cc.ChargeCategory
+		} else if agg == CustomCostDescriptionProp {
+			aggKey = cc.Description
+		} else if agg == CustomCostResourceNameProp {
+			aggKey = cc.ResourceName
 		} else if agg == CustomCostResourceTypeProp {
 			aggKey = cc.ResourceType
+		} else if agg == CustomCostProviderIdProp {
+			aggKey = cc.ProviderId
+		} else if agg == CustomCostUsageUnitProp {
+			aggKey = cc.UsageUnit
 		} else if agg == CustomCostDomainProp {
 			aggKey = cc.Domain
 		} else {