Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/sizing/helm.go

91 lines
1.9 KiB

package sizing
type Pod struct {
Replicas int `json:"replicas"`
Rate int `json:"rate"`
CPU struct {
Request float64 `json:"request"`
Limit float64 `json:"limit"`
} `json:"cpu"`
Memory struct {
Request int `json:"request"`
Limit int `json:"limit"`
} `json:"memory"`
}
type Loki struct {
AuthEnabled bool `json:"auth_enabled"`
}
type Read struct {
Replicas int `json:"replicas"`
Resources Resources `json:"resources"`
}
type Write struct {
Replicas int `json:"replicas"`
Resources Resources `json:"resources"`
}
type Resources struct {
Requests struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
} `json:"requests"`
Limits struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
} `json:"limits"`
}
type Values struct {
Loki Loki `json:"loki"`
Read Read `json:"read"`
Write Write `json:"write"`
}
func constructHelmValues(cluster ClusterSize, nodeType NodeType) Values {
return Values{
Loki: Loki{
AuthEnabled: false,
},
Read: Read{
Replicas: cluster.TotalReadReplicas,
Resources: Resources{
Requests: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.readPod.cpuRequest,
Memory: nodeType.readPod.memoryRequest,
},
Limits: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.readPod.cpuLimit,
Memory: nodeType.readPod.memoryLimit,
},
},
},
Write: Write{
Replicas: cluster.TotalWriteReplicas,
Resources: Resources{
Requests: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.writePod.cpuRequest,
Memory: nodeType.writePod.memoryRequest,
},
Limits: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.writePod.cpuLimit,
Memory: nodeType.writePod.memoryLimit,
},
},
},
}
}