Documentation
¶
Index ¶
- Constants
- func RegisterRPCModule(module RPCModule)
- func UnregisterRPCModule(module RPCModule)
- type Broker
- type CircuitBreakerConfig
- type CollectionAgentDTO
- type CollectionAttributeDTO
- type CollectionResourceDTO
- type CollectionSetBuilder
- func (builder *CollectionSetBuilder) Build() *CollectionSetDTO
- func (builder *CollectionSetBuilder) WithAttribute(resource *CollectionResourceDTO, groupName string, metricName string, ...) *CollectionSetBuilder
- func (builder *CollectionSetBuilder) WithMetric(resource *CollectionResourceDTO, metric ResourceAttributeDTO) *CollectionSetBuilder
- func (builder *CollectionSetBuilder) WithStatus(status string) *CollectionSetBuilder
- func (builder *CollectionSetBuilder) WithTimestamp(ts time.Time) *CollectionSetBuilder
- type CollectionSetDTO
- type CollectorRequestDTO
- type CollectorResponseDTO
- type DNSConfig
- type DNSLookupRequestDTO
- type DNSLookupResponseDTO
- type DetectorAttributeDTO
- type DetectorRequestDTO
- func (req *DetectorRequestDTO) GetAttributeValue(key string, defaultValue string) string
- func (req *DetectorRequestDTO) GetAttributeValueAsInt(key string) int
- func (req *DetectorRequestDTO) GetDetector() string
- func (req *DetectorRequestDTO) GetRetries() int
- func (req *DetectorRequestDTO) GetRuntimeAttributeValue(key string) string
- func (req *DetectorRequestDTO) GetRuntimeAttributeValueAsInt(key string) int
- func (req *DetectorRequestDTO) GetTimeout() time.Duration
- type DetectorResponseDTO
- type EchoRequest
- type EchoResponse
- type GenericTypeResourceDTO
- type HTTPAttribute
- type HTTPAttributeList
- type HTTPCollection
- type HTTPUri
- type HTTPUriList
- type HTTPUrl
- type InterfaceLevelResourceDTO
- type Metrics
- type MinionConfig
- func (cfg *MinionConfig) GetBrokerProperty(property string) string
- func (cfg *MinionConfig) GetHeaderResponse() *ipc.RpcResponseProto
- func (cfg *MinionConfig) GetListener(name string) *MinionListener
- func (cfg *MinionConfig) GetListenerByParser(parser string) *MinionListener
- func (cfg *MinionConfig) IsValid() error
- func (cfg *MinionConfig) ParseListeners(csvs []string) error
- func (cfg *MinionConfig) String() string
- type MinionIdentityDTO
- type MinionListener
- type NodeLevelResourceDTO
- type PingRequest
- type PingResponse
- type PollStatus
- type PollStatusProperty
- type PollStatusPropertyList
- type PollerAttributeDTO
- type PollerRequestDTO
- func (req *PollerRequestDTO) GetAttributeContent(key string) string
- func (req *PollerRequestDTO) GetAttributeValue(key string, defaultValue string) string
- func (req *PollerRequestDTO) GetAttributeValueAsInt(key string, defaultValue int) int
- func (req *PollerRequestDTO) GetMonitor() string
- func (req *PollerRequestDTO) GetRetries() int
- func (req *PollerRequestDTO) GetTimeout() time.Duration
- type PollerResponseDTO
- type RPCModule
- type RRA
- type RRD
- type ResourceAttributeDTO
- type SNMPAgentDTO
- type SNMPClient
- func (cli *SNMPClient) BulkWalk(rootOid string, walkFn gosnmp.WalkFunc) error
- func (cli *SNMPClient) Connect() error
- func (cli *SNMPClient) Disconnect() error
- func (cli *SNMPClient) Get(oid string) (result *gosnmp.SnmpPacket, err error)
- func (cli *SNMPClient) Target() string
- func (cli *SNMPClient) Version() string
- type SNMPGetRequestDTO
- type SNMPHandler
- type SNMPMultiResponseDTO
- type SNMPRequestDTO
- type SNMPResponseDTO
- type SNMPResultDTO
- type SNMPResults
- type SNMPValueDTO
- type SNMPWalkRequestDTO
- type ServiceCollector
- type ServiceDetector
- type ServiceMonitor
- type Sink
- type SinkModule
- type SinkRegistry
- func (r *SinkRegistry) GetAllModules() []SinkModule
- func (r *SinkRegistry) Init()
- func (r *SinkRegistry) RegisterModule(module SinkModule)
- func (r *SinkRegistry) StartModules(config *MinionConfig, sink Sink) error
- func (r *SinkRegistry) StopModules()
- func (r *SinkRegistry) UnregisterModule(module SinkModule)
- type SyslogMessageDTO
- type SyslogMessageLogDTO
- type Timestamp
- type TrapDTO
- type TrapIdentityDTO
- type TrapLogDTO
- type XMLCollection
- type XMLGroup
- type XMLObject
- type XMLRequest
- type XMLRequestContent
- type XMLRequestHeader
- type XMLRequestParameter
- type XMLResourceKey
- type XMLSource
Constants ¶
const CollectionStatusFailed = "FAILED"
CollectionStatusFailed collection failed
const CollectionStatusSucceded = "SUCCEEDED"
CollectionStatusSucceded collection finished successfully
const CollectionStatusUnknown = "UNKNOWN"
CollectionStatusUnknown status unknown
const DefaultRetries = 2
DefaultRetries default retries
const DefaultTimeout = 3 * time.Second
DefaultTimeout default timeout duration
const ServiceAvailable = "Up"
ServiceAvailable poll status name available
const ServiceAvailableCode = 1
ServiceAvailableCode poll status cod for ServiceAvailable
ServiceUnavailable poll status name unavailable
ServiceUnavailableCode poll status cod for ServiceUnavailable
const ServiceUnknown = "Unknown"
ServiceUnknown poll status name unknown
const ServiceUnknownCode = 0
ServiceUnknownCode poll status cod for ServiceUnknown
const ServiceUnresponsive = "Unresponsive"
ServiceUnresponsive poll status name unavailable
const ServiceUnresponsiveCode = 3
ServiceUnresponsiveCode poll status cod for ServiceUnresponsive
const TimeFormat = "2006-01-02T15:04:05.000-07:00"
TimeFormat the format to be used to marshal/unmarshal date from strings
Variables ¶
This section is empty.
Functions ¶
func RegisterRPCModule ¶
func RegisterRPCModule(module RPCModule)
RegisterRPCModule registers a new RPC Module implementation
func UnregisterRPCModule ¶
func UnregisterRPCModule(module RPCModule)
UnregisterRPCModule unregister an existing RPC Module implementation
Types ¶
type Broker ¶
type Broker interface {
// Starts the broker (non-blocking method)
Start() error
// Shuts down the broker
Stop()
}
Broker represents a broker implementation to control its life cycle
type CircuitBreakerConfig ¶
type CircuitBreakerConfig struct {
MaxRequests uint32 `yaml:"maxRequests,omitempty" json:"maxRequests,omitempty"`
Interval int `yaml:"interval,omitempty" json:"interval,omitempty"`
Timeout int `yaml:"timeout,omitempty" json:"timeout,omitempty"`
}
CircuitBreakerConfig Circuit Breaker Configuration
type CollectionAgentDTO ¶
type CollectionAgentDTO struct {
XMLName xml.Name `xml:"agent"`
IPAddress string `xml:"address,attr"`
StoreByFS bool `xml:"store-by-fs,attr"`
NodeID int `xml:"node-id,attr"`
NodeLabel string `xml:"node-label,attr"`
ForeignSource string `xml:"foreign-source,attr,omitempty"`
ForeignID string `xml:"foreign-id,attr,omitempty"`
Location string `xml:"location,attr,omitempty"`
StorageResourcePath string `xml:"storage-resource-path,attr"`
SysUpTime int64 `xml:"sys-up-time,attr"`
Attributes []CollectionAttributeDTO `xml:"attribute,omitempty"`
}
CollectionAgentDTO represents a collection agent
type CollectionAttributeDTO ¶
type CollectionAttributeDTO struct {
XMLName xml.Name `xml:"attribute"`
Key string `xml:"key,attr"`
Content string `xml:",innerxml"`
}
CollectionAttributeDTO represents a collection attribute
type CollectionResourceDTO ¶
type CollectionResourceDTO struct {
XMLName xml.Name `xml:"collection-resource"`
Name string `xml:"name,attr,omitempty"`
ResourceType interface{} // NodeLevelResourceDTO, InterfaceLevelResourceDTO, or GenericTypeResourceDTO
Resources []CollectionResourceDTO `xml:"resource"`
NumericAttributes []ResourceAttributeDTO `xml:"numeric-attribute"`
StringAttributes []ResourceAttributeDTO `xml:"string-attribute"`
}
CollectionResourceDTO represents a collection resource
func (*CollectionResourceDTO) AddAttribute ¶
func (resource *CollectionResourceDTO) AddAttribute(attr ResourceAttributeDTO)
AddAttribute adds an attribute
type CollectionSetBuilder ¶
type CollectionSetBuilder struct {
Agent *CollectionAgentDTO
// contains filtered or unexported fields
}
CollectionSetBuilder represents a collection set builder
func NewCollectionSetBuilder ¶
func NewCollectionSetBuilder(agent *CollectionAgentDTO) *CollectionSetBuilder
NewCollectionSetBuilder returns a new CollectionSet builder
func (*CollectionSetBuilder) Build ¶
func (builder *CollectionSetBuilder) Build() *CollectionSetDTO
Build generates the collection set
func (*CollectionSetBuilder) WithAttribute ¶
func (builder *CollectionSetBuilder) WithAttribute(resource *CollectionResourceDTO, groupName string, metricName string, metricValue string, metricType string) *CollectionSetBuilder
WithAttribute adds an attribute
func (*CollectionSetBuilder) WithMetric ¶ added in v0.1.5
func (builder *CollectionSetBuilder) WithMetric(resource *CollectionResourceDTO, metric ResourceAttributeDTO) *CollectionSetBuilder
WithMetric adds a metric/attribute object
func (*CollectionSetBuilder) WithStatus ¶
func (builder *CollectionSetBuilder) WithStatus(status string) *CollectionSetBuilder
WithStatus sets the status
func (*CollectionSetBuilder) WithTimestamp ¶
func (builder *CollectionSetBuilder) WithTimestamp(ts time.Time) *CollectionSetBuilder
WithTimestamp sets the timestamp
type CollectionSetDTO ¶
type CollectionSetDTO struct {
XMLName xml.Name `xml:"collection-set"`
Timestamp *Timestamp `xml:"timestamp,attr"`
Status string `xml:"collection-status,attr"`
DisableCounterPersistence bool `xml:"disable-counter-persistence,attr,omitempty"`
SequenceNumber int `xml:"sequence-number,attr,omitempty"`
Agent *CollectionAgentDTO `xml:"agent"`
Resources []CollectionResourceDTO `xml:"collection-resource"`
}
CollectionSetDTO represents a collection set
func (*CollectionSetDTO) AddResource ¶
func (set *CollectionSetDTO) AddResource(resource CollectionResourceDTO)
AddResource adds a new resource to the collection set
type CollectorRequestDTO ¶
type CollectorRequestDTO struct {
XMLName xml.Name `xml:"collector-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
ClassName string `xml:"class-name,attr"`
AttributesNeedUnmarshaling bool `xml:"attributes-need-unmarshaling,attr"`
CollectionAgent *CollectionAgentDTO `xml:"agent,omitempty"`
Attributes []CollectionAttributeDTO `xml:"attribute,omitempty"`
}
CollectorRequestDTO represents a collector request
func (*CollectorRequestDTO) GetAttributeValue ¶
func (req *CollectorRequestDTO) GetAttributeValue(key string, defaultValue string) string
GetAttributeValue gets the value of a given attribute
func (*CollectorRequestDTO) GetCollector ¶
func (req *CollectorRequestDTO) GetCollector() string
GetCollector returns the simple class name for the collector implementation
func (*CollectorRequestDTO) GetResourcePath ¶
func (req *CollectorRequestDTO) GetResourcePath() string
GetResourcePath returns the base resource path
func (*CollectorRequestDTO) GetTimeout ¶
func (req *CollectorRequestDTO) GetTimeout() time.Duration
GetTimeout extracts the duration of the timeout attribute if available; otherwise returns default value
type CollectorResponseDTO ¶
type CollectorResponseDTO struct {
XMLName xml.Name `xml:"collector-response"`
Error string `xml:"error,attr,omitempty"`
CollectionSet *CollectionSetDTO `xml:"collection-set"`
}
CollectorResponseDTO represents a collector response
func (*CollectorResponseDTO) GetStatus ¶
func (set *CollectorResponseDTO) GetStatus() string
GetStatus returns the collection status as a string
func (*CollectorResponseDTO) MarkAsFailed ¶
func (set *CollectorResponseDTO) MarkAsFailed(agent *CollectionAgentDTO, err error)
MarkAsFailed sets the response as failed
type DNSConfig ¶
type DNSConfig struct {
NameServer string `yaml:"nameServer,omitempty" json:"nameServer,omitempty"`
Timeout int `yaml:"timeout,omitempty" json:"timeout,omitempty"`
CacheRefreshDuration int `yaml:"cacheRefreshDuration,omitempty" json:"cacheRefreshDuration,omitempty"`
CircuitBreaker CircuitBreakerConfig `yaml:"circuitBreaker" json:"circuitBreaker"`
}
DNSConfig DNS Configuration
type DNSLookupRequestDTO ¶
type DNSLookupRequestDTO struct {
XMLName xml.Name `xml:"dns-lookup-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
HostRequest string `xml:"host-request,attr"`
QueryType string `xml:"query-type,attr"`
}
DNSLookupRequestDTO represents a DNS Lookup request
type DNSLookupResponseDTO ¶
type DNSLookupResponseDTO struct {
XMLName xml.Name `xml:"dns-lookup-response"`
HostResponse string `xml:"host-response,attr,omitempty"`
Error string `xml:"error,attr,omitempty"`
}
DNSLookupResponseDTO represents a DNS Lookup response
type DetectorAttributeDTO ¶
DetectorAttributeDTO represents a detector attribute
type DetectorRequestDTO ¶
type DetectorRequestDTO struct {
XMLName xml.Name `xml:"detector-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
ClassName string `xml:"class-name,attr"`
IPAddress string `xml:"address,attr"`
DetectorAttributes []DetectorAttributeDTO `xml:"detector-attribute,omitempty"`
RuntimeAttributes []DetectorAttributeDTO `xml:"runtime-attribute,omitempty"`
}
DetectorRequestDTO represents a detector request
func (*DetectorRequestDTO) GetAttributeValue ¶
func (req *DetectorRequestDTO) GetAttributeValue(key string, defaultValue string) string
GetAttributeValue extract the value of a given detector attribute
func (*DetectorRequestDTO) GetAttributeValueAsInt ¶
func (req *DetectorRequestDTO) GetAttributeValueAsInt(key string) int
GetAttributeValueAsInt extract the value as an integer of a given detector attribute
func (*DetectorRequestDTO) GetDetector ¶
func (req *DetectorRequestDTO) GetDetector() string
GetDetector returns the simple class name for the detector implementation
func (*DetectorRequestDTO) GetRetries ¶
func (req *DetectorRequestDTO) GetRetries() int
GetRetries extracts the retries attribute if available; otherwise returns default value
func (*DetectorRequestDTO) GetRuntimeAttributeValue ¶
func (req *DetectorRequestDTO) GetRuntimeAttributeValue(key string) string
GetRuntimeAttributeValue extract the value of a given runtime attribute
func (*DetectorRequestDTO) GetRuntimeAttributeValueAsInt ¶
func (req *DetectorRequestDTO) GetRuntimeAttributeValueAsInt(key string) int
GetRuntimeAttributeValueAsInt extract the value as an integer of a given runtime attribute
func (*DetectorRequestDTO) GetTimeout ¶
func (req *DetectorRequestDTO) GetTimeout() time.Duration
GetTimeout extracts the duration of the timeout attribute if available; otherwise returns default value
type DetectorResponseDTO ¶
type DetectorResponseDTO struct {
XMLName xml.Name `xml:"detector-response"`
Error string `xml:"error,attr,omitempty"`
Detected bool `xml:"detected,attr"`
Attributes []DetectorAttributeDTO `xml:"attribute,omitempty"`
}
DetectorResponseDTO represents a detector response
func (DetectorResponseDTO) GetStatus ¶
func (response DetectorResponseDTO) GetStatus() string
GetStatus returns the detection status as a string
type EchoRequest ¶
type EchoRequest struct {
XMLName xml.Name `xml:"echo-request"`
ID int64 `xml:"id,attr"`
Message string `xml:"message,attr"`
Body string `xml:"body,omitempty"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
Delay int64 `xml:"delay,attr"`
ShouldThrow bool `xml:"throw,attr"`
}
EchoRequest represents an echo request
type EchoResponse ¶
type EchoResponse struct {
XMLName xml.Name `xml:"echo-response"`
ID int64 `xml:"id,attr"`
Message string `xml:"message,attr,omitempty"`
Body string `xml:"body,omitempty"`
Error string `xml:"error,attr,omitempty"`
}
EchoResponse represents an echo response
type GenericTypeResourceDTO ¶
type GenericTypeResourceDTO struct {
XMLName xml.Name `xml:"generic-type-resource"`
Node *NodeLevelResourceDTO `xml:"node-level-resource"`
Name string `xml:"name,attr"`
Fallback string `xml:"fallback,attr"`
Instance string `xml:"instance,attr"`
Timestamp *Timestamp `xml:"timestamp,attr,omitempty"`
}
GenericTypeResourceDTO represents a Generic Level Resource Type
type HTTPAttribute ¶
type HTTPAttribute struct {
XMLName xml.Name `xml:"attrib"`
Alias string `xml:"alias,attr"`
MatchGroup int `xml:"match-group,attr"`
Type string `xml:"type,attr"`
}
HTTPAttribute represents an HTTP attribute
type HTTPAttributeList ¶
type HTTPAttributeList struct {
XMLName xml.Name `xml:"attributes"`
AttributeList []HTTPAttribute `xml:"attrib"`
}
HTTPAttributeList represents a list of HTTP attributes object
type HTTPCollection ¶
type HTTPCollection struct {
XMLName xml.Name `xml:"http-collection"`
Name string `xml:"name,attr"`
RRD *RRD `xml:"rrd"`
URIs *HTTPUriList `xml:"uris"`
}
HTTPCollection represents an HTTP collection object
func (*HTTPCollection) AddURI ¶
func (collection *HTTPCollection) AddURI(uri HTTPUri)
AddURI adds a new URI to the HTTP collection
func (*HTTPCollection) FindURI ¶
func (collection *HTTPCollection) FindURI(name string) *HTTPUri
FindURI finds a URI by its name
type HTTPUri ¶
type HTTPUri struct {
XMLName xml.Name `xml:"uri"`
Name string `xml:"name,attr"`
URL *HTTPUrl `xml:"url"`
Attributes *HTTPAttributeList `xml:"attributes"`
}
HTTPUri represents an HTTP URI object
func (*HTTPUri) AddAttribute ¶
func (uri *HTTPUri) AddAttribute(attrib HTTPAttribute)
AddAttribute adds a new HTTP attribute
func (*HTTPUri) FindAttributeByAlias ¶
func (uri *HTTPUri) FindAttributeByAlias(alias string) *HTTPAttribute
FindAttributeByAlias finds an attribute by alias
func (*HTTPUri) FindAttributeByMatchGroup ¶
func (uri *HTTPUri) FindAttributeByMatchGroup(matchGroup int) *HTTPAttribute
FindAttributeByMatchGroup finds an attribute by match group
type HTTPUriList ¶
HTTPUriList represents a list of HTTP URI object
type HTTPUrl ¶
type HTTPUrl struct {
XMLName xml.Name `xml:"url"`
Path string `xml:"path,attr"`
UserAgent string `xml:"user-agent,attr"`
Matches string `xml:"matches,attr"`
ResponseRange string `xml:"response-range,attr"`
}
HTTPUrl represents an HTTP URL object
type InterfaceLevelResourceDTO ¶
type InterfaceLevelResourceDTO struct {
XMLName xml.Name `xml:"interface-level-resource"`
Node *NodeLevelResourceDTO `xml:"node-level-resource"`
IntfName string `xml:"if-name,attr"`
Timestamp *Timestamp `xml:"timestamp,attr,omitempty"`
}
InterfaceLevelResourceDTO represents an Interface Level Resource Type
type Metrics ¶ added in v0.1.2
type Metrics struct {
SinkMsgDeliverySucceeded *prometheus.CounterVec // Sink messages successfully delivered
SinkMsgDeliveryFailed *prometheus.CounterVec // Failed attempts to send Sink messages
RPCReqReceivedSucceeded *prometheus.CounterVec // RPC requests successfully received
RPCReqReceivedFailed *prometheus.CounterVec // Failed attempts to receive RPC requests
RPCReqProcessedSucceeded *prometheus.CounterVec // RPC requests successfully processed
RPCReqProcessedFailed *prometheus.CounterVec // Failed attempts to process RPC requests
RPCResSentSucceeded *prometheus.CounterVec // RPC responses successfully sent
RPCResSentFailed *prometheus.CounterVec // Failed attempts to send RPC responses
}
Metrics represents the broker metric set per module
func NewMetrics ¶ added in v0.1.2
func NewMetrics() *Metrics
NewMetrics returns a new Metrics object
type MinionConfig ¶
type MinionConfig struct {
ID string `yaml:"id" json:"id"`
Location string `yaml:"location" json:"location"`
BrokerURL string `yaml:"brokerUrl" json:"brokerUrl"`
BrokerType string `yaml:"brokerType" json:"brokerType"`
BrokerProperties map[string]string `yaml:"brokerProperties,omitempty" json:"brokerProperties,omitempty"`
TrapPort int `yaml:"trapPort" json:"trapPort"`
SyslogPort int `yaml:"syslogPort" json:"syslogPort"`
StatsPort int `yaml:"statsPort" json:"statsPort"`
LogLevel string `yaml:"logLevel" json:"logLevel"`
DNS *DNSConfig `yaml:"dns,omitempty" json:"dns,omitempty"`
Listeners []MinionListener `yaml:"listeners,omitempty" json:"listeners,omitempty"`
}
MinionConfig represents basic Minion Configuration
func (*MinionConfig) GetBrokerProperty ¶ added in v0.1.9
func (cfg *MinionConfig) GetBrokerProperty(property string) string
func (*MinionConfig) GetHeaderResponse ¶
func (cfg *MinionConfig) GetHeaderResponse() *ipc.RpcResponseProto
GetHeaderResponse builds an RPC response with the headers context
func (*MinionConfig) GetListener ¶
func (cfg *MinionConfig) GetListener(name string) *MinionListener
GetListener gets a given listener by name
func (*MinionConfig) GetListenerByParser ¶
func (cfg *MinionConfig) GetListenerByParser(parser string) *MinionListener
GetListenerByParser gets a given listener by parser name
func (*MinionConfig) IsValid ¶
func (cfg *MinionConfig) IsValid() error
IsValid returns an error if the configuration is not valid
func (*MinionConfig) ParseListeners ¶
func (cfg *MinionConfig) ParseListeners(csvs []string) error
ParseListeners parses an array of listeners in CSV format
func (*MinionConfig) String ¶
func (cfg *MinionConfig) String() string
type MinionIdentityDTO ¶
type MinionIdentityDTO struct {
XMLName xml.Name `xml:"minion"`
ID string `xml:"id"`
Location string `xml:"location"`
Timestamp *Timestamp `xml:"timestamp"`
}
MinionIdentityDTO represents the Minion Identity
type MinionListener ¶
type MinionListener struct {
Name string `yaml:"name" json:"name"`
Parser string `yaml:"parser" json:"parser"`
Port int `yaml:"port" json:"port"`
Properties map[string]string `yaml:"properties,omitempty" json:"properties,omitempty"`
}
MinionListener represents a Minion Listener
func (*MinionListener) GetParser ¶
func (listener *MinionListener) GetParser() string
GetParser returns the simple class name for the parser implementation
func (*MinionListener) Is ¶
func (listener *MinionListener) Is(parser string) bool
Is returns true if the listener matches a given parser
type NodeLevelResourceDTO ¶
type NodeLevelResourceDTO struct {
XMLName xml.Name `xml:"node-level-resource"`
NodeID int `xml:"node-id,attr"`
Path string `xml:"path,attr,omitempty"`
Timestamp *Timestamp `xml:"timestamp,attr,omitempty"`
}
NodeLevelResourceDTO represents a Node Level Resource Type
type PingRequest ¶
type PingRequest struct {
XMLName xml.Name `xml:"ping-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
Retries int `xml:"retries,attr"`
Timeout int `xml:"timeout,attr"`
Address string `xml:"address"`
PacketSize int `xml:"packet-size"`
}
PingRequest represents a ping request
func (*PingRequest) GetTimeout ¶
func (req *PingRequest) GetTimeout() time.Duration
GetTimeout gets the timeout duration
type PingResponse ¶
type PingResponse struct {
XMLName xml.Name `xml:"ping-response"`
RTT float64 `xml:"rtt,omitempty"`
Error string `xml:"error,attr,omitempty"`
}
PingResponse represents a ping response
type PollStatus ¶
type PollStatus struct {
XMLName xml.Name `xml:"poll-status"`
Timestamp *Timestamp `xml:"time,attr,omitempty"`
Reason string `xml:"reason,attr,omitempty"`
ResponseTime float64 `xml:"response-time,attr"`
StatusCode int `xml:"code,attr"`
StatusName string `xml:"name,attr"`
Properties *PollStatusPropertyList `xml:"properties,omitempty"`
}
PollStatus represents a poll status
func (*PollStatus) Down ¶
func (status *PollStatus) Down(reason string)
Down update the poll status for an unavailable service
func (*PollStatus) GetPropertyValue ¶
func (status *PollStatus) GetPropertyValue(key string) float64
GetPropertyValue adds or updates an existing property
func (*PollStatus) SetProperty ¶
func (status *PollStatus) SetProperty(key string, value float64)
SetProperty adds or updates an existing property
func (*PollStatus) Unknown ¶
func (status *PollStatus) Unknown(reason string)
Unknown update the poll status to be unknown
func (*PollStatus) Up ¶
func (status *PollStatus) Up(responseTime float64) *PollStatus
Up update the poll status for an available service
type PollStatusProperty ¶
type PollStatusProperty struct {
XMLName xml.Name `xml:"property"`
Key string `xml:"key,attr"`
Value float64 `xml:",chardata"`
}
PollStatusProperty represents a poll status property
type PollStatusPropertyList ¶
type PollStatusPropertyList struct {
XMLName xml.Name `xml:"properties"`
PropertyList []PollStatusProperty `xml:"property"`
}
PollStatusPropertyList represents a poll status property list
type PollerAttributeDTO ¶
type PollerAttributeDTO struct {
Key string `xml:"key,attr"`
Value string `xml:"value,attr"`
Content string `xml:",innerxml"`
}
PollerAttributeDTO represents a poller atrribute
type PollerRequestDTO ¶
type PollerRequestDTO struct {
XMLName xml.Name `xml:"poller-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
ClassName string `xml:"class-name,attr"`
ServiceName string `xml:"service-name,attr"`
IPAddress string `xml:"address,attr"`
NodeID string `xml:"node-id,attr"`
NodeLabel string `xml:"node-label,attr"`
NodeLocation string `xml:"node-location,attr"`
Attributes []PollerAttributeDTO `xml:"attribute,omitempty"`
}
PollerRequestDTO represents a poller request
func (*PollerRequestDTO) GetAttributeContent ¶
func (req *PollerRequestDTO) GetAttributeContent(key string) string
GetAttributeContent gets the value of a given attribute
func (*PollerRequestDTO) GetAttributeValue ¶
func (req *PollerRequestDTO) GetAttributeValue(key string, defaultValue string) string
GetAttributeValue gets the value of a given attribute
func (*PollerRequestDTO) GetAttributeValueAsInt ¶
func (req *PollerRequestDTO) GetAttributeValueAsInt(key string, defaultValue int) int
GetAttributeValueAsInt gets the value of a given attribute as integer
func (*PollerRequestDTO) GetMonitor ¶
func (req *PollerRequestDTO) GetMonitor() string
GetMonitor returns the simple class name for the monitor implementation
func (*PollerRequestDTO) GetRetries ¶
func (req *PollerRequestDTO) GetRetries() int
GetRetries extracts the retries attribute if available; otherwise returns default value
func (*PollerRequestDTO) GetTimeout ¶
func (req *PollerRequestDTO) GetTimeout() time.Duration
GetTimeout extracts the duration of the timeout attribute if available; otherwise returns default value
type PollerResponseDTO ¶
type PollerResponseDTO struct {
XMLName xml.Name `xml:"poller-response"`
Error string `xml:"error,attr,omitempty"`
Status *PollStatus `xml:"poll-status,omitempty"`
}
PollerResponseDTO represents a poller response
type RPCModule ¶
type RPCModule interface {
// Returns the ID of the RPC Module implementation
GetID() string
// Executes an RPC request and returns the response
// The response tells if the operation was successful or not
Execute(request *ipc.RpcRequestProto) *ipc.RpcResponseProto
}
RPCModule represents an implementation of an OpenNMS RPC Module
func GetAllRPCModules ¶
func GetAllRPCModules() []RPCModule
GetAllRPCModules gets all the registered RPC modules
func GetRPCModule ¶
GetRPCModule gets the RPC Module implementation for a given ID
type ResourceAttributeDTO ¶
type ResourceAttributeDTO struct {
Group string `xml:"group,attr"`
Name string `xml:"name,attr"`
Type string `xml:"type,attr"`
Identifier string `xml:"identifier,attr,omitempty"`
Value string `xml:"value,attr"`
}
ResourceAttributeDTO represents a generic resource attribute
type SNMPAgentDTO ¶
type SNMPAgentDTO struct {
Address string `xml:"address"`
ProxyFor string `xml:"proxyFor"`
Version int `xml:"version"`
VersionAsString string `xml:"versionAsString"`
MaxRepetitions int `xml:"maxRepetitions"`
MaxRequestSize int `xml:"maxRequestSize"`
MaxVarsPerPdu int `xml:"maxVarsPerPdu"`
Port int `xml:"port"`
Retries int `xml:"retries"`
Timeout int `xml:"timeout"`
ReadCommunity string `xml:"readCommunity"`
WriteCommunity string `xml:"writeCommunity"`
SecurityLevel int `xml:"securityLevel"`
SecurityName string `xml:"securityName"`
AuthPassPhrase string `xml:"authPassPhrase"`
AuthProtocol string `xml:"authProtocol"`
PrivPassPhrase string `xml:"privPassPhrase"`
PrivProtocol string `xml:"privProtocol"`
ContextName string `xml:"contextName"`
ContextEngineID string `xml:"contextEngineId"`
EngineID string `xml:"engineId"`
}
SNMPAgentDTO represents an SNMP agent
func (*SNMPAgentDTO) GetSNMPClient ¶
func (agent *SNMPAgentDTO) GetSNMPClient() SNMPHandler
GetSNMPClient gets an SNMP Client instance
type SNMPClient ¶
type SNMPClient struct {
// contains filtered or unexported fields
}
SNMPClient represents an SNMP handler implementation
func (*SNMPClient) BulkWalk ¶
func (cli *SNMPClient) BulkWalk(rootOid string, walkFn gosnmp.WalkFunc) error
BulkWalk executes an SNMP bulk walk calling WalkFunc after receiving data
func (*SNMPClient) Connect ¶
func (cli *SNMPClient) Connect() error
Connect initiates a connection against the target device
func (*SNMPClient) Disconnect ¶
func (cli *SNMPClient) Disconnect() error
Disconnect terminates the connection against the target device
func (*SNMPClient) Get ¶
func (cli *SNMPClient) Get(oid string) (result *gosnmp.SnmpPacket, err error)
Get execute an SNMP GET request
func (*SNMPClient) Target ¶
func (cli *SNMPClient) Target() string
Target returns the target device IP/Hostname
func (*SNMPClient) Version ¶
func (cli *SNMPClient) Version() string
Version returns the SNMP version
type SNMPGetRequestDTO ¶
type SNMPGetRequestDTO struct {
XMLName xml.Name `xml:"get"`
CorrelationID string `xml:"correlation-id,attr"`
OIDs []string `xml:"oid,omitempty"`
}
SNMPGetRequestDTO represents an SNMP get request
type SNMPHandler ¶
type SNMPHandler interface {
Connect() error
Disconnect() error
Version() string
Target() string
BulkWalk(rootOid string, walkFn gosnmp.WalkFunc) error
Get(oid string) (result *gosnmp.SnmpPacket, err error)
}
SNMPHandler represents an SNMP handler based on GoSNMP
type SNMPMultiResponseDTO ¶
type SNMPMultiResponseDTO struct {
XMLName xml.Name `xml:"snmp-response"`
Error string `xml:"error,attr,omitempty"`
Responses []SNMPResponseDTO `xml:"response"`
}
SNMPMultiResponseDTO represents an SNMP multi-value response
func (*SNMPMultiResponseDTO) AddResponse ¶
func (dto *SNMPMultiResponseDTO) AddResponse(response *SNMPResponseDTO)
AddResponse adds a response to the multi-response list
type SNMPRequestDTO ¶
type SNMPRequestDTO struct {
XMLName xml.Name `xml:"snmp-request"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
Description string `xml:"description,attr"`
Agent SNMPAgentDTO `xml:"agent"`
Gets []SNMPGetRequestDTO `xml:"get,omitempty"`
Walks []SNMPWalkRequestDTO `xml:"walk,omitempty"`
}
SNMPRequestDTO represents an SNMP request
type SNMPResponseDTO ¶
type SNMPResponseDTO struct {
XMLName xml.Name `xml:"response"`
CorrelationID string `xml:"correlation-id,attr"`
Results []SNMPResultDTO `xml:"result"`
}
SNMPResponseDTO represents an SNMP response
type SNMPResultDTO ¶
type SNMPResultDTO struct {
XMLName xml.Name `xml:"result"`
Base string `xml:"base"`
Instance string `xml:"instance,omitempty"`
Value SNMPValueDTO `xml:"value"`
}
SNMPResultDTO represents an SNMP result
type SNMPResults ¶
type SNMPResults struct {
Results []SNMPResultDTO `xml:"result"`
}
SNMPResults represents a collection of SNMP result instances
type SNMPValueDTO ¶
type SNMPValueDTO struct {
XMLName xml.Name `xml:"value"`
Type int `xml:"type,attr"`
Value string `xml:",chardata"`
}
SNMPValueDTO represents an SNMP value
type SNMPWalkRequestDTO ¶
type SNMPWalkRequestDTO struct {
XMLName xml.Name `xml:"walk"`
CorrelationID string `xml:"correlation-id,attr"`
MaxRepetitions int `xml:"max-repetitions,attr,omitempty"`
Instance string `xml:"instance,attr,omitempty"`
OIDs []string `xml:"oid,omitempty"`
}
SNMPWalkRequestDTO represents an SNMP walk request
type ServiceCollector ¶
type ServiceCollector interface {
// Returns the ID of the Service Collector implementation
GetID() string
// Executes the data collection operation from the request
// The response tells if the operation was successful or not
Collect(request *CollectorRequestDTO) *CollectorResponseDTO
}
ServiceCollector represents an implementation of a service collector
type ServiceDetector ¶
type ServiceDetector interface {
// Returns the ID of the Service Detector implementation
GetID() string
// Executes the detection operation from the request
// The response tells if the operation was successful or not
Detect(request *DetectorRequestDTO) *DetectorResponseDTO
}
ServiceDetector represents an implementation of a service detector
type ServiceMonitor ¶
type ServiceMonitor interface {
// Returns the ID of the Service Monitor implementation
GetID() string
// Executes the polling operation from the request
// The response tells if the operation was successful or not
Poll(request *PollerRequestDTO) *PollerResponseDTO
}
ServiceMonitor represents an implementation of a service monitor
type Sink ¶
type Sink interface {
// Sends a Sink Message to OpenNMS
Send(msg *ipc.SinkMessage) error
}
Sink represents the broker functionality for sending messages via the Sink API
type SinkModule ¶
type SinkModule interface {
// Returns the ID of the Sink Module implementation
GetID() string
// Starts the Sink Module (non-blocking method)
Start(config *MinionConfig, sink Sink) error
// Shuts down the Sink Module (including all listeners)
Stop()
}
SinkModule represents an implementation of an OpenNMS Sink Module
type SinkRegistry ¶ added in v0.1.2
type SinkRegistry struct {
// contains filtered or unexported fields
}
SinkRegistry tracks all the enabled Sink module instances for a given broker.
func (*SinkRegistry) GetAllModules ¶ added in v0.1.2
func (r *SinkRegistry) GetAllModules() []SinkModule
GetAllModules gets all the registered Sink modules
func (*SinkRegistry) Init ¶ added in v0.1.2
func (r *SinkRegistry) Init()
Init initializes a new Sink registry
func (*SinkRegistry) RegisterModule ¶ added in v0.1.2
func (r *SinkRegistry) RegisterModule(module SinkModule)
RegisterModule registers a new RPC Module implementation
func (*SinkRegistry) StartModules ¶ added in v0.1.2
func (r *SinkRegistry) StartModules(config *MinionConfig, sink Sink) error
StartModules starts all the registered Sink modules (non-blocking method)
func (*SinkRegistry) StopModules ¶ added in v0.1.2
func (r *SinkRegistry) StopModules()
StopModules stops all the registered Sink modules
func (*SinkRegistry) UnregisterModule ¶ added in v0.1.2
func (r *SinkRegistry) UnregisterModule(module SinkModule)
UnregisterModule unregisters an existing RPC Module implementation
type SyslogMessageDTO ¶
type SyslogMessageDTO struct {
Timestamp string `xml:"timestamp,attr"`
Content []byte `xml:",chardata"`
}
SyslogMessageDTO represents a Syslog message
type SyslogMessageLogDTO ¶
type SyslogMessageLogDTO struct {
XMLName xml.Name `xml:"syslog-message-log"`
SystemID string `xml:"system-id,attr"`
Location string `xml:"location,attr"`
SourceAddress string `xml:"source-address,attr"`
SourcePort int `xml:"source-port,attr"`
Messages []SyslogMessageDTO `xml:"messages"`
}
SyslogMessageLogDTO represents a collection of Syslog messages
func (*SyslogMessageLogDTO) AddMessage ¶
func (msgLog *SyslogMessageLogDTO) AddMessage(message SyslogMessageDTO)
AddMessage adds a new message to the log
type Timestamp ¶
Timestamp an object to seamlessly manage times in multiple formats Expected text format: 2006-01-02T15:04:05.000-07:00
func (Timestamp) MarshalXML ¶
MarshalXML converts time object into time as string
func (*Timestamp) UnmarshalXML ¶
UnmarshalXML converts time string into time object
type TrapDTO ¶
type TrapDTO struct {
AgentAddress string `xml:"agent-address"`
Community string `xml:"community"`
Version string `xml:"version"`
Timestamp int64 `xml:"timestamp"`
CreationTime int64 `xml:"creation-time"`
PDULength int `xml:"pdu-length"`
RawMessage []byte `xml:"raw-message,omitempty"`
TrapIdentity *TrapIdentityDTO `xml:"trap-identity"`
Results *SNMPResults `xml:"results"`
}
TrapDTO represents an SNMP Trap
func (*TrapDTO) AddResult ¶
func (trap *TrapDTO) AddResult(result SNMPResultDTO)
AddResult adds an SNMP results to the trap object
type TrapIdentityDTO ¶
type TrapIdentityDTO struct {
EnterpriseID string `xml:"enterprise-id,attr"`
Generic int `xml:"generic,attr"`
Specific int `xml:"specific,attr"`
}
TrapIdentityDTO represents the SNMP Trap Identity
type TrapLogDTO ¶
type TrapLogDTO struct {
XMLName xml.Name `xml:"trap-message-log"`
Location string `xml:"location,attr"`
SystemID string `xml:"system-id,attr"`
TrapAddress string `xml:"trap-address,attr"`
Messages []TrapDTO `xml:"messages"`
}
TrapLogDTO represents a collection of SNMP Trap messages
func (*TrapLogDTO) AddTrap ¶
func (trapLog *TrapLogDTO) AddTrap(trap TrapDTO)
AddTrap adds a new trap to the log
type XMLCollection ¶
type XMLCollection struct {
XMLName xml.Name `xml:"xml-collection"`
Name string `xml:"name,attr"`
RRD *RRD `xml:"rrd"`
Sources []XMLSource `xml:"xml-source"`
}
XMLCollection represents an XML collection object
type XMLGroup ¶
type XMLGroup struct {
XMLName xml.Name `xml:"xml-group"`
Name string `xml:"name,attr"`
ResourceType string `xml:"resource-type,attr"`
ResourceXPath string `xml:"resource-xpath,attr"`
KeyXPath string `xml:"key-xpath,attr"`
TimestampFormat string `xml:"timestamp-format,attr"`
TimestampXPath string `xml:"timestamp-xpath,attr"`
Objects []XMLObject `xml:"xml-object,omitempty"`
ResourceKey *XMLResourceKey `xml:"resource-key,omitempty"`
}
XMLGroup represents an XML group
func (*XMLGroup) HasMultipleResourceKeys ¶
HasMultipleResourceKeys checks if the group has multiple resource keys
type XMLObject ¶
type XMLObject struct {
XMLName xml.Name `xml:"xml-object"`
Name string `xml:"name,attr"`
Type string `xml:"type,attr"`
XPath string `xml:"xpath,attr"`
}
XMLObject represents an XML object
type XMLRequest ¶
type XMLRequest struct {
XMLName xml.Name `xml:"request"`
Method string `xml:"method,attr"`
Headers []XMLRequestHeader `xml:"header,omitempty"`
Parameters []XMLRequestParameter `xml:"parameter,omitempty"`
Content *XMLRequestContent `xml:"content,omitempty"`
}
XMLRequest represents an XML request
func (*XMLRequest) GetBody ¶
func (r *XMLRequest) GetBody() io.Reader
GetBody returns a reader with the request body if exist
func (*XMLRequest) GetMethod ¶
func (r *XMLRequest) GetMethod() string
GetMethod returns the HTTP method of the XML Request
func (*XMLRequest) GetParameterAsInt ¶
func (r *XMLRequest) GetParameterAsInt(key string) int
GetParameterAsInt gets the value of a request parameter as an integer
func (*XMLRequest) GetParameterAsString ¶
func (r *XMLRequest) GetParameterAsString(key string) string
GetParameterAsString gets the value of a request parameter as a string
type XMLRequestContent ¶
type XMLRequestContent struct {
XMLName xml.Name `xml:"content"`
Type string `xml:"content-type,attr"`
Value string `xml:",innerxml"`
}
XMLRequestContent represents an XML request content
type XMLRequestHeader ¶
type XMLRequestHeader struct {
XMLName xml.Name `xml:"header"`
Name string `xml:"name,attr"`
Value string `xml:"value,attr"`
}
XMLRequestHeader represents an XML request header
type XMLRequestParameter ¶
type XMLRequestParameter struct {
XMLName xml.Name `xml:"parameter"`
Name string `xml:"name,attr"`
Value string `xml:"value,attr"`
}
XMLRequestParameter represents an XML request parameter
type XMLResourceKey ¶
type XMLResourceKey struct {
XMLName xml.Name `xml:"resource-key"`
KeyXPaths []string `xml:"key-xpath"`
}
XMLResourceKey represents a resource key list inside a group
type XMLSource ¶
type XMLSource struct {
XMLName xml.Name `xml:"xml-source"`
URL string `xml:"url,attr"`
Groups []XMLGroup `xml:"xml-group"`
Request *XMLRequest `xml:"request,omitempty"`
}
XMLSource represents an XML source
func (*XMLSource) GetHTTPRequest ¶
GetHTTPRequest gets an HTTP request
func (*XMLSource) GetRequest ¶
func (src *XMLSource) GetRequest() *XMLRequest
GetRequest gets the HTTP request