Add aws environments to the statistics
but only with the field usedRunners.
This commit is contained in:
@@ -58,7 +58,17 @@ func (n *AbstractManager) DeleteEnvironment(id dto.EnvironmentID) {
|
||||
}
|
||||
|
||||
func (n *AbstractManager) EnvironmentStatistics() map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData {
|
||||
return map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData{}
|
||||
environments := make(map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData)
|
||||
for _, e := range n.environments.List() {
|
||||
environments[e.ID()] = &dto.StatisticalExecutionEnvironmentData{
|
||||
ID: int(e.ID()),
|
||||
PrewarmingPoolSize: e.PrewarmingPoolSize(),
|
||||
IdleRunners: uint(e.IdleRunnerCount()),
|
||||
UsedRunners: 0,
|
||||
}
|
||||
}
|
||||
|
||||
return environments
|
||||
}
|
||||
|
||||
func (n *AbstractManager) Claim(_ dto.EnvironmentID, _ int) (Runner, error) {
|
||||
|
@@ -45,3 +45,22 @@ func (a AWSRunnerManager) Return(r Runner) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EnvironmentStatistics returns only the used runner for each environment as the prewarming is handled
|
||||
// by AWS transparently.
|
||||
func (a AWSRunnerManager) EnvironmentStatistics() map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData {
|
||||
environments := a.AbstractManager.EnvironmentStatistics()
|
||||
|
||||
for _, r := range a.usedRunners.List() {
|
||||
workload, isAWSRunner := r.(*AWSFunctionWorkload)
|
||||
if !isAWSRunner {
|
||||
log.WithField("workload", workload).Error("Stored runners must be AWS runner")
|
||||
continue
|
||||
}
|
||||
|
||||
environmentID := workload.environment.ID()
|
||||
environments[environmentID].UsedRunners++
|
||||
}
|
||||
|
||||
return environments
|
||||
}
|
||||
|
@@ -35,15 +35,7 @@ func NewNomadRunnerManager(apiClient nomad.ExecutorAPI, ctx context.Context) *No
|
||||
}
|
||||
|
||||
func (m *NomadRunnerManager) EnvironmentStatistics() map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData {
|
||||
environments := make(map[dto.EnvironmentID]*dto.StatisticalExecutionEnvironmentData)
|
||||
for _, e := range m.environments.List() {
|
||||
environments[e.ID()] = &dto.StatisticalExecutionEnvironmentData{
|
||||
ID: int(e.ID()),
|
||||
PrewarmingPoolSize: e.PrewarmingPoolSize(),
|
||||
IdleRunners: uint(e.IdleRunnerCount()),
|
||||
UsedRunners: 0,
|
||||
}
|
||||
}
|
||||
environments := m.AbstractManager.EnvironmentStatistics()
|
||||
|
||||
for _, r := range m.usedRunners.List() {
|
||||
id, err := nomad.EnvironmentIDFromRunnerID(r.ID())
|
||||
|
Reference in New Issue
Block a user