Documentation
¶
Index ¶
- func ConvertBoolToInt(val bool) (returnval int)
- func CreateEntity(rabbitmqIntegration *integration.Integration, ...) (entity *integration.Entity, metricNamespace []metric.Attribute, err error)
- func SetInventoryItem(entity *integration.Entity, category, key string, value interface{})
- type Binding
- type BindingData
- type BindingKey
- type BindingStats
- type ConnectionData
- type EntityData
- type ExchangeData
- func (e *ExchangeData) CollectInventory(entity *integration.Entity, bindingStats BindingStats)
- func (e *ExchangeData) EntityName() string
- func (e *ExchangeData) EntityType() string
- func (e *ExchangeData) EntityVhost() string
- func (e *ExchangeData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
- type NodeData
- func (n *NodeData) EntityName() string
- func (n *NodeData) EntityType() string
- func (n *NodeData) EntityVhost() string
- func (n *NodeData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
- func (n *NodeData) UnmarshalJSON(data []byte) error
- type NodeTest
- type OverviewData
- type QueueData
- func (q *QueueData) CollectInventory(entity *integration.Entity, bindingStats BindingStats)
- func (q *QueueData) EntityName() string
- func (q *QueueData) EntityType() string
- func (q *QueueData) EntityVhost() string
- func (q *QueueData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
- type TestData
- type VhostData
- type VhostTest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertBoolToInt ¶
ConvertBoolToInt converts a boolean to it's metric/inventory representation
func CreateEntity ¶
func CreateEntity(rabbitmqIntegration *integration.Integration, entityName, entityType, vhost, clusterName string) (entity *integration.Entity, metricNamespace []metric.Attribute, err error)
CreateEntity will create an entity and metricNamespace attributes with appropriate name/namespace values if the entity isn't filtered
func SetInventoryItem ¶
func SetInventoryItem(entity *integration.Entity, category, key string, value interface{})
SetInventoryItem sets an inventory item in a consistent way
Types ¶
type Binding ¶
type Binding struct {
Source []*BindingKey
Destination []*BindingKey
}
Binding contains a list of Source and Destination BindingKeys
type BindingData ¶
type BindingData struct {
Vhost string
Source string
Destination string
DestinationType string `json:"destination_type"`
}
BindingData is the representation of the bindings endpoint
type BindingKey ¶
type BindingKey struct {
Vhost, EntityName, EntityType string
}
BindingKey is used to uniquely identify a binding by Vhost, EntityName, and EntityType
type BindingStats ¶
type BindingStats map[BindingKey]*Binding
BindingStats contains the calculation for Source/Destination Binding for each entity/BindingKey
type ConnectionData ¶
ConnectionData is the representation of the connections endpoint
type EntityData ¶
type EntityData interface {
GetEntity(integration *integration.Integration, entityName string) (*integration.Entity, []metric.Attribute, error)
EntityVhost() string
EntityName() string
EntityType() string
}
EntityData is capable of reporting it's own data to inventory
type ExchangeData ¶
type ExchangeData struct {
Name string
Vhost string
MessageStats struct {
PublishIn *int64 `json:"publish_in" metric_name:"exchange.messagesPublishedPerChannel" source_type:"gauge"`
PublishOut *int64 `json:"publish_out" metric_name:"exchange.messagesPublishedQueue" source_type:"gauge"`
PublishInDetails struct {
Rate *float64 `metric_name:"exchange.messagesPublishedPerChannelPerSecond" source_type:"gauge"`
} `json:"publish_in_details"`
PublishOutDetails struct {
Rate *float64 `metric_name:"exchange.messagesPublishedQueuePerSecond" source_type:"gauge"`
} `json:"publish_out_details"`
} `json:"message_stats"`
Type string
Durable bool
AutoDelete bool `json:"auto_delete"`
Arguments map[string]interface{}
}
ExchangeData is the representation of the exchanges endpoint
func (*ExchangeData) CollectInventory ¶
func (e *ExchangeData) CollectInventory(entity *integration.Entity, bindingStats BindingStats)
CollectInventory collects inventory data and reports it to the integration.Entity
func (*ExchangeData) EntityName ¶
func (e *ExchangeData) EntityName() string
EntityName returns the main name of this entity
func (*ExchangeData) EntityType ¶
func (e *ExchangeData) EntityType() string
EntityType returns the type of this entity
func (*ExchangeData) EntityVhost ¶
func (e *ExchangeData) EntityVhost() string
EntityVhost returns the vhost of this entity
func (*ExchangeData) GetEntity ¶
func (e *ExchangeData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
GetEntity creates an integration.Entity for this ExchangeData
type NodeData ¶
type NodeData struct {
Name string
ConfigFiles []string `json:"config_files"`
DiskAlarm *bool `json:"disk_free_alarm" metric_name:"node.diskAlarm" source_type:"gauge"`
DiskFreeSpace *int64 `json:"disk_free" metric_name:"node.diskSpaceFreeInBytes" source_type:"gauge"`
FileDescriptorsUsed *int64 `json:"fd_used" metric_name:"node.fileDescriptorsTotalUsed" source_type:"gauge"`
FileDescriptorsTotal *int64 `json:"fd_total" metric_name:"node.fileDescriptorsTotal" source_type:"gauge"`
ProcessesTotal *int64 `json:"proc_total" metric_name:"node.processesTotal" source_type:"gauge"`
ProcessesUsed *int64 `json:"proc_used" metric_name:"node.processesUsed" source_type:"gauge"`
MemoryAlarm *bool `json:"mem_alarm" metric_name:"node.hostMemoryAlarm" source_type:"gauge"`
MemoryUsed *int64 `json:"mem_used" metric_name:"node.totalMemoryUsedInBytes" source_type:"gauge"`
Partitions int `json:"-" metric_name:"node.partitionsSeen" source_type:"gauge"`
Running *bool `metric_name:"node.running" source_type:"gauge"`
RunQueue *int64 `json:"run_queue" metric_name:"node.averageErlangProcessesWaiting" source_type:"gauge"`
SocketsTotal *int64 `json:"sockets_total" metric_name:"node.fileDescriptorsTotalSockets" source_type:"gauge"`
SocketsUsed *int64 `json:"sockets_used" metric_name:"node.fileDescriptorsUsedSockets" source_type:"gauge"`
}
NodeData is the representation of the nodes endpoint
func (*NodeData) EntityName ¶
EntityName returns the main name of this entity
func (*NodeData) EntityType ¶
EntityType returns the type of this entity
func (*NodeData) EntityVhost ¶
EntityVhost returns the vhost of this entity
func (*NodeData) GetEntity ¶
func (n *NodeData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
GetEntity creates an integration.Entity for this NodeData
func (*NodeData) UnmarshalJSON ¶
UnmarshalJSON handles custom JSON Unmarshaling in order to convert values to metrics
type OverviewData ¶
type OverviewData struct {
ClusterName string `json:"cluster_name"`
RabbitMQVersion string `json:"rabbitmq_version"`
ManagementVersion string `json:"management_version"`
}
OverviewData is the representation of the overview endpoint
type QueueData ¶
type QueueData struct {
Name string
Vhost string
Exclusive bool
Durable bool
Arguments map[string]interface{}
AutoDelete bool `json:"auto_delete"`
Consumers *int64 `metric_name:"queue.consumers" source_type:"gauge"`
ConsumerUtilisation *float64 `json:"consumer_utilisation" metric_name:"queue.consumerMessageUtilizationPerSecond" source_type:"gauge"`
ActiveConsumers *int64 `json:"active_consumers" metric_name:"queue.countActiveConsumersReceiveMessages" source_type:"gauge"`
Memory *int64 `metric_name:"queue.erlangBytesConsumedInBytes" source_type:"gauge"`
Messages *int64 `metric_name:"queue.totalMessages" source_type:"gauge"`
MessagesDetails struct {
Rate *float64 `metric_name:"queue.totalMessagesPerSecond" source_type:"gauge"`
} `json:"messages_details"`
MessagesReady *int64 `json:"messages_ready" metric_name:"queue.messagesReadyDeliveryClients" source_type:"gauge"`
MessagesReadyDetail struct {
Rate *float64 `metric_name:"queue.messagesReadyDeliveryClientsPerSecond" source_type:"gauge"`
} `json:"messages_ready_details"`
MessagesUnacknowledged *int64 `json:"messages_unacknowledged" metric_name:"queue.messagesReadyUnacknowledged" source_type:"gauge"`
MessagesUnacknowledgedDetail struct {
Rate *float64 `metric_name:"queue.messagesReadyUnacknowledgedPerSecond" source_type:"gauge"`
} `json:"messages_unacknowledged_details"`
MessageStats struct {
Ack *int64 `metric_name:"queue.messagesAcknowledged" source_type:"gauge"`
AckDetails struct {
Rate *float64 `metric_name:"queue.messagesAcknowledgedPerSecond" source_type:"gauge"`
} `json:"ack_details"`
Deliver *int64 `json:"deliver" metric_name:"queue.messagesDeliveredAckMode" source_type:"gauge"`
DeliverDetails struct {
Rate *float64 `metric_name:"queue.messagesDeliveredAckModePerSecond" source_type:"gauge"`
} `json:"deliver_details"`
DeliverGet *int64 `json:"deliver_get" metric_name:"queue.sumMessagesDelivered" source_type:"gauge"`
DeliverGetDetails struct {
Rate *float64 `metric_name:"queue.sumMessagesDeliveredPerSecond" source_type:"gauge"`
} `json:"deliver_get_details"`
Publish *int64 `metric_name:"queue.messagesPublished" source_type:"gauge"`
PublishDetails struct {
Rate *float64 `metric_name:"queue.messagesPublishedPerSecond" source_type:"gauge"`
} `json:"publish_details"`
Redeliver *int64 `metric_name:"queue.messagesRedeliverGet" source_type:"gauge"`
RedeliverDetails struct {
Rate *float64 `metric_name:"queue.messagesRedeliverGetPerSecond" source_type:"gauge"`
} `json:"redeliver_details"`
} `json:"message_stats"`
}
QueueData is the representation of the queues endpoint
func (*QueueData) CollectInventory ¶
func (q *QueueData) CollectInventory(entity *integration.Entity, bindingStats BindingStats)
CollectInventory collects inventory data and reports it to the integration.Entity
func (*QueueData) EntityName ¶
EntityName returns the main name of this entity
func (*QueueData) EntityType ¶
EntityType returns the type of this entity
func (*QueueData) EntityVhost ¶
EntityVhost returns the vhost of this entity
func (*QueueData) GetEntity ¶
func (q *QueueData) GetEntity(integration *integration.Integration, clusterName string) (*integration.Entity, []metric.Attribute, error)
GetEntity creates an integration.Entity for this QueueData