cloudwatch

package
v0.0.1-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package cloudwatch provides a basic emulation of Amazon CloudWatch (metrics + alarms).

Implemented operations: PutMetricAlarm, DescribeAlarms, DeleteAlarms, PutMetricData, GetMetricStatistics, GetMetricData, ListMetrics, ListTagsForResource, TagResource, UntagResource.

Enough for CDK stacks that reference AWS::CloudWatch::Alarm resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dimension

type Dimension struct {
	Name  string `json:"Name"`
	Value string `json:"Value"`
}

Dimension is a name/value pair for metric filtering.

type Metric

type Metric struct {
	Namespace  string      `json:"Namespace"`
	MetricName string      `json:"MetricName"`
	Dimensions []Dimension `json:"Dimensions,omitempty"`
}

Metric represents a CloudWatch metric entry.

type MetricAlarm

type MetricAlarm struct {
	AlarmName                          string   `json:"AlarmName"`
	AlarmArn                           string   `json:"AlarmArn"`
	MetricName                         string   `json:"MetricName,omitempty"`
	Namespace                          string   `json:"Namespace,omitempty"`
	Statistic                          string   `json:"Statistic,omitempty"`
	Period                             int      `json:"Period,omitempty"`
	EvaluationPeriods                  int      `json:"EvaluationPeriods,omitempty"`
	Threshold                          float64  `json:"Threshold,omitempty"`
	ComparisonOperator                 string   `json:"ComparisonOperator,omitempty"`
	ActionsEnabled                     bool     `json:"ActionsEnabled"`
	AlarmActions                       []string `json:"AlarmActions,omitempty"`
	OKActions                          []string `json:"OKActions,omitempty"`
	StateValue                         string   `json:"StateValue"`
	StateReason                        string   `json:"StateReason"`
	AlarmDescription                   string   `json:"AlarmDescription,omitempty"`
	TreatMissingData                   string   `json:"TreatMissingData,omitempty"`
	StateUpdatedTimestamp              string   `json:"StateUpdatedTimestamp,omitempty"`
	AlarmConfigurationUpdatedTimestamp string   `json:"AlarmConfigurationUpdatedTimestamp,omitempty"`
}

MetricAlarm represents a CloudWatch alarm.

type MetricDataPoint

type MetricDataPoint struct {
	Namespace   string      `json:"Namespace"`
	MetricName  string      `json:"MetricName"`
	Dimensions  []Dimension `json:"Dimensions,omitempty"`
	Timestamp   time.Time   `json:"Timestamp"`
	Unit        string      `json:"Unit,omitempty"`
	SampleCount float64     `json:"SampleCount"`
	Sum         float64     `json:"Sum"`
	Minimum     float64     `json:"Minimum"`
	Maximum     float64     `json:"Maximum"`
}

MetricDataPoint stores a single published datapoint.

type Service

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

Service implements router.Service and router.QueryDispatcher for CloudWatch.

func New

func New(cfg *config.Config, st state.Store, logger *zap.Logger, clk clock.Clock) *Service

New returns a configured CloudWatch Service.

func (*Service) Dispatch

func (s *Service) Dispatch(w http.ResponseWriter, r *http.Request)

Dispatch satisfies router.TargetDispatcher.

func (*Service) DispatchQuery

func (s *Service) DispatchQuery(w http.ResponseWriter, r *http.Request)

DispatchQuery satisfies router.QueryDispatcher.

func (*Service) Name

func (s *Service) Name() string

func (*Service) OwnsVersion

func (s *Service) OwnsVersion(version string) bool

OwnsVersion satisfies router.QueryVersionOwner.

func (*Service) RegisterRoutes

func (s *Service) RegisterRoutes(_ chi.Router)

func (*Service) Stop

func (s *Service) Stop(ctx context.Context)

func (*Service) TargetPrefix

func (s *Service) TargetPrefix() string

TargetPrefix satisfies router.TargetDispatcher for AWS SDK JSON protocol. The JS/TS AWS SDK sends CloudWatch calls as x-amz-json-1.0 with this target prefix.

Directories

Path Synopsis
Package logs implements the AWS CloudWatch Logs API emulator.
Package logs implements the AWS CloudWatch Logs API emulator.

Jump to

Keyboard shortcuts

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