events

package
v4.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2022 License: Apache-2.0 Imports: 15 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddLogOptionalFields

func AddLogOptionalFields(ctx context.Context, logOptFields LogOptionalFields) context.Context

AddLogOptionalFields adds given log optional fields to existing one in the given context if any

Existing fields are overwritten in case of collision

func FormatLog

func FormatLog(flat map[string]interface{}) string

FormatLog allows to format the flat map log representation in the following format :[Timestamp][Level][DeploymentID][WorkflowID]ExecutionIDTaskExecutionIDNodeIDInstanceIDInterfaceNameOperationName[TypeID]Content

func GetLogsEventsIndex

func GetLogsEventsIndex(deploymentID string) (uint64, error)

GetLogsEventsIndex returns the latest index of LogEntry events for a given deployment

func GetStatusEventsIndex

func GetStatusEventsIndex(deploymentID string) (uint64, error)

GetStatusEventsIndex returns the latest index of InstanceStatus events for a given deployment

func LogsEvents

func LogsEvents(ctx context.Context, deploymentID string, waitIndex uint64, timeout time.Duration) ([]json.RawMessage, uint64, error)

LogsEvents allows to return logs from Consul KV storage for all, or a given deployment

func NewContext

func NewContext(ctx context.Context, logOptFields LogOptionalFields) context.Context

NewContext returns a new Context that carries value logOptFields.

func PublishAndLogAlienTaskStatusChange

func PublishAndLogAlienTaskStatusChange(ctx context.Context, deploymentID, taskID, taskExecutionID string, wfStepInfo *WorkflowStepInfo, status string) (string, error)

PublishAndLogAlienTaskStatusChange publishes a status change for a task execution and log this change into the log API

PublishAndLogAlienTaskStatusChange returns the published event id

func PublishAndLogAttributeValueChange

func PublishAndLogAttributeValueChange(ctx context.Context, deploymentID, nodeName, instanceName, attributeName, value, status string) (string, error)

PublishAndLogAttributeValueChange publishes a value change for a given attribute instance of a given node and log this change into the log API

PublishAndLogAttributeValueChange returns the published event id

func PublishAndLogCustomCommandStatusChange

func PublishAndLogCustomCommandStatusChange(ctx context.Context, deploymentID, taskID, status string) (string, error)

PublishAndLogCustomCommandStatusChange publishes a status change for a custom command and log this change into the log API

PublishAndLogCustomCommandStatusChange returns the published event id

func PublishAndLogDeploymentStatusChange

func PublishAndLogDeploymentStatusChange(ctx context.Context, deploymentID, status string) (string, error)

PublishAndLogDeploymentStatusChange publishes a status change for a given deployment and log this change into the log API

PublishAndLogDeploymentStatusChange returns the published event id

func PublishAndLogInstanceStatusChange

func PublishAndLogInstanceStatusChange(ctx context.Context, deploymentID, nodeName, instance, status string) (string, error)

PublishAndLogInstanceStatusChange publishes a status change for a given instance of a given node and log this change into the log API

PublishAndLogInstanceStatusChange returns the published event id

func PublishAndLogMapAttributeValueChange

func PublishAndLogMapAttributeValueChange(ctx context.Context, deploymentID, nodeName, instanceName string, attributesValues map[string]string, status string) error

PublishAndLogMapAttributeValueChange publishes a map attribute/value change for a given attribute instance of a given node and log this change into the log API This function doesn't return any published event id

func PublishAndLogScalingStatusChange

func PublishAndLogScalingStatusChange(ctx context.Context, deploymentID, taskID, status string) (string, error)

PublishAndLogScalingStatusChange publishes a status change for a scaling task and log this change into the log API

PublishAndLogScalingStatusChange returns the published event id

func PublishAndLogWorkflowStatusChange

func PublishAndLogWorkflowStatusChange(ctx context.Context, deploymentID, taskID, workflowID, status string) (string, error)

PublishAndLogWorkflowStatusChange publishes a status change for a workflow task and log this change into the log API

PublishAndLogWorkflowStatusChange returns the published event id

