Read CouchDB Stats from one or more servers
[[inputs.couchdb]]
Works with CouchDB stats endpoints out of the box
Multiple HOSTs from which to read CouchDB stats:
hosts = ["http://###.###.###.###:5986/_stats"]
internal IP address commented out for config sharing
[Include Telegraf version, operating system name, and other relevant details]
Telegraf should report values as seen on stats page for a node
When running Telegraf test, all key values returned are 0.
No error messages are seen in the log when running in debug mode.
Thanks for the submission, can you run telegraf --input-filter=couchdb --test and paste the output?
couchdb,host=c1-prod-couch04,server=http://10.2.20.141:5986/_stats couchdb_auth_cache_hits_current=0,couchdb_auth_cache_hits_max=0,couchdb_auth_cache_hits_mean=0,couchdb_auth_cache_hits_min=0,couchdb_auth_cache_hits_stddev=0,couchdb_auth_cache_hits_sum=0,couchdb_auth_cache_misses_current=0,couchdb_auth_cache_misses_max=0,couchdb_auth_cache_misses_mean=0,couchdb_auth_cache_misses_min=0,couchdb_auth_cache_misses_stddev=0,couchdb_auth_cache_misses_sum=0,couchdb_database_reads_current=0,couchdb_database_reads_max=0,couchdb_database_reads_mean=0,couchdb_database_reads_min=0,couchdb_database_reads_stddev=0,couchdb_database_reads_sum=0,couchdb_database_writes_current=0,couchdb_database_writes_max=0,couchdb_database_writes_mean=0,couchdb_database_writes_min=0,couchdb_database_writes_stddev=0,couchdb_database_writes_sum=0,couchdb_open_databases_current=0,couchdb_open_databases_max=0,couchdb_open_databases_mean=0,couchdb_open_databases_min=0,couchdb_open_databases_stddev=0,couchdb_open_databases_sum=0,couchdb_open_os_files_current=0,couchdb_open_os_files_max=0,couchdb_open_os_files_mean=0,couchdb_open_os_files_min=0,couchdb_open_os_files_stddev=0,couchdb_open_os_files_sum=0,couchdb_request_time_current=0,couchdb_request_time_max=0,couchdb_request_time_mean=0,couchdb_request_time_min=0,couchdb_request_time_stddev=0,couchdb_request_time_sum=0,httpd_bulk_requests_current=0,httpd_bulk_requests_max=0,httpd_bulk_requests_mean=0,httpd_bulk_requests_min=0,httpd_bulk_requests_stddev=0,httpd_bulk_requests_sum=0,httpd_clients_requesting_changes_current=0,httpd_clients_requesting_changes_max=0,httpd_clients_requesting_changes_mean=0,httpd_clients_requesting_changes_min=0,httpd_clients_requesting_changes_stddev=0,httpd_clients_requesting_changes_sum=0,httpd_request_methods_copy_current=0,httpd_request_methods_copy_max=0,httpd_request_methods_copy_mean=0,httpd_request_methods_copy_min=0,httpd_request_methods_copy_stddev=0,httpd_request_methods_copy_sum=0,httpd_request_methods_delete_current=0,httpd_request_methods_delete_max=0,httpd_request_methods_delete_mean=0,httpd_request_methods_delete_min=0,httpd_request_methods_delete_stddev=0,httpd_request_methods_delete_sum=0,httpd_request_methods_get_current=0,httpd_request_methods_get_max=0,httpd_request_methods_get_mean=0,httpd_request_methods_get_min=0,httpd_request_methods_get_stddev=0,httpd_request_methods_get_sum=0,httpd_request_methods_head_current=0,httpd_request_methods_head_max=0,httpd_request_methods_head_mean=0,httpd_request_methods_head_min=0,httpd_request_methods_head_stddev=0,httpd_request_methods_head_sum=0,httpd_request_methods_post_current=0,httpd_request_methods_post_max=0,httpd_request_methods_post_mean=0,httpd_request_methods_post_min=0,httpd_request_methods_post_stddev=0,httpd_request_methods_post_sum=0,httpd_request_methods_put_current=0,httpd_request_methods_put_max=0,httpd_request_methods_put_mean=0,httpd_request_methods_put_min=0,httpd_request_methods_put_stddev=0,httpd_request_methods_put_sum=0,httpd_requests_current=0,httpd_requests_max=0,httpd_requests_mean=0,httpd_requests_min=0,httpd_requests_stddev=0,httpd_requests_sum=0,httpd_status_codes_200_current=0,httpd_status_codes_200_max=0,httpd_status_codes_200_mean=0,httpd_status_codes_200_min=0,httpd_status_codes_200_stddev=0,httpd_status_codes_200_sum=0,httpd_status_codes_201_current=0,httpd_status_codes_201_max=0,httpd_status_codes_201_mean=0,httpd_status_codes_201_min=0,httpd_status_codes_201_stddev=0,httpd_status_codes_201_sum=0,httpd_status_codes_202_current=0,httpd_status_codes_202_max=0,httpd_status_codes_202_mean=0,httpd_status_codes_202_min=0,httpd_status_codes_202_stddev=0,httpd_status_codes_202_sum=0,httpd_status_codes_301_current=0,httpd_status_codes_301_max=0,httpd_status_codes_301_mean=0,httpd_status_codes_301_min=0,httpd_status_codes_301_stddev=0,httpd_status_codes_301_sum=0,httpd_status_codes_304_current=0,httpd_status_codes_304_max=0,httpd_status_codes_304_mean=0,httpd_status_codes_304_min=0,httpd_status_codes_304_stddev=0,httpd_status_codes_304_sum=0,httpd_status_codes_400_current=0,httpd_status_codes_400_max=0,httpd_status_codes_400_mean=0,httpd_status_codes_400_min=0,httpd_status_codes_400_stddev=0,httpd_status_codes_400_sum=0,httpd_status_codes_401_current=0,httpd_status_codes_401_max=0,httpd_status_codes_401_mean=0,httpd_status_codes_401_min=0,httpd_status_codes_401_stddev=0,httpd_status_codes_401_sum=0,httpd_status_codes_403_current=0,httpd_status_codes_403_max=0,httpd_status_codes_403_mean=0,httpd_status_codes_403_min=0,httpd_status_codes_403_stddev=0,httpd_status_codes_403_sum=0,httpd_status_codes_404_current=0,httpd_status_codes_404_max=0,httpd_status_codes_404_mean=0,httpd_status_codes_404_min=0,httpd_status_codes_404_stddev=0,httpd_status_codes_404_sum=0,httpd_status_codes_405_current=0,httpd_status_codes_405_max=0,httpd_status_codes_405_mean=0,httpd_status_codes_405_min=0,httpd_status_codes_405_stddev=0,httpd_status_codes_405_sum=0,httpd_status_codes_409_current=0,httpd_status_codes_409_max=0,httpd_status_codes_409_mean=0,httpd_status_codes_409_min=0,httpd_status_codes_409_stddev=0,httpd_status_codes_409_sum=0,httpd_status_codes_412_current=0,httpd_status_codes_412_max=0,httpd_status_codes_412_mean=0,httpd_status_codes_412_min=0,httpd_status_codes_412_stddev=0,httpd_status_codes_412_sum=0,httpd_status_codes_500_current=0,httpd_status_codes_500_max=0,httpd_status_codes_500_mean=0,httpd_status_codes_500_min=0,httpd_status_codes_500_stddev=0,httpd_status_codes_500_sum=0,httpd_temporary_view_reads_current=0,httpd_temporary_view_reads_max=0,httpd_temporary_view_reads_mean=0,httpd_temporary_view_reads_min=0,httpd_temporary_view_reads_stddev=0,httpd_temporary_view_reads_sum=0,httpd_view_reads_current=0,httpd_view_reads_max=0,httpd_view_reads_mean=0,httpd_view_reads_min=0,httpd_view_reads_stddev=0,httpd_view_reads_sum=0 1532358062000000000
Ok, are there any logs on your couch server? My next thought is maybe couch responds all zeros if there are insufficient permissions..
If I send a GET request to the endpoint for stats without any AUTH I get these.
{
"couchdb": {
"auth_cache_hits": {
"value": 2,
"type": "counter",
"desc": "number of authentication cache hits"
},
"auth_cache_misses": {
"value": 34085,
"type": "counter",
"desc": "number of authentication cache misses"
},
"collect_results_time": {
"value": {
"min": 0,
"max": 0,
"arithmetic_mean": 0,
"geometric_mean": 0,
"harmonic_mean": 0,
"median": 0,
"variance": 0,
"standard_deviation": 0,
"skewness": 0,
"kurtosis": 0,
"percentile": [
[
50,
0
],
[
75,
0
],
[
90,
0
],
[
95,
0
],
[
99,
0
],
[
999,
0
]
],
"histogram": [
[
0,
0
]
],
"n": 0
},
"type": "histogram",
"desc": "microsecond latency for calls to couch_db:collect_results/3"
},
"database_writes": {
"value": 23454,
"type": "counter",
"desc": "number of times a database was changed"
},
"database_reads": {
"value": 23410541,
"type": "counter",
"desc": "number of times a document was read from a database"
},
"db_open_time": {
"value": {
"min": 1.568,
"max": 3.235,
"arithmetic_mean": 2.380916666666667,
"geometric_mean": 2.2913991785455328,
"harmonic_mean": 2.2028473260218626,
"median": 2.318,
"variance": 0.44970262878787876,
"standard_deviation": 0.6705987092053479,
"skewness": -0.004099813378386124,
"kurtosis": -1.8544211611192534,
"percentile": [
[
50,
2.318
],
[
75,
2.915
],
[
90,
3.201
],
[
95,
3.201
],
[
99,
3.235
],
[
999,
3.235
]
],
"histogram": [
[
2.568,
7
],
[
3.568,
5
],
[
4.568,
0
]
],
"n": 12
},
"type": "histogram",
"desc": "milliseconds required to open a database"
},
"document_inserts": {
"value": 3846,
"type": "counter",
"desc": "number of documents inserted"
},
"document_writes": {
"value": 4392,
"type": "counter",
"desc": "number of document write operations"
},
"local_document_writes": {
"value": 3587,
"type": "counter",
"desc": "number of _local document write operations"
},
"httpd": {
"bulk_docs": {
"value": {
"min": 0,
"max": 0,
"arithmetic_mean": 0,
"geometric_mean": 0,
"harmonic_mean": 0,
"median": 0,
"variance": 0,
"standard_deviation": 0,
"skewness": 0,
"kurtosis": 0,
"percentile": [
[
50,
0
],
[
75,
0
],
[
90,
0
],
[
95,
0
],
[
99,
0
],
[
999,
0
]
],
"histogram": [
[
0,
0
]
],
"n": 0
},
"type": "histogram",
"desc": "distribution of the number of docs in _bulk_docs requests"
},
"bulk_requests": {
"value": 707,
"type": "counter",
"desc": "number of bulk requests"
},
"requests": {
"value": 34195,
"type": "counter",
"desc": "number of HTTP requests"
},
"temporary_view_reads": {
"value": 0,
"type": "counter",
"desc": "number of temporary view reads"
},
"view_reads": {
"value": 2220,
"type": "counter",
"desc": "number of view reads"
},
"clients_requesting_changes": {
"value": 0,
"type": "counter",
"desc": "number of clients for continuous _changes"
},
"aborted_requests": {
"value": 0,
"type": "counter",
"desc": "number of aborted requests"
}
},
"httpd_request_methods": {
"COPY": {
"value": 0,
"type": "counter",
"desc": "number of HTTP COPY requests"
},
"DELETE": {
"value": 160,
"type": "counter",
"desc": "number of HTTP DELETE requests"
},
"GET": {
"value": 6386,
"type": "counter",
"desc": "number of HTTP GET requests"
},
"HEAD": {
"value": 316,
"type": "counter",
"desc": "number of HTTP HEAD requests"
},
"OPTIONS": {
"value": 0,
"type": "counter",
"desc": "number of HTTP OPTIONS requests"
},
"POST": {
"value": 26853,
"type": "counter",
"desc": "number of HTTP POST requests"
},
"PUT": {
"value": 480,
"type": "counter",
"desc": "number of HTTP PUT requests"
}
},
"httpd_status_codes": {
"200": {
"value": 23194,
"type": "counter",
"desc": "number of HTTP 200 OK responses"
},
"201": {
"value": 1550,
"type": "counter",
"desc": "number of HTTP 201 Created responses"
},
"202": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 202 Accepted responses"
},
"204": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 204 No Content responses"
},
"206": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 206 Partial Content"
},
"301": {
"value": 1,
"type": "counter",
"desc": "number of HTTP 301 Moved Permanently responses"
},
"302": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 302 Found responses"
},
"304": {
"value": 7,
"type": "counter",
"desc": "number of HTTP 304 Not Modified responses"
},
"400": {
"value": 3,
"type": "counter",
"desc": "number of HTTP 400 Bad Request responses"
},
"401": {
"value": 44,
"type": "counter",
"desc": "number of HTTP 401 Unauthorized responses"
},
"403": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 403 Forbidden responses"
},
"404": {
"value": 9147,
"type": "counter",
"desc": "number of HTTP 404 Not Found responses"
},
"405": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 405 Method Not Allowed responses"
},
"406": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 406 Not Acceptable responses"
},
"409": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 409 Conflict responses"
},
"412": {
"value": 30,
"type": "counter",
"desc": "number of HTTP 412 Precondition Failed responses"
},
"413": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 413 Request Entity Too Long responses"
},
"414": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 414 Request URI Too Long responses"
},
"415": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 415 Unsupported Media Type responses"
},
"416": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 416 Requested Range Not Satisfiable responses"
},
"417": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 417 Expectation Failed responses"
},
"500": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 500 Internal Server Error responses"
},
"501": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 501 Not Implemented responses"
},
"503": {
"value": 0,
"type": "counter",
"desc": "number of HTTP 503 Service unavailable responses"
}
},
"open_databases": {
"value": 500,
"type": "counter",
"desc": "number of open databases"
},
"open_os_files": {
"value": 525,
"type": "counter",
"desc": "number of file descriptors CouchDB has open"
},
"request_time": {
"value": {
"min": 0,
"max": 0,
"arithmetic_mean": 0,
"geometric_mean": 0,
"harmonic_mean": 0,
"median": 0,
"variance": 0,
"standard_deviation": 0,
"skewness": 0,
"kurtosis": 0,
"percentile": [
[
50,
0
],
[
75,
0
],
[
90,
0
],
[
95,
0
],
[
99,
0
],
[
999,
0
]
],
"histogram": [
[
0,
0
]
],
"n": 0
},
"type": "histogram",
"desc": "length of a request inside CouchDB without MochiWeb"
},
"couch_server": {
"lru_skip": {
"value": 21002,
"type": "counter",
"desc": "number of couch_server LRU operations skipped"
}
},
"query_server": {
"vdu_rejects": {
"value": 0,
"type": "counter",
"desc": "number of rejections by validate_doc_update function"
},
"vdu_process_time": {
"value": {
"min": 0,
"max": 0,
"arithmetic_mean": 0,
"geometric_mean": 0,
"harmonic_mean": 0,
"median": 0,
"variance": 0,
"standard_deviation": 0,
"skewness": 0,
"kurtosis": 0,
"percentile": [
[
50,
0
],
[
75,
0
],
[
90,
0
],
[
95,
0
],
[
99,
0
],
[
999,
0
]
],
"histogram": [
[
0,
0
]
],
"n": 0
},
"type": "histogram",
"desc": "duration of validate_doc_update function calls"
}
},
"mrview": {
"map_doc": {
"value": 219,
"type": "counter",
"desc": "number of documents mapped in the view server"
},
"emits": {
"value": 228,
"type": "counter",
"desc": "number of invocations of `emit' in map functions in the view server"
}
},
"dbinfo": {
"value": {
"min": 0,
"max": 0,
"arithmetic_mean": 0,
"geometric_mean": 0,
"harmonic_mean": 0,
"median": 0,
"variance": 0,
"standard_deviation": 0,
"skewness": 0,
"kurtosis": 0,
"percentile": [
[
50,
0
],
[
75,
0
],
[
90,
0
],
[
95,
0
],
[
99,
0
],
[
999,
0
]
],
"histogram": [
[
0,
0
]
],
"n": 0
},
"type": "histogram",
"desc": "distribution of latencies for calls to retrieve DB info"
}
},
"pread": {
"exceed_eof": {
"value": 0,
"type": "counter",
"desc": "number of the attempts to read beyond end of db file"
},
"exceed_limit": {
"value": 0,
"type": "counter",
"desc": "number of the attempts to read beyond set limit"
}
},
"couch_log": {
"level": {
"alert": {
"value": 0,
"type": "counter",
"desc": "number of logged alert messages"
},
"critical": {
"value": 0,
"type": "counter",
"desc": "number of logged critical messages"
},
"debug": {
"value": 0,
"type": "counter",
"desc": "number of logged debug messages"
},
"emergency": {
"value": 0,
"type": "counter",
"desc": "number of logged emergency messages"
},
"error": {
"value": 0,
"type": "counter",
"desc": "number of logged error messages"
},
"info": {
"value": 0,
"type": "counter",
"desc": "number of logged info messages"
},
"notice": {
"value": 0,
"type": "counter",
"desc": "number of logged notice messages"
},
"warning": {
"value": 0,
"type": "counter",
"desc": "number of logged warning messages"
}
}
},
"fabric": {
"worker": {
"timeouts": {
"value": 1,
"type": "counter",
"desc": "number of worker timeouts"
}
},
"open_shard": {
"timeouts": {
"value": 38,
"type": "counter",
"desc": "number of open shard timeouts"
}
},
"read_repairs": {
"success": {
"value": 9822,
"type": "counter",
"desc": "number of successful read repair operations"
},
"failure": {
"value": 0,
"type": "counter",
"desc": "number of failed read repair operations"
}
},
"doc_update": {
"errors": {
"value": 1,
"type": "counter",
"desc": "number of document update errors"
},
"mismatched_errors": {
"value": 0,
"type": "counter",
"desc": "number of document update errors with multiple error types"
},
"write_quorum_errors": {
"value": 0,
"type": "counter",
"desc": "number of write quorum errors"
}
}
},
"global_changes": {
"db_writes": {
"value": 0,
"type": "counter",
"desc": "number of db writes performed by global changes"
},
"event_doc_conflict": {
"value": 0,
"type": "counter",
"desc": "number of conflicted event docs encountered by global changes"
},
"listener_pending_updates": {
"value": 0,
"type": "gauge",
"desc": "number of global changes updates pending writes in global_changes_listener"
},
"rpcs": {
"value": 3579,
"type": "counter",
"desc": "number of rpc operations performed by global_changes"
},
"server_pending_updates": {
"value": 0,
"type": "gauge",
"desc": "number of global changes updates pending writes in global_changes_server"
}
},
"mem3": {
"shard_cache": {
"eviction": {
"value": 306,
"type": "counter",
"desc": "number of shard cache evictions"
},
"hit": {
"value": 24695292,
"type": "counter",
"desc": "number of shard cache hits"
},
"miss": {
"value": 446,
"type": "counter",
"desc": "number of shard cache misses"
}
}
},
"rexi": {
"buffered": {
"value": 7,
"type": "counter",
"desc": "number of rexi messages buffered"
},
"down": {
"value": 66407,
"type": "counter",
"desc": "number of rexi_DOWN messages handled"
},
"dropped": {
"value": 0,
"type": "counter",
"desc": "number of rexi messages dropped from buffers"
},
"streams": {
"timeout": {
"init_stream": {
"value": 0,
"type": "counter",
"desc": "number of rexi stream initialization timeouts"
},
"stream": {
"value": 0,
"type": "counter",
"desc": "number of rexi stream timeouts"
},
"wait_for_ack": {
"value": 0,
"type": "counter",
"desc": "number of rexi stream timeouts while waiting for acks"
}
}
}
},
"couch_replicator": {
"changes_read_failures": {
"value": 0,
"type": "counter",
"desc": "number of failed replicator changes read failures"
},
"changes_reader_deaths": {
"value": 0,
"type": "counter",
"desc": "number of failed replicator changes readers"
},
"changes_manager_deaths": {
"value": 0,
"type": "counter",
"desc": "number of failed replicator changes managers"
},
"changes_queue_deaths": {
"value": 0,
"type": "counter",
"desc": "number of failed replicator changes work queues"
},
"checkpoints": {
"success": {
"value": 0,
"type": "counter",
"desc": "number of checkpoints successfully saves"
},
"failure": {
"value": 0,
"type": "counter",
"desc": "number of failed checkpoint saves"
}
},
"failed_starts": {
"value": 0,
"type": "counter",
"desc": "number of replications that have failed to start"
},
"requests": {
"value": 0,
"type": "counter",
"desc": "number of HTTP requests made by the replicator"
},
"responses": {
"failure": {
"value": 0,
"type": "counter",
"desc": "number of failed HTTP responses received by the replicator"
},
"success": {
"value": 0,
"type": "counter",
"desc": "number of successful HTTP responses received by the replicator"
}
},
"stream_responses": {
"failure": {
"value": 0,
"type": "counter",
"desc": "number of failed streaming HTTP responses received by the replicator"
},
"success": {
"value": 0,
"type": "counter",
"desc": "number of successful streaming HTTP responses received by the replicator"
}
},
"worker_deaths": {
"value": 0,
"type": "counter",
"desc": "number of failed replicator workers"
},
"workers_started": {
"value": 0,
"type": "counter",
"desc": "number of replicator workers started"
},
"cluster_is_stable": {
"value": 1,
"type": "gauge",
"desc": "1 if cluster is stable, 0 if unstable"
},
"db_scans": {
"value": 5,
"type": "counter",
"desc": "number of times replicator db scans have been started"
},
"docs": {
"dbs_created": {
"value": 0,
"type": "counter",
"desc": "number of db shard creations seen by replicator doc processor"
},
"dbs_deleted": {
"value": 0,
"type": "counter",
"desc": "number of db shard deletions seen by replicator doc processor"
},
"dbs_found": {
"value": 5,
"type": "counter",
"desc": "number of db shard found by replicator doc processor"
},
"db_changes": {
"value": 0,
"type": "counter",
"desc": "number of db changes processed by replicator doc processor"
},
"failed_state_updates": {
"value": 0,
"type": "counter",
"desc": "number of 'failed' state document updates"
},
"completed_state_updates": {
"value": 0,
"type": "counter",
"desc": "number of 'completed' state document updates"
}
},
"jobs": {
"adds": {
"value": 0,
"type": "counter",
"desc": "number of jobs added to replicator scheduler"
},
"duplicate_adds": {
"value": 0,
"type": "counter",
"desc": "number of duplicate jobs added to replicator scheduler"
},
"removes": {
"value": 0,
"type": "counter",
"desc": "number of jobs removed from replicator scheduler"
},
"starts": {
"value": 0,
"type": "counter",
"desc": "number of jobs started by replicator scheduler"
},
"stops": {
"value": 0,
"type": "counter",
"desc": "number of jobs stopped by replicator scheduler"
},
"crashes": {
"value": 0,
"type": "counter",
"desc": "number of job crashed noticed by replicator scheduler"
},
"running": {
"value": 0,
"type": "gauge",
"desc": "replicator scheduler running jobs"
},
"pending": {
"value": 0,
"type": "gauge",
"desc": "replicator scheduler pending jobs"
},
"crashed": {
"value": 0,
"type": "gauge",
"desc": "replicator scheduler crashed jobs"
},
"total": {
"value": 0,
"type": "gauge",
"desc": "total number of replicator scheduler jobs"
}
},
"connection": {
"acquires": {
"value": 0,
"type": "counter",
"desc": "number of times connections are shared"
},
"creates": {
"value": 0,
"type": "counter",
"desc": "number of connections created"
},
"releases": {
"value": 0,
"type": "counter",
"desc": "number of times ownership of a connection is released"
},
"owner_crashes": {
"value": 0,
"type": "counter",
"desc": "number of times a connection owner crashes while owning at least one connection"
},
"worker_crashes": {
"value": 0,
"type": "counter",
"desc": "number of times a worker unexpectedly terminates"
},
"closes": {
"value": 0,
"type": "counter",
"desc": "number of times a worker is gracefully shut down"
}
}
},
"ddoc_cache": {
"hit": {
"value": 296377,
"type": "counter",
"desc": "number of design doc cache hits"
},
"miss": {
"value": 2539806,
"type": "counter",
"desc": "number of design doc cache misses"
},
"recovery": {
"value": 0,
"type": "counter",
"desc": "number of design doc cache recoveries"
}
}
}
{
"couchdb": "Welcome",
"uuid": "2f39ba7c81d7b80888c9ba959154d007",
"version": "2.1.1",
"vendor": {
"name": "The Apache Software Foundation"
}
}
I have tried this on two different machine/nodes. The first JSON stats I sent was for a test/dev node and I can send stats from a production machine if you like.
No, database_reads is non-zero in your example db's stats output. How are the couch server's logs?
I am unsure of what you are asking, in regards to the server's logs.
If you are asking if Couch responds with a 200 from doing a telegraf test, then yes.
No, like the logs that couchdb itself generates, they may be in /var/log/couchdb/couch.log, but it depends on where it's been configured
There are no errors in the logs. When I do a telegraf -test, I can see in the couch logs where the _stats endpoint receives a GET request and responds with a 200. Other than that, there is only normal messages in there.
Anything new on this? Since this request, I have updated couchdb from 2.1.1 to 2.2.0.
Can you paste output from a GET to the same db node that your test telegraf is gathering from?
This?
{"couchdb":{"httpd":{"aborted_requests":{"value":0,"type":"counter","desc":"number of aborted requests"},"bulk_docs":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"distribution of the number of docs in _bulk_docs requests"},"bulk_requests":{"value":2157,"type":"counter","desc":"number of bulk requests"},"requests":{"value":632657,"type":"counter","desc":"number of HTTP requests"},"temporary_view_reads":{"value":0,"type":"counter","desc":"number of temporary view reads"},"view_reads":{"value":6119,"type":"counter","desc":"number of view reads"},"clients_requesting_changes":{"value":0,"type":"counter","desc":"number of clients for continuous _changes"}},"dbinfo":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"distribution of latencies for calls to retrieve DB info"},"auth_cache_hits":{"value":0,"type":"counter","desc":"number of authentication cache hits"},"auth_cache_misses":{"value":632649,"type":"counter","desc":"number of authentication cache misses"},"collect_results_time":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"microsecond latency for calls to couch_db:collect_results/3"},"database_writes":{"value":278472,"type":"counter","desc":"number of times a database was changed"},"database_reads":{"value":768051,"type":"counter","desc":"number of times a document was read from a database"},"db_open_time":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"milliseconds required to open a database"},"document_inserts":{"value":64785,"type":"counter","desc":"number of documents inserted"},"document_writes":{"value":372110,"type":"counter","desc":"number of document write operations"},"local_document_writes":{"value":252674,"type":"counter","desc":"number of _local document write operations"},"httpd_request_methods":{"COPY":{"value":0,"type":"counter","desc":"number of HTTP COPY requests"},"DELETE":{"value":59615,"type":"counter","desc":"number of HTTP DELETE requests"},"GET":{"value":314241,"type":"counter","desc":"number of HTTP GET requests"},"HEAD":{"value":73164,"type":"counter","desc":"number of HTTP HEAD requests"},"OPTIONS":{"value":0,"type":"counter","desc":"number of HTTP OPTIONS requests"},"POST":{"value":125361,"type":"counter","desc":"number of HTTP POST requests"},"PUT":{"value":60277,"type":"counter","desc":"number of HTTP PUT requests"}},"httpd_status_codes":{"200":{"value":507659,"type":"counter","desc":"number of HTTP 200 OK responses"},"201":{"value":63085,"type":"counter","desc":"number of HTTP 201 Created responses"},"202":{"value":0,"type":"counter","desc":"number of HTTP 202 Accepted responses"},"204":{"value":0,"type":"counter","desc":"number of HTTP 204 No Content responses"},"206":{"value":0,"type":"counter","desc":"number of HTTP 206 Partial Content"},"301":{"value":192,"type":"counter","desc":"number of HTTP 301 Moved Permanently responses"},"302":{"value":0,"type":"counter","desc":"number of HTTP 302 Found responses"},"304":{"value":2006,"type":"counter","desc":"number of HTTP 304 Not Modified responses"},"400":{"value":0,"type":"counter","desc":"number of HTTP 400 Bad Request responses"},"401":{"value":0,"type":"counter","desc":"number of HTTP 401 Unauthorized responses"},"403":{"value":0,"type":"counter","desc":"number of HTTP 403 Forbidden responses"},"404":{"value":89,"type":"counter","desc":"number of HTTP 404 Not Found responses"},"405":{"value":0,"type":"counter","desc":"number of HTTP 405 Method Not Allowed responses"},"406":{"value":0,"type":"counter","desc":"number of HTTP 406 Not Acceptable responses"},"409":{"value":0,"type":"counter","desc":"number of HTTP 409 Conflict responses"},"412":{"value":59625,"type":"counter","desc":"number of HTTP 412 Precondition Failed responses"},"413":{"value":0,"type":"counter","desc":"number of HTTP 413 Request Entity Too Long responses"},"414":{"value":0,"type":"counter","desc":"number of HTTP 414 Request URI Too Long responses"},"415":{"value":0,"type":"counter","desc":"number of HTTP 415 Unsupported Media Type responses"},"416":{"value":0,"type":"counter","desc":"number of HTTP 416 Requested Range Not Satisfiable responses"},"417":{"value":0,"type":"counter","desc":"number of HTTP 417 Expectation Failed responses"},"500":{"value":3,"type":"counter","desc":"number of HTTP 500 Internal Server Error responses"},"501":{"value":0,"type":"counter","desc":"number of HTTP 501 Not Implemented responses"},"503":{"value":0,"type":"counter","desc":"number of HTTP 503 Service unavailable responses"}},"open_databases":{"value":55,"type":"counter","desc":"number of open databases"},"open_os_files":{"value":123,"type":"counter","desc":"number of file descriptors CouchDB has open"},"request_time":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"length of a request inside CouchDB without MochiWeb"},"couch_server":{"lru_skip":{"value":3431,"type":"counter","desc":"number of couch_server LRU operations skipped"}},"query_server":{"vdu_rejects":{"value":0,"type":"counter","desc":"number of rejections by validate_doc_update function"},"vdu_process_time":{"value":{"min":0.0,"max":0.0,"arithmetic_mean":0.0,"geometric_mean":0.0,"harmonic_mean":0.0,"median":0.0,"variance":0.0,"standard_deviation":0.0,"skewness":0.0,"kurtosis":0.0,"percentile":[[50,0.0],[75,0.0],[90,0.0],[95,0.0],[99,0.0],[999,0.0]],"histogram":[[0,0]],"n":0},"type":"histogram","desc":"duration of validate_doc_update function calls"}},"mrview":{"map_doc":{"value":3910012,"type":"counter","desc":"number of documents mapped in the view server"},"emits":{"value":228192,"type":"counter","desc":"number of invocations of `emit' in map functions in the view server"}}},"couch_log":{"level":{"alert":{"value":0,"type":"counter","desc":"number of logged alert messages"},"critical":{"value":0,"type":"counter","desc":"number of logged critical messages"},"debug":{"value":0,"type":"counter","desc":"number of logged debug messages"},"emergency":{"value":0,"type":"counter","desc":"number of logged emergency messages"},"error":{"value":77,"type":"counter","desc":"number of logged error messages"},"info":{"value":20074,"type":"counter","desc":"number of logged info messages"},"notice":{"value":732275,"type":"counter","desc":"number of logged notice messages"},"warning":{"value":300,"type":"counter","desc":"number of logged warning messages"}}},"pread":{"exceed_eof":{"value":0,"type":"counter","desc":"number of the attempts to read beyond end of db file"},"exceed_limit":{"value":0,"type":"counter","desc":"number of the attempts to read beyond set limit"}},"global_changes":{"db_writes":{"value":64187,"type":"counter","desc":"number of db writes performed by global changes"},"event_doc_conflict":{"value":62697,"type":"counter","desc":"number of conflicted event docs encountered by global changes"},"listener_pending_updates":{"value":0,"type":"gauge","desc":"number of global changes updates pending writes in global_changes_listener"},"rpcs":{"value":220383,"type":"counter","desc":"number of rpc operations performed by global_changes"},"server_pending_updates":{"value":0,"type":"gauge","desc":"number of global changes updates pending writes in global_changes_server"}},"rexi":{"buffered":{"value":2,"type":"counter","desc":"number of rexi messages buffered"},"down":{"value":18,"type":"counter","desc":"number of rexi_DOWN messages handled"},"dropped":{"value":0,"type":"counter","desc":"number of rexi messages dropped from buffers"},"streams":{"timeout":{"init_stream":{"value":0,"type":"counter","desc":"number of rexi stream initialization timeouts"},"stream":{"value":0,"type":"counter","desc":"number of rexi stream timeouts"},"wait_for_ack":{"value":0,"type":"counter","desc":"number of rexi stream timeouts while waiting for acks"}}}},"mem3":{"shard_cache":{"eviction":{"value":0,"type":"counter","desc":"number of shard cache evictions"},"hit":{"value":4868849,"type":"counter","desc":"number of shard cache hits"},"miss":{"value":10920,"type":"counter","desc":"number of shard cache misses"}}},"ddoc_cache":{"hit":{"value":49571,"type":"counter","desc":"number of design doc cache hits"},"miss":{"value":30611,"type":"counter","desc":"number of design doc cache misses"},"recovery":{"value":0,"type":"counter","desc":"number of design doc cache recoveries"}},"fabric":{"worker":{"timeouts":{"value":2,"type":"counter","desc":"number of worker timeouts"}},"open_shard":{"timeouts":{"value":4856,"type":"counter","desc":"number of open shard timeouts"}},"read_repairs":{"success":{"value":4988,"type":"counter","desc":"number of successful read repair operations"},"failure":{"value":0,"type":"counter","desc":"number of failed read repair operations"}},"doc_update":{"errors":{"value":12265,"type":"counter","desc":"number of document update errors"},"mismatched_errors":{"value":0,"type":"counter","desc":"number of document update errors with multiple error types"},"write_quorum_errors":{"value":229,"type":"counter","desc":"number of write quorum errors"}}},"couch_replicator":{"changes_read_failures":{"value":0,"type":"counter","desc":"number of failed replicator changes read failures"},"changes_reader_deaths":{"value":0,"type":"counter","desc":"number of failed replicator changes readers"},"changes_manager_deaths":{"value":0,"type":"counter","desc":"number of failed replicator changes managers"},"changes_queue_deaths":{"value":0,"type":"counter","desc":"number of failed replicator changes work queues"},"checkpoints":{"success":{"value":222,"type":"counter","desc":"number of checkpoints successfully saves"},"failure":{"value":0,"type":"counter","desc":"number of failed checkpoint saves"}},"failed_starts":{"value":0,"type":"counter","desc":"number of replications that have failed to start"},"requests":{"value":190626,"type":"counter","desc":"number of HTTP requests made by the replicator"},"responses":{"failure":{"value":0,"type":"counter","desc":"number of failed HTTP responses received by the replicator"},"success":{"value":161536,"type":"counter","desc":"number of successful HTTP responses received by the replicator"}},"stream_responses":{"failure":{"value":0,"type":"counter","desc":"number of failed streaming HTTP responses received by the replicator"},"success":{"value":0,"type":"counter","desc":"number of successful streaming HTTP responses received by the replicator"}},"worker_deaths":{"value":0,"type":"counter","desc":"number of failed replicator workers"},"workers_started":{"value":79500,"type":"counter","desc":"number of replicator workers started"},"cluster_is_stable":{"value":1,"type":"gauge","desc":"1 if cluster is stable, 0 if unstable"},"db_scans":{"value":2,"type":"counter","desc":"number of times replicator db scans have been started"},"docs":{"dbs_created":{"value":0,"type":"counter","desc":"number of db shard creations seen by replicator doc processor"},"dbs_deleted":{"value":0,"type":"counter","desc":"number of db shard deletions seen by replicator doc processor"},"dbs_found":{"value":18,"type":"counter","desc":"number of db shard found by replicator doc processor"},"db_changes":{"value":401659,"type":"counter","desc":"number of db changes processed by replicator doc processor"},"failed_state_updates":{"value":0,"type":"counter","desc":"number of 'failed' state document updates"},"completed_state_updates":{"value":19875,"type":"counter","desc":"number of 'completed' state document updates"}},"jobs":{"adds":{"value":19875,"type":"counter","desc":"number of jobs added to replicator scheduler"},"duplicate_adds":{"value":0,"type":"counter","desc":"number of duplicate jobs added to replicator scheduler"},"removes":{"value":0,"type":"counter","desc":"number of jobs removed from replicator scheduler"},"starts":{"value":19875,"type":"counter","desc":"number of jobs started by replicator scheduler"},"stops":{"value":0,"type":"counter","desc":"number of jobs stopped by replicator scheduler"},"crashes":{"value":0,"type":"counter","desc":"number of job crashed noticed by replicator scheduler"},"running":{"value":0,"type":"gauge","desc":"replicator scheduler running jobs"},"pending":{"value":0,"type":"gauge","desc":"replicator scheduler pending jobs"},"crashed":{"value":0,"type":"gauge","desc":"replicator scheduler crashed jobs"},"total":{"value":6,"type":"gauge","desc":"total number of replicator scheduler jobs"}},"connection":{"acquires":{"value":218819,"type":"counter","desc":"number of times connections are shared"},"creates":{"value":4972,"type":"counter","desc":"number of connections created"},"releases":{"value":223791,"type":"counter","desc":"number of times ownership of a connection is released"},"owner_crashes":{"value":0,"type":"counter","desc":"number of times a connection owner crashes while owning at least one connection"},"worker_crashes":{"value":0,"type":"counter","desc":"number of times a worker unexpectedly terminates"},"closes":{"value":4972,"type":"counter","desc":"number of times a worker is gracefully shut down"}}}}
Or did you want to returned headers?
Just in case you want those:
HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 14118
Content-Type: application/json
Date: Wed, 22 Aug 2018 17:49:25 GMT
Server: CouchDB/2.2.0 (Erlang OTP/19)
Ok. So it turns out that telegraf doesn't error if couchdb responds unsuccessfully. The cause of the unsuccessful response is because Couchdb moved the /_stats route to /_node/_local/_stats for 2.0 and changed the api response, so you are getting 0s as most of the fields don't exist.
Ok, so basically, the couchdb add-on for telegraf will not work, until there has been an update to the code, to be compatible with Couchdb 2.X?