geneos

package
v1.16.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

README

geneos package

The geneos package provides a way of building Geneos configuration files using Go data structures.

Documentation

Index

Constants

View Source
const (
	ProbeTypeProbe int = iota
	ProbeTypeFloating
	ProbeTypeVirtual
)

Variables

This section is empty.

Functions

func ExpandFileDates added in v1.12.0

func ExpandFileDates(in string, t time.Time) (out string, err error)

ExpandFileDates substitutes Geneos formatted dates in the input for the time t and returns the result.

The dates in the input are in the form "<today>" etc. as per the FKM path Date generation: <https://docs.itrsgroup.com/docs/geneos/current/collection/fkm-config/index.html#date-generation>

Only <today...> is supported as there is no support (yet) for monitored days. The full format is <today[-N |+N ]FORMAT> where FORMAT is strftime-style patterns and spaces around the offsets are ignored but at least one is required between the offset and FORMAT if both are given. The strftime patterns are those from the defaults in the Go package <https://github.com/lestrrat-go/strftime>

func GetPlugin added in v1.6.2

func GetPlugin(plugin *Plugin) interface{}

GetPlugin searches plugin for the first non-nil/non-empty field and returns it, using reflection

func RemoveDuplicates added in v1.6.1

func RemoveDuplicates[T KeyedObject](kvs []T) []T

RemoveDuplicates iterates over any slice that satisfies KeyedObject and returns a slice of the same type but with duplicates removed. The first item is kept in all cases.

func UnrollEntities added in v1.6.6

func UnrollEntities(in *ManagedEntities, types map[string]Type) (entities map[string]ManagedEntity)

UnrollEntities func

func UnrollProbes added in v1.6.6

func UnrollProbes(in *Probes) (probes map[string]Probe)

UnrollProbes takes the top level geneos.Probes struct and returns a map of probe name to geneos.Probe objects while setting the Type field to the type of probe

func UnrollProcessDescriptors added in v1.6.6

func UnrollProcessDescriptors(in *ProcessDescriptors) (processDescriptors map[string]ProcessDescriptor)

func UnrollRules added in v1.7.2

func UnrollRules(in *Rules) (rules map[string]Rule)

UnrollRules resolves all the individual rules in the input by descending RuleGroups and returns a map of Rule with a key of rule path (group name and rule name joined by ` > ` as per Geneos convention) and each component followed by a priority in parenthesis. If a group is disabled it is skipped and the contents ignored. If a rule is disabled is is skipped.

func UnrollSamplers added in v1.6.6

func UnrollSamplers(in *Samplers) (samplers map[string]Sampler)

func UnrollTypes added in v1.6.6

func UnrollTypes(in *Types) (types map[string]Type)

Types

type APIPlugin

type APIPlugin struct {
	XMLName     xml.Name             `xml:"api" json:"-" yaml:"-"`
	Parameters  []Parameter          `xml:"parameters>parameter"`
	SummaryView *SingleLineStringVar `xml:"showSummaryView>always>viewName,omitempty"`
}

func (*APIPlugin) String added in v1.6.2

func (f *APIPlugin) String() string

type APIStreamsPlugin

type APIStreamsPlugin struct {
	XMLName    xml.Name `xml:"api-streams" json:"-" yaml:"-"`
	Streams    *Streams `xml:"streams"`
	BufferSize *Value   `xml:"bufferSize,omitempty"`
	CreateView *Value   `xml:"createView,omitempty"`
}

func (*APIStreamsPlugin) String added in v1.6.2

func (f *APIStreamsPlugin) String() string

type ActiveTimeByName added in v1.7.1

type ActiveTimeByName struct {
	XMLName    xml.Name `xml:"activeTime"`
	ActiveTime string   `xml:"ref,attr"`
}

type ActiveTimeRef added in v1.7.1

type ActiveTimeRef struct {
	XMLName    xml.Name          `xml:"activeTime"`
	ActiveTime *ActiveTimeByName `xml:"activeTime,omitempty"`
	Var        *Var              `xml:"var,omitempty"`
}

type AddTypes added in v1.6.1

type AddTypes struct {
	XMLName xml.Name         `xml:"addTypes" json:"-" yaml:"-"`
	Types   []TypeRefWithEnv `xml:"type,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"type"`
}

type Attribute

type Attribute struct {
	XMLName xml.Name `xml:"attribute" json:"-" yaml:"-"`
	Name    string   `xml:"name,attr"`
	Value   string   `xml:",innerxml" mapstructure:"#text"`
}

func (Attribute) GetKey added in v1.6.1

func (a Attribute) GetKey() string

GetKey satisfies the KeyedObject interface

type CPUPlugin added in v1.6.3

type CPUPlugin struct {
	XMLName xml.Name `xml:"cpu" json:"-" yaml:"-"`
}

func (*CPUPlugin) String added in v1.6.3

func (p *CPUPlugin) String() string

type ControlMDataview added in v1.6.6

type ControlMDataview struct {
	Name       string              `xml:"name"`
	Parameters []ControlMParameter `xml:"parameters,omitempty"`
	Columns    []string            `xml:"columns>column,omitempty"`
}

type ControlMParameter added in v1.6.6

type ControlMParameter struct {
	Parameter string `xml:"parameter"`
	Criteria  string `xml:"criteria"`
}

type ControlMPlugin added in v1.6.2

type ControlMPlugin struct {
	XMLName   xml.Name           `xml:"control-m" json:"-" yaml:"-"`
	Host      *Host              `xml:"host"`
	Port      *Value             `xml:"port"`
	Username  *Value             `xml:"username"`
	Password  *Value             `xml:"password"`
	Timeout   *Value             `xml:"timeout,omitempty"`
	Dataviews []ControlMDataview `xml:"dataviews>dataview,omitempty"`
}

func (*ControlMPlugin) String added in v1.6.2

func (_ *ControlMPlugin) String() string

type DBConnection

type DBConnection struct {
	MySQL                     *MySQL               `xml:"database>mysql,omitempty"`
	SQLServer                 *SQLServer           `xml:"database>sqlServer,omitempty"`
	Sybase                    *Sybase              `xml:"database>sybase,omitempty"`
	Oracle                    *Oracle              `xml:"database>oracle,omitempty"`
	Username                  *SingleLineStringVar `xml:"var-userName"`
	Password                  *SingleLineStringVar `xml:"password"`
	CloseConnectionAfterQuery *Value               `xml:"closeConnectionAfterQuery,omitempty"`
}

func (*DBConnection) String added in v1.6.6

func (d *DBConnection) String() string

type Data

type Data struct {
	XMLName xml.Name `xml:"data" json:"-" yaml:"-"`
	Data    string   `xml:",chardata"`
}

func (Data) String added in v1.6.1

func (d Data) String() string

type Dataview

type Dataview struct {
	Name      string            `xml:"name,attr"`
	Additions DataviewAdditions `xml:"additions,omitempty" json:",omitempty" yaml:",omitempty"`
}

type DataviewAddition

type DataviewAddition struct {
	XMLName xml.Name             `xml:"data" json:"-" yaml:"-"`
	Name    *SingleLineStringVar `xml:"headline,omitempty"`
}

type DataviewAdditionColumns added in v1.6.1

type DataviewAdditionColumns struct {
	Var       *Var                  `xml:"var,omitempty"`
	Headlines []SingleLineStringVar `xml:"data>column,omitempty"`
}

type DataviewAdditionHeadlines added in v1.6.1

type DataviewAdditionHeadlines struct {
	Var       *Var                  `xml:"var,omitempty"`
	Headlines []SingleLineStringVar `xml:"data>headline,omitempty"`
}

type DataviewAdditionRows added in v1.6.1

type DataviewAdditionRows struct {
	Var       *Var                  `xml:"var,omitempty"`
	Headlines []SingleLineStringVar `xml:"data>rows,omitempty"`
}

type DataviewAdditions

type DataviewAdditions struct {
	XMLName   xml.Name                  `xml:"additions" json:"-" yaml:"-"`
	Headlines DataviewAdditionHeadlines `xml:"var-headlines,omitempty"`
	Columns   DataviewAdditionColumns   `xml:"var-columns,omitempty"`
	Rows      DataviewAdditionRows      `xml:"var-rows,omitempty"`
}

func (*DataviewAdditions) UnmarshalXML added in v1.12.0

func (v *DataviewAdditions) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML deals with the case where merged XML configs have the "var-" prefix of the tags removed

type DataviewSchema added in v1.4.3

type DataviewSchema struct {
	Dataview string `xml:"dataview,omitempty"`
	Schema   Schema `xml:"schema>data"`
}

type DeviceIOPlugin added in v1.6.3

type DeviceIOPlugin struct {
	XMLName xml.Name `xml:"deviceio" json:"-" yaml:"-"`
}

func (*DeviceIOPlugin) String added in v1.6.3

func (p *DeviceIOPlugin) String() string

type DiskPlugin added in v1.6.3

type DiskPlugin struct {
	XMLName              xml.Name           `xml:"disk" json:"-" yaml:"-"`
	Partitions           []Partition        `xml:"partitions>partition,omitempty"`
	ExcludePartitions    []ExcludePartition `xml:"excludePartitions>excludePartition,omitempty"`
	AutoDetect           *Value             `xml:"autoDetect,omitempty"`
	MaximumPartitions    *Value             `xml:"maximumPartitions,omitempty"`
	CheckNFSPartitions   *Value             `xml:"checkNFSPartitions,omitempty"`
	MatchExactPartitions *Value             `xml:"matchExactPartitions,omitempty"`
}

func (*DiskPlugin) String added in v1.6.3

func (p *DiskPlugin) String() string

type EmptyStruct

type EmptyStruct struct{}

EmptyStruct is an empty struct used to indicate which macro VarMacro refers to.

type Environment

type Environment struct {
	XMLName      xml.Name      `xml:"environment" json:"-" yaml:"-"`
	Name         string        `xml:"name,attr"`
	Environments []Environment `xml:"environment,omitempty" json:",omitempty" yaml:",omitempty"`
	Vars         []Vars        `xml:"var,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"var"`
}

type EnvironmentGroup

type EnvironmentGroup struct {
	XMLName      xml.Name      `xml:"environmentGroup" json:"-" yaml:"-"`
	Name         string        `xml:"name,attr"`
	Environments []Environment `xml:"environment,omitempty" json:",omitempty" yaml:",omitempty"`
}

