feat(telemetry): update telemetry job

This commit is contained in:
Anthony Lapenna
2020-05-05 08:41:56 +12:00
parent 080593324e
commit ff6445eb91
2 changed files with 37 additions and 14 deletions

View File

@@ -74,8 +74,10 @@ type (
}
EndpointTelemetryData struct {
Count int `json:"Count"`
Endpoints []EndpointEnvironmentTelemetryData `json:"Endpoints"`
Count int `json:"Count"`
DockerEndpointCount int `json:"DockerEndpointCount"`
KubernetesEndpointCount int `json:"KubernetesEndpointCount"`
Endpoints []EndpointEnvironmentTelemetryData `json:"Endpoints"`
// TODO: revamp
//TLSEndpointCount int `json:"TLSEndpointCount"`
@@ -351,6 +353,7 @@ func computeEndpointTelemetry(telemetryData *TelemetryData, dataStore portainer.
}
endpointsTelemetry := make([]EndpointEnvironmentTelemetryData, 0)
dockerEndpoints, kubernetesEndpoints := 0, 0
for _, endpoint := range endpoints {
endpointTelemetry := EndpointEnvironmentTelemetryData{}
@@ -360,24 +363,31 @@ func computeEndpointTelemetry(telemetryData *TelemetryData, dataStore portainer.
endpointTelemetry.Agent = false
endpointTelemetry.Edge = false
endpointTelemetry.Docker = computeEndpointEnvironmentDockerTelemetry(&endpoint)
dockerEndpoints++
case portainer.AgentOnDockerEnvironment:
endpointTelemetry.Environment = EndpointEnvironmentDocker
endpointTelemetry.Agent = true
endpointTelemetry.Edge = false
endpointTelemetry.Docker = computeEndpointEnvironmentDockerTelemetry(&endpoint)
dockerEndpoints++
case portainer.EdgeAgentEnvironment:
endpointTelemetry.Environment = EndpointEnvironmentDocker
endpointTelemetry.Agent = true
endpointTelemetry.Edge = true
endpointTelemetry.Docker = computeEndpointEnvironmentDockerTelemetry(&endpoint)
dockerEndpoints++
default:
kubernetesEndpoints++
}
endpointsTelemetry = append(endpointsTelemetry, endpointTelemetry)
}
telemetryData.Endpoint = EndpointTelemetryData{
Count: len(endpoints),
Endpoints: endpointsTelemetry,
Count: len(endpoints),
DockerEndpointCount: dockerEndpoints,
KubernetesEndpointCount: kubernetesEndpoints,
Endpoints: endpointsTelemetry,
}
return nil

View File

@@ -13,13 +13,13 @@ import (
)
// max number of instances
const instanceCount = 3000
const instanceCount = 1500
// min date for initial report
var minInitialReportDate = time.Date(2020, 1, 0, 0, 0, 0, 0, time.UTC).Unix()
var minInitialReportDate = time.Date(2020, 3, 0, 0, 0, 0, 0, time.UTC).Unix()
// max date for initial report
var maxInitialReportDate = time.Date(2020, 5, 0, 0, 0, 0, 0, time.UTC).Unix()
var maxInitialReportDate = time.Date(2020, 4, 0, 0, 0, 0, 0, time.UTC).Unix()
// edge compute
const edgeComputeMaxScheduleCount = 10
@@ -149,7 +149,7 @@ func TestGenerator(t *testing.T) {
instanceID := token.String()
reportsPerInstance := rand.Intn(12) + 1
reportsPerInstance := rand.Intn(30) + 1
log.Printf("Instance %s (#%d): generating %d reports", instanceID, i, reportsPerInstance)
reportDateTime := utilsRandDateTime(minInitialReportDate, maxInitialReportDate)
@@ -174,7 +174,7 @@ func TestGenerator(t *testing.T) {
t.Fatalf("an error occured: %s", err)
}
reportDateTime = reportDateTime.AddDate(0, 0, 7)
reportDateTime = reportDateTime.AddDate(0, 0, 1)
}
}
}
@@ -246,24 +246,36 @@ func randomEndpointTelemetryData() EndpointTelemetryData {
endpointCount := rand.Intn(endpointMaxCount)
endpoints := make([]EndpointEnvironmentTelemetryData, 0)
dockerEndpoints, KubernetesEndpoints := 0, 0
for i := 0; i < endpointCount; i++ {
endpointEnvTelemetry := randomEndpointEnvironmentTelemetryData()
endpointEnvTelemetry, dockerEnv := randomEndpointEnvironmentTelemetryData()
if dockerEnv {
dockerEndpoints++
} else {
KubernetesEndpoints++
}
endpoints = append(endpoints, endpointEnvTelemetry)
}
return EndpointTelemetryData{
Count: endpointCount,
Endpoints: endpoints,
Count: endpointCount,
Endpoints: endpoints,
DockerEndpointCount: dockerEndpoints,
KubernetesEndpointCount: KubernetesEndpoints,
}
}
func randomEndpointEnvironmentTelemetryData() EndpointEnvironmentTelemetryData {
func randomEndpointEnvironmentTelemetryData() (EndpointEnvironmentTelemetryData, bool) {
endpointEnvTelemetry := EndpointEnvironmentTelemetryData{
Environment: EndpointEnvironmentDocker,
Agent: utilsRandBool(),
Edge: false,
}
dockerEnvironment := true
if utilsRandBool() {
endpointEnvTelemetry.Environment = EndpointEnvironmentKubernetes
}
@@ -291,13 +303,14 @@ func randomEndpointEnvironmentTelemetryData() EndpointEnvironmentTelemetryData {
}
} else {
dockerEnvironment = false
endpointEnvTelemetry.Kubernetes = EndpointEnvironmentKubernetesTelemetryData{
Version: utilsRandChoice(kubernetesVersions),
Nodes: rand.Intn(kubernetesNodeMaxCount) + 1,
}
}
return endpointEnvTelemetry
return endpointEnvTelemetry, dockerEnvironment
}
func randomEndpointGroupTelemetryData() EndpointGroupTelemetryData {