Documentation ¶
Index ¶
- Constants
- func NewAgentPlugin(p StreamAPIExtension) plugin.Plugin
- func NewGatewayPlugin(p StreamAPIExtension, opts ...GatewayStreamApiExtensionPluginOption) plugin.Plugin
- type Aggregator
- type GatewayStreamApiExtensionPluginOption
- type GatewayStreamApiExtensionPluginOptions
- type GatewayStreamMetricsConfig
- type Server
- type StreamAPIExtension
- type StreamClientDisconnectHandler
- type StreamClientHandler
- type StreamDelegate
Constants ¶
View Source
const ( StreamAPIExtensionPluginID = "opni.apiextensions.StreamAPIExtension" ServiceID = "apiextensions.StreamAPIExtension" )
Variables ¶
This section is empty.
Functions ¶
func NewAgentPlugin ¶ added in v0.9.2
func NewAgentPlugin(p StreamAPIExtension) plugin.Plugin
func NewGatewayPlugin ¶ added in v0.9.2
func NewGatewayPlugin(p StreamAPIExtension, opts ...GatewayStreamApiExtensionPluginOption) plugin.Plugin
Types ¶
type Aggregator ¶ added in v0.8.2
type Aggregator func(reply any, msg *streamv1.BroadcastReplyList) error
Aggregator allows the user to aggregate the responses from a broadcast request, and store the result in reply.
var EmptyNothingAggregator Aggregator = func(any, *streamv1.BroadcastReplyList) error { return nil }
EmptyNothingAggregator is an aggregator to use if you don't need to do any aggregation, or don't care about the response.
type GatewayStreamApiExtensionPluginOption ¶ added in v0.9.2
type GatewayStreamApiExtensionPluginOption func(*GatewayStreamApiExtensionPluginOptions)
func WithMetrics ¶ added in v0.9.1
func WithMetrics(conf GatewayStreamMetricsConfig) GatewayStreamApiExtensionPluginOption
type GatewayStreamApiExtensionPluginOptions ¶ added in v0.9.2
type GatewayStreamApiExtensionPluginOptions struct {
// contains filtered or unexported fields
}
type GatewayStreamMetricsConfig ¶ added in v0.9.2
type GatewayStreamMetricsConfig struct { // Prometheus registerer Registerer prometheus.Registerer // A function called on each stream's Connect that returns a list of static // labels to attach to all metrics collected for that stream. LabelsForStream func(context.Context) []attribute.KeyValue }
type Server ¶
type Server struct { Desc *grpc.ServiceDesc Impl interface{} RequireCapability string }
type StreamAPIExtension ¶
type StreamAPIExtension interface {
StreamServers() []Server
}
type StreamClientDisconnectHandler ¶ added in v0.6.1
type StreamClientDisconnectHandler interface {
StreamDisconnected()
}
A plugin can optionally implement StreamClientDisconnectHandler to be notified when the stream disconnects
type StreamClientHandler ¶
type StreamClientHandler interface {
UseStreamClient(client grpc.ClientConnInterface)
}
A plugin can optionally implement StreamClientHandler to obtain a grpc.ClientConnInterface to the plugin's side of the spliced stream.
type StreamDelegate ¶ added in v0.8.2
type StreamDelegate[T any] interface { WithTarget(*corev1.Reference) T WithBroadcastSelector(*corev1.ClusterSelector, Aggregator) T }
func NewDelegate ¶ added in v0.8.2
func NewDelegate[T any](cc grpc.ClientConnInterface, newClientFunc func(grpc.ClientConnInterface) T) StreamDelegate[T]
Click to show internal directories.
Click to hide internal directories.