feat(telemetry): update telemetry job
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user