type EnvironmentRef added in v1.4.1

type EnvironmentRef struct {
	XMLName xml.Name `xml:"environment" json:"-" yaml:"-"`
	Name    string   `xml:"ref,attr" json:",omitempty" yaml:",omitempty"`
}

type EnvironmentVariable

type EnvironmentVariable struct {
	XMLName xml.Name             `xml:"variable"  json:"-" yaml:"-"`
	Name    string               `xml:"name"`
	Value   *SingleLineStringVar `xml:"value"`
}

type Environments

type Environments struct {
	XMLName      xml.Name           `xml:"environments" json:"-" yaml:"-"`
	Groups       []EnvironmentGroup `xml:"environmentGroup,omitempty" json:",omitempty" yaml:",omitempty"`
	Environments []Environment      `xml:"environment,omitempty" json:",omitempty" yaml:",omitempty"`
}

type ExcludePartition added in v1.6.3

type ExcludePartition struct {
	Path       string `xml:"path"`
	FileSystem string `xml:"fileSystem"`
}

type FIXAnalyser2Plugin added in v1.6.3

type FIXAnalyser2Plugin struct {
	XMLName xml.Name `xml:"fix-analyser2" json:"-" yaml:"-"`
}

func (*FIXAnalyser2Plugin) String added in v1.6.3

func (p *FIXAnalyser2Plugin) String() string

type FKMDisplay

type FKMDisplay struct {
	TriggerMode string `xml:"triggerMode,omitempty" json:",omitempty" yaml:",omitempty"`
}

type FKMFile

type FKMFile struct {
	XMLName             xml.Name       `xml:"file" json:"-" yaml:"-"`
	Source              *FKMFileSource `xml:"source"`
	Tables              []FKMTable     `xml:"tables>table,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"tables"`
	ClearTime           *Value         `xml:"clearTime,omitempty" json:",omitempty" yaml:",omitempty"`
	DefaultKeyClearTime *Value         `xml:"defaultKeyClearTime,omitempty" json:",omitempty" yaml:",omitempty"`
	Rewind              *Value         `xml:"rewind,omitempty" json:",omitempty" yaml:",omitempty"`
	Alias               *Value         `xml:"alias,omitempty" json:",omitempty" yaml:",omitempty"`
}

type FKMFileSource added in v1.6.1

type FKMFileSource struct {
	Filename          *SingleLineStringVar `xml:"filename,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"filename"`
	Stream            *SingleLineStringVar `xml:"stream,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"stream"`
	NTEventLog        string               `xml:"ntEventLog,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"ntEventLog"`
	ProcessDescriptor *Reference           `xml:"processDescriptor,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"processDescriptor"`
}

type FKMFiles added in v1.6.1

type FKMFiles struct {
	XMLName xml.Name  `xml:"files" json:"-" yaml:"-"`
	Files   []FKMFile `xml:"file,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"file"`
}

type FKMIgnoreKey

type FKMIgnoreKey struct {
	XMLName xml.Name `xml:"ignoreKey" json:"-" yaml:"-"`
	Match   FKMMatch `xml:"match"`
}

type FKMKey

type FKMKey struct {
	XMLName  xml.Name  `xml:"key" json:"-" yaml:"-"`
	SetKey   FKMSetKey `xml:"setKey"`
	ClearKey *FKMMatch `xml:"clearKey,omitempty"`
	Message  *Value    `xml:"message,omitempty"`
	Severity string    `xml:"severity,omitempty"`
}

type FKMKeyData

type FKMKeyData struct {
	XMLName xml.Name `xml:"data" json:"-" yaml:"-"`
	Keys    FKMKeys
}

type FKMKeyTable

type FKMKeyTable struct {
	XMLName xml.Name `xml:"fkmTable" json:"-" yaml:"-"`
	Name    string   `xml:"ref,attr"`
}

type FKMKeys

type FKMKeys struct {
	XMLName xml.Name      `xml:"keys" json:"-" yaml:"-"`
	Keys    []interface{} // should be FKMIgnoreKey or FKMKey
}

func NewFKMKeys

func NewFKMKeys(keys ...string) (out FKMKeys)

Return an FKMKey struct with keys built from the parameters. The keys are interpreted as follows:

* "=" prefixed string - force basic match (can contain embedded Geneos $(var)) * "!" prefixed string - ignore key * "!=" or "=!" prefixed string - force basic ignore key * "/text[/]" - text will be treated as a regexp, trailing '/' optional * any occurrence of non-alpha character (ignoring '.') - treat as regexp, "!" means ignore key * "/i" - as a suffix of a regexp will force case insensitive matches * plain string (see below) - Basic match

func (FKMKeys) Append

func (in FKMKeys) Append(key string) (out FKMKeys)

type FKMMatch

type FKMMatch struct {
	SearchString *SingleLineStringVar `xml:"searchString"`
	Rules        FKMMatchRules        `xml:"rules,omitempty"`
}

type FKMMatchRules

type FKMMatchRules string
const (
	Basic            FKMMatchRules = "BASIC"
	Regexp           FKMMatchRules = "REGEXP"
	RegexpIgnoreCase FKMMatchRules = "REGEXP_IGNORE_CASE"
)

type FKMPlugin

type FKMPlugin struct {
	XMLName xml.Name    `xml:"fkm" json:"-" yaml:"-"`
	Display *FKMDisplay `xml:"display,omitempty" json:",omitempty" yaml:",omitempty"`
	Files   FKMFiles    `xml:"files,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"files"`
}

func (*FKMPlugin) String added in v1.6.2

func (_ *FKMPlugin) String() string

type FKMSetKey

type FKMSetKey struct {
	Match        *FKMMatch `xml:"match,omitempty"`
	NotUpdatedIn *Value    `xml:"notUpdatedIn>timePeriodInSeconds,omitempty"`
	Updated      string    `xml:"updated,omitempty"`
}

type FKMStaticKeyTable

type FKMStaticKeyTable struct {
	XMLName xml.Name `xml:"fkmTable" json:"-" yaml:"-"`
	Name    string   `xml:"name,attr"`
	Keys    FKMKeys
}

type FKMTable

type FKMTable struct {
	XMLName  xml.Name `xml:"table" json:"-" yaml:"-"`
	Severity string   `xml:"severity"`
	KeyTable *Value   `xml:"keyTable"`
}

type FTMAdditionalPaths

type FTMAdditionalPaths struct {
	Paths []*SingleLineStringVar `xml:"additionalPath"`
}

type FTMFile

type FTMFile struct {
	XMLName         xml.Name             `xml:"file" json:"-" yaml:"-"`
	Path            *SingleLineStringVar `xml:"path"`
	AdditionalPaths *FTMAdditionalPaths  `xml:"additionalPaths,omitempty"`
	ExpectedArrival *Value               `xml:"expectedArrival,omitempty"`
	ExpectedPeriod  *struct {
		Period string `xml:",innerxml"`
	} `xml:"expectedPeriod,omitempty"`
	TZOffset         *Value               `xml:"tzOffset,omitempty"`
	MonitoringPeriod interface{}          `xml:"monitoringPeriod"`
	Alias            *SingleLineStringVar `xml:"alias"`
}

type FTMHolidaysVars

type FTMHolidaysVars struct {
	XMLName xml.Name               `xml:"holidaysVar" json:"-" yaml:"-"`
	Holiday []*SingleLineStringVar `xml:"holiday,omitempty"`
	Day     *FTMWeekdays           `xml:"day,omitempty"`
}

type FTMPlugin

type FTMPlugin struct {
	XMLName                    xml.Name         `xml:"ftm" json:"-" yaml:"-"`
	Files                      []FTMFile        `xml:"files>file"`
	Holidays                   *FTMHolidaysVars `xml:"holidaysVar,omitempty"`
	MonitoredDays              *FTMWeekdays     `xml:"monitoredDays,omitempty"`
	ConsistentDateStamps       *Value           `xml:"consistentDateStamps,omitempty"`
	DisplayTimeInISO8601Format *Value           `xml:"displayTimeInIso8601Format,omitempty"`
	ShowActualFilename         *Value           `xml:"showActualFilename,omitempty"`
	DelayUnit                  string           `xml:"delayUnit"`
	SizeUnit                   string           `xml:"sizeUnit"`
}

func (*FTMPlugin) String added in v1.6.2

func (p *FTMPlugin) String() string

type FTMWeekdays

type FTMWeekdays struct {
	Monday    bool `xml:"monday"`
	Tuesday   bool `xml:"tuesday"`
	Wednesday bool `xml:"wednesday"`
	Thursday  bool `xml:"thursday"`
	Friday    bool `xml:"friday"`
	Saturday  bool `xml:"saturday"`
	Sunday    bool `xml:"sunday"`
}

type FilterAttribute added in v1.6.3

type FilterAttribute struct {
	Name   string   `xml:"name"`
	Values []string `xml:"values>value"`
}

type FilterByAttribute added in v1.6.3

type FilterByAttribute struct {
	XMLName xml.Name         `xml:"attribute" json:"-" yaml:"-"`
	Include *FilterAttribute `xml:"include,omitempty"`
	Exclude *FilterAttribute `xml:"exclude,omitempty"`
}

type FloatingProbe

type FloatingProbe struct {
	XMLName              xml.Name `xml:"floatingProbe" json:"-" yaml:"-"`
	Name                 string   `xml:"name.attr" json:"name" yaml:"name"`
	Disabled             bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	ProbeInfoWithoutPort `yaml:",inline" mapstructure:",squash"`
}

type GWSQLColumn

type GWSQLColumn struct {
	Name  *SingleLineStringVar `xml:"name"`
	XPath string               `xml:"xpath,omitempty"`
	Type  string               `xml:"type,omitempty"`
}

type GWSQLView

type GWSQLView struct {
	XMLName  xml.Name             `xml:"view" json:"-" yaml:"-"`
	ViewName *SingleLineStringVar `xml:"name"`
	SQL      *SingleLineStringVar `xml:"sql"`
}

type Gateway

