CanaryAnalysisConfig.builder() .user(Optional.ofNullable(application).orElse("anonymous")) .application(Optional.ofNullable(application).orElse(AD_HOC))
.convertValue(parent.getContext().get(CANARY_ANALYSIS_CONFIG_CONTEXT_KEY), CanaryAnalysisConfig.class); CanaryAnalysisExecutionRequest canaryAnalysisExecutionRequest = canaryAnalysisConfig.getExecutionRequest(); .application(canaryAnalysisConfig.getApplication()) .user(canaryAnalysisConfig.getUser()) .parentPipelineExecutionId(canaryAnalysisConfig.getParentPipelineExecutionId()) .canaryConfigId(canaryAnalysisConfig.getCanaryConfigId()) .metricsAccountName(canaryAnalysisConfig.getMetricsAccountName()) .storageAccountName(canaryAnalysisConfig.getStorageAccountName()) .canaryConfig(canaryAnalysisConfig.getCanaryConfig()) .scopes(buildRequestScopes(canaryAnalysisExecutionRequest, i, analysisInterval)) .scoreThresholds(canaryAnalysisExecutionRequest.getThresholds())
.ifPresent(data -> { CanaryAnalysisConfig canaryAnalysisConfig = kayentaObjectMapper.convertValue(data, CanaryAnalysisConfig.class); responseBuilder.user(canaryAnalysisConfig.getUser()); responseBuilder.application(canaryAnalysisConfig.getApplication()); responseBuilder.canaryConfigId(canaryAnalysisConfig.getCanaryConfigId()); responseBuilder.canaryAnalysisExecutionRequest(canaryAnalysisConfig.getExecutionRequest()); responseBuilder.canaryConfig(canaryAnalysisConfig.getCanaryConfig()); }));
/** * Initiates the canary analysis execution Orca pipeline. * * @param canaryAnalysisConfig The configuration for the canary analysis execution. * @return Wrapper object around the execution id. */ public CanaryAnalysisExecutionResponse initiateCanaryAnalysisExecution(CanaryAnalysisConfig canaryAnalysisConfig) { String application = canaryAnalysisConfig.getApplication(); PipelineBuilder pipelineBuilder = new PipelineBuilder(application) .withName(CANARY_ANALYSIS_PIPELINE_NAME) .withPipelineConfigId(application + "-canary-analysis-referee-pipeline") .withStage( SetupAndExecuteCanariesStage.STAGE_TYPE, SetupAndExecuteCanariesStage.STAGE_DESCRIPTION, Maps.newHashMap(ImmutableMap.of( CANARY_ANALYSIS_CONFIG_CONTEXT_KEY, canaryAnalysisConfig ))); Execution pipeline = pipelineBuilder.withLimitConcurrent(false).build(); executionRepository.store(pipeline); try { executionLauncher.start(pipeline); } catch (Throwable t) { log.error("Failed to start pipeline", t); handleStartupFailure(pipeline, t); throw new RuntimeException("Failed to start the canary analysis pipeline execution"); } return CanaryAnalysisExecutionResponse.builder().canaryAnalysisExecutionId(pipeline.getId()).build(); }
.convertValue(stage.getContext().get(CANARY_ANALYSIS_CONFIG_CONTEXT_KEY), CanaryAnalysisConfig.class); CanaryAnalysisExecutionRequest canaryAnalysisExecutionRequest = canaryAnalysisConfig.getExecutionRequest();
.ifPresent(data -> { CanaryAnalysisConfig canaryAnalysisConfig = kayentaObjectMapper.convertValue(data, CanaryAnalysisConfig.class); responseBuilder.user(canaryAnalysisConfig.getUser()); responseBuilder.application(canaryAnalysisConfig.getApplication()); responseBuilder.canaryConfigId(canaryAnalysisConfig.getCanaryConfigId()); responseBuilder.canaryAnalysisExecutionRequest(canaryAnalysisConfig.getExecutionRequest()); responseBuilder.canaryConfig(canaryAnalysisConfig.getCanaryConfig()); }));
/** * Initiates the canary analysis execution Orca pipeline. * * @param canaryAnalysisConfig The configuration for the canary analysis execution. * @return Wrapper object around the execution id. */ public CanaryAnalysisExecutionResponse initiateCanaryAnalysisExecution(CanaryAnalysisConfig canaryAnalysisConfig) { String application = canaryAnalysisConfig.getApplication(); PipelineBuilder pipelineBuilder = new PipelineBuilder(application) .withName(CANARY_ANALYSIS_PIPELINE_NAME) .withPipelineConfigId(application + "-canary-analysis-referee-pipeline") .withStage( SetupAndExecuteCanariesStage.STAGE_TYPE, SetupAndExecuteCanariesStage.STAGE_DESCRIPTION, Maps.newHashMap(ImmutableMap.of( CANARY_ANALYSIS_CONFIG_CONTEXT_KEY, canaryAnalysisConfig ))); Execution pipeline = pipelineBuilder.withLimitConcurrent(false).build(); executionRepository.store(pipeline); try { executionLauncher.start(pipeline); } catch (Throwable t) { log.error("Failed to start pipeline", t); handleStartupFailure(pipeline, t); throw new RuntimeException("Failed to start the canary analysis pipeline execution"); } return CanaryAnalysisExecutionResponse.builder().canaryAnalysisExecutionId(pipeline.getId()).build(); }
.convertValue(stage.getContext().get(CANARY_ANALYSIS_CONFIG_CONTEXT_KEY), CanaryAnalysisConfig.class); CanaryAnalysisExecutionRequest canaryAnalysisExecutionRequest = canaryAnalysisConfig.getExecutionRequest();
.convertValue(parent.getContext().get(CANARY_ANALYSIS_CONFIG_CONTEXT_KEY), CanaryAnalysisConfig.class); CanaryAnalysisExecutionRequest canaryAnalysisExecutionRequest = canaryAnalysisConfig.getExecutionRequest(); .application(canaryAnalysisConfig.getApplication()) .user(canaryAnalysisConfig.getUser()) .parentPipelineExecutionId(canaryAnalysisConfig.getParentPipelineExecutionId()) .canaryConfigId(canaryAnalysisConfig.getCanaryConfigId()) .metricsAccountName(canaryAnalysisConfig.getMetricsAccountName()) .storageAccountName(canaryAnalysisConfig.getStorageAccountName()) .canaryConfig(canaryAnalysisConfig.getCanaryConfig()) .scopes(buildRequestScopes(canaryAnalysisExecutionRequest, i, analysisInterval)) .scoreThresholds(canaryAnalysisExecutionRequest.getThresholds())
CanaryAnalysisConfig.builder() .user(Optional.ofNullable(application).orElse("anonymous")) .application(Optional.ofNullable(application).orElse(AD_HOC))
CanaryAnalysisConfig.builder() .user(Optional.ofNullable(application).orElse("anonymous")) .application(Optional.ofNullable(application).orElse(AD_HOC))
CanaryAnalysisConfig.builder() .user(Optional.ofNullable(application).orElse("anonymous")) .application(Optional.ofNullable(application).orElse(AD_HOC))