Documentation ¶
Index ¶
- Constants
- func CollectPackages(listers []SoftwarePackageLister, reporterBatch PackagesReporterBatch, ...) error
- func CollectWithConfigs(ctx context.Context, configs []*Config, reporter PackagesReporter, ...)
- type Config
- type Interval
- type PackagesReporter
- type PackagesReporterBatch
- type SoftwarePackage
- type SoftwarePackageLister
Constants ¶
View Source
const ( LpMeasurementName = "packages" LpMeasurementFailureName = "packages_failed" LpSystemTag = "system" LpPackageTag = "package" LpArchTag = "arch" LpVersionField = "version" LpErrorField = "error" // Follow the pattern of telegraf's --test option and use their same prefix // It allows Envoy to differentiate metric lines from logs, etc in consuming of stdout LpOutPrefix = "> " LpSenderBatchSize = 500 LpSenderBatchTimeout = 10 * time.Second )
View Source
const (
DefaultInterval = Interval(1 * time.Hour)
)
Variables ¶
This section is empty.
Functions ¶
func CollectPackages ¶
func CollectPackages(listers []SoftwarePackageLister, reporterBatch PackagesReporterBatch, reportWhenNotSupported bool) error
func CollectWithConfigs ¶
func CollectWithConfigs(ctx context.Context, configs []*Config, reporter PackagesReporter, logger *zap.Logger)
CollectWithConfigs will start a go routine each to periodically collect packages according to each given configuration.
Types ¶
type Config ¶
type Config struct { Interval Interval `json:"interval"` IncludeRpm bool `json:"include-rpm"` IncludeDebian bool `json:"include-debian"` FailWhenNotSupported bool `json:"fail-when-not-supported"` }
func LoadConfigs ¶
type Interval ¶
Go doesn't have builtin JSON unmarshalling of time.Duration, so declare our own type and unmarshaller
func (*Interval) UnmarshalJSON ¶
UnmarshalJSON parses string formatted duration/interval values
type PackagesReporter ¶
type PackagesReporter interface {
StartBatch(timestamp time.Time) PackagesReporterBatch
}
func NewConsoleReporter ¶
func NewConsoleReporter() PackagesReporter
func NewLineProtocolConsoleReporter ¶
func NewLineProtocolConsoleReporter(logger *zap.Logger) PackagesReporter
type PackagesReporterBatch ¶
type SoftwarePackage ¶
type SoftwarePackageLister ¶
type SoftwarePackageLister interface { PackagingSystem() string IsSupported() bool ListPackages() ([]SoftwarePackage, error) }
func DebianLister ¶
func DebianLister(logger *zap.Logger) SoftwarePackageLister
func RpmLister ¶
func RpmLister(logger *zap.Logger) SoftwarePackageLister
Click to show internal directories.
Click to hide internal directories.