func PublishAndLogWorkflowStepStatusChange

func PublishAndLogWorkflowStepStatusChange(ctx context.Context, deploymentID, taskID string, wfStepInfo *WorkflowStepInfo, status string) (string, error)

PublishAndLogWorkflowStepStatusChange publishes a status change for a workflow step execution and log this change into the log API

PublishAndLogWorkflowStepStatusChange returns the published event id

func PurgeDeploymentEvents

func PurgeDeploymentEvents(ctx context.Context, deploymentID string) error

PurgeDeploymentEvents deletes all events for a given deployment

func PurgeDeploymentLogs

func PurgeDeploymentLogs(ctx context.Context, deploymentID string) error

PurgeDeploymentLogs deletes all logs for a given deployment

func StatusEvents

func StatusEvents(ctx context.Context, deploymentID string, waitIndex uint64, timeout time.Duration) ([]json.RawMessage, uint64, error)

StatusEvents return a list of events (StatusUpdate instances) for all, or a given deployment

Types

type BufferedLogEntryWriter

type BufferedLogEntryWriter interface {
	io.Writer
	// contains filtered or unexported methods
}

A BufferedLogEntryWriter is a Writer that buffers writes and flushes its buffer as an event log on a regular basis (every 5s)

func NewBufferedLogEntryWriter

func NewBufferedLogEntryWriter() BufferedLogEntryWriter

NewBufferedLogEntryWriter returns a BufferedLogEntryWriter used to register log entry

type FieldType

type FieldType int

FieldType is allowed/expected additional info types

const (
	// WorkFlowID is the field type representing the workflow ID in log entry
	WorkFlowID FieldType = iota

	// ExecutionID is the field type representing the execution ID in log entry
	ExecutionID

	// NodeID is the field type representing the node ID in log entry
	NodeID

	// InstanceID is the field type representing the instance ID in log entry
	InstanceID

	// InterfaceName is the field type representing the interface ID in log entry
	InterfaceName

	// OperationName is the field type representing the operation ID in log entry
	OperationName

	// TypeID is the field type representing the type ID in log entry
	TypeID

	// TaskExecutionID is the field type representing the task execution ID in log entry
	TaskExecutionID
)

func (FieldType) String

func (ft FieldType) String() string

String allows to stringify the field type enumeration in JSON standard

type Info

type Info map[InfoType]interface{}

Info allows to provide custom/specific additional information for event

type InfoType

type InfoType int

InfoType represents Event status change information type

const (
	// EDeploymentID is event information related to deploymentIS
	EDeploymentID InfoType = iota
	// EStatus is event information related to status
	EStatus
	// ETimestamp is event timestamp
	ETimestamp
	// EType is type event information
	EType
	// EWorkflowID is event information related to workflow
	EWorkflowID
	// ETaskID is event information related to task
	ETaskID
	// ENodeID is event information related to node
	ENodeID
	// EInstanceID is event information related to instance
	EInstanceID
	// EOperationName is event information related to operation
	EOperationName
	// ETargetNodeID is event information related to target node
	ETargetNodeID
	// ETargetInstanceID is event information related to target instance
	ETargetInstanceID
	// ETaskExecutionID is event information related to task execution
	ETaskExecutionID
	// EWorkflowStepID is event information related to workflow step
	EWorkflowStepID
	// EAttributeName is event information related to attribute name
	EAttributeName
	// EAttributeValue is event information related to attribute value
	EAttributeValue
)

func (InfoType) String

func (i InfoType) String() string

type LogEntry

type LogEntry struct {
	// contains filtered or unexported fields
}

LogEntry is the log entry representation

func SimpleLogEntry

func SimpleLogEntry(ctx context.Context, level LogLevel, deploymentID string) *LogEntry

SimpleLogEntry allows to return a LogEntry instance with log level and deploymentID

func (LogEntry) Register

func (e LogEntry) Register(content []byte)

Register allows to register a log entry with byte array content

func (LogEntry) RegisterAsString

func (e LogEntry) RegisterAsString(content string)

RegisterAsString allows to register a log entry with string content

func (LogEntry) Registerf

