public static TimeoutConfig createFromConfig(Config ttlSubConfig) { final Duration defaultTtl = Duration.parse(ttlSubConfig.getString(DEFAULT_TTL_KEY)); final ImmutableMap.Builder<RunState.State, Duration> map = ImmutableMap.builder(); for (RunState.State state : RunState.State.values()) { final String key = state.name().toLowerCase(); if (ttlSubConfig.hasPath(key)) { final Duration ttl = Duration.parse(ttlSubConfig.getString(key)); map.put(state, ttl); } } return new TimeoutConfig(map.build(), defaultTtl); }
@Override public void transitionInto(RunState state) { final String name = state.state().name().toLowerCase(); LOG.info("{}{} transition -> {} {}", prefix, state.workflowInstance(), name, stateInfo(state)); }
stats, DEPLOYING, SUBMITTED.name())); } catch (Exception e) { stats.recordPublishingError(DEPLOYING, SUBMITTED.name()); LOG.error("Failed to publish event for {} state", SUBMITTED.name(), e); stats, type, RUNNING.name())); } catch (Exception e) { stats.recordPublishingError(DEPLOYED, RUNNING.name()); LOG.error("Failed to publish event for {} state", RUNNING.name(), e);
final RunStateData runStateData = RunStateData.newBuilder() .workflowInstance(restoredState.workflowInstance()) .state(restoredState.state().name()) .stateData(restoredState.data()) .initialTimestamp(initialTime.get().toEpochMilli())
private RunStateData getRunStateData(Backfill backfill, Map<WorkflowInstance, RunState> activeWorkflowInstances, Instant instant) { final WorkflowInstance wfi = WorkflowInstance .create(backfill.workflowId(), toParameter(backfill.schedule(), instant)); if (activeWorkflowInstances.containsKey(wfi)) { final RunState state = activeWorkflowInstances.get(wfi); return RunStateData.newBuilder() .workflowInstance(state.workflowInstance()) .state(state.state().name()) .stateData(state.data()) .latestTimestamp(state.timestamp()) .build(); } return ReplayEvents.getBackfillRunStateData(wfi, storage, backfill.id()) .orElse(RunStateData.create(wfi, UNKNOWN, StateData.zero())); } }
@Override public void registerActiveStatesMetric(RunState.State state, String triggerName, Gauge<Long> activeStatesCount) { registry.register(ACTIVE_STATES_PER_RUNSTATE_PER_TRIGGER.tagged( "state", state.name(), "trigger", triggerName), activeStatesCount); }
private RunStateData runStateToRunStateData(RunState state) { return RunStateData.newBuilder() .workflowInstance(state.workflowInstance()) .state(state.state().name()) .stateData(state.data()) .latestTimestamp(state.timestamp()) .build(); }