public JobClusterActor()

in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobClusterActor.java [249:316]


    public JobClusterActor(
        final String name,
        final MantisJobStore jobStore,
        final MantisSchedulerFactory schedulerFactory,
        final LifecycleEventPublisher eventPublisher,
        final CostsCalculator costsCalculator,
        final int slaHeadroomForAcceptedJobs,
        JobClusterScalerRuleDataFactory jobClusterScalerRuleDataFactory) {
        this.name = name;
        this.jobStore = jobStore;
        this.mantisSchedulerFactory = schedulerFactory;
        this.eventPublisher = eventPublisher;
        this.slaHeadroomForAcceptedJobs = slaHeadroomForAcceptedJobs;
        this.jobClusterScalerRuleData = jobClusterScalerRuleDataFactory.create(name);

        this.jobManager = new JobManager(name, getContext(), mantisSchedulerFactory, eventPublisher, jobStore, costsCalculator);

        jobIdStartedSubject = BehaviorSubject.create();

        initializedBehavior =  buildInitializedBehavior();
        disabledBehavior = buildDisabledBehavior();

        MetricGroupId metricGroupId = getMetricGroupId(name);
        Metrics m = new Metrics.Builder()
            .id(metricGroupId)
            .addCounter("numJobSubmissions")
            .addCounter("numJobSubmissionFailures")
            .addCounter("numJobShutdowns")
            .addCounter("numJobActorCreationCounter")
            .addCounter("numJobsInitialized")
            .addCounter("numJobClustersInitialized")
            .addCounter("numJobClusterInitializeFailures")
            .addCounter("numJobClusterEnable")
            .addCounter("numJobClusterEnableErrors")
            .addCounter("numJobClusterDisable")
            .addCounter("numJobClusterDisableErrors")
            .addCounter("numJobClusterDelete")
            .addCounter("numJobClusterDeleteErrors")
            .addCounter("numJobClusterUpdate")
            .addCounter("numJobClusterUpdateErrors")
            .addCounter("numSLAEnforcementExecutions")
            .addGauge(new GaugeCallback(metricGroupId, "acceptedJobsGauge", () -> 1.0 * this.jobManager.acceptedJobsCount()))
            .addGauge(new GaugeCallback(metricGroupId, "activeJobsGauge", () -> 1.0 * this.jobManager.activeJobsCount()))
            .addGauge(new GaugeCallback(metricGroupId, "terminatingJobsGauge", () -> 1.0 * this.jobManager.terminatingJobsMap.size()))
            .addGauge(new GaugeCallback(metricGroupId, "actorToJobIdMappingsGauge", () -> 1.0 * this.jobManager.actorToJobIdMap.size()))
            .addGauge(new GaugeCallback(metricGroupId, "numJobsStuckInAccepted",
                () -> 1.0 * this.jobManager.getJobsStuckInAccepted(Instant.now().toEpochMilli(),
                    getExpireAcceptedDelayMs()).size()))
            .build();
        m = MetricsRegistry.getInstance().registerAndGet(m);
        this.metrics = m;
        this.numJobSubmissions = m.getCounter("numJobSubmissions");
        this.numJobActorCreationCounter = m.getCounter("numJobActorCreationCounter");
        this.numJobSubmissionFailures = m.getCounter("numJobSubmissionFailures");
        this.numJobShutdowns = m.getCounter("numJobShutdowns");
        this.numJobsInitialized = m.getCounter("numJobsInitialized");
        this.numJobClustersInitialized = m.getCounter("numJobClustersInitialized");
        this.numJobClusterInitializeFailures = m.getCounter("numJobClusterInitializeFailures");
        this.numJobClusterEnable = m.getCounter("numJobClusterEnable");
        this.numJobClusterDisable = m.getCounter("numJobClusterDisable");
        this.numJobClusterDelete = m.getCounter("numJobClusterDelete");
        this.numJobClusterUpdate = m.getCounter("numJobClusterUpdate");
        this.numJobClusterEnableErrors = m.getCounter("numJobClusterEnableErrors");
        this.numJobClusterDisableErrors = m.getCounter("numJobClusterDisableErrors");
        this.numJobClusterDeleteErrors = m.getCounter("numJobClusterDeleteErrors");
        this.numJobClusterUpdateErrors = m.getCounter("numJobClusterUpdateErrors");
        this.numSLAEnforcementExecutions = m.getCounter("numSLAEnforcementExecutions");
    }