Back to

Package cli

Latest Go to latest

The highest tagged major version is .

Published: Oct 22, 2020 | License: MIT | Module:



const (
	// CheckResultHealthy indicates check successfully ran and detected no corruption
	CheckResultHealthy CheckResultStatus = "healthy"
	// CheckResultCorrupted indicates check successfully ran and detected corruption
	CheckResultCorrupted = "corrupted"
	// CheckResultFailed indicates check failed to run
	CheckResultFailed = "failed"

	// CheckTypeHistoryExists is the check type for history exists
	CheckTypeHistoryExists CheckType = "history_exists"
	// CheckTypeValidFirstEvent is the check type for valid first event
	CheckTypeValidFirstEvent = "valid_first_event"
	// CheckTypeOrphanExecution is the check type for orphan execution
	CheckTypeOrphanExecution = "orphan_execution"
const (
	FlagUsername                          = "username"
	FlagPassword                          = "password"
	FlagKeyspace                          = "keyspace"
	FlagAddress                           = "address"
	FlagAddressWithAlias                  = FlagAddress + ", ad"
	FlagHistoryAddress                    = "history_address"
	FlagDBAddress                         = "db_address"
	FlagDBPort                            = "db_port"
	FlagHistoryAddressWithAlias           = FlagHistoryAddress + ", had"
	FlagDomainID                          = "domain_id"
	FlagDomain                            = "domain"
	FlagDomainWithAlias                   = FlagDomain + ", do"
	FlagShardID                           = "shard_id"
	FlagShardIDWithAlias                  = FlagShardID + ", sid"
	FlagWorkflowID                        = "workflow_id"
	FlagWorkflowIDWithAlias               = FlagWorkflowID + ", wid, w"
	FlagRunID                             = "run_id"
	FlagTreeID                            = "tree_id"
	FlagBranchID                          = "branch_id"
	FlagNumberOfShards                    = "number_of_shards"
	FlagRunIDWithAlias                    = FlagRunID + ", rid, r"
	FlagTargetCluster                     = "target_cluster"
	FlagTargetClusterWithAlias            = FlagTargetCluster + ", tc"
	FlagSourceCluster                     = "source_cluster"
	FlagSourceClusterWithAlias            = FlagSourceCluster + ", sc"
	FlagMinEventID                        = "min_event_id"
	FlagMaxEventID                        = "max_event_id"
	FlagEndEventVersion                   = "end_event_version"
	FlagTaskList                          = "tasklist"
	FlagTaskListWithAlias                 = FlagTaskList + ", tl"
	FlagTaskListType                      = "tasklisttype"
	FlagTaskListTypeWithAlias             = FlagTaskListType + ", tlt"
	FlagWorkflowIDReusePolicy             = "workflowidreusepolicy"
	FlagWorkflowIDReusePolicyAlias        = FlagWorkflowIDReusePolicy + ", wrp"
	FlagCronSchedule                      = "cron"
	FlagWorkflowType                      = "workflow_type"
	FlagWorkflowTypeWithAlias             = FlagWorkflowType + ", wt"
	FlagWorkflowStatus                    = "status"
	FlagWorkflowStatusWithAlias           = FlagWorkflowStatus + ", s"
	FlagExecutionTimeout                  = "execution_timeout"
	FlagExecutionTimeoutWithAlias         = FlagExecutionTimeout + ", et"
	FlagDecisionTimeout                   = "decision_timeout"
	FlagDecisionTimeoutWithAlias          = FlagDecisionTimeout + ", dt"
	FlagContextTimeout                    = "context_timeout"
	FlagContextTimeoutWithAlias           = FlagContextTimeout + ", ct"
	FlagInput                             = "input"
	FlagInputWithAlias                    = FlagInput + ", i"
	FlagInputFile                         = "input_file"
	FlagInputFileWithAlias                = FlagInputFile + ", if"
	FlagExcludeFile                       = "exclude_file"
	FlagInputSeparator                    = "input_separator"
	FlagParallism                         = "input_parallism"
	FlagSkipCurrentOpen                   = "skip_current_open"
	FlagSkipBaseIsNotCurrent              = "skip_base_is_not_current"
	FlagDryRun                            = "dry_run"
	FlagNonDeterministicOnly              = "only_non_deterministic"
	FlagInputTopic                        = "input_topic"
	FlagInputTopicWithAlias               = FlagInputTopic + ", it"
	FlagHostFile                          = "host_file"
	FlagCluster                           = "cluster"
	FlagInputCluster                      = "input_cluster"
	FlagStartOffset                       = "start_offset"
	FlagTopic                             = "topic"
	FlagGroup                             = "group"
	FlagResult                            = "result"
	FlagIdentity                          = "identity"
	FlagDetail                            = "detail"
	FlagReason                            = "reason"
	FlagReasonWithAlias                   = FlagReason + ", re"
	FlagOpen                              = "open"
	FlagOpenWithAlias                     = FlagOpen + ", op"
	FlagMore                              = "more"
	FlagMoreWithAlias                     = FlagMore + ", m"
	FlagAll                               = "all"
	FlagAllWithAlias                      = FlagAll + ", a"
	FlagPageSize                          = "pagesize"
	FlagPageSizeWithAlias                 = FlagPageSize + ", ps"
	FlagEarliestTime                      = "earliest_time"
	FlagEarliestTimeWithAlias             = FlagEarliestTime + ", et"
	FlagLatestTime                        = "latest_time"
	FlagLatestTimeWithAlias               = FlagLatestTime + ", lt"
	FlagPrintEventVersion                 = "print_event_version"
	FlagPrintEventVersionWithAlias        = FlagPrintEventVersion + ", pev"
	FlagPrintFullyDetail                  = "print_full"
	FlagPrintFullyDetailWithAlias         = FlagPrintFullyDetail + ", pf"
	FlagPrintRawTime                      = "print_raw_time"
	FlagPrintRawTimeWithAlias             = FlagPrintRawTime + ", prt"
	FlagPrintRaw                          = "print_raw"
	FlagPrintRawWithAlias                 = FlagPrintRaw + ", praw"
	FlagPrintDateTime                     = "print_datetime"
	FlagPrintDateTimeWithAlias            = FlagPrintDateTime + ", pdt"
	FlagPrintMemo                         = "print_memo"
	FlagPrintMemoWithAlias                = FlagPrintMemo + ", pme"
	FlagPrintSearchAttr                   = "print_search_attr"
	FlagPrintSearchAttrWithAlias          = FlagPrintSearchAttr + ", psa"
	FlagPrintJSON                         = "print_json"
	FlagPrintJSONWithAlias                = FlagPrintJSON + ", pjson"
	FlagDescription                       = "description"
	FlagDescriptionWithAlias              = FlagDescription + ", desc"
	FlagOwnerEmail                        = "owner_email"
	FlagOwnerEmailWithAlias               = FlagOwnerEmail + ", oe"
	FlagRetentionDays                     = "retention"
	FlagRetentionDaysWithAlias            = FlagRetentionDays + ", rd"
	FlagHistoryArchivalStatus             = "history_archival_status"
	FlagHistoryArchivalStatusWithAlias    = FlagHistoryArchivalStatus + ", has"
	FlagHistoryArchivalURI                = "history_uri"
	FlagHistoryArchivalURIWithAlias       = FlagHistoryArchivalURI + ", huri"
	FlagVisibilityArchivalStatus          = "visibility_archival_status"
	FlagVisibilityArchivalStatusWithAlias = FlagVisibilityArchivalStatus + ", vas"
	FlagVisibilityArchivalURI             = "visibility_uri"
	FlagVisibilityArchivalURIWithAlias    = FlagVisibilityArchivalURI + ", vuri"
	FlagName                              = "name"
	FlagNameWithAlias                     = FlagName + ", n"
	FlagOutputFilename                    = "output_filename"
	FlagOutputFilenameWithAlias           = FlagOutputFilename + ", of"
	FlagOutputFormat                      = "output"
	FlagQueryType                         = "query_type"
	FlagQueryTypeWithAlias                = FlagQueryType + ", qt"
	FlagQueryRejectCondition              = "query_reject_condition"
	FlagQueryRejectConditionWithAlias     = FlagQueryRejectCondition + ", qrc"
	FlagQueryConsistencyLevel             = "query_consistency_level"
	FlagQueryConsistencyLevelWithAlias    = FlagQueryConsistencyLevel + ", qcl"
	FlagShowDetail                        = "show_detail"
	FlagShowDetailWithAlias               = FlagShowDetail + ", sd"
	FlagActiveClusterName                 = "active_cluster"
	FlagActiveClusterNameWithAlias        = FlagActiveClusterName + ", ac"
	FlagClusters                          = "clusters"
	FlagClustersWithAlias                 = FlagClusters + ", cl"
	FlagIsGlobalDomain                    = "global_domain"
	FlagIsGlobalDomainWithAlias           = FlagIsGlobalDomain + ", gd"
	FlagDomainData                        = "domain_data"
	FlagDomainDataWithAlias               = FlagDomainData + ", dmd"
	FlagEventID                           = "event_id"
	FlagEventIDWithAlias                  = FlagEventID + ", eid"
	FlagActivityID                        = "activity_id"
	FlagActivityIDWithAlias               = FlagActivityID + ", aid"
	FlagMaxFieldLength                    = "max_field_length"
	FlagMaxFieldLengthWithAlias           = FlagMaxFieldLength + ", maxl"
	FlagSecurityToken                     = "security_token"
	FlagSecurityTokenWithAlias            = FlagSecurityToken + ", st"
	FlagSkipErrorMode                     = "skip_errors"
	FlagTimerType                         = "timer_type"
	FlagSkipErrorModeWithAlias            = FlagSkipErrorMode + ", serr"
	FlagHeadersMode                       = "headers"
	FlagHeadersModeWithAlias              = FlagHeadersMode + ", he"
	FlagMessageType                       = "message_type"
	FlagMessageTypeWithAlias              = FlagMessageType + ", mt"
	FlagURL                               = "url"
	FlagMuttleyDestination                = "muttely_destination"
	FlagMuttleyDestinationWithAlias       = FlagMuttleyDestination + ", muttley"
	FlagIndex                             = "index"
	FlagBatchSize                         = "batch_size"
	FlagBatchSizeWithAlias                = FlagBatchSize + ", bs"
	FlagMemoKey                           = "memo_key"
	FlagMemo                              = "memo"
	FlagMemoFile                          = "memo_file"
	FlagSearchAttributesKey               = "search_attr_key"
	FlagSearchAttributesVal               = "search_attr_value"
	FlagSearchAttributesType              = "search_attr_type"
	FlagAddBadBinary                      = "add_bad_binary"
	FlagRemoveBadBinary                   = "remove_bad_binary"
	FlagResetType                         = "reset_type"
	FlagResetPointsOnly                   = "reset_points_only"
	FlagResetBadBinaryChecksum            = "reset_bad_binary_checksum"
	FlagListQuery                         = "query"
	FlagListQueryWithAlias                = FlagListQuery + ", q"
	FlagBatchType                         = "batch_type"
	FlagBatchTypeWithAlias                = FlagBatchType + ", bt"
	FlagSignalName                        = "signal_name"
	FlagSignalNameWithAlias               = FlagSignalName + ", sig"
	FlagTaskID                            = "task_id"
	FlagTaskType                          = "task_type"
	FlagTaskVisibilityTimestamp           = "task_timestamp"
	FlagQueueType                         = "queue_type"
	FlagStartingRPS                       = "starting_rps"
	FlagRPS                               = "rps"
	FlagRPSScaleUpSeconds                 = "rps_scale_up_seconds"
	FlagJobID                             = "job_id"
	FlagJobIDWithAlias                    = FlagJobID + ", jid"
	FlagYes                               = "yes"
	FlagServiceConfigDir                  = "service_config_dir"
	FlagServiceConfigDirWithAlias         = FlagServiceConfigDir + ", scd"
	FlagServiceEnv                        = "service_env"
	FlagServiceEnvWithAlias               = FlagServiceEnv + ", se"
	FlagServiceZone                       = "service_zone"
	FlagServiceZoneWithAlias              = FlagServiceZone + ", sz"
	FlagEnableTLS                         = "tls"
	FlagTLSCertPath                       = "tls_cert_path"
	FlagTLSKeyPath                        = "tls_key_path"
	FlagTLSCaPath                         = "tls_ca_path"
	FlagTLSEnableHostVerification         = "tls_enable_host_verification"
	FlagDLQType                           = "dlq_type"
	FlagDLQTypeWithAlias                  = FlagDLQType + ", dt"
	FlagMaxMessageCount                   = "max_message_count"
	FlagMaxMessageCountWithAlias          = FlagMaxMessageCount + ", mmc"
	FlagLastMessageID                     = "last_message_id"
	FlagLastMessageIDWithAlias            = FlagLastMessageID + ", lm"
	FlagConcurrency                       = "concurrency"
	FlagReportRate                        = "report_rate"
	FlagLowerShardBound                   = "lower_shard_bound"
	FlagUpperShardBound                   = "upper_shard_bound"
	FlagInputDirectory                    = "input_directory"
	FlagSkipHistoryChecks                 = "skip_history_checks"
	FlagFailoverType                      = "failover_type"
	FlagFailoverTypeWithAlias             = FlagFailoverType + ", ft"
	FlagFailoverTimeout                   = "failover_timeout_seconds"
	FlagFailoverTimeoutWithAlias          = FlagFailoverTimeout + ", fts"
	FlagFailoverWaitTime                  = "failover_wait_time_second"
	FlagFailoverWaitTimeWithAlias         = FlagFailoverWaitTime + ", fwts"
	FlagFailoverBatchSize                 = "failover_batch_size"
	FlagFailoverBatchSizeWithAlias        = FlagFailoverBatchSize + ", fbs"
	FlagFailoverDomains                   = "domains"
	FlagRetryInterval                     = "retry_interval"
	FlagRetryAttempts                     = "retry_attempts"
	FlagRetryExpiration                   = "retry_expiration"
	FlagRetryBackoff                      = "retry_backoff"
	FlagRetryMaxInterval                  = "retry_max_interval"
	FlagHeaderKey                         = "header_key"
	FlagHeaderValue                       = "header_value"
	FlagHeaderFile                        = "header_file"
	FlagStartDate                         = "start_date"
	FlagEndDate                           = "end_date"
	FlagDateFormat                        = "date_format"
	FlagShardMultiplier                   = "shard_multiplier"
	FlagBucketSize                        = "bucket_size"

Flags used to specify cli command line arguments

const (
	// Version is the controlled version string. It should be updated every time
	// before we release a new version.
	Version = "0.15.0"

func AdminAddSearchAttribute

func AdminAddSearchAttribute(c *cli.Context)

AdminAddSearchAttribute to whitelist search attribute

func AdminCatIndices

func AdminCatIndices(c *cli.Context)

AdminCatIndices cat indices for ES cluster

func AdminCloseShard

func AdminCloseShard(c *cli.Context)

AdminCloseShard closes shard by shard id

func AdminDBClean

func AdminDBClean(c *cli.Context)

AdminDBClean is the command to clean up executions

func AdminDBScan

func AdminDBScan(c *cli.Context)

AdminDBScan is used to scan over all executions in database and detect corruptions

func AdminDelete

func AdminDelete(c *cli.Context)

AdminDelete used to delete documents from ElasticSearch with input of list result

func AdminDeleteWorkflow

func AdminDeleteWorkflow(c *cli.Context)

AdminDeleteWorkflow delete a workflow execution for admin

func AdminDescribeCluster

func AdminDescribeCluster(c *cli.Context)

AdminDescribeCluster is used to dump information about the cluster

func AdminDescribeHistoryHost

func AdminDescribeHistoryHost(c *cli.Context)

AdminDescribeHistoryHost describes history host

func AdminDescribeQueue

func AdminDescribeQueue(c *cli.Context)

AdminDescribeQueue describes task processing queue states

func AdminDescribeShard

func AdminDescribeShard(c *cli.Context)

AdminDescribeShard describes shard by shard id

func AdminDescribeTaskList

func AdminDescribeTaskList(c *cli.Context)

AdminDescribeTaskList displays poller and status information of task list.

func AdminDescribeWorkflow

func AdminDescribeWorkflow(c *cli.Context)

AdminDescribeWorkflow describe a new workflow execution for admin

func AdminFailoverAbort

func AdminFailoverAbort(c *cli.Context)

AdminFailoverAbort abort a failover workflow

func AdminFailoverList

func AdminFailoverList(c *cli.Context)

AdminFailoverList list failover runs

func AdminFailoverPause

func AdminFailoverPause(c *cli.Context)

AdminFailoverPause pause failover workflow

func AdminFailoverQuery

func AdminFailoverQuery(c *cli.Context)

AdminFailoverQuery query a failover workflow

func AdminFailoverResume

func AdminFailoverResume(c *cli.Context)

AdminFailoverResume resume a paused failover workflow

func AdminFailoverRollback

func AdminFailoverRollback(c *cli.Context)

AdminFailoverRollback rollback a failover run

func AdminFailoverStart

func AdminFailoverStart(c *cli.Context)

AdminFailoverStart start failover workflow

func AdminGetDLQMessages

func AdminGetDLQMessages(c *cli.Context)

AdminGetDLQMessages gets DLQ metadata

func AdminGetDomainIDOrName

func AdminGetDomainIDOrName(c *cli.Context)

AdminGetDomainIDOrName map domain

func AdminGetShardID

func AdminGetShardID(c *cli.Context)

AdminGetShardID get shardID

func AdminIndex

func AdminIndex(c *cli.Context)

AdminIndex used to bulk insert message from kafka parse

func AdminKafkaParse

func AdminKafkaParse(c *cli.Context)

AdminKafkaParse parses the output of k8read and outputs replication tasks

func AdminMergeDLQMessages

func AdminMergeDLQMessages(c *cli.Context)

AdminMergeDLQMessages merges message from DLQ

func AdminPurgeDLQMessages

func AdminPurgeDLQMessages(c *cli.Context)

AdminPurgeDLQMessages deletes messages from DLQ

func AdminRefreshWorkflowTasks

func AdminRefreshWorkflowTasks(c *cli.Context)

AdminRefreshWorkflowTasks refreshes all the tasks of a workflow

func AdminRemoveTask

func AdminRemoveTask(c *cli.Context)

AdminRemoveTask describes history host

func AdminRereplicate

func AdminRereplicate(c *cli.Context)

AdminRereplicate parses will re-publish replication tasks to topic

func AdminResetQueue

func AdminResetQueue(c *cli.Context)

AdminResetQueue resets task processing queue states

func AdminShowWorkflow

func AdminShowWorkflow(c *cli.Context)

AdminShowWorkflow shows history

func AdminTimers

func AdminTimers(c *cli.Context)

AdminTimers is used to list scheduled timers.

func CancelWorkflow

func CancelWorkflow(c *cli.Context)

CancelWorkflow cancels a workflow execution

func ColorEvent

func ColorEvent(e *s.HistoryEvent) string

ColorEvent takes an event and return string with color Event with color mapping rules:

Failed - red
Timeout - yellow
Canceled - magenta
Completed - green
Started - blue
Others - default (white/black)

func CompleteActivity

func CompleteActivity(c *cli.Context)

CompleteActivity completes an activity

func CountWorkflow

func CountWorkflow(c *cli.Context)

CountWorkflow count number of workflows

func DescribeBatchJob

func DescribeBatchJob(c *cli.Context)

DescribeBatchJob describe the status of the batch job

func DescribeTaskList

func DescribeTaskList(c *cli.Context)

DescribeTaskList show pollers info of a given tasklist

func DescribeWorkflow

func DescribeWorkflow(c *cli.Context)

DescribeWorkflow show information about the specified workflow execution

func DescribeWorkflowWithID

func DescribeWorkflowWithID(c *cli.Context)

DescribeWorkflowWithID show information about the specified workflow execution

func ErrorAndExit

func ErrorAndExit(msg string, err error)

ErrorAndExit print easy to understand error msg first then error detail in a new line

func FailActivity

func FailActivity(c *cli.Context)

FailActivity fails an activity

func GenerateReport

func GenerateReport(c *cli.Context)

GenerateReport generate report for an aggregation query to ES

func GetHistory

func GetHistory(ctx context.Context, workflowClient client.Client, workflowID, runID string) (*s.History, error)

GetHistory helper method to iterate over all pages and return complete list of history events

func GetSearchAttributes

func GetSearchAttributes(c *cli.Context)

GetSearchAttributes get valid search attributes

func HistoryEventToString

func HistoryEventToString(e *s.HistoryEvent, printFully bool, maxFieldLength int) string

HistoryEventToString convert HistoryEvent to string

func ListAllWorkflow

func ListAllWorkflow(c *cli.Context)

ListAllWorkflow list all workflow executions based on filters

func ListArchivedWorkflow

func ListArchivedWorkflow(c *cli.Context)

ListArchivedWorkflow lists archived workflow executions based on filters

func ListBatchJobs

func ListBatchJobs(c *cli.Context)

ListBatchJobs list the started batch jobs

func ListTaskListPartitions

func ListTaskListPartitions(c *cli.Context)

ListTaskListPartitions gets all the tasklist partition and host information.

func ListWorkflow

func ListWorkflow(c *cli.Context)

ListWorkflow list workflow executions based on filters

func NewCliApp

func NewCliApp() *cli.App

NewCliApp instantiates a new instance of the CLI application.

func ObserveHistory

func ObserveHistory(c *cli.Context)

ObserveHistory show the process of running workflow

func ObserveHistoryWithID

func ObserveHistoryWithID(c *cli.Context)

ObserveHistoryWithID show the process of running workflow

func QueryWorkflow

func QueryWorkflow(c *cli.Context)

QueryWorkflow query workflow execution

func QueryWorkflowUsingStackTrace

func QueryWorkflowUsingStackTrace(c *cli.Context)

QueryWorkflowUsingStackTrace query workflow execution using __stack_trace as query type

func ResetInBatch

func ResetInBatch(c *cli.Context)

ResetInBatch resets workflow in batch

func ResetWorkflow

func ResetWorkflow(c *cli.Context)

ResetWorkflow reset workflow

func RunWorkflow

func RunWorkflow(c *cli.Context)

RunWorkflow starts a new workflow execution and print workflow progress and result

func ScanAllWorkflow

func ScanAllWorkflow(c *cli.Context)

ScanAllWorkflow list all workflow executions using Scan API. It should be faster than ListAllWorkflow, but result are not sorted.

func SetFactory

func SetFactory(factory ClientFactory)

SetFactory is used to set the ClientFactory global

func SetRequiredDomainDataKeys

func SetRequiredDomainDataKeys(keys []string)

SetRequiredDomainDataKeys will set requiredDomainDataKeys

func ShowHistory

func ShowHistory(c *cli.Context)

ShowHistory shows the history of given workflow execution based on workflowID and runID.

func ShowHistoryWithWID

func ShowHistoryWithWID(c *cli.Context)

ShowHistoryWithWID shows the history of given workflow with workflow_id

func SignalWorkflow

func SignalWorkflow(c *cli.Context)

SignalWorkflow signals a workflow execution

func StartBatchJob

func StartBatchJob(c *cli.Context)

StartBatchJob starts a batch job

func StartWorkflow

func StartWorkflow(c *cli.Context)

StartWorkflow starts a new workflow execution

func TerminateBatchJob

func TerminateBatchJob(c *cli.Context)

TerminateBatchJob stops abatch job

func TerminateWorkflow

func TerminateWorkflow(c *cli.Context)

TerminateWorkflow terminates a workflow execution

type AdminDBCheck

type AdminDBCheck interface {
	Check(*CheckRequest) *CheckResult
	ValidRequest(*CheckRequest) bool

AdminDBCheck is used to check database invariants

func NewFirstHistoryEventCheck

func NewFirstHistoryEventCheck(
	payloadSerializer persistence.PayloadSerializer,
) AdminDBCheck

NewFirstHistoryEventCheck constructs a firstHistoryEventCheck

func NewHistoryExistsCheck

func NewHistoryExistsCheck(
	dbRateLimiter *quotas.DynamicRateLimiter,
	historyStore persistence.HistoryStore,
	executionStore persistence.ExecutionStore,
) AdminDBCheck

NewHistoryExistsCheck constructs a historyExistsCheck

func NewOrphanExecutionCheck

func NewOrphanExecutionCheck(
	dbRateLimiter *quotas.DynamicRateLimiter,
	executionStore persistence.ExecutionStore,
	payloadSerializer persistence.PayloadSerializer,
) AdminDBCheck

NewOrphanExecutionCheck constructs an orphanExecutionCheck

type BufferedWriter

type BufferedWriter interface {

BufferedWriter is used to buffer entities and write them to a file

func NewBufferedWriter

func NewBufferedWriter(f *os.File) BufferedWriter

NewBufferedWriter constructs a new BufferedWriter

type CheckFailureStats

type CheckFailureStats struct {
	ExecutionCheckFailureCount int64
	PercentageCheckFailure     float64

CheckFailureStats breaks out stats regarding execution check failures

type CheckRequest

type CheckRequest struct {
	ShardID    int
	DomainID   string
	WorkflowID string
	RunID      string
	TreeID     string
	BranchID   string
	State      int
	// PrerequisiteCheckPayload is used to take in any payloads which this check needs
	// which were created by a check ran earlier
	PrerequisiteCheckPayload interface{}

CheckRequest is a request to check an execution

type CheckResult

type CheckResult struct {
	CheckType             CheckType
	CheckResultStatus     CheckResultStatus
	TotalDatabaseRequests int64
	// Payload can be used to return additional data which can be used by later checks
	Payload   interface{}
	ErrorInfo *ErrorInfo

CheckResult is the result of checking an execution

type CheckResultStatus

type CheckResultStatus string

CheckResultStatus is the result status of a check

type CheckType

type CheckType string

CheckType is the type of check

type CleanOutputDirectories

type CleanOutputDirectories struct {
	ShardCleanReportDirectoryPath    string
	SuccessfullyCleanedDirectoryPath string
	FailedCleanedDirectoryPath       string

CleanOutputDirectories are the directory paths for output of clean

type CleanProgressReport

type CleanProgressReport struct {
	NumberOfShardsFinished        int
	TotalExecutionsCount          int64
	SuccessfullyCleanedCount      int64
	FailedCleanedCount            int64
	FailedToConfirmCorruptedCount int64
	TotalDBRequests               int64
	DatabaseRPS                   float64
	NumberOfShardCleanFailures    int64
	ShardsPerHour                 float64
	ExecutionsPerHour             float64

CleanProgressReport represents the aggregate progress of the clean job. It is periodically printed to stdout TODO: move these reports into there own file like we did for scan

type ClientFactory

type ClientFactory interface {
	ClientFrontendClient(c *cli.Context) clientFrontend.Interface
	ServerFrontendClient(c *cli.Context) serverFrontend.Interface
	ServerAdminClient(c *cli.Context) serverAdmin.Interface

ClientFactory is used to construct rpc clients

func NewClientFactory

func NewClientFactory() ClientFactory

NewClientFactory creates a new ClientFactory

type ClustersConfig

type ClustersConfig struct {
	Clusters map[string]messaging.ClusterConfig
	TLS      auth.TLS

ClustersConfig describes the kafka clusters

type CorruptionStats

type CorruptionStats struct {
	CorruptedExecutionsCount int64
	PercentageCorrupted      float64
	CorruptionTypeBreakdown  CorruptionTypeBreakdown
	OpenCorruptions          OpenCorruptions

CorruptionStats breaks out stats regarding corrupted executions

type CorruptionTypeBreakdown

type CorruptionTypeBreakdown struct {
	TotalHistoryMissing                            int64
	TotalInvalidFirstEvent                         int64
	TotalOpenExecutionInvalidCurrentExecution      int64
	PercentageHistoryMissing                       float64
	PercentageInvalidStartEvent                    float64
	PercentageOpenExecutionInvalidCurrentExecution float64

CorruptionTypeBreakdown breaks down counts and percentages of corruption types

type ErrorInfo

type ErrorInfo struct {
	Note    string
	Details string

ErrorInfo contains information about any errors that occurred

type ExecutionStats

type ExecutionStats struct {
	TotalExecutionsCount int64
	CorruptionStats      CorruptionStats
	CheckFailureStats    CheckFailureStats

ExecutionStats breaks down execution level stats

type ExecutionToRecord

type ExecutionToRecord struct {
	ShardID           int
	DomainID          string
	WorkflowID        string
	RunID             string
	TreeID            string
	BranchID          string
	CloseStatus       int
	State             int
	CheckType         CheckType
	CheckResultStatus CheckResultStatus
	ErrorInfo         *ErrorInfo

ExecutionToRecord is an execution which needs to be recorded

type Histogram

type Histogram struct {
	// contains filtered or unexported fields

Histogram holds the occurrence count for each key

func NewHistogram

func NewHistogram() *Histogram

NewHistogram creates a new Histogram

func (*Histogram) Add

func (h *Histogram) Add(key string)

Add will increment occurrence count of the key

func (*Histogram) Len

func (h *Histogram) Len() int

func (*Histogram) Less

func (h *Histogram) Less(i, j int) bool

func (*Histogram) Print

func (h *Histogram) Print(multiplier int) error

Print will output histogram with key and counter information.

func (*Histogram) Swap

func (h *Histogram) Swap(i, j int)

type JSONHistorySerializer

type JSONHistorySerializer struct{}

JSONHistorySerializer is used to encode history event in JSON

func (*JSONHistorySerializer) Deserialize

func (j *JSONHistorySerializer) Deserialize(data []byte) (*s.History, error)

Deserialize deserializes history

func (*JSONHistorySerializer) Serialize

func (j *JSONHistorySerializer) Serialize(h *s.History) ([]byte, error)

Serialize serializes history.

type Loader

type Loader interface {
	Load() []*persistence.TimerTaskInfo

Loader loads timer task information

func NewCassLoader

func NewCassLoader(c *cli.Context) Loader

NewCassLoader creates a new Loader to load timer task information from cassandra

func NewFileLoader

func NewFileLoader(c *cli.Context) Loader

NewFileLoader creates a new Loader to load timer task information from file

type OpenCorruptions

type OpenCorruptions struct {
	TotalOpen      int64
	PercentageOpen float64

OpenCorruptions breaks down the count and percentage of open workflows which are corrupted

type Printer

type Printer interface {
	Print(timers []*persistence.TimerTaskInfo) error

Printer prints timer task information

func NewHistogramPrinter

func NewHistogramPrinter(c *cli.Context, timeFormat string) Printer

NewHistogramPrinter creates a new Printer to display timer task information in a histogram

func NewJSONPrinter

func NewJSONPrinter(c *cli.Context) Printer

NewJSONPrinter creates a new Printer to display timer task information in a JSON format

type ProgressReport

type ProgressReport struct {
	ShardStats     ShardStats
	ExecutionStats ExecutionStats
	Rates          Rates

ProgressReport contains metadata about the scan for all shards which have been finished This is periodically printed to stdout

type Rates

type Rates struct {
	TimeRunning       string
	DatabaseRPS       float64
	TotalDBRequests   int64
	ShardsPerHour     float64
	ExecutionsPerHour float64

Rates indicates the rates at which the scan is progressing

type Reporter

type Reporter struct {
	// contains filtered or unexported fields

Reporter wraps Loader, Printer and a filter on time task type and domainID

func NewReporter

func NewReporter(domain string, timerTypes []int, loader Loader, printer Printer) *Reporter

NewReporter creates a new Reporter

func (*Reporter) Report

func (r *Reporter) Report() error

Report loads, filters and prints timer tasks

type ScanOutputDirectories

type ScanOutputDirectories struct {
	ShardScanReportDirectoryPath       string
	ExecutionCheckFailureDirectoryPath string
	CorruptedExecutionDirectoryPath    string

ScanOutputDirectories are the directory paths for output of scan

type ShardCleanOutputFiles

type ShardCleanOutputFiles struct {
	ShardCleanReportFile    *os.File
	SuccessfullyCleanedFile *os.File
	FailedCleanedFile       *os.File

ShardCleanOutputFiles are the files produced for a clean of a single shard

type ShardCleanReport

type ShardCleanReport struct {
	ShardID         int
	TotalDBRequests int64
	Handled         *ShardCleanReportHandled
	Failure         *ShardCleanReportFailure

ShardCleanReport represents the result of cleaning a single shard

type ShardCleanReportFailure

type ShardCleanReportFailure struct {
	Note    string
	Details string

ShardCleanReportFailure is the part of ShardCleanReport that indicates a failure to clean some or all of the executions found in corruption file

type ShardCleanReportHandled

type ShardCleanReportHandled struct {
	TotalExecutionsCount          int64
	SuccessfullyCleanedCount      int64
	FailedCleanedCount            int64
	FailedToConfirmCorruptedCount int64

ShardCleanReportHandled is the part of ShardCleanReport of executions which were read from corruption file and were attempted to be deleted

type ShardScanOutputFiles

type ShardScanOutputFiles struct {
	ShardScanReportFile       *os.File
	ExecutionCheckFailureFile *os.File
	CorruptedExecutionFile    *os.File

ShardScanOutputFiles are the files produced for a scan of a single shard

type ShardScanReport

type ShardScanReport struct {
	ShardID         int
	TotalDBRequests int64
	Scanned         *ShardScanReportExecutionsScanned
	Failure         *ShardScanReportFailure

ShardScanReport is the type that gets written to ShardScanReportFile

type ShardScanReportExecutionsScanned

type ShardScanReportExecutionsScanned struct {
	TotalExecutionsCount       int64
	CorruptedExecutionsCount   int64
	ExecutionCheckFailureCount int64
	CorruptionTypeBreakdown    CorruptionTypeBreakdown
	OpenCorruptions            OpenCorruptions

ShardScanReportExecutionsScanned is the part of the ShardScanReport of executions which were scanned

type ShardScanReportFailure

type ShardScanReportFailure struct {
	Note    string
	Details string

ShardScanReportFailure is the part of the ShardScanReport that indicates failure to scan all or part of the shard

type ShardStats

type ShardStats struct {
	NumberOfShardsFinished    int
	NumberOfShardScanFailures int
	ShardsFailed              []int
	MinExecutions             *int64
	MaxExecutions             *int64
	AverageExecutions         int64

ShardStats breaks out shard level stats

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier