timeline

package
v0.412.6 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2024 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Start

func Start(ctx context.Context, config Config) error

Types

type AsyncExecute

type AsyncExecute struct {
	DeploymentKey model.DeploymentKey
	RequestKey    optional.Option[string]
	EventType     AsyncExecuteEventType
	Verb          schema.Ref
	Time          time.Time
	Error         optional.Option[string]
}

func (AsyncExecute) ToEntry

type AsyncExecuteEventType

type AsyncExecuteEventType string
const (
	AsyncExecuteEventTypeUnkown AsyncExecuteEventType = "unknown"
	AsyncExecuteEventTypeCron   AsyncExecuteEventType = "cron"
	AsyncExecuteEventTypePubSub AsyncExecuteEventType = "pubsub"
)

type Call

type Call struct {
	DeploymentKey    model.DeploymentKey
	RequestKey       model.RequestKey
	ParentRequestKey optional.Option[model.RequestKey]
	StartTime        time.Time
	DestVerb         *schema.Ref
	Callers          []*schema.Ref
	Request          *ftlv1.CallRequest
	Response         result.Result[*ftlv1.CallResponse]
}

func (Call) ToEntry

type Client

type Client struct {
	timelinepbconnect.TimelineServiceClient
	// contains filtered or unexported fields
}

func NewClient

func NewClient(ctx context.Context, endpoint *url.URL) *Client

func (*Client) Publish

func (c *Client) Publish(ctx context.Context, event Event)

Publish asynchronously enqueues an event for publication to the timeline.

type Config

type Config struct {
	Bind              *url.URL       `help:"Socket to bind to." default:"http://127.0.0.1:8894" env:"FTL_BIND"`
	EventLogRetention *time.Duration `help:"Delete call logs after this time period. 0 to disable" env:"FTL_EVENT_LOG_RETENTION" default:"24h"`
}

func (*Config) SetDefaults

func (c *Config) SetDefaults()

type CronScheduled

type CronScheduled struct {
	DeploymentKey model.DeploymentKey
	Verb          schema.Ref
	Time          time.Time
	ScheduledAt   time.Time
	Schedule      string
	Error         optional.Option[string]
}

func (CronScheduled) ToEntry

type DeploymentCreated

type DeploymentCreated struct {
	DeploymentKey      model.DeploymentKey
	Time               time.Time
	Language           string
	ModuleName         string
	MinReplicas        int
	ReplacedDeployment optional.Option[model.DeploymentKey]
}

func (DeploymentCreated) ToEntry

type DeploymentUpdated

type DeploymentUpdated struct {
	DeploymentKey   model.DeploymentKey
	Time            time.Time
	MinReplicas     int
	PrevMinReplicas int
}

func (DeploymentUpdated) ToEntry

type Event

type Event interface {
	ToEntry() (*timelinepb.CreateEventsRequest_EventEntry, error)
	// contains filtered or unexported methods
}

type Ingress

type Ingress struct {
	DeploymentKey   model.DeploymentKey
	RequestKey      model.RequestKey
	StartTime       time.Time
	Verb            *schema.Ref
	RequestMethod   string
	RequestPath     string
	RequestHeaders  http.Header
	ResponseStatus  int
	ResponseHeaders http.Header
	RequestBody     []byte
	ResponseBody    []byte
	Error           optional.Option[string]
}

func (Ingress) ToEntry

type Log

type Log struct {
	DeploymentKey model.DeploymentKey
	RequestKey    optional.Option[model.RequestKey]
	Time          time.Time
	Level         int32
	Attributes    map[string]string
	Message       string
	Error         optional.Option[string]
}

func (Log) ToEntry

type Metrics

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

func (*Metrics) Dropped

func (m *Metrics) Dropped(ctx context.Context)

func (*Metrics) Failed

func (m *Metrics) Failed(ctx context.Context, count int)

func (*Metrics) Inserted

func (m *Metrics) Inserted(ctx context.Context, count int)

type PubSubConsume

type PubSubConsume struct {
	DeploymentKey model.DeploymentKey
	RequestKey    optional.Option[string]
	Time          time.Time
	DestVerb      optional.Option[schema.RefKey]
	Topic         string
	Partition     int
	Offset        int
	Error         optional.Option[string]
}

func (PubSubConsume) ToEntry

type PubSubPublish

type PubSubPublish struct {
	DeploymentKey model.DeploymentKey
	RequestKey    optional.Option[string]
	Time          time.Time
	SourceVerb    schema.Ref
	Topic         string
	Partition     int
	Offset        int
	Request       []byte
	Error         optional.Option[string]
}

func (PubSubPublish) ToEntry

type TimelineFilter

type TimelineFilter func(event *timelinepb.Event) bool

func FilterCall

FilterCall filters call events between the given modules.

Takes a list of filters, with each call event needing to match at least one filter.

func FilterIDRange

FilterIDRange filters events between the given IDs, inclusive.

func FilterTimeRange

FilterTimeRange filters events between the given times, inclusive.

Jump to

Keyboard shortcuts

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