func (e LogEntry) Registerf(format string, a ...interface{})

Registerf allows to register a log entry with formats according to a format specifier.

This is basically a convenient function around RegisterAsString(fmt.Sprintf()).

func (LogEntry) RunBufferedRegistration

func (e LogEntry) RunBufferedRegistration(buf BufferedLogEntryWriter, quit chan bool)

RunBufferedRegistration allows to run a registration with a buffered writer

type LogEntryDraft

type LogEntryDraft struct {
	// contains filtered or unexported fields
}

LogEntryDraft is a partial LogEntry with only optional fields. It has to be completed with level and deploymentID

func WithContextOptionalFields

func WithContextOptionalFields(ctx context.Context) *LogEntryDraft

WithContextOptionalFields allows to return a LogEntry instance with additional fields comming from the context

func (LogEntryDraft) NewLogEntry

func (e LogEntryDraft) NewLogEntry(level LogLevel, deploymentID string) *LogEntry

NewLogEntry allows to build a log entry from a draft

type LogLevel

type LogLevel int

LogLevel is an enumerated type for log levels

ENUM( INFO DEBUG WARN ERROR )

const (
	// LogLevelINFO is a LogLevel of type INFO
	LogLevelINFO LogLevel = iota
	// LogLevelDEBUG is a LogLevel of type DEBUG
	LogLevelDEBUG
	// LogLevelWARN is a LogLevel of type WARN
	LogLevelWARN
	// LogLevelERROR is a LogLevel of type ERROR
	LogLevelERROR
)

func ParseLogLevel

func ParseLogLevel(name string) (LogLevel, error)

ParseLogLevel attempts to convert a string to a LogLevel

func (LogLevel) String

func (x LogLevel) String() string

String implements the Stringer interface.

type LogOptionalFields

type LogOptionalFields map[FieldType]interface{}

LogOptionalFields are log's additional info

func FromContext

func FromContext(ctx context.Context) (LogOptionalFields, bool)

FromContext returns a copy of the LogOptionalFields value stored in ctx, if any.

type StatusChangeType

type StatusChangeType int

StatusChangeType is an enumerated type for statuses changes

ENUM( Instance Deployment CustomCommand Scaling Workflow WorkflowStep AlienTask AttributeValue )

const (
	// StatusChangeTypeInstance is a StatusChangeType of type Instance
	StatusChangeTypeInstance StatusChangeType = iota
	// StatusChangeTypeDeployment is a StatusChangeType of type Deployment
	StatusChangeTypeDeployment
	// StatusChangeTypeCustomCommand is a StatusChangeType of type CustomCommand
	StatusChangeTypeCustomCommand
	// StatusChangeTypeScaling is a StatusChangeType of type Scaling
	StatusChangeTypeScaling
	// StatusChangeTypeWorkflow is a StatusChangeType of type Workflow
	StatusChangeTypeWorkflow
	// StatusChangeTypeWorkflowStep is a StatusChangeType of type WorkflowStep
	StatusChangeTypeWorkflowStep
	// StatusChangeTypeAlienTask is a StatusChangeType of type AlienTask
	StatusChangeTypeAlienTask
	// StatusChangeTypeAttributeValue is a StatusChangeType of type AttributeValue
	StatusChangeTypeAttributeValue
)

func ParseStatusChangeType

func ParseStatusChangeType(name string) (StatusChangeType, error)

ParseStatusChangeType attempts to convert a string to a StatusChangeType

func (StatusChangeType) String

func (x StatusChangeType) String() string

String implements the Stringer interface.

type WorkflowStepInfo

type WorkflowStepInfo struct {
	WorkflowName     string `json:"workflow_name,omitempty"`
	InstanceName     string `json:"instance_name,omitempty"`
	NodeName         string `json:"node_name,omitempty"`
	StepName         string `json:"step_name,omitempty"`
	OperationName    string `json:"operation_name,omitempty"`
	TargetNodeID     string `json:"target_node_id,omitempty"`
	TargetInstanceID string `json:"target_instance_id,omitempty"`
}

WorkflowStepInfo represents specific workflow step event information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL