Add environment id to periodical monitoring events.

This commit is contained in:
Maximilian Paß
2022-08-19 22:06:39 +02:00
parent 5590c50e14
commit 1eef26cc83
4 changed files with 16 additions and 6 deletions

View File

@ -37,8 +37,10 @@ func NewNomadEnvironment(apiClient nomad.ExecutorAPI, jobHCL string) (*NomadEnvi
return nil, fmt.Errorf("error parsing Nomad job: %w", err) return nil, fmt.Errorf("error parsing Nomad job: %w", err)
} }
return &NomadEnvironment{apiClient, jobHCL, job, storage.NewMonitoredLocalStorage[runner.Runner]( e := &NomadEnvironment{apiClient, jobHCL, job, nil}
monitoring.MeasurementIdleRunnerNomad, runner.MonitorRunnersEnvironmentID, time.Minute)}, nil e.idleRunners = storage.NewMonitoredLocalStorage[runner.Runner](monitoring.MeasurementIdleRunnerNomad,
runner.MonitorEnvironmentID[runner.Runner](e.ID()), time.Minute)
return e, nil
} }
func NewNomadEnvironmentFromRequest( func NewNomadEnvironmentFromRequest(

View File

@ -151,13 +151,14 @@ func (m *NomadEnvironmentManager) Load() error {
// newNomadEnvironmetFromJob creates a Nomad environment from the passed Nomad job definition. // newNomadEnvironmetFromJob creates a Nomad environment from the passed Nomad job definition.
func newNomadEnvironmetFromJob(job *nomadApi.Job, apiClient nomad.ExecutorAPI) *NomadEnvironment { func newNomadEnvironmetFromJob(job *nomadApi.Job, apiClient nomad.ExecutorAPI) *NomadEnvironment {
return &NomadEnvironment{ e := &NomadEnvironment{
apiClient: apiClient, apiClient: apiClient,
jobHCL: templateEnvironmentJobHCL, jobHCL: templateEnvironmentJobHCL,
job: job, job: job,
idleRunners: storage.NewMonitoredLocalStorage[runner.Runner](
monitoring.MeasurementIdleRunnerNomad, runner.MonitorRunnersEnvironmentID, time.Minute),
} }
e.idleRunners = storage.NewMonitoredLocalStorage[runner.Runner](monitoring.MeasurementIdleRunnerNomad,
runner.MonitorEnvironmentID[runner.Runner](e.ID()), time.Minute)
return e
} }
// loadTemplateEnvironmentJobHCL loads the template environment job HCL from the given path. // loadTemplateEnvironmentJobHCL loads the template environment job HCL from the given path.

View File

@ -106,7 +106,7 @@ func TestNewNomadEnvironmentManager(t *testing.T) {
}) })
t.Run("loads template environment job from file", func(t *testing.T) { t.Run("loads template environment job from file", func(t *testing.T) {
templateJobHCL := "job \"test\" {}" templateJobHCL := "job \"" + tests.DefaultTemplateJobID + "\" {}"
_, err := NewNomadEnvironment(nil, templateJobHCL) _, err := NewNomadEnvironment(nil, templateJobHCL)
require.NoError(t, err) require.NoError(t, err)
f := createTempFile(t, templateJobHCL) f := createTempFile(t, templateJobHCL)

View File

@ -31,6 +31,13 @@ func NewAbstractManager() *AbstractManager {
} }
} }
// MonitorEnvironmentID adds the passed environment id to the monitoring Point p.
func MonitorEnvironmentID[T any](id dto.EnvironmentID) storage.WriteCallback[T] {
return func(p *write.Point, _ T, _ storage.EventType) {
p.AddTag(monitoring.InfluxKeyEnvironmentID, id.ToString())
}
}
// MonitorRunnersEnvironmentID passes the id of the environment e into the monitoring Point p. // MonitorRunnersEnvironmentID passes the id of the environment e into the monitoring Point p.
func MonitorRunnersEnvironmentID(p *write.Point, e Runner, _ storage.EventType) { func MonitorRunnersEnvironmentID(p *write.Point, e Runner, _ storage.EventType) {
if e != nil { if e != nil {