Documentation
¶
Overview ¶
Package status implements status reporting.
Index ¶
- Constants
- type BundleLoadDurationNanoseconds
- type Collectors
- type Config
- type ConfigBuilder
- func (b *ConfigBuilder) Parse() (*Config, error)
- func (b *ConfigBuilder) WithBytes(config []byte) *ConfigBuilder
- func (b *ConfigBuilder) WithPlugins(plugins []string) *ConfigBuilder
- func (b *ConfigBuilder) WithServices(services []string) *ConfigBuilder
- func (b *ConfigBuilder) WithTriggerMode(trigger *plugins.TriggerMode) *ConfigBuilder
- type Logger
- type Plugin
- func (p *Plugin) BulkUpdateBundleStatus(status map[string]*bundle.Status)
- func (p *Plugin) Reconfigure(_ context.Context, config interface{})
- func (p *Plugin) Snapshot() *UpdateRequestV1
- func (p *Plugin) Start(ctx context.Context) error
- func (p *Plugin) Stop(_ context.Context)
- func (p *Plugin) Trigger(ctx context.Context) error
- func (p *Plugin) UpdateBundleStatus(status bundle.Status)
- func (p *Plugin) UpdateDecisionLogsStatus(status lstat.Status)
- func (p *Plugin) UpdateDiscoveryStatus(status bundle.Status)
- func (p *Plugin) UpdatePluginStatus(status map[string]*plugins.Status)
- func (p *Plugin) WithMetrics(m metrics.Metrics) *Plugin
- type PrometheusConfig
- type UpdateRequestV1
Constants ¶
const Name = "status"
Name identifies the plugin on manager.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BundleLoadDurationNanoseconds ¶
type BundleLoadDurationNanoseconds struct {
Buckets []float64 `json:"buckets,omitempty"` // the float64 array of buckets representing nanoseconds or multiple of nanoseconds
}
BundleLoadDurationNanoseconds represents the configuration for the status.prometheus_config.bundle_loading_duration_ns settings
type Collectors ¶
type Collectors struct {
BundleLoadDurationNanoseconds *BundleLoadDurationNanoseconds `json:"bundle_loading_duration_ns,omitempty"`
}
type Config ¶
type Config struct { Plugin *string `json:"plugin"` Service string `json:"service"` PartitionName string `json:"partition_name,omitempty"` ConsoleLogs bool `json:"console"` Prometheus bool `json:"prometheus"` PrometheusConfig *PrometheusConfig `json:"prometheus_config,omitempty"` Trigger *plugins.TriggerMode `json:"trigger,omitempty"` // trigger mode }
Config contains configuration for the plugin.
type ConfigBuilder ¶
type ConfigBuilder struct {
// contains filtered or unexported fields
}
ConfigBuilder assists in the construction of the plugin configuration.
func NewConfigBuilder ¶
func NewConfigBuilder() *ConfigBuilder
NewConfigBuilder returns a new ConfigBuilder to build and parse the plugin config.
func (*ConfigBuilder) Parse ¶
func (b *ConfigBuilder) Parse() (*Config, error)
Parse validates the config and injects default values.
func (*ConfigBuilder) WithBytes ¶
func (b *ConfigBuilder) WithBytes(config []byte) *ConfigBuilder
WithBytes sets the raw plugin config.
func (*ConfigBuilder) WithPlugins ¶
func (b *ConfigBuilder) WithPlugins(plugins []string) *ConfigBuilder
WithPlugins sets the list of named plugins for status updates.
func (*ConfigBuilder) WithServices ¶
func (b *ConfigBuilder) WithServices(services []string) *ConfigBuilder
WithServices sets the services that implement control plane APIs.
func (*ConfigBuilder) WithTriggerMode ¶
func (b *ConfigBuilder) WithTriggerMode(trigger *plugins.TriggerMode) *ConfigBuilder
WithTriggerMode sets the plugin trigger mode.
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
Plugin implements status reporting. Updates can be triggered by the caller.
func (*Plugin) BulkUpdateBundleStatus ¶
BulkUpdateBundleStatus notifies the plugin that the policy bundle was updated.
func (*Plugin) Reconfigure ¶
Reconfigure notifies the plugin with a new configuration.
func (*Plugin) Snapshot ¶
func (p *Plugin) Snapshot() *UpdateRequestV1
Snapshot returns the current status.
func (*Plugin) Trigger ¶
Trigger can be used to control when the plugin attempts to upload status in manual triggering mode.
func (*Plugin) UpdateBundleStatus ¶
UpdateBundleStatus notifies the plugin that the policy bundle was updated. Deprecated: Use BulkUpdateBundleStatus instead.
func (*Plugin) UpdateDecisionLogsStatus ¶
UpdateDecisionLogsStatus notifies the plugin that status of a decision log upload event.
func (*Plugin) UpdateDiscoveryStatus ¶
UpdateDiscoveryStatus notifies the plugin that the discovery bundle was updated.
func (*Plugin) UpdatePluginStatus ¶
UpdatePluginStatus notifies the plugin that a plugin status was updated.
type PrometheusConfig ¶
type PrometheusConfig struct {
Collectors *Collectors `json:"collectors,omitempty"`
}
type UpdateRequestV1 ¶
type UpdateRequestV1 struct { Labels map[string]string `json:"labels"` Bundle *bundle.Status `json:"bundle,omitempty"` // Deprecated: Use bulk `bundles` status updates instead Bundles map[string]*bundle.Status `json:"bundles,omitempty"` Discovery *bundle.Status `json:"discovery,omitempty"` DecisionLogs *lstat.Status `json:"decision_logs,omitempty"` Metrics map[string]interface{} `json:"metrics,omitempty"` Plugins map[string]*plugins.Status `json:"plugins,omitempty"` }
UpdateRequestV1 represents the status update message that OPA sends to remote HTTP endpoints.
func (UpdateRequestV1) Equal ¶ added in v1.1.0
func (u UpdateRequestV1) Equal(other UpdateRequestV1) bool