140 lines
3.5 KiB
Go
140 lines
3.5 KiB
Go
package activemq
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"testing"
|
|
|
|
"github.com/influxdata/telegraf/testutil"
|
|
)
|
|
|
|
func TestGatherQueuesMetrics(t *testing.T) {
|
|
|
|
s := `<queues>
|
|
<queue name="sandra">
|
|
<stats size="0" consumerCount="0" enqueueCount="0" dequeueCount="0"/>
|
|
<feed>
|
|
<atom>queueBrowse/sandra?view=rss&feedType=atom_1.0</atom>
|
|
<rss>queueBrowse/sandra?view=rss&feedType=rss_2.0</rss>
|
|
</feed>
|
|
</queue>
|
|
<queue name="Test">
|
|
<stats size="0" consumerCount="0" enqueueCount="0" dequeueCount="0"/>
|
|
<feed>
|
|
<atom>queueBrowse/Test?view=rss&feedType=atom_1.0</atom>
|
|
<rss>queueBrowse/Test?view=rss&feedType=rss_2.0</rss>
|
|
</feed>
|
|
</queue>
|
|
</queues>`
|
|
|
|
queues := Queues{}
|
|
|
|
xml.Unmarshal([]byte(s), &queues)
|
|
|
|
records := make(map[string]interface{})
|
|
tags := make(map[string]string)
|
|
|
|
tags["name"] = "Test"
|
|
tags["source"] = "localhost"
|
|
tags["port"] = "8161"
|
|
|
|
records["size"] = 0
|
|
records["consumer_count"] = 0
|
|
records["enqueue_count"] = 0
|
|
records["dequeue_count"] = 0
|
|
|
|
var acc testutil.Accumulator
|
|
|
|
activeMQ := new(ActiveMQ)
|
|
activeMQ.Server = "localhost"
|
|
activeMQ.Port = 8161
|
|
|
|
activeMQ.GatherQueuesMetrics(&acc, queues)
|
|
acc.AssertContainsTaggedFields(t, "activemq_queues", records, tags)
|
|
}
|
|
|
|
func TestGatherTopicsMetrics(t *testing.T) {
|
|
|
|
s := `<topics>
|
|
<topic name="ActiveMQ.Advisory.MasterBroker ">
|
|
<stats size="0" consumerCount="0" enqueueCount="1" dequeueCount="0"/>
|
|
</topic>
|
|
<topic name="AAA ">
|
|
<stats size="0" consumerCount="1" enqueueCount="0" dequeueCount="0"/>
|
|
</topic>
|
|
<topic name="ActiveMQ.Advisory.Topic ">
|
|
<stats size="0" consumerCount="0" enqueueCount="1" dequeueCount="0"/>
|
|
</topic>
|
|
<topic name="ActiveMQ.Advisory.Queue ">
|
|
<stats size="0" consumerCount="0" enqueueCount="2" dequeueCount="0"/>
|
|
</topic>
|
|
<topic name="AAAA ">
|
|
<stats size="0" consumerCount="0" enqueueCount="0" dequeueCount="0"/>
|
|
</topic>
|
|
</topics>`
|
|
|
|
topics := Topics{}
|
|
|
|
xml.Unmarshal([]byte(s), &topics)
|
|
|
|
records := make(map[string]interface{})
|
|
tags := make(map[string]string)
|
|
|
|
tags["name"] = "ActiveMQ.Advisory.MasterBroker "
|
|
tags["source"] = "localhost"
|
|
tags["port"] = "8161"
|
|
|
|
records["size"] = 0
|
|
records["consumer_count"] = 0
|
|
records["enqueue_count"] = 1
|
|
records["dequeue_count"] = 0
|
|
|
|
var acc testutil.Accumulator
|
|
|
|
activeMQ := new(ActiveMQ)
|
|
activeMQ.Server = "localhost"
|
|
activeMQ.Port = 8161
|
|
|
|
activeMQ.GatherTopicsMetrics(&acc, topics)
|
|
acc.AssertContainsTaggedFields(t, "activemq_topics", records, tags)
|
|
}
|
|
|
|
func TestGatherSubscribersMetrics(t *testing.T) {
|
|
|
|
s := `<subscribers>
|
|
<subscriber clientId="AAA" subscriptionName="AAA" connectionId="NOTSET" destinationName="AAA" selector="AA" active="no">
|
|
<stats pendingQueueSize="0" dispatchedQueueSize="0" dispatchedCounter="0" enqueueCounter="0" dequeueCounter="0"/>
|
|
</subscriber>
|
|
</subscribers>`
|
|
|
|
subscribers := Subscribers{}
|
|
|
|
xml.Unmarshal([]byte(s), &subscribers)
|
|
|
|
records := make(map[string]interface{})
|
|
tags := make(map[string]string)
|
|
|
|
tags["client_id"] = "AAA"
|
|
tags["subscription_name"] = "AAA"
|
|
tags["connection_id"] = "NOTSET"
|
|
tags["destination_name"] = "AAA"
|
|
tags["selector"] = "AA"
|
|
tags["active"] = "no"
|
|
tags["source"] = "localhost"
|
|
tags["port"] = "8161"
|
|
|
|
records["pending_queue_size"] = 0
|
|
records["dispatched_queue_size"] = 0
|
|
records["dispatched_counter"] = 0
|
|
records["enqueue_counter"] = 0
|
|
records["dequeue_counter"] = 0
|
|
|
|
var acc testutil.Accumulator
|
|
|
|
activeMQ := new(ActiveMQ)
|
|
activeMQ.Server = "localhost"
|
|
activeMQ.Port = 8161
|
|
|
|
activeMQ.GatherSubscribersMetrics(&acc, subscribers)
|
|
acc.AssertContainsTaggedFields(t, "activemq_subscribers", records, tags)
|
|
}
|