Documentation
¶
Index ¶
- Constants
- Variables
- func NewKumaHTTPDiscovery(conf *KumaSDConfig, logger log.Logger, metrics discovery.DiscovererMetrics) (discovery.Discoverer, error)
- type HTTPConfig
- type HTTPResourceClient
- type HTTPResourceClientConfig
- type KumaSDConfig
- func (c *KumaSDConfig) Name() string
- func (c *KumaSDConfig) NewDiscoverer(opts discovery.DiscovererOptions) (discovery.Discoverer, error)
- func (*KumaSDConfig) NewDiscovererMetrics(reg prometheus.Registerer, rmi discovery.RefreshMetricsInstantiator) discovery.DiscovererMetrics
- func (c *KumaSDConfig) SetDirectory(dir string)
- func (c *KumaSDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
- type MonitoringAssignment
- func (*MonitoringAssignment) Descriptor() ([]byte, []int)deprecated
- func (x *MonitoringAssignment) GetLabels() map[string]string
- func (x *MonitoringAssignment) GetMesh() string
- func (x *MonitoringAssignment) GetService() string
- func (x *MonitoringAssignment) GetTargets() []*MonitoringAssignment_Target
- func (*MonitoringAssignment) ProtoMessage()
- func (x *MonitoringAssignment) ProtoReflect() protoreflect.Message
- func (x *MonitoringAssignment) Reset()
- func (x *MonitoringAssignment) String() string
- type MonitoringAssignmentDiscoveryServiceServer
- type MonitoringAssignment_Target
- func (*MonitoringAssignment_Target) Descriptor() ([]byte, []int)deprecated
- func (x *MonitoringAssignment_Target) GetAddress() string
- func (x *MonitoringAssignment_Target) GetLabels() map[string]string
- func (x *MonitoringAssignment_Target) GetMetricsPath() string
- func (x *MonitoringAssignment_Target) GetName() string
- func (x *MonitoringAssignment_Target) GetScheme() string
- func (*MonitoringAssignment_Target) ProtoMessage()
- func (x *MonitoringAssignment_Target) ProtoReflect() protoreflect.Message
- func (x *MonitoringAssignment_Target) Reset()
- func (x *MonitoringAssignment_Target) String() string
- type ProtocolVersion
- type ResourceClient
- type SDConfig
Constants ¶
const ( KumaMadsV1ResourceTypeURL = "type.googleapis.com/kuma.observability.v1.MonitoringAssignment" KumaMadsV1ResourceType = "monitoringassignments" )
const (
ProtocolV3 = ProtocolVersion("v3")
)
Variables ¶
var DefaultKumaSDConfig = KumaSDConfig{ HTTPClientConfig: config.DefaultHTTPClientConfig, RefreshInterval: model.Duration(15 * time.Second), FetchTimeout: model.Duration(2 * time.Minute), }
DefaultKumaSDConfig is the default Kuma MADS SD configuration.
var File_observability_v1_mads_proto protoreflect.FileDescriptor
Functions ¶
func NewKumaHTTPDiscovery ¶
func NewKumaHTTPDiscovery(conf *KumaSDConfig, logger log.Logger, metrics discovery.DiscovererMetrics) (discovery.Discoverer, error)
Types ¶
type HTTPConfig ¶
type HTTPConfig struct {
config.HTTPClientConfig `yaml:",inline"`
}
type HTTPResourceClient ¶
type HTTPResourceClient struct {
// contains filtered or unexported fields
}
func NewHTTPResourceClient ¶
func NewHTTPResourceClient(conf *HTTPResourceClientConfig, protocolVersion ProtocolVersion) (*HTTPResourceClient, error)
func (*HTTPResourceClient) Close ¶
func (rc *HTTPResourceClient) Close()
func (*HTTPResourceClient) Fetch ¶
func (rc *HTTPResourceClient) Fetch(ctx context.Context) (*v3.DiscoveryResponse, error)
Fetch requests the latest state of the resources from the xDS server and cache the version. Returns a nil response if the current local version is up to date.
func (*HTTPResourceClient) ID ¶
func (rc *HTTPResourceClient) ID() string
func (*HTTPResourceClient) ResourceTypeURL ¶
func (rc *HTTPResourceClient) ResourceTypeURL() string
func (*HTTPResourceClient) Server ¶
func (rc *HTTPResourceClient) Server() string
type HTTPResourceClientConfig ¶
type HTTPResourceClientConfig struct {
// HTTP config.
config.HTTPClientConfig
Name string
// ExtraQueryParams are extra query parameters to attach to the request URL.
ExtraQueryParams url.Values
// The timeout for a single fetch request.
Timeout time.Duration
// Type is the xds type, e.g., clusters
// which is used in the discovery POST request.
ResourceType string
// ResourceTypeURL is the Google type url for the resource, e.g., type.googleapis.com/envoy.api.v2.Cluster.
ResourceTypeURL string
// Server is the xDS management server.
Server string
// ClientID is used to identify the client with the management server.
ClientID string
}
type KumaSDConfig ¶
type KumaSDConfig = SDConfig
func (*KumaSDConfig) Name ¶
func (c *KumaSDConfig) Name() string
func (*KumaSDConfig) NewDiscoverer ¶
func (c *KumaSDConfig) NewDiscoverer(opts discovery.DiscovererOptions) (discovery.Discoverer, error)
func (*KumaSDConfig) NewDiscovererMetrics ¶
func (*KumaSDConfig) NewDiscovererMetrics(reg prometheus.Registerer, rmi discovery.RefreshMetricsInstantiator) discovery.DiscovererMetrics
NewDiscovererMetrics implements discovery.Config.
func (*KumaSDConfig) SetDirectory ¶
func (c *KumaSDConfig) SetDirectory(dir string)
SetDirectory joins any relative file paths with dir.
func (*KumaSDConfig) UnmarshalYAML ¶
func (c *KumaSDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type MonitoringAssignment ¶
type MonitoringAssignment struct {
// Mesh of the dataplane.
//
// E.g., `default`
Mesh string `protobuf:"bytes,2,opt,name=mesh,proto3" json:"mesh,omitempty"`
// Identifying service the dataplane is proxying.
//
// E.g., `backend`
Service string `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
// List of targets that need to be monitored.
Targets []*MonitoringAssignment_Target `protobuf:"bytes,4,rep,name=targets,proto3" json:"targets,omitempty"`
// Arbitrary Labels associated with every target in the assignment.
//
// E.g., `{"zone" : "us-east-1", "team": "infra", "commit_hash": "620506a88"}`.
Labels map[string]string `` /* 153-byte string literal not displayed */
// contains filtered or unexported fields
}
MADS resource type.
Describes a group of targets on a single service that need to be monitored.
func (*MonitoringAssignment) Descriptor
deprecated
func (*MonitoringAssignment) Descriptor() ([]byte, []int)
Deprecated: Use MonitoringAssignment.ProtoReflect.Descriptor instead.
func (*MonitoringAssignment) GetLabels ¶
func (x *MonitoringAssignment) GetLabels() map[string]string
func (*MonitoringAssignment) GetMesh ¶
func (x *MonitoringAssignment) GetMesh() string
func (*MonitoringAssignment) GetService ¶
func (x *MonitoringAssignment) GetService() string
func (*MonitoringAssignment) GetTargets ¶
func (x *MonitoringAssignment) GetTargets() []*MonitoringAssignment_Target
func (*MonitoringAssignment) ProtoMessage ¶
func (*MonitoringAssignment) ProtoMessage()
func (*MonitoringAssignment) ProtoReflect ¶
func (x *MonitoringAssignment) ProtoReflect() protoreflect.Message
func (*MonitoringAssignment) Reset ¶
func (x *MonitoringAssignment) Reset()
func (*MonitoringAssignment) String ¶
func (x *MonitoringAssignment) String() string
type MonitoringAssignmentDiscoveryServiceServer ¶
type MonitoringAssignmentDiscoveryServiceServer interface {
// HTTP
FetchMonitoringAssignments(context.Context, *v3.DiscoveryRequest) (*v3.DiscoveryResponse, error)
}
MonitoringAssignmentDiscoveryServiceServer is the server API for MonitoringAssignmentDiscoveryService service.
type MonitoringAssignment_Target ¶
type MonitoringAssignment_Target struct {
// E.g., `backend-01`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Scheme on which to scrape the target.
//E.g., `http`
Scheme string `protobuf:"bytes,2,opt,name=scheme,proto3" json:"scheme,omitempty"`
// Address (preferably IP) for the service
// E.g., `backend.svc` or `10.1.4.32:9090`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
// Optional path to append to the address for scraping
//E.g., `/metrics`
MetricsPath string `protobuf:"bytes,4,opt,name=metrics_path,json=metricsPath,proto3" json:"metrics_path,omitempty"`
// Arbitrary labels associated with that particular target.
//
// E.g.,
// `{
// "commit_hash" : "620506a88",
// }`.
Labels map[string]string `` /* 153-byte string literal not displayed */
// contains filtered or unexported fields
}
Describes a single target that needs to be monitored.
func (*MonitoringAssignment_Target) Descriptor
deprecated
func (*MonitoringAssignment_Target) Descriptor() ([]byte, []int)
Deprecated: Use MonitoringAssignment_Target.ProtoReflect.Descriptor instead.
func (*MonitoringAssignment_Target) GetAddress ¶
func (x *MonitoringAssignment_Target) GetAddress() string
func (*MonitoringAssignment_Target) GetLabels ¶
func (x *MonitoringAssignment_Target) GetLabels() map[string]string
func (*MonitoringAssignment_Target) GetMetricsPath ¶
func (x *MonitoringAssignment_Target) GetMetricsPath() string
func (*MonitoringAssignment_Target) GetName ¶
func (x *MonitoringAssignment_Target) GetName() string
func (*MonitoringAssignment_Target) GetScheme ¶
func (x *MonitoringAssignment_Target) GetScheme() string
func (*MonitoringAssignment_Target) ProtoMessage ¶
func (*MonitoringAssignment_Target) ProtoMessage()
func (*MonitoringAssignment_Target) ProtoReflect ¶
func (x *MonitoringAssignment_Target) ProtoReflect() protoreflect.Message
func (*MonitoringAssignment_Target) Reset ¶
func (x *MonitoringAssignment_Target) Reset()
func (*MonitoringAssignment_Target) String ¶
func (x *MonitoringAssignment_Target) String() string
type ResourceClient ¶
type ResourceClient interface {
// ResourceTypeURL is the type URL of the resource.
ResourceTypeURL() string
// Server is the xDS Management server.
Server() string
// Fetch requests the latest view of the entire resource state.
// If no updates have been made since the last request, the response will be nil.
Fetch(ctx context.Context) (*v3.DiscoveryResponse, error)
// ID returns the ID of the client that is sent to the xDS server.
ID() string
// Close releases currently held resources.
Close()
}
ResourceClient exposes the xDS protocol for a single resource type. See https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#rest-json-polling-subscriptions .
type SDConfig ¶
type SDConfig struct {
HTTPClientConfig config.HTTPClientConfig `yaml:",inline"`
RefreshInterval model.Duration `yaml:"refresh_interval,omitempty"`
FetchTimeout model.Duration `yaml:"fetch_timeout,omitempty"`
Server string `yaml:"server,omitempty"`
ClientID string `yaml:"client_id,omitempty"`
}
SDConfig is a base config for xDS-based SD mechanisms.