mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 05:03:09 +00:00
Merge pull request #44440 from gmarek/kubemark-etcd-resources
Automatic merge from submit-queue (batch tested with PRs 44440, 44038, 44302, 44316, 43876) Make resource gatherer get data about etcd resource usage in kubemark… … setup
This commit is contained in:
commit
7ef8ad044f
@ -28,15 +28,24 @@ type KubemarkResourceUsage struct {
|
|||||||
CPUUsageInCores float64
|
CPUUsageInCores float64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getMasterUsageByPrefix(prefix string) (string, error) {
|
||||||
|
sshResult, err := SSH(fmt.Sprintf("ps ax -o %%cpu,rss,command | tail -n +2 | grep %v | sed 's/\\s+/ /g'", prefix), GetMasterHost()+":22", TestContext.Provider)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return sshResult.Stdout, nil
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: figure out how to move this to kubemark directory (need to factor test SSH out of e2e framework)
|
// TODO: figure out how to move this to kubemark directory (need to factor test SSH out of e2e framework)
|
||||||
func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsage {
|
func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsage {
|
||||||
result := make(map[string]*KubemarkResourceUsage)
|
result := make(map[string]*KubemarkResourceUsage)
|
||||||
sshResult, err := SSH("ps ax -o %cpu,rss,command | tail -n +2 | grep kube | sed 's/\\s+/ /g'", GetMasterHost()+":22", TestContext.Provider)
|
// Get kuberenetes component resource usage
|
||||||
|
sshResult, err := getMasterUsageByPrefix("kube")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Logf("Error when trying to SSH to master machine. Skipping probe")
|
Logf("Error when trying to SSH to master machine. Skipping probe")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
scanner := bufio.NewScanner(strings.NewReader(sshResult.Stdout))
|
scanner := bufio.NewScanner(strings.NewReader(sshResult))
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
var cpu float64
|
var cpu float64
|
||||||
var mem uint64
|
var mem uint64
|
||||||
@ -48,5 +57,28 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag
|
|||||||
result[fullName] = &KubemarkResourceUsage{Name: fullName, MemoryWorkingSetInBytes: mem * 1024, CPUUsageInCores: cpu / 100}
|
result[fullName] = &KubemarkResourceUsage{Name: fullName, MemoryWorkingSetInBytes: mem * 1024, CPUUsageInCores: cpu / 100}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Get etcd resource usage
|
||||||
|
sshResult, err = getMasterUsageByPrefix("bin/etcd")
|
||||||
|
if err != nil {
|
||||||
|
Logf("Error when trying to SSH to master machine. Skipping probe")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
scanner = bufio.NewScanner(strings.NewReader(sshResult))
|
||||||
|
for scanner.Scan() {
|
||||||
|
var cpu float64
|
||||||
|
var mem uint64
|
||||||
|
var etcdKind string
|
||||||
|
fmt.Sscanf(strings.TrimSpace(scanner.Text()), "%f %d /bin/sh -c /usr/local/bin/etcd", &cpu, &mem)
|
||||||
|
dataDirStart := strings.Index(scanner.Text(), "--data-dir")
|
||||||
|
if dataDirStart < 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
fmt.Sscanf(scanner.Text()[dataDirStart:], "--data-dir=/var/%s", &etcdKind)
|
||||||
|
if etcdKind != "" {
|
||||||
|
// Gatherer expects pod_name/container_name format
|
||||||
|
fullName := "etcd/" + etcdKind
|
||||||
|
result[fullName] = &KubemarkResourceUsage{Name: fullName, MemoryWorkingSetInBytes: mem * 1024, CPUUsageInCores: cpu / 100}
|
||||||
|
}
|
||||||
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user