44 lines
1.7 KiB
Go
44 lines
1.7 KiB
Go
package metering
|
|
|
|
type PriceInfo struct {
|
|
// currency unit, currently support CNY and USD
|
|
CpuPerCorePerHour float64 `json:"cpuPerCorePerHour" yaml:"cpuPerCorePerHour"`
|
|
// cpu cost with above currency unit for per core per hour
|
|
MemPerGigabytesPerHour float64 `json:"memPerGigabytesPerHour" yaml:"memPerGigabytesPerHour"`
|
|
// mem cost with above currency unit for per GB per hour
|
|
IngressNetworkTrafficPerMegabytesPerHour float64 `json:"ingressNetworkTrafficPerMegabytesPerHour" yaml:"ingressNetworkTrafficPerGiagabytesPerHour"`
|
|
// ingress network traffic cost with above currency unit for per MB per hour
|
|
EgressNetworkTrafficPerMegabytesPerHour float64 `json:"egressNetworkTrafficPerMegabytesPerHour" yaml:"egressNetworkTrafficPerGigabytesPerHour"`
|
|
// egress network traffice cost with above currency unit for per MB per hour
|
|
PvcPerGigabytesPerHour float64 `json:"pvcPerGigabytesPerHour" yaml:"pvcPerGigabytesPerHour"`
|
|
// pvc cost with above currency unit for per GB per hour
|
|
CurrencyUnit string `json:"currencyUnit" yaml:"currencyUnit"`
|
|
}
|
|
|
|
type Billing struct {
|
|
PriceInfo PriceInfo `json:"priceInfo" yaml:"priceInfo"`
|
|
}
|
|
|
|
type Options struct {
|
|
RetentionDay string `json:"retentionDay" yaml:"retentionDay"`
|
|
Billing Billing `json:"billing" yaml:"billing"`
|
|
}
|
|
|
|
var DefaultMeteringOption = Options{
|
|
RetentionDay: "7d",
|
|
Billing: Billing{
|
|
PriceInfo: PriceInfo{
|
|
CpuPerCorePerHour: 0,
|
|
MemPerGigabytesPerHour: 0,
|
|
IngressNetworkTrafficPerMegabytesPerHour: 0,
|
|
EgressNetworkTrafficPerMegabytesPerHour: 0,
|
|
PvcPerGigabytesPerHour: 0,
|
|
CurrencyUnit: "",
|
|
},
|
|
},
|
|
}
|
|
|
|
func NewMeteringOptions() *Options {
|
|
return &Options{}
|
|
}
|