type Gateway struct {
	XMLName              xml.Name              `xml:"gateway"`
	Compatibility        int                   `xml:"compatibility,attr"`
	XMLNs                string                `xml:"xmlns:xsi,attr"`                     // http://www.w3.org/2001/XMLSchema-instance
	XSI                  string                `xml:"xsi:noNamespaceSchemaLocation,attr"` // http://schema.itrsgroup.com/GA5.12.0-220125/gateway.xsd
	Probes               *Probes               `xml:"probes"`
	ManagedEntities      *ManagedEntities      `xml:"managedEntities,omitempty"`
	Types                *Types                `xml:"types,omitempty"`
	Samplers             *Samplers             `xml:"samplers,omitempty"`
	Rules                *Rules                `xml:"rules,omitempty"`
	Environments         *Environments         `xml:"environments,omitempty"`
	ProcessDescriptors   *ProcessDescriptors   `xml:"staticVars>processDescriptors,omitempty"`
	OperatingEnvironment *OperatingEnvironment `xml:"operatingEnvironment,omitempty"`
}

Gateway is for reading a Gateway configuration

type GatewayBreachPredictorPlugin added in v1.6.3

type GatewayBreachPredictorPlugin struct {
	XMLName xml.Name `xml:"Gateway-breachPredictor" json:"-" yaml:"-"`
}

func (*GatewayBreachPredictorPlugin) String added in v1.6.3

type GatewayClientConnectionDataPlugin added in v1.6.3

type GatewayClientConnectionDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-clientConnectionData" json:"-" yaml:"-"`
}

func (*GatewayClientConnectionDataPlugin) String added in v1.6.3

type GatewayDataPlugin added in v1.6.3

type GatewayDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-gatewayData" json:"-" yaml:"-"`
}

func (*GatewayDataPlugin) String added in v1.6.3

func (p *GatewayDataPlugin) String() string

type GatewayDatabaseLoggingPlugin added in v1.6.3

type GatewayDatabaseLoggingPlugin struct {
	XMLName xml.Name `xml:"Gateway-databaseLogging" json:"-" yaml:"-"`
}

func (*GatewayDatabaseLoggingPlugin) String added in v1.6.3

type GatewayExportedDataPlugin added in v1.6.3

type GatewayExportedDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-exportedData" json:"-" yaml:"-"`
}

func (*GatewayExportedDataPlugin) String added in v1.6.3

func (p *GatewayExportedDataPlugin) String() string

type GatewayHubDataPlugin added in v1.6.3

type GatewayHubDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-gatewayHubData" json:"-" yaml:"-"`
}

func (*GatewayHubDataPlugin) String added in v1.6.3

func (p *GatewayHubDataPlugin) String() string

type GatewayImportedDataPlugin added in v1.6.3

type GatewayImportedDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-importedData" json:"-" yaml:"-"`
}

func (*GatewayImportedDataPlugin) String added in v1.6.3

func (p *GatewayImportedDataPlugin) String() string

type GatewayIncludesDataPlugin added in v1.6.3

type GatewayIncludesDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-includesData" json:"-" yaml:"-"`
}

func (*GatewayIncludesDataPlugin) String added in v1.6.3

func (p *GatewayIncludesDataPlugin) String() string

type GatewayLicenceUsagePlugin added in v1.6.3

type GatewayLicenceUsagePlugin struct {
	XMLName xml.Name `xml:"Gateway-licenceUsage" json:"-" yaml:"-"`
}

func (*GatewayLicenceUsagePlugin) String added in v1.6.3

func (p *GatewayLicenceUsagePlugin) String() string

type GatewayLoadPlugin added in v1.6.3

type GatewayLoadPlugin struct {
	XMLName xml.Name `xml:"Gateway-gatewayLoad" json:"-" yaml:"-"`
}

func (*GatewayLoadPlugin) String added in v1.6.3

func (p *GatewayLoadPlugin) String() string

type GatewayManagedEntityDataPlugin added in v1.6.3

type GatewayManagedEntityDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-managedEntitiesData" json:"-" yaml:"-"`
}

func (*GatewayManagedEntityDataPlugin) String added in v1.6.3

type GatewayObcervConnectionPlugin added in v1.6.3

type GatewayObcervConnectionPlugin struct {
	XMLName xml.Name `xml:"Gateway-obcervConnection" json:"-" yaml:"-"`
}

func (*GatewayObcervConnectionPlugin) String added in v1.6.3

type GatewayProbeDataPlugin added in v1.6.3

type GatewayProbeDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-probeData" json:"-" yaml:"-"`
}

func (*GatewayProbeDataPlugin) String added in v1.6.3

func (p *GatewayProbeDataPlugin) String() string

type GatewaySQLPlugin

type GatewaySQLPlugin struct {
	XMLName xml.Name             `xml:"Gateway-sql" json:"-" yaml:"-"`
	Setup   *SingleLineStringVar `xml:"setupSql>sql"`
	Tables  *GatewaySQLTables    `xml:"tables"`
	Sample  *SingleLineStringVar `xml:"sampleSql>sql"`
	Views   []GWSQLView          `xml:"views>view"`
}

func (*GatewaySQLPlugin) String added in v1.6.2

func (p *GatewaySQLPlugin) String() string

type GatewaySQLTableDataview

type GatewaySQLTableDataview struct {
	XMLName xml.Name             `xml:"dataview" json:"-" yaml:"-"`
	Name    *SingleLineStringVar `xml:"tableName"`
	XPath   string               `xml:"xpath"`
	Columns *[]GWSQLColumn       `xml:"columns>column,omitempty"`
}

type GatewaySQLTableHeadline

type GatewaySQLTableHeadline struct {
	XMLName xml.Name             `xml:"headlines" json:"-" yaml:"-"`
	Name    *SingleLineStringVar `xml:"tableName"`
	XPath   string               `xml:"xpath"`
}

type GatewaySQLTableXPath

type GatewaySQLTableXPath struct {
	XMLName xml.Name             `xml:"xpath" json:"-" yaml:"-"`
	Name    *SingleLineStringVar `xml:"tableName"`
	XPaths  []string             `xml:"xpaths>xpath"`
	Columns []GWSQLColumn        `xml:"columns>column"`
}

type GatewaySQLTables

type GatewaySQLTables struct {
	Tables []interface{}
}

type GatewayScheduledCommandDataPlugin added in v1.6.3

type GatewayScheduledCommandDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-scheduledCommandData" json:"-" yaml:"-"`
}

func (*GatewayScheduledCommandDataPlugin) String added in v1.6.3

type GatewayScheduledCommandsHistoryDataPlugin added in v1.6.3

type GatewayScheduledCommandsHistoryDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-scheduledCommandsHistoryData" json:"-" yaml:"-"`
}

func (*GatewayScheduledCommandsHistoryDataPlugin) String added in v1.6.3

type GatewaySeverityCountPlugin added in v1.6.3

type GatewaySeverityCountPlugin struct {
	XMLName             xml.Name            `xml:"Gateway-severityCount" json:"-" yaml:"-"`
	Viewpaths           []string            `xml:"viewPaths>viewPath,omitempty"`
	IncludeUserAssigned bool                `xml:"includeUserAssigned,omitempty"`
	IncludeSnoozed      bool                `xml:"includeSnoozed,omitempty"`
	IncludeInactive     bool                `xml:"includeInactive,omitempty"`
	AppendManagedEntity bool                `xml:"appendManagedEntity,omitempty"`
	FilterByAttribute   []FilterByAttribute `xml:"filterByAttribute>attribute,omitempty"`
}

func (*GatewaySeverityCountPlugin) String added in v1.6.3

func (p *GatewaySeverityCountPlugin) String() string

type GatewaySeverityDataPlugin added in v1.6.3

type GatewaySeverityDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-severityData" json:"-" yaml:"-"`
}

func (*GatewaySeverityDataPlugin) String added in v1.6.3

func (p *GatewaySeverityDataPlugin) String() string

type GatewaySnoozeDataPlugin added in v1.6.3

type GatewaySnoozeDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-snoozeData" json:"-" yaml:"-"`
}

func (*GatewaySnoozeDataPlugin) String added in v1.6.3

func (p *GatewaySnoozeDataPlugin) String() string

type GatewayUserAssignmentDataPlugin added in v1.6.3

type GatewayUserAssignmentDataPlugin struct {
	XMLName xml.Name `xml:"Gateway-userAssignmentData" json:"-" yaml:"-"`
}

func (*GatewayUserAssignmentDataPlugin) String added in v1.6.3

type HardwarePlugin added in v1.6.3

type HardwarePlugin struct {
	XMLName xml.Name `xml:"hardware" json:"-" yaml:"-"`
}

func (*HardwarePlugin) String added in v1.6.3

func (p *HardwarePlugin) String() string

type Host added in v1.6.6

type Host struct {
	Name      string     `xml:"name,omitempty"`
	IPAddress *IPAddress `xml:"ipAddress,omitempty"`
	Var       *Reference `xml:"var,omitempty"`
}

func (*Host) String added in v1.6.6

func (t *Host) String() string

type IPAddress added in v1.6.6

type IPAddress struct {
	Octets []int `xml:"value"` // must be []int else unmarshal treats []uint8 as a []byte
}

func (*IPAddress) String added in v1.6.6

func (ip *IPAddress) String() string

type JMXConnection added in v1.6.6

type JMXConnection struct {
	Generic   *JMXGenericConnection
	WebLogic  *JMXWebLogicConnection
	WebSphere *JMXWebSphereConnection
}

type JMXGenericConnection added in v1.6.6

type JMXGenericConnection struct {
	ServiceURL        *SingleLineStringVar
	ConnectionDetails *JMXGenericConnectionDetails
	JMXId             *SingleLineStringVar
	Username          *SingleLineStringVar
	Password          *Value
	Timeout           *Value
}

type JMXGenericConnectionDetails added in v1.6.6

type JMXGenericConnectionDetails struct {
	Host    *SingleLineStringVar
	Port    *Value
	URLPath *SingleLineStringVar
}

type JMXServerPlugin added in v1.6.6

type JMXServerPlugin struct {
	XMLName    xml.Name      `xml:"jmx-server" json:"-" yaml:"-"`
	Connection JMXConnection `xml:"connection"`
}

func (*JMXServerPlugin) String added in v1.6.6

func (p *JMXServerPlugin) String() string

type JMXWebLogicConnection added in v1.6.6

