Add support for exchanges to RabbitMQ input (#3619)
This commit is contained in:
@@ -374,6 +374,102 @@ const sampleQueuesResponse = `
|
||||
]
|
||||
`
|
||||
|
||||
const sampleExchangesResponse = `
|
||||
[
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "direct",
|
||||
"vhost": "\/",
|
||||
"name": ""
|
||||
},
|
||||
{
|
||||
"message_stats": {
|
||||
"publish_in_details": {
|
||||
"rate": 0
|
||||
},
|
||||
"publish_in": 2,
|
||||
"publish_out_details": {
|
||||
"rate": 0
|
||||
},
|
||||
"publish_out": 1
|
||||
},
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "fanout",
|
||||
"vhost": "\/",
|
||||
"name": "telegraf"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "direct",
|
||||
"vhost": "\/",
|
||||
"name": "amq.direct"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "fanout",
|
||||
"vhost": "\/",
|
||||
"name": "amq.fanout"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "headers",
|
||||
"vhost": "\/",
|
||||
"name": "amq.headers"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "headers",
|
||||
"vhost": "\/",
|
||||
"name": "amq.match"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": true,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "topic",
|
||||
"vhost": "\/",
|
||||
"name": "amq.rabbitmq.log"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": true,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "topic",
|
||||
"vhost": "\/",
|
||||
"name": "amq.rabbitmq.trace"
|
||||
},
|
||||
{
|
||||
"arguments": { },
|
||||
"internal": false,
|
||||
"auto_delete": false,
|
||||
"durable": true,
|
||||
"type": "topic",
|
||||
"vhost": "\/",
|
||||
"name": "amq.topic"
|
||||
}
|
||||
]
|
||||
`
|
||||
|
||||
func TestRabbitMQGeneratesMetrics(t *testing.T) {
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
var rsp string
|
||||
@@ -385,6 +481,8 @@ func TestRabbitMQGeneratesMetrics(t *testing.T) {
|
||||
rsp = sampleNodesResponse
|
||||
case "/api/queues":
|
||||
rsp = sampleQueuesResponse
|
||||
case "/api/exchanges":
|
||||
rsp = sampleExchangesResponse
|
||||
default:
|
||||
panic("Cannot handle request")
|
||||
}
|
||||
@@ -441,4 +539,13 @@ func TestRabbitMQGeneratesMetrics(t *testing.T) {
|
||||
}
|
||||
|
||||
assert.True(t, acc.HasMeasurement("rabbitmq_queue"))
|
||||
|
||||
exchangeIntMetrics := []string{
|
||||
"messages_publish_in",
|
||||
"messages_publish_out",
|
||||
}
|
||||
|
||||
for _, metric := range exchangeIntMetrics {
|
||||
assert.True(t, acc.HasInt64Field("rabbitmq_exchange", metric))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user