Class AgentLaunchersAutoConfiguration
java.lang.Object
com.netflix.genie.web.spring.autoconfigure.agent.launchers.AgentLaunchersAutoConfiguration
@Configuration
@EnableConfigurationProperties({LocalAgentLauncherProperties.class,TitusAgentLauncherProperties.class})
@AutoConfigureAfter(org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration.class)
public class AgentLaunchersAutoConfiguration
extends Object
Auto configuration for beans responsible for launching Genie Agent instances.
- Since:
- 4.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlocalAgentLauncher(GenieWebHostInfo genieWebHostInfo, GenieWebRpcInfo genieWebRpcInfo, DataServices dataServices, LocalAgentLauncherProperties launcherProperties, ExecutorFactory executorFactory, com.netflix.genie.common.internal.tracing.brave.BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry) Provide aAgentLauncherimplementation which launches local agent processes if enabled via property.Provide anExecutorFactoryinstance if no other was defined.titusAgentLauncher(org.springframework.web.client.RestTemplate restTemplate, org.springframework.retry.support.RetryTemplate retryTemplate, TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter, com.netflix.genie.common.internal.util.GenieHostInfo genieHostInfo, TitusAgentLauncherProperties titusAgentLauncherProperties, com.netflix.genie.common.internal.tracing.brave.BraveTracingComponents tracingComponents, org.springframework.core.env.Environment environment, io.micrometer.core.instrument.MeterRegistry registry) Provide aTitusAgentLauncherImplimplementation which launches agent processes in a dedicated Titus container if enabled via property.org.springframework.retry.backoff.ExponentialBackOffPolicyProvides a default implementation ofBackOffPolicyif no other has been defined in the context.Provides a default implementation ofRetryPolicythat retries based on a set of HTTP status codes.org.springframework.retry.support.RetryTemplatetitusAPIRetryTemplate(org.springframework.retry.RetryPolicy retryPolicy, org.springframework.retry.backoff.BackOffPolicy backOffPolicy) Provides a default implementation ofRetryTemplatethat will be used to retry failed Titus api calls based on the retry policy and backoff policies defined in the application context.Provides a default implementation ofTitusAgentLauncherImpl.TitusJobRequestAdapterthat is a no-op if no other implementation has been provided elsewhere.org.springframework.web.client.RestTemplatetitusRestTemplate(org.springframework.boot.web.client.RestTemplateBuilder restTemplateBuilder) Provide aRestTemplateinstance used for calling the Titus REST API if no other instance is provided.
-
Constructor Details
-
AgentLaunchersAutoConfiguration
public AgentLaunchersAutoConfiguration()
-
-
Method Details
-
titusRestTemplate
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusRestTemplate") public org.springframework.web.client.RestTemplate titusRestTemplate(org.springframework.boot.web.client.RestTemplateBuilder restTemplateBuilder) Provide aRestTemplateinstance used for calling the Titus REST API if no other instance is provided.- Parameters:
restTemplateBuilder- The SpringRestTemplateBuilderinstance to use- Returns:
- The rest template to use
-
titusJobRequestAdapter
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(TitusJobRequestAdapter.class) public TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter()Provides a default implementation ofTitusAgentLauncherImpl.TitusJobRequestAdapterthat is a no-op if no other implementation has been provided elsewhere.- Returns:
- A no-op implementation
-
titusAPIRetryPolicy
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryPolicy", value=org.springframework.retry.RetryPolicy.class) public TitusAgentLauncherImpl.TitusAPIRetryPolicy titusAPIRetryPolicy()Provides a default implementation ofRetryPolicythat retries based on a set of HTTP status codes. Currently justHttpStatus.SERVICE_UNAVAILABLEandHttpStatus.REQUEST_TIMEOUT. Max retries set to 3.- Returns:
- A
TitusAgentLauncherImpl.TitusAPIRetryPolicyinstance with the default settings applied
-
titusAPIBackoffPolicy
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIBackoffPolicy", value=org.springframework.retry.backoff.BackOffPolicy.class) public org.springframework.retry.backoff.ExponentialBackOffPolicy titusAPIBackoffPolicy()Provides a default implementation ofBackOffPolicyif no other has been defined in the context.- Returns:
- A default
ExponentialBackOffPolicyinstance
-
titusAPIRetryTemplate
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryTemplate", value=org.springframework.retry.support.RetryTemplate.class) public org.springframework.retry.support.RetryTemplate titusAPIRetryTemplate(@Qualifier("titusAPIRetryPolicy") org.springframework.retry.RetryPolicy retryPolicy, @Qualifier("titusAPIBackoffPolicy") org.springframework.retry.backoff.BackOffPolicy backOffPolicy) Provides a default implementation ofRetryTemplatethat will be used to retry failed Titus api calls based on the retry policy and backoff policies defined in the application context.- Parameters:
retryPolicy- TheRetryPolicyto use for Titus API call failuresbackOffPolicy- TheBackOffPolicyto use for Titus API call failures- Returns:
- A
RetryTemplateinstance configured with the supplied retry and backoff policies
-
titusAgentLauncher
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") public TitusAgentLauncherImpl titusAgentLauncher(@Qualifier("titusRestTemplate") org.springframework.web.client.RestTemplate restTemplate, @Qualifier("titusAPIRetryTemplate") org.springframework.retry.support.RetryTemplate retryTemplate, TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter, com.netflix.genie.common.internal.util.GenieHostInfo genieHostInfo, TitusAgentLauncherProperties titusAgentLauncherProperties, com.netflix.genie.common.internal.tracing.brave.BraveTracingComponents tracingComponents, org.springframework.core.env.Environment environment, io.micrometer.core.instrument.MeterRegistry registry) Provide aTitusAgentLauncherImplimplementation which launches agent processes in a dedicated Titus container if enabled via property.- Parameters:
restTemplate- the rest templateretryTemplate- TheRetryTemplateinstance to use to retry failed Titus API callstitusJobRequestAdapter- TheTitusAgentLauncherImpl.TitusJobRequestAdapterimplementation to usegenieHostInfo- the metadata about the local server and hosttitusAgentLauncherProperties- the configuration propertiestracingComponents- TheBraveTracingComponentsinstance to useenvironment- The applicationEnvironmentused to pull dynamic properties after launchregistry- the metric registry- Returns:
- a
TitusAgentLauncherImpl
-
processExecutorFactory
@Bean @ConditionalOnMissingBean(ExecutorFactory.class) public ExecutorFactory processExecutorFactory()Provide anExecutorFactoryinstance if no other was defined.- Returns:
- Instance of
ExecutorFactory
-
localAgentLauncher
@Bean @ConditionalOnProperty(name="genie.agent.launcher.local.enabled", havingValue="true") public LocalAgentLauncherImpl localAgentLauncher(GenieWebHostInfo genieWebHostInfo, GenieWebRpcInfo genieWebRpcInfo, DataServices dataServices, LocalAgentLauncherProperties launcherProperties, ExecutorFactory executorFactory, com.netflix.genie.common.internal.tracing.brave.BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry) Provide aAgentLauncherimplementation which launches local agent processes if enabled via property.- Parameters:
genieWebHostInfo- TheGenieWebHostInfoof this instancegenieWebRpcInfo- TheGenieWebRpcInfoof this instancedataServices- TheDataServicesinstance to uselauncherProperties- The properties related to launching an agent locallyexecutorFactory- TheExecutorFactoryto use to launch agent processestracingComponents- TheBraveTracingComponentsinstance to useregistry- TheMeterRegistryto register metrics- Returns:
- A
LocalAgentLauncherImplinstance
-