Documentation
¶
Overview ¶
Package ecsutil provides a common task metadata definition and client for ECS environments
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
Client defines the basic HTTP client interface with GET response validation and content parsing
type ClientProvider ¶
ClientProvider defines
func NewClientProvider ¶
func NewClientProvider(baseURL url.URL, clientSettings confighttp.ClientConfig, host component.Host, settings component.TelemetrySettings) ClientProvider
NewClientProvider creates the default rest client provider
type ContainerMetadata ¶
type ContainerMetadata struct {
ContainerARN string `json:"ContainerARN,omitempty"`
ContainerName string `json:"Name,omitempty"`
CreatedAt string `json:"CreatedAt,omitempty"`
DockerID string `json:"DockerId,omitempty"`
DockerName string `json:"DockerName,omitempty"`
ExitCode *int64 `json:"ExitCode,omitempty"`
FinishedAt string `json:"FinishedAt,omitempty"`
Image string `json:"Image,omitempty"`
ImageID string `json:"ImageID,omitempty"`
KnownStatus string `json:"KnownStatus,omitempty"`
Labels map[string]string `json:"Labels,omitempty"`
Limits Limits `json:"Limits,omitempty"`
LogDriver string `json:"LogDriver,omitempty"`
LogOptions LogOptions `json:"LogOptions,omitempty"`
Networks []Network `json:"Networks,omitempty"`
StartedAt string `json:"StartedAt,omitempty"`
Type string `json:"Type,omitempty"`
}
ContainerMetadata defines container metadata for a container
type LogOptions ¶
type LogOptions struct {
LogGroup string `json:"awslogs-group,omitempty"`
Region string `json:"awslogs-region,omitempty"`
Stream string `json:"awslogs-stream,omitempty"`
}
LogOptions defines the CloudWatch configuration
type MetadataProvider ¶
type MetadataProvider interface {
FetchTaskMetadata() (*TaskMetadata, error)
FetchContainerMetadata() (*ContainerMetadata, error)
}
func NewDetectedTaskMetadataProvider ¶
func NewDetectedTaskMetadataProvider(set component.TelemetrySettings) (MetadataProvider, error)
func NewTaskMetadataProvider ¶
func NewTaskMetadataProvider(client RestClient, logger *zap.Logger) MetadataProvider
type RestClient ¶
RestClient is swappable for testing.
func NewRestClient ¶
func NewRestClient(baseEndpoint url.URL, clientSettings confighttp.ClientConfig, settings component.TelemetrySettings) (RestClient, error)
type TaskMetadata ¶
type TaskMetadata struct {
AvailabilityZone string `json:"AvailabilityZone,omitempty"`
Cluster string `json:"Cluster,omitempty"`
Containers []ContainerMetadata `json:"Containers,omitempty"`
Family string `json:"Family,omitempty"`
KnownStatus string `json:"KnownStatus,omitempty"`
LaunchType string `json:"LaunchType,omitempty"`
Limits Limits `json:"Limits,omitempty"`
PullStartedAt string `json:"PullStartedAt,omitempty"`
PullStoppedAt string `json:"PullStoppedAt,omitempty"`
Revision string `json:"Revision,omitempty"`
ServiceName string `json:"ServiceName,omitempty"`
TaskARN string `json:"TaskARN,omitempty"`
}
TaskMetadata defines task metadata for a task
type TaskMetadataRestClient ¶
type TaskMetadataRestClient struct {
// contains filtered or unexported fields
}
TaskMetadataRestClient is a thin wrapper around an ecs task metadata client, encapsulating endpoints and their corresponding http methods.
func NewRestClientFromClient ¶
func NewRestClientFromClient(client Client) *TaskMetadataRestClient
NewRestClientFromClient creates a new copy of the Client
func (*TaskMetadataRestClient) GetResponse ¶
func (c *TaskMetadataRestClient) GetResponse(path string) ([]byte, error)
GetResponse gets the desired path from the configured metadata endpoint