Documentation ¶
Overview ¶
Example ¶
// Use Go's standard logger as the logr implementation logger := stdr.NewWithOptions(log.New(os.Stderr, "", log.Lshortfile), stdr.Options{LogCaller: stdr.All, Depth: 0}) ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() metrics := make(chan generators.Metric, 2) pipeline, err := NewPipeline(ctx, WithLogger(logger), WithProjectID("my-google-project-id"), WithMetricType("custom.googleapis.com/my-synthetic-metric"), WithWriterEmitter(os.Stdout), WithTransformers([]Transformer{ func(req *monitoringpb.CreateTimeSeriesRequest, _ generators.Metric) error { for _, series := range req.TimeSeries { series.Resource.Labels["node_id"] = "example" } return nil }, }), ) if err != nil { logger.Error(err, "NewPipeline returned an error") return } defer pipeline.Close() // Launch a pipeline processor that will emit each value received from // metrics channel. go func() { if err := pipeline.Processor()(ctx, metrics); err != nil { logger.Error(err, "Pipeline processor returned an error") cancel() } }() metrics <- generators.Metric{ Value: 1.0, Timestamp: time.Unix(1, 0), } metrics <- generators.Metric{ Value: 2.0, Timestamp: time.Unix(2, 0), } <-ctx.Done()
Output:
Index ¶
- Constants
- Variables
- type Closer
- type Emitter
- type Option
- type Pipeline
- type Processor
- type Transformer
- func NewDoubleTypedValueTransformer() Transformer
- func NewGCEMonitoredResourceTransformer(projectID, instanceID, zone string) Transformer
- func NewGKEMonitoredResourceTransformer(...) Transformer
- func NewGenericKubernetesClusterMonitoredResourceTransformer(projectID, location, clusterName string) Transformer
- func NewGenericKubernetesContainerMonitoredResourceTransformer(projectID, location, clusterName, namespaceID, podID, containerName string) Transformer
- func NewGenericKubernetesNodeMonitoredResourceTransformer(projectID, location, clusterName, nodeName string) Transformer
- func NewGenericKubernetesPodMonitoredResourceTransformer(projectID, location, clusterName, namespaceID, podID string) Transformer
- func NewGenericMonitoredResourceTransformer(projectID, location, namespace, nodeID string) Transformer
- func NewIntegerTypedValueTransformer() Transformer
Examples ¶
Constants ¶
const ( DefaultMetricType = "custom.googleapis.com/gce_metric" DefaultLocation = "global" DefaultNamespace = "github.com/memes/gce-metric" )
Variables ¶
var ErrNilCreateTimeSeriesRequest = errors.New("transformer received nil as CreateTimeSeriesRequest")
Functions ¶
This section is empty.
Types ¶
type Emitter ¶
type Emitter func(context.Context, *monitoringpb.CreateTimeSeriesRequest) error
type Option ¶
func WithLogger ¶
func WithMetricType ¶
func WithProjectID ¶
Use a specific project identifier for the synthetic metrics in preference to detecting from metadata.
func WithTransformers ¶
func WithTransformers(transformers []Transformer) Option
func WithWriterEmitter ¶
func WithoutDefaultTransformers ¶
func WithoutDefaultTransformers() Option
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
func (*Pipeline) BuildRequest ¶
func (p *Pipeline) BuildRequest(metric generators.Metric) (*monitoringpb.CreateTimeSeriesRequest, error)
type Transformer ¶
type Transformer func(*monitoringpb.CreateTimeSeriesRequest, generators.Metric) error
Defines a function that mutates a monitoring CreateTimeSeriesRequest object using the supplied moment-in-time Metric object.
func NewDoubleTypedValueTransformer ¶
func NewDoubleTypedValueTransformer() Transformer
Returns a Transformer that replaces the time-series point-in-time record with the embedded value in metric.
func NewGCEMonitoredResourceTransformer ¶
func NewGCEMonitoredResourceTransformer(projectID, instanceID, zone string) Transformer
Returns a Transformer that will insert a gce_instance resource into each time-series value.
func NewGKEMonitoredResourceTransformer ¶
func NewGKEMonitoredResourceTransformer(projectID, clusterName, namespaceID, instanceID, podID, containerName, zone string) Transformer
Returns a Transformer that will insert a gke_container resource into each time-series value.
func NewGenericKubernetesClusterMonitoredResourceTransformer ¶
func NewGenericKubernetesClusterMonitoredResourceTransformer(projectID, location, clusterName string) Transformer
Returns a Transformer that will insert a k8s_cluster resource into each time-series value.
func NewGenericKubernetesContainerMonitoredResourceTransformer ¶
func NewGenericKubernetesContainerMonitoredResourceTransformer(projectID, location, clusterName, namespaceID, podID, containerName string) Transformer
Returns a Transformer that will insert a k8s_container resource into each time-series value.
func NewGenericKubernetesNodeMonitoredResourceTransformer ¶
func NewGenericKubernetesNodeMonitoredResourceTransformer(projectID, location, clusterName, nodeName string) Transformer
Returns a Transformer that will insert a k8s_node resource into each time-series value.
func NewGenericKubernetesPodMonitoredResourceTransformer ¶
func NewGenericKubernetesPodMonitoredResourceTransformer(projectID, location, clusterName, namespaceID, podID string) Transformer
Returns a Transformer that will insert a k8s_pod resource into each time-series value.
func NewGenericMonitoredResourceTransformer ¶
func NewGenericMonitoredResourceTransformer(projectID, location, namespace, nodeID string) Transformer
Returns a Transformer that will insert a generic_node resource into each time-series value.
func NewIntegerTypedValueTransformer ¶
func NewIntegerTypedValueTransformer() Transformer
Returns a Transformer that replaces the time-series point-in-time record with the embedded value in metric after rounding to the nearest integer.