type JMXWebLogicConnection struct {
	URL         *SingleLineStringVar
	Principal   *SingleLineStringVar
	Credentials *Value
	Certificate *SingleLineStringVar
	Key         *SingleLineStringVar
	Password    *Value
}

type JMXWebSphereConnection added in v1.6.6

type JMXWebSphereConnection struct {
	Host                        *SingleLineStringVar
	Port                        *Value
	Username                    *SingleLineStringVar
	Password                    *Value
	Type                        *SingleLineStringVar
	SSLClientKeyStore           *SingleLineStringVar
	SSLClientKeyStorePassword   *Value
	SSLClientTrustStore         *SingleLineStringVar
	SSLClientTrustStorePassword *Value
}

type KeyedObject added in v1.6.1

type KeyedObject interface {
	GetKey() string
}

KeyedObject is an interface to structures that have a GetKey() method that returns a string

type MQChannel added in v1.6.3

type MQChannel struct {
	Matches    *SingleLineStringVar `xml:"matches,omitempty"`
	StartsWith *SingleLineStringVar `xml:"startsWith,omitempty"`
}

type MQChannelPlugin added in v1.6.3

type MQChannelPlugin struct {
	XMLName      xml.Name      `xml:"mq-channel" json:"-" yaml:"-"`
	Connection   *MQConnection `xml:"connection,omitempty"`
	QueueManager *Value        `xml:"queueManager"`
	Channels     []MQChannel   `xml:"channels>channel,omitempty"`
	Columns      []string      `xml:"columns>column,omitempty"`
}

func (*MQChannelPlugin) String added in v1.6.3

func (p *MQChannelPlugin) String() string

type MQConnection added in v1.6.3

type MQConnection struct {
	MQServer       *SingleLineStringVar `xml:"mqServer,omitempty"`
	MQChannelTable *SingleLineStringVar `xml:"mqChannelTable,omitempty"`
}

type MQQInfoPlugin added in v1.6.3

type MQQInfoPlugin struct {
	XMLName         xml.Name             `xml:"mq-qinfo" json:"-" yaml:"-"`
	Queuemanager    *Value               `xml:"queueManager"`
	MQServer        *SingleLineStringVar `xml:"mqServer,omitempty"`
	QueueName       *SingleLineStringVar `xml:"queueName"`
	HideUnavailable *SingleLineStringVar `xml:"hideUnavailable,omitempty"`
}

func (*MQQInfoPlugin) String added in v1.6.3

func (p *MQQInfoPlugin) String() string

type MQQueue added in v1.6.3

type MQQueue struct {
	Matches    *SingleLineStringVar `xml:"matches,omitempty"`
	StartsWith *SingleLineStringVar `xml:"startsWith,omitempty"`
}

type MQQueuePlugin added in v1.6.3

type MQQueuePlugin struct {
	XMLName      xml.Name      `xml:"mq-queue" json:"-" yaml:"-"`
	Connection   *MQConnection `xml:"connection,omitempty"`
	QueueManager *Value        `xml:"queueManager"`
	Queues       []MQQueue     `xml:"queues>queue,omitempty"`
	Columns      []string      `xml:"columns>column,omitempty"`
}

func (*MQQueuePlugin) String added in v1.6.3

func (p *MQQueuePlugin) String() string

type Macro

type Macro struct {
	InsecureGatewayPort *EmptyStruct `xml:"insecureGatewayPort,omitempty" json:",omitempty" yaml:",omitempty"`
	GatewayName         *EmptyStruct `xml:"gatewayName,omitempty" json:",omitempty" yaml:",omitempty"`
	NetprobeName        *EmptyStruct `xml:"netprobeName,omitempty" json:",omitempty" yaml:",omitempty"`
	NetprobeHost        *EmptyStruct `xml:"netprobeHost,omitempty" json:",omitempty" yaml:",omitempty"`
	NetprobePort        *EmptyStruct `xml:"netprobePort,omitempty" json:",omitempty" yaml:",omitempty"`
	ManagedEntitiesName *EmptyStruct `xml:"managedEntityName,omitempty" json:",omitempty" yaml:",omitempty"`
	SamplerName         *EmptyStruct `xml:"samplerName,omitempty" json:",omitempty" yaml:",omitempty"`
	SecureGatewayPort   *EmptyStruct `xml:"secureGatewayPort,omitempty" json:",omitempty" yaml:",omitempty"`
}

Macro is a container for the various macro variable types. Only initialise one field to an empty struct, the rest must be nil pointers. e.g.

macro := geneos.Macro{InsecureGatewayPort: &geneos.EmptyStruct{}}

type ManagedEntities

type ManagedEntities struct {
	XMLName             xml.Name             `xml:"managedEntities" json:"-" yaml:"-"`
	Entities            []ManagedEntity      `xml:"managedEntity,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"managedentity"`
	ManagedEntityGroups []ManagedEntityGroup `xml:"managedEntityGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"managedentitygroup"`
}

type ManagedEntity

type ManagedEntity struct {
	XMLName           xml.Name        `xml:"managedEntity" json:"-" yaml:"-"`
	Name              string          `xml:"name,attr"`
	Disabled          bool            `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Probe             *Reference      `xml:"probe" json:",omitempty" yaml:",omitempty"`
	FloatingProbe     *Reference      `xml:"floatingProbe" json:",omitempty" yaml:",omitempty"`
	VirtualProbe      *Reference      `xml:"virtualProbe" json:",omitempty" yaml:",omitempty"`
	Environment       *EnvironmentRef `xml:"environment,omitempty" json:",omitempty" yaml:",omitempty"`
	ManagedEntityInfo `yaml:",inline" mapstructure:",squash"`
	Samplers          []SamplerRef `xml:"sampler,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"sampler"`
}

type ManagedEntityGroup added in v1.3.0

type ManagedEntityGroup struct {
	XMLName             xml.Name `xml:"managedEntityGroup" json:"-" yaml:"-"`
	Name                string   `xml:"name,attr"`
	Disabled            bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	ManagedEntityInfo   `yaml:",inline" mapstructure:",squash"`
	Entities            []ManagedEntity      `xml:"managedEntity,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"managedentity"`
	ManagedEntityGroups []ManagedEntityGroup `xml:"managedEntityGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"managedentitygroup"`
}

type ManagedEntityInfo added in v1.6.1

type ManagedEntityInfo struct {
	Attributes       []Attribute     `xml:"attribute,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"attribute"`
	RemoveTypes      *RemoveTypes    `xml:"removeTypes,omitempty" json:",omitempty" yaml:",omitempty"`
	RemoveSamplers   *RemoveSamplers `xml:"removeSamplers,omitempty" json:",omitempty" yaml:",omitempty"`
	AddTypes         *AddTypes       `xml:"addTypes,omitempty" json:",omitempty" yaml:",omitempty"`
	Vars             []Vars          `xml:"var,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"var"`
	ResolvedSamplers map[string]bool `xml:"-" json:",omitempty" yaml:",omitempty"` // map of "type:sampler" that exist at this point
}

type MonitoringPeriodAlias

type MonitoringPeriodAlias struct {
	Alias string `xml:"periodAlias"`
}

type MonitoringPeriodStart

type MonitoringPeriodStart struct {
	PeriodStart *Value `xml:"periodStartTime,omitempty"`
}

type MySQL

type MySQL struct {
	ServerName *SingleLineStringVar `xml:"var-serverName,omitempty"`
	DBName     *SingleLineStringVar `xml:"var-databaseName,omitempty"`
	Port       *SingleLineStringVar `xml:"var-port,omitempty"`
}

func (*MySQL) UnmarshalXML added in v1.12.0

func (v *MySQL) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML deals with the case where merged XML configs have the "var-" prefix of the tags removed

type NameContents added in v1.6.6

type NameContents struct {
	ShowLocalAddress  *Value `xml:"showLocalAddress,omitempty" json:"showLocalAddress,omitempty" yaml:"showLocalAddress,omitempty"`
	ShowLocalPort     *Value `xml:"showLocalPort,omitempty" json:"showLocalPort,omitempty" yaml:"showLocalPort,omitempty"`
	ShowRemoteAddress *Value `xml:"showRemoteAddress,omitempty" json:"showRemoteAddress,omitempty" yaml:"showRemoteAddress,omitempty"`
	ShowRemotePort    *Value `xml:"showRemotePort,omitempty" json:"showRemotePort,omitempty" yaml:"showRemotePort,omitempty"`
}

type NameValue

type NameValue struct {
	Name  string `xml:"name"`
	Value string `xml:"value"`
}

type NameValueList

type NameValueList struct {
	NameValues []NameValue `xml:"item,omitempty" json:",omitempty" yaml:",omitempty"`
}

func (*NameValueList) UnmarshalText added in v1.6.1

func (s *NameValueList) UnmarshalText(text []byte) error

UnmarshalText conforms to the mapstructure decode hook to covert an empty tag to a map, not a string (from mxj)

type NetworkPlugin added in v1.6.3

type NetworkPlugin struct {
	XMLName xml.Name `xml:"network" json:"-" yaml:"-"`
}

func (*NetworkPlugin) String added in v1.6.3

func (p *NetworkPlugin) String() string

type OperatingEnvironment added in v1.6.3

type OperatingEnvironment struct {
	XMLName      xml.Name `xml:"operatingEnvironment"`
	GatewayID    int      `xml:"gatewayId"`
	GatewayName  string   `xml:"gatewayName"`
	SecurePort   int      `xml:"listenPorts>secure>listenPort,omitempty"`
	InsecurePort int      `xml:"listenPorts>insecure>listenPort,omitempty"`
}

type Oracle added in v1.6.6

type Oracle struct {
	DBName          *SingleLineStringVar `xml:"var-databaseName,omitempty"`
	ApplicationName *SingleLineStringVar `xml:"var-applicationName,omitempty"`
}

func (*Oracle) UnmarshalXML added in v1.12.0

func (v *Oracle) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML deals with the case where merged XML configs have the "var-" prefix of the tags removed

type Parameter

type Parameter struct {
	Name  string               `xml:"name"`
	Value *SingleLineStringVar `xml:"value"`
}

type Partition added in v1.6.3

type Partition struct {
	Path  *SingleLineStringVar `xml:"path"`
	Alias *SingleLineStringVar `xml:"alias"`
}

type PerfmonPlugin added in v1.6.3

type PerfmonPlugin struct {
	XMLName xml.Name `xml:"perfmon" json:"-" yaml:"-"`
}

func (*PerfmonPlugin) String added in v1.6.3

func (p *PerfmonPlugin) String() string

type Plugin added in v1.6.1

type Plugin struct {
	// api.go
	API        *APIPlugin        `xml:"api,omitempty" json:"api,omitempty" yaml:"api,omitempty"`
	APIStreams *APIStreamsPlugin `xml:"api-streams,omitempty" json:"api-streams,omitempty" yaml:"api-streams,omitempty"`

	// control-m.go
	ControlM *ControlMPlugin `xml:"control-m,omitempty" json:"control-m,omitempty" yaml:"control-m,omitempty"`

	// fix-analyser.go
	FIXAnalyser2 *FIXAnalyser2Plugin `xml:"fix-analyser2,omitempty" json:"fix-analyser2,omitempty" yaml:"fix-analyser2,omitempty"`

	// fkm.go
	FKM *FKMPlugin `xml:"fkm,omitempty" json:"fkm,omitempty" yaml:"fkm,omitempty"`

	// ftm.go
	FTM *FTMPlugin `xml:"ftm,omitempty" json:"ftm,omitempty" yaml:"ftm,omitempty"`

	// gateway-plugins.go
	GatewayBreachPredictor              *GatewayBreachPredictorPlugin              `xml:"Gateway-breachPredictor,omitempty" json:"Gateway-breachpredictor,omitempty" yaml:"Gateway-breachpredictor,omitempty"`
	GatewayClientConnectionData         *GatewayClientConnectionDataPlugin         `` /* 136-byte string literal not displayed */
	GatewayDatabaseLogging              *GatewayDatabaseLoggingPlugin              `xml:"Gateway-databaseLogging,omitempty" json:"Gateway-databaseLogging,omitempty" yaml:"Gateway-databaseLogging,omitempty"`
	GatewayExportedData                 *GatewayExportedDataPlugin                 `xml:"Gateway-exportedData,omitempty" json:"Gateway-exportedData,omitempty" yaml:"Gateway-exportedData,omitempty"`
	GatewayData                         *GatewayDataPlugin                         `xml:"Gateway-gatewayData,omitempty" json:"Gateway-gatewayData,omitempty" yaml:"Gateway-gatewayData,omitempty"`
	GatewayHubData                      *GatewayHubDataPlugin                      `xml:"Gateway-gatewayHubData,omitempty" json:"Gateway-gatewayHubData,omitempty" yaml:"Gateway-gatewayHubData,omitempty"`
	GatewayImportedData                 *GatewayImportedDataPlugin                 `xml:"Gateway-importedData,omitempty" json:"Gateway-importedData,omitempty" yaml:"Gateway-importedData,omitempty"`
	GatewayIncludesData                 *GatewayIncludesDataPlugin                 `xml:"Gateway-includesData,omitempty" json:"Gateway-includesData,omitempty" yaml:"Gateway-includesData,omitempty"`
	GatewayLicenceUsage                 *GatewayLicenceUsagePlugin                 `xml:"Gateway-licenceUsage,omitempty" json:"Gateway-licenceUsage,omitempty" yaml:"Gateway-licenceUsage,omitempty"`
	GatewayLoad                         *GatewayLoadPlugin                         `xml:"Gateway-gatewayLoad,omitempty" json:"Gateway-gatewayLoad,omitempty" yaml:"Gateway-gatewayLoad,omitempty"`
	GatewayManagedEntityData            *GatewayManagedEntityDataPlugin            `` /* 133-byte string literal not displayed */
	GatewayObcervConnection             *GatewayObcervConnectionPlugin             `xml:"Gateway-obcervConnection,omitempty" json:"Gateway-obcervConnection,omitempty" yaml:"Gateway-obcervConnection,omitempty"`
	GatewayProbeData                    *GatewayProbeDataPlugin                    `xml:"Gateway-probeData,omitempty" json:"Gateway-probeData,omitempty" yaml:"Gateway-probeData,omitempty"`
	GatewayScheduledCommandsHistoryData *GatewayScheduledCommandsHistoryDataPlugin `` /* 160-byte string literal not displayed */
	GatewayScheduledCommandData         *GatewayScheduledCommandDataPlugin         `` /* 136-byte string literal not displayed */
	GatewaySeverityCount                *GatewaySeverityCountPlugin                `xml:"Gateway-severityCount,omitempty" json:"Gateway-severityCount,omitempty" yaml:"Gateway-severityCount,omitempty"`
	GatewaySeverityData                 *GatewaySeverityDataPlugin                 `xml:"Gateway-severityData,omitempty" json:"Gateway-severityData,omitempty" yaml:"Gateway-severityData,omitempty"`
	GatewaySnoozeData                   *GatewaySnoozeDataPlugin                   `xml:"Gateway-snoozeData,omitempty" json:"Gateway-snoozeData,omitempty" yaml:"Gateway-snoozeData,omitempty"`
	GatewaySQL                          *GatewaySQLPlugin                          `xml:"Gateway-sql,omitempty" json:"Gateway-sql,omitempty" yaml:"Gateway-sql,omitempty"`
	GatewayUserAssignmentData           *GatewayUserAssignmentDataPlugin           `` /* 130-byte string literal not displayed */

	// hardware-plugins.go
	CPU      *CPUPlugin      `xml:"cpu,omitempty" json:"cpu,omitempty" yaml:"cpu,omitempty"`
	Disk     *DiskPlugin     `xml:"disk,omitempty" json:"disk,omitempty" yaml:"disk,omitempty"`
	DeviceIO *DeviceIOPlugin `xml:"deviceio,omitempty" json:"deviceio,omitempty" yaml:"deviceio,omitempty"`
	Hardware *HardwarePlugin `xml:"hardware,omitempty" json:"hardware,omitempty" yaml:"hardware,omitempty"`
	Network  *NetworkPlugin  `xml:"network,omitempty" json:"network,omitempty" yaml:"hardware,omitempty"`

	// jmx-server.go
	JMXServer *JMXServerPlugin `xml:"jmx-server,omitempty" json:"jmx-server,omitempty" yaml:"jmx-server,omitempty"`

	// mq.go
	MQChannel *MQChannelPlugin `xml:"mq-channel,omitempty" json:"mq-channel,omitempty" yaml:"mq-channel,omitempty"`
	MQQInfo   *MQQInfoPlugin   `xml:"mq-qinfo,omitempty" json:"mq-qinfo,omitempty" yaml:"mq-qinfo,omitempty"`
	MQQueue   *MQQueuePlugin   `xml:"mq-queue,omitempty" json:"mq-queue,omitempty" yaml:"mq-queue,omitempty"`

	// perfmon.go
	Perfmon *PerfmonPlugin `xml:"perfmon,omitempty" json:"perfmon,omitempty" yaml:"perfmon,omitempty"`

	// processes.go
	Process *ProcessesPlugin `xml:"processes,omitempty" json:"processes,omitempty" yaml:"processes,omitempty"`

	// rest-api.go
	RESTAPI *RESTAPIPlugin `xml:"rest-api,omitempty" json:"rest-api,omitempty" yaml:"rest-api,omitempty"`

	// sql-toolkit.go
	SQLToolkit *SQLToolkitPlugin `xml:"sql-toolkit,omitempty" json:"sql-toolkit,omitempty" yaml:"sql-toolkit,omitempty"`

	// state-tracker.go
	StateTracker *StateTrackerPlugin `xml:"stateTracker,omitempty" json:"stateTracker,omitempty" yaml:"stateTracker,omitempty"`

	// tcp-links.go
	TCPLinks *TCPLinksPlugin `xml:"tcp-links,omitempty" json:"tcp-links,omitempty" yaml:"tcp-links,omitempty"`

	// toolkit.go
	Toolkit *ToolkitPlugin `xml:"toolkit,omitempty" json:"toolkit,omitempty" yaml:"toolkit,omitempty"`

	// top.go
	Top *TopPlugin `xml:"top,omitempty" json:"top,omitempty" yaml:"top,omitempty"`

	// unix-users.go
	UNIXUsers *UNIXUsersPlugin `xml:"unix-users,omitempty" json:"unix-users,omitempty" yaml:"unix-users,omitempty"`

	// web-mon.go
	WebMon *WebMonPlugin `xml:"web-mon,omitempty" json:"web-mon,omitempty" yaml:"web-mon,omitempty"`

	// win-services.go
	WinServices *WinServicesPlugin `xml:"win-services,omitempty" json:"win-services,omitempty" yaml:"win-services,omitempty"`

	// wmi.go
	WMI *WMIPlugin `xml:"wmi,omitempty" json:"wmi,omitempty" yaml:"wmi,omitempty"`

	// wts-sessions.go
	WTSSessions *WTSSessionsPlugin `xml:"wts-sessions,omitempty" json:"wts-sessions,omitempty" yaml:"wts-sessions,omitempty"`

	// x-ping.go
	XPing *XPingPlugin `xml:"x-ping,omitempty" json:"x-ping,omitempty" yaml:"x-ping,omitempty"`

	// unsupported - put config in 'Other'
	Other *UnsupportedPlugin `xml:",any" json:",omitempty" yaml:",omitempty"`
}

Plugin lists all the plugins we know about

type Probe added in v1.6.1

type Probe struct {
	XMLName   xml.Name `xml:"probe" json:"-" yaml:"-"`
	Type      int      `xml:"-" json:"-" yaml:"-"`
	Name      string   `xml:"name,attr" json:"name" yaml:"name"`
	Disabled  bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Hostname  string   `xml:"hostname" json:"hostname" yaml:"hostname"`
	ProbeInfo `json:",inline" yaml:",inline" mapstructure:",squash"`
}

type ProbeGroup added in v1.6.1

type ProbeGroup struct {
	XMLName        xml.Name `xml:"probeGroup" json:"-" yaml:"-"`
	Name           string   `xml:"name,attr"`
	Disabled       bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	ProbeInfo      `yaml:",inline" mapstructure:",squash"`
	ProbeGroups    []ProbeGroup    `xml:"probeGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"probegroup"`
	Probes         []Probe         `xml:"probe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"probe"`
	VirtualProbes  []VirtualProbe  `xml:"virtualProbe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"virtualprobe"`
	FloatingProbes []FloatingProbe `xml:"floatingProbe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"floatingprobe"`
}

type ProbeInfo added in v1.6.1

type ProbeInfo struct {
	Port                 int   `xml:"port,omitempty" json:"port,omitempty" yaml:",omitempty" mapstructure:"port"`
	Secure               *bool `xml:"secure,omitempty" json:"secure,omitempty" yaml:",omitempty" mapstructure:"secure"`
	ProbeInfoWithoutPort `yaml:",inline" mapstructure:",squash"`
}

ProbeInfo is embedded in groups and probes

The mapstructure tags are needed otherwise the embedding uses the structure name, not the field

type ProbeInfoWithoutPort added in v1.6.1

type ProbeInfoWithoutPort struct {
	CommandTimeOut         int `xml:",omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"commandtimeout"`
	MaxDatabaseConnections int `xml:",omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"maxdatabaseconnections"`
	MaxToolkitProcesses    int `xml:",omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"maxtoolkitprocesses"`
}

type Probes added in v1.6.1

type Probes struct {
	XMLName        xml.Name        `xml:"probes" json:"-" yaml:"-"`
	ProbeGroups    []ProbeGroup    `xml:"probeGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"probegroup"`
	Probes         []Probe         `xml:"probe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"probe"`
	VirtualProbes  []VirtualProbe  `xml:"virtualProbe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"virtualprobe"`
	FloatingProbes []FloatingProbe `xml:"floatingProbe,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"floatingprobe"`
}

type Process added in v1.6.1

type Process struct {
	XMLName           xml.Name              `xml:"process" json:"-" yaml:"-"`
	Data              *ProcessDescriptor    `xml:"data,omitempty" json:",omitempty" yaml:",omitempty"`
	ProcessDescriptor *ProcessDescriptorRef `xml:"processDescriptor,omitempty" json:",omitempty" yaml:",omitempty"`
}

type ProcessDescriptor added in v1.6.1

type ProcessDescriptor struct {
	// no struct XMLName as we can get here via two routes - "data" or "processDescriptor"
	// XMLName  xml.Name             `xml:"processDescriptor" json:"-" yaml:"-"`
	Name     string               `xml:"name,attr" json:"name" yaml:"name"`
	Disabled bool                 `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Alias    *SingleLineStringVar `xml:"alias" json:"alias" yaml:"alias"`
	Start    *SingleLineStringVar `xml:"start,omitempty" json:"start,omitempty" yaml:"start,omitempty"`
	Stop     *SingleLineStringVar `xml:"stop,omitempty" json:"stop,omitempty" yaml:"stop,omitempty"`
	LogFile  *SingleLineStringVar `xml:"logFile,omitempty" json:"logfile,omitempty" yaml:"logfile,omitempty"`
}

type ProcessDescriptorGroup added in v1.6.1

type ProcessDescriptorGroup struct {
	XMLName                 xml.Name                 `xml:"processDescriptorGroup" json:"-" yaml:"-"`
	Name                    string                   `xml:"name,attr" json:"name" yaml:"name"`
	Disabled                bool                     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	ProcessDescriptors      []ProcessDescriptor      `xml:"processDescriptor,omitempty" json:",omitempty" yaml:",omitempty"`
	ProcessDescriptorGroups []ProcessDescriptorGroup `xml:"processDescriptorGroup,omitempty" json:",omitempty" yaml:",omitempty"`
}

type ProcessDescriptorRef added in v1.6.1

type ProcessDescriptorRef struct {
	Name string `xml:"ref,attr" json:"name" yaml:"name"`
}

type ProcessDescriptors added in v1.6.1

type ProcessDescriptors struct {
	XMLName                 xml.Name                 `xml:"processDescriptors" json:"-" yaml:"-"`
	ProcessDescriptors      []ProcessDescriptor      `xml:"data,omitempty" json:",omitempty" yaml:",omitempty"`
	ProcessDescriptorGroups []ProcessDescriptorGroup `xml:"processDescriptorGroup,omitempty" json:",omitempty" yaml:",omitempty"`
}

type ProcessesPlugin added in v1.6.1

type ProcessesPlugin struct {
	XMLName                     xml.Name  `xml:"processes" json:"-" yaml:"-"`
	AdjustForLogicalCPUs        *Value    `xml:"adjustForLogicalCPUs,omitempty" json:",omitempty" yaml:",omitempty"`
	AdjustForLogicalCPUsSummary *Value    `xml:"adjustForLogicalCPUsSummary,omitempty" json:",omitempty" yaml:",omitempty"`
	Processes                   []Process `xml:"processes>process,omitempty" json:",omitempty" yaml:",omitempty"`
}

func (*ProcessesPlugin) String added in v1.6.2

func (p *ProcessesPlugin) String() string

type Query

type Query struct {
	Name *SingleLineStringVar `xml:"name"`
	SQL  *SingleLineStringVar `xml:"sql"`
}

type RESTAPIPlugin added in v1.6.3

type RESTAPIPlugin struct {
	XMLName xml.Name `xml:"rest-api" json:"-" yaml:"-"`
}

func (*RESTAPIPlugin) String added in v1.6.3

func (p *RESTAPIPlugin) String() string

type Reference

type Reference struct {
	Name string `xml:"ref,attr" json:",omitempty" yaml:",omitempty"`
}

type Regex added in v1.4.3

type Regex struct {
	Regex string      `xml:"regex" json:"regex,omitempty" yaml:"regex,omitempty"`
	Flags *RegexFlags `xml:"flags,omitempty" json:"flags,omitempty" yaml:"flags,omitempty"`
}

func (*Regex) String added in v1.6.6

func (r *Regex) String() (s string)

type RegexFlags added in v1.4.3

type RegexFlags struct {
	CaseInsensitive *bool `xml:"i,omitempty" json:"i,omitempty" yaml:"i,omitempty"`
	DotMatchesAll   *bool `xml:"s,omitempty" json:"s,omitempty" yaml:"s,omitempty"`
}

type RemoveSamplers added in v1.6.1

type RemoveSamplers struct {
	XMLName  xml.Name          `xml:"removeSamplers" json:"-" yaml:"-"`
	Samplers []SamplerWithType `xml:"sampler,omitempty" json:",omitempty" yaml:",omitempty"`
}

type RemoveTypes added in v1.6.1

type RemoveTypes struct {
	XMLName xml.Name  `xml:"removeTypes" json:"-" yaml:"-"`
	Types   []TypeRef `xml:"type,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"type"`
}

type Rule

type Rule struct {
	XMLName       xml.Name      `xml:"rule" json:"-" yaml:"-"`
	Name          string        `xml:"name,attr"`
	Disabled      bool          `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Targets       []string      `xml:"targets>target"`
	PriorityGroup int           `xml:"priorityGroup,omitempty" json:",omitempty" yaml:",omitempty"`
	Priority      int           `xml:"priority"`
	Ifs           []interface{} `xml:"ifs,omitempty" json:",omitempty" yaml:",omitempty"`
	Transactions  []interface{} `xml:"tranactions,omitempty" json:",omitempty" yaml:",omitempty"`
}

type RuleDefault added in v1.7.1

type RuleDefault struct {
	XMLName       xml.Name       `xml:"default,omitempty" json:"default,omitempty"`
	Name          string         `xml:"name,attr"`
	Contexts      []string       `xml:"rule>contexts>context,omitempty"`
	PriorityGroup int            `xml:"priorityGroup,omitempty" json:",omitempty" yaml:",omitempty"`
	ActiveTime    *ActiveTimeRef `xml:"activeTime" json:",omitempty" yaml:",omitempty"`
}

type RuleGroup added in v1.7.1

type RuleGroup struct {
	XMLName    xml.Name      `xml:"ruleGroup" json:"-" yaml:"-"`
	Name       string        `xml:"name,attr"`
	Disabled   bool          `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Defaults   []RuleDefault `xml:"default,omitempty"`
	Rules      []Rule        `xml:"rule,omitempty" json:"rule,omitempty"`
	RuleGroups []RuleGroup   `xml:"ruleGroup,omitempty" json:"rulegroup,omitempty"`
}

type Rules

type Rules struct {
	XMLName    xml.Name    `xml:"rules" json:"-" yaml:"-"`
	RuleGroups []RuleGroup `xml:"ruleGroup,omitempty" json:"rulegroup,omitempty"`
	Rules      []Rule      `xml:"rule,omitempty" json:"rule,omitempty"`
}

type SQLServer

type SQLServer struct {
	ServerName *SingleLineStringVar `xml:"var-serverName,omitempty"`
	DBName     *SingleLineStringVar `xml:"var-databaseName,omitempty"`
	Port       *SingleLineStringVar `xml:"var-port,omitempty"`
}

func (*SQLServer) UnmarshalXML added in v1.12.0

func (v *SQLServer) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML deals with the case where merged XML configs have the "var-" prefix of the tags removed

type SQLToolkitPlugin

type SQLToolkitPlugin struct {
	XMLName    xml.Name     `xml:"sql-toolkit" json:"-" yaml:"-"`
	Queries    []Query      `xml:"queries>query"`
	Connection DBConnection `xml:"connection"`
}

func (*SQLToolkitPlugin) String added in v1.6.2

func (p *SQLToolkitPlugin) String() string

type Sampler

type Sampler struct {
	XMLName                xml.Name                `xml:"sampler" json:"-" yaml:"-"`
	Name                   string                  `xml:"name,attr"`
	Disabled               bool                    `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Comment                string                  `xml:",comment" json:",omitempty" yaml:",omitempty"`
	Group                  *SingleLineStringVar    `xml:"var-group,omitempty" json:",omitempty" yaml:",omitempty"`
	GroupNoVar             *SingleLineStringVar    `xml:"group,omitempty" json:",omitempty" yaml:",omitempty"`
	Interval               *Value                  `xml:"sampleInterval,omitempty" json:",omitempty" yaml:",omitempty"`
	SampleOnStartup        bool                    `xml:"sampleOnStartup" json:",omitempty" yaml:",omitempty"`
	Plugin                 *Plugin                 `xml:"plugin,omitempty" json:"plugin,omitempty" yaml:"plugin,omitempty"`
	Dataviews              *[]Dataview             `xml:"dataviews>dataview,omitempty" json:",omitempty" yaml:",omitempty"`
	Schemas                *Schemas                `xml:"schemas,omitempty" json:",omitempty" yaml:",omitempty"`
	StandardisedFormatting *StandardisedFormatting `xml:"standardisedFormatting,omitempty" json:",omitempty" yaml:",omitempty"`
}

A Sampler is a Geneos Sampler structure. The Plugin field should be populated with a pointer to a Plugin struct of the wanted type.

type SamplerGroup added in v1.3.0

type SamplerGroup struct {
	XMLName       xml.Name       `xml:"samplerGroup" json:"-" yaml:"-"`
	Name          string         `xml:"name,attr"`
	Disabled      bool           `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Samplers      []Sampler      `xml:"sampler,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"sampler"`
	SamplerGroups []SamplerGroup `xml:"samplerGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"samplergroup"`
}

type SamplerRef added in v1.6.1

type SamplerRef struct {
	XMLName  xml.Name `xml:"sampler" json:"-" yaml:"-"`
	Name     string   `xml:"ref,attr" json:",omitempty" yaml:",omitempty"`
	Disabled bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
}

type SamplerWithType added in v1.6.1

type SamplerWithType struct {
	XMLName xml.Name `xml:"sampler" json:"-" yaml:"-"`
	Sampler string   `xml:"ref,attr"`
	Type    TypeRef  `xml:"type"`
}

type Samplers

type Samplers struct {
	XMLName       xml.Name       `xml:"samplers" json:"-" yaml:"-"`
	Samplers      []Sampler      `xml:"sampler,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"sampler"`
	SamplerGroups []SamplerGroup `xml:"samplerGroup,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"samplergroup"`
}

type Schema added in v1.4.3

type Schema struct {
	Headlines *[]SchemaTypedItem `xml:"headlines>headline,omitempty"`
	Columns   *[]SchemaTypedItem `xml:"columns>column,omitempty"`
	Pivot     bool               `xml:"pivot,omitempty"`
	Publish   bool               `xml:"publish"`
}

type SchemaTypedItem added in v1.4.3

type SchemaTypedItem struct {
	Name     string         `xml:"name"`
	String   *EmptyStruct   `xml:"string,omitempty"`
	Boolean  *EmptyStruct   `xml:"boolean,omitempty"`
	Float32  *UnitOfMeasure `xml:"float32,omitempty"`
	Float64  *UnitOfMeasure `xml:"float64,omitempty"`
	Int32    *UnitOfMeasure `xml:"int32,omitempty"`
	Int64    *UnitOfMeasure `xml:"int64,omitempty"`
	Date     *EmptyStruct   `xml:"date,omitempty"`
	DateTime *EmptyStruct   `xml:"dateTime,omitempty"`
}

type Schemas added in v1.4.3

type Schemas struct {
	Dataviews *[]DataviewSchema `xml:"dataviews>dataviewSchema,omitempty"`
}

type Service added in v1.6.6

type Service struct {
	ServiceName        *ServiceName        `xml:"serviceName,omitempty" json:"name,omitempty" yaml:"name,omitempty"`
	ServiceDescription *ServiceDescription `xml:"serviceDescription,omitempty" json:"description,omitempty" yaml:"description,omitempty"`
}

type ServiceDescription added in v1.6.6

type ServiceDescription struct {
	Basic *SingleLineStringVar `xml:"basic>pattern,omitempty" json:"basic,omitempty" yaml:"basic,omitempty"`
	Regex *Regex               `xml:"regex,omitempty" json:"regex,omitempty" yaml:"regex,omitempty"`
}

type ServiceName added in v1.6.6

type ServiceName struct {
	Basic                *SingleLineStringVar `xml:"basic>pattern,omitempty" json:"basic,omitempty" yaml:"basic,omitempty"`
	BasicShowUnavailable bool                 `xml:"basic>showIfUnavailable,omitempty" json:"showIfUnavailable,omitempty" yaml:"showIfUnavailable,omitempty"`
	Regex                *Value               `xml:"regex,omitempty" json:"regex,omitempty" yaml:"regex,omitempty"`
}

type SingleLineStringVar added in v1.6.3

type SingleLineStringVar struct {
	Parts []interface{}
}

A SingleLineStringVar is a container for a single line string that can be made up of static text and variable references. Use like this:

type MyContainer struct {
    XMLName  xml.Name             `xml:"mycontainer"`
    VarField *SingleLineStringVar `xml:"fieldname"`
}

func blah() {
    x := MyContainer{
        VarField: geneos.SingleLineStringVar("hello $(var) world!")
    }
    ...
}

func NewSingleLineString

func NewSingleLineString(in string) (s *SingleLineStringVar)

NewSingleLineString take a plain string and locates any Geneos style variables of the form $(var) - note these are parenthesis and not brackets - and splits the string into Data and Var parts as required so that this can be used directly in the XML encodings.

func (*SingleLineStringVar) MarshalJSON added in v1.6.3

func (s *SingleLineStringVar) MarshalJSON() (out []byte, err error)

func (*SingleLineStringVar) MarshalYAML added in v1.6.3

func (s *SingleLineStringVar) MarshalYAML() (out interface{}, err error)

func (*SingleLineStringVar) String added in v1.6.3

func (s *SingleLineStringVar) String() (out string)

func (*SingleLineStringVar) UnmarshalXML added in v1.6.3

func (v *SingleLineStringVar) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML satisfies the XML Unmarshaler interface

type StandardisedFormatting added in v1.4.3

type StandardisedFormatting struct {
	Dataviews []StandardisedFormattingDataview `xml:"dataviews>dataview,omitempty" json:",omitempty" yaml:",omitempty"`
}

type StandardisedFormattingApplicability added in v1.4.3

type StandardisedFormattingApplicability struct {
	Headlines []Regex                      `xml:"headlines>pattern,omitempty"`
	Columns   []Regex                      `xml:"columns>pattern,omitempty"`
	Cells     []StandardisedFormattingCell `xml:"cells>cell,omitempty"`
}

type StandardisedFormattingCell added in v1.4.3

type StandardisedFormattingCell struct {
	Row    string `xml:"row"`
	Column string `xml:"column"`
}

type StandardisedFormattingDataview added in v1.4.3

type StandardisedFormattingDataview struct {
	Name      string                           `xml:"name"` // do not omitempty
	Variables []StandardisedFormattingVariable `xml:"variables>variable"`
}

type StandardisedFormattingDateTime added in v1.4.3

type StandardisedFormattingDateTime struct {
	Formats                   []string `xml:"formats>format,omitempty"`
	Exceptions                []string `xml:"exceptions,omitempty"`
	IgnoreErrorsIfFormatFails bool     `xml:"ignoreErrorsIfFormatsFail,omitempty"`
	OverrideTimezone          string   `xml:"overrideTimezone,omitempty"`
}

type StandardisedFormattingType added in v1.4.3

type StandardisedFormattingType struct {
	DateTime *StandardisedFormattingDateTime `xml:"dateTime"`
}

type StandardisedFormattingVariable added in v1.4.3

type StandardisedFormattingVariable struct {
	Type          *StandardisedFormattingType          `xml:"type"`
	Applicability *StandardisedFormattingApplicability `xml:"applicability"`
}

type StateTrackerColumns added in v1.6.3

type StateTrackerColumns struct {
	RenameTrackerColumn *SingleLineStringVar   `xml:"renameTrackerColumn"`
	Columns             []*SingleLineStringVar `xml:"column"`
}

type StateTrackerGroup added in v1.6.3

type StateTrackerGroup struct {
	Name     string                 `xml:"name,attr"`
	Trackers []*StateTrackerTracker `xml:"trackers>tracker,omitempty"`
}

type StateTrackerPerformance added in v1.6.3

type StateTrackerPerformance struct {
	SkipMidsampleUpdates   *Value `xml:"skipMidSampleUpdates,omitempty"`
	MaxMessagesPerSample   *Value `xml:"maxMessagesPerSample,omitempty"`
	MinimumReservedRowpace *Value `xml:"minimumReservedRowspace,omitempty"`
}

type StateTrackerPlugin added in v1.6.2

type StateTrackerPlugin struct {
	XMLName         xml.Name                     `xml:"stateTracker" json:"-" yaml:"-"`
	Columns         StateTrackerColumns          `xml:"columns"`
	TemplateOptions *StateTrackerTemplateOptions `xml:"templateOptions,omitempty"`
	Performance     *StateTrackerPerformance     `xml:"performance,omitempty"`
	TrackerGroup    []StateTrackerGroup          `xml:"trackerGroup,omitempty"`
}

func (*StateTrackerPlugin) String added in v1.6.2

func (p *StateTrackerPlugin) String() string

type StateTrackerTemplateOptions added in v1.6.3

type StateTrackerTemplateOptions struct {
	HideTrackerIDs *Value `xml:"hideTrackerIDs"`
}

type StateTrackerTracker added in v1.6.3

type StateTrackerTracker struct {
	// XMLName        xml.Name             `xml:"tracker" json:"-" yaml:"-"`
	DeprecatedName string               `xml:"name,attr"`
	Name           *SingleLineStringVar `xml:"name"`
	Filename       *SingleLineStringVar `xml:"filename"`
	Stream         *SingleLineStringVar `xml:"stream"`
	Rewind         *Value               `xml:"rewind"`
	Template       *Value               `xml:"template"`
}

type Streams

type Streams struct {
	XMLName xml.Name               `xml:"streams" json:"-" yaml:"-"`
	Stream  []*SingleLineStringVar `xml:"stream"`
}

type StringList

type StringList struct {
	Strings []string `xml:"string" mapstructure:"string"`
}

func (*StringList) UnmarshalText added in v1.6.1

func (s *StringList) UnmarshalText(text []byte) error

UnmarshalText conforms to the mapstructure decode hook to covert an empty tag to a map, not a string (from mxj)

type Sybase

type Sybase struct {
	InterfaceEntry  *SingleLineStringVar `xml:"var-interfaceEntry,omitempty"`
	DBName          *SingleLineStringVar `xml:"var-databaseName,omitempty"`
	ApplicationName *SingleLineStringVar `xml:"var-applicationName,omitempty"`
}

func (*Sybase) UnmarshalXML added in v1.12.0

func (v *Sybase) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

UnmarshalXML deals with the case where merged XML configs have the "var-" prefix of the tags removed

type TCPLinksPlugin added in v1.6.6

type TCPLinksPlugin struct {
	XMLName      xml.Name              `xml:"tcp-links" json:"-" yaml:"-"`
	LocalPorts   []SingleLineStringVar `xml:"localPorts>port,omitempty" json:"localPorts,omitempty" yaml:"localPorts,omitempty"`
	RemotePorts  []SingleLineStringVar `xml:"remotePorts>port,omitempty" json:"remotePorts,omitempty" yaml:"remotePorts,omitempty"`
	Command      *SingleLineStringVar  `xml:"command,omitempty" json:"command,omitempty" xml:"command,omitempty"`
	NameContents *NameContents         `xml:"nameContents,omitempty" json:"nameContents,omitempty" yaml:"nameContents,omitempty"`
}

func (*TCPLinksPlugin) String added in v1.6.6

func (p *TCPLinksPlugin) String() string

type ToolkitPlugin

type ToolkitPlugin struct {
	XMLName              xml.Name               `xml:"toolkit" json:"-" yaml:"-"`
	SamplerScript        *SingleLineStringVar   `xml:"samplerScript"`
	SamplerTimeout       *Value                 `xml:"scriptTimeout,omitempty"`
	EnvironmentVariables *[]EnvironmentVariable `xml:"environmentVariables>variable"`
}

func (*ToolkitPlugin) String added in v1.6.2

func (p *ToolkitPlugin) String() string

type TopPlugin added in v1.6.3

type TopPlugin struct {
	XMLName xml.Name `xml:"top" json:"-" yaml:"-"`
}

func (*TopPlugin) String added in v1.6.3

func (p *TopPlugin) String() string

type Type

type Type struct {
	XMLName     xml.Name     `xml:"type" json:"-" yaml:"-"`
	Name        string       `xml:"name,attr"`
	Disabled    bool         `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Environment *Reference   `xml:"environment,omitempty" json:",omitempty" yaml:",omitempty"`
	Vars        []Vars       `xml:"var,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"var"`
	Samplers    []SamplerRef `xml:"sampler,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"sampler"`
}

type TypeGroup added in v1.6.1

type TypeGroup struct {
	XMLName    xml.Name    `xml:"typeGroup" json:"-" yaml:"-"`
	Name       string      `xml:"name,attr"`
	Disabled   bool        `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
	Types      []Type      `xml:"type,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"type"`
	TypeGroups []TypeGroup `xml:"typeGroup,omitempty" json:"typeGroup,omitempty" yaml:",omitempty" mapstructure:"typegroup"`
}

type TypeRef added in v1.4.1

type TypeRef struct {
	XMLName xml.Name `xml:"type" json:"-" yaml:"-"`
	Type    string   `xml:"ref,attr" json:",omitempty" yaml:",omitempty" mapstructure:"ref"`
}

type TypeRefWithEnv added in v1.6.1

type TypeRefWithEnv struct {
	XMLName     xml.Name        `xml:"type" json:"-" yaml:"-"`
	Type        string          `xml:"ref,attr" json:",omitempty" yaml:",omitempty" mapstructure:"ref"`
	Environment *EnvironmentRef `xml:",omitempty" json:",omitempty" yaml:",omitempty"`
}

type Types

type Types struct {
	XMLName    xml.Name    `xml:"types" json:"-" yaml:"-"`
	Types      []Type      `xml:"type,omitempty" json:",omitempty" yaml:",omitempty" mapstructure:"type"`
	TypeGroups []TypeGroup `xml:"typeGroup,omitempty" json:"typeGroup,omitempty" yaml:",omitempty" mapstructure:"typegroup"`
}

type UNIXUsersPlugin added in v1.6.3

type UNIXUsersPlugin struct {
	XMLName xml.Name `xml:"unix-users" json:"-" yaml:"-"`
}

func (*UNIXUsersPlugin) String added in v1.6.3

func (p *UNIXUsersPlugin) String() string

type UOM added in v1.4.3

type UOM string
const (
	None              UOM = ""
	Percent           UOM = "percent"
	Seconds           UOM = "seconds"
	Milliseconds      UOM = "milliseconds"
	Microseconds      UOM = "microseconds"
	Nanoseconds       UOM = "nanoseconds"
	Days              UOM = "days"
	PerSecond         UOM = "per second"
	Megahertz         UOM = "megahertz"
	Bytes             UOM = "bytes"
	Kibibytes         UOM = "kibibytes"
	Mebibytes         UOM = "mebibytes"
	Gibibytes         UOM = "gibibytes"
	BytesPerSecond    UOM = "bytes per second"
	Megabits          UOM = "megabits"
	MegabitsPerSecond UOM = "megabits per second"
)

type UnitOfMeasure added in v1.4.3

type UnitOfMeasure struct {
	Unit UOM `xml:"unitOfMeasure"`
}

type UnsupportedPlugin added in v1.6.3

type UnsupportedPlugin struct {
	XMLName xml.Name
	RawXML  string `xml:",innerxml" json:",omitempty" yaml:",omitempty"`
}

UnsupportedPlugin records any unsupported Plugin, capturing the element in XMLName and the raw XML in RawXML for later analysis.

type Value

type Value struct {
	Data   *Data  `xml:"data,omitempty" json:",omitempty" yaml:",omitempty"`
	Var    *Var   `xml:"var,omitempty" json:",omitempty" yaml:",omitempty"`
	ExtPwd string `xml:"extPwd,omitempty" json:",omitempty" yaml:",omitempty"`
	StdAES string `xml:"stdAES,omitempty" json:",omitempty" yaml:",omitempty"`
}

A Value is either a simple string or a variable

It can also contain an external password reference or an encoded password

func NewValue

func NewValue(in interface{}) (n *Value)

NewValue takes an argument and if a string removes leading and trailing spaces. If the string is of the form "$(var)" then returns a pointer to a VarData struct containing a Var{} or if a non-empty string returns a Data{}. If the string is empty then a nil pointer is returned. Any other value is copied as is. This allows `xml:",omitempty"“ to leave out VarData fields that contain no data.

func (*Value) String added in v1.6.1

func (s *Value) String() (out string)

func (*Value) UnmarshalXML added in v1.6.1

func (v *Value) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error)

type Var

type Var struct {
	XMLName xml.Name `xml:"var" json:"-" yaml:"-"`
	Var     string   `xml:"ref,attr"`
}

func (Var) String added in v1.6.1

func (v Var) String() string

type Vars

type Vars struct {
	XMLName       xml.Name       `xml:"var" json:"-" yaml:"-"`
	Name          string         `xml:"name,attr"`
	Boolean       *bool          `xml:"boolean,omitempty" json:",omitempty" yaml:",omitempty"`
	Double        *float64       `xml:"double,omitempty" json:",omitempty" yaml:",omitempty"`
	Integer       *int64         `xml:"integer,omitempty" json:",omitempty" yaml:",omitempty"`
	String        string         `xml:"string,omitempty" json:",omitempty" yaml:",omitempty"`
	StringList    *StringList    `xml:"stringList,omitempty" json:",omitempty" yaml:",omitempty"`
	NameValueList *NameValueList `xml:"nameValueList,omitempty" json:",omitempty" yaml:",omitempty"`
	Macro         *Macro         `xml:"macro,omitempty" json:",omitempty" yaml:",omitempty"`
	Regex         *Regex         `xml:"regex,omitempty" json:",omitempty" yaml:",omitempty"`
}

Vars is a container for specific variable types. Only one field should be set at a time. This list is not complete, much like many of the configuration settings.

func (Vars) GetKey added in v1.6.1

func (v Vars) GetKey() string

GetKey satisfies the KeyedObject interface

type VirtualProbe added in v1.6.1

type VirtualProbe struct {
	XMLName  xml.Name `xml:"virtualProbe" json:"-" yaml:"-"`
	Name     string   `xml:"name,attr" json:"name" yaml:"name"`
	Disabled bool     `xml:"disabled,attr,omitempty" json:",omitempty" yaml:",omitempty"`
}

type WMIPlugin added in v1.6.3

type WMIPlugin struct{}

func (*WMIPlugin) String added in v1.6.3

func (_ *WMIPlugin) String() string

type WTSSessionsPlugin added in v1.6.3

type WTSSessionsPlugin struct {
	XMLName xml.Name `xml:"wts-sessions" json:"-" yaml:"-"`
}

func (*WTSSessionsPlugin) String added in v1.6.3

func (p *WTSSessionsPlugin) String() string

type WebMonPlugin added in v1.6.3

type WebMonPlugin struct {
	XMLName xml.Name `xml:"web-mon" json:"-" yaml:"-"`
}

func (*WebMonPlugin) String added in v1.6.3

func (p *WebMonPlugin) String() string

type WinServicesPlugin added in v1.6.3

type WinServicesPlugin struct {
	XMLName     xml.Name              `xml:"win-services" json:"-" yaml:"-"`
	ServicesOld []SingleLineStringVar `xml:"services,omitempty" json:"servicesOld,omitempty" yaml:"servicesOld,omitempty"`
	Services    []Service             `xml:"servicesNew>service,omitempty" json:"services,omitempty" yaml:"services,omitempty"`
}

func (*WinServicesPlugin) String added in v1.6.3

func (p *WinServicesPlugin) String() string

type XPingPlugin added in v1.6.2

type XPingPlugin struct {
	XMLName           xml.Name   `xml:"x-ping" json:"-" yaml:"-"`
	TargetNodes       []Host     `xml:"targetNodes>targetNode,omitempty" json:"targetNode,omitempty" yaml:"targetNode,omitempty"`
	RecvInterfacesVar *Reference `xml:"recvInterfaces>var,omitempty" json:"recvInterfaceVar,omitempty" yaml:"recvInterfaceVar,omitempty"`
	RecvInterfaces    []Value    `xml:"recvInterfaces>data>recvInterface,omitempty" json:"recvInterface,omitempty" yaml:"recvInterface,omitempty"`
	SendInterface     *Value     `xml:"sendInterface" json:"sendInterface" yaml:"sendInterface"`
}

func (*XPingPlugin) String added in v1.6.2

func (p *XPingPlugin) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL