2016-02-05 11:54:08 +00:00
|
|
|
package couchdb_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
"net/http/httptest"
|
|
|
|
"testing"
|
2018-09-12 08:03:59 +00:00
|
|
|
|
|
|
|
"github.com/influxdata/telegraf/plugins/inputs/couchdb"
|
|
|
|
"github.com/influxdata/telegraf/testutil"
|
|
|
|
"github.com/stretchr/testify/require"
|
2016-02-05 11:54:08 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestBasic(t *testing.T) {
|
|
|
|
js := `
|
|
|
|
{
|
|
|
|
"couchdb": {
|
|
|
|
"auth_cache_misses": {
|
|
|
|
"description": "number of authentication cache misses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"database_writes": {
|
|
|
|
"description": "number of times a database was changed",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"open_databases": {
|
|
|
|
"description": "number of open databases",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"auth_cache_hits": {
|
|
|
|
"description": "number of authentication cache hits",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"request_time": {
|
|
|
|
"description": "length of a request inside CouchDB without MochiWeb",
|
|
|
|
"current": 18.0,
|
|
|
|
"sum": 18.0,
|
|
|
|
"mean": 18.0,
|
|
|
|
"stddev": null,
|
|
|
|
"min": 18.0,
|
|
|
|
"max": 18.0
|
|
|
|
},
|
|
|
|
"database_reads": {
|
|
|
|
"description": "number of times a document was read from a database",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"open_os_files": {
|
|
|
|
"description": "number of file descriptors CouchDB has open",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"httpd_request_methods": {
|
|
|
|
"PUT": {
|
|
|
|
"description": "number of HTTP PUT requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"GET": {
|
|
|
|
"description": "number of HTTP GET requests",
|
|
|
|
"current": 2.0,
|
|
|
|
"sum": 2.0,
|
|
|
|
"mean": 0.25,
|
|
|
|
"stddev": 0.70699999999999996181,
|
|
|
|
"min": 0,
|
|
|
|
"max": 2
|
|
|
|
},
|
|
|
|
"COPY": {
|
|
|
|
"description": "number of HTTP COPY requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"DELETE": {
|
|
|
|
"description": "number of HTTP DELETE requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"POST": {
|
|
|
|
"description": "number of HTTP POST requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"HEAD": {
|
|
|
|
"description": "number of HTTP HEAD requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"httpd_status_codes": {
|
|
|
|
"403": {
|
|
|
|
"description": "number of HTTP 403 Forbidden responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"202": {
|
|
|
|
"description": "number of HTTP 202 Accepted responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"401": {
|
|
|
|
"description": "number of HTTP 401 Unauthorized responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"409": {
|
|
|
|
"description": "number of HTTP 409 Conflict responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"200": {
|
|
|
|
"description": "number of HTTP 200 OK responses",
|
|
|
|
"current": 1.0,
|
|
|
|
"sum": 1.0,
|
|
|
|
"mean": 0.125,
|
|
|
|
"stddev": 0.35399999999999998135,
|
|
|
|
"min": 0,
|
|
|
|
"max": 1
|
|
|
|
},
|
|
|
|
"405": {
|
|
|
|
"description": "number of HTTP 405 Method Not Allowed responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"400": {
|
|
|
|
"description": "number of HTTP 400 Bad Request responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"201": {
|
|
|
|
"description": "number of HTTP 201 Created responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"404": {
|
|
|
|
"description": "number of HTTP 404 Not Found responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"500": {
|
|
|
|
"description": "number of HTTP 500 Internal Server Error responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"412": {
|
|
|
|
"description": "number of HTTP 412 Precondition Failed responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"301": {
|
|
|
|
"description": "number of HTTP 301 Moved Permanently responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"304": {
|
|
|
|
"description": "number of HTTP 304 Not Modified responses",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"httpd": {
|
|
|
|
"clients_requesting_changes": {
|
|
|
|
"description": "number of clients for continuous _changes",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"temporary_view_reads": {
|
|
|
|
"description": "number of temporary view reads",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"requests": {
|
|
|
|
"description": "number of HTTP requests",
|
|
|
|
"current": 2.0,
|
|
|
|
"sum": 2.0,
|
|
|
|
"mean": 0.25,
|
|
|
|
"stddev": 0.70699999999999996181,
|
|
|
|
"min": 0,
|
|
|
|
"max": 2
|
|
|
|
},
|
|
|
|
"bulk_requests": {
|
|
|
|
"description": "number of bulk requests",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
},
|
|
|
|
"view_reads": {
|
|
|
|
"description": "number of view reads",
|
|
|
|
"current": null,
|
|
|
|
"sum": null,
|
|
|
|
"mean": null,
|
|
|
|
"stddev": null,
|
|
|
|
"min": null,
|
|
|
|
"max": null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
`
|
|
|
|
fakeServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
if r.URL.Path == "/_stats" {
|
|
|
|
_, _ = w.Write([]byte(js))
|
|
|
|
} else {
|
|
|
|
w.WriteHeader(http.StatusNotFound)
|
|
|
|
}
|
|
|
|
}))
|
|
|
|
defer fakeServer.Close()
|
|
|
|
|
|
|
|
plugin := &couchdb.CouchDB{
|
2018-09-12 08:03:59 +00:00
|
|
|
Hosts: []string{fakeServer.URL + "/_stats"},
|
2016-02-05 11:54:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var acc testutil.Accumulator
|
2017-04-24 18:13:26 +00:00
|
|
|
require.NoError(t, acc.GatherError(plugin.Gather))
|
2016-02-05 11:54:08 +00:00
|
|
|
}
|