diff options
Diffstat (limited to 'src/go/plugin/go.d/modules/couchdb/charts.go')
-rw-r--r-- | src/go/plugin/go.d/modules/couchdb/charts.go | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/src/go/plugin/go.d/modules/couchdb/charts.go b/src/go/plugin/go.d/modules/couchdb/charts.go new file mode 100644 index 000000000..3d84471d2 --- /dev/null +++ b/src/go/plugin/go.d/modules/couchdb/charts.go @@ -0,0 +1,228 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package couchdb + +import ( + "github.com/netdata/netdata/go/plugins/plugin/go.d/agent/module" +) + +type ( + Charts = module.Charts + Dims = module.Dims + Vars = module.Vars +) + +var dbActivityCharts = Charts{ + { + ID: "activity", + Title: "Overall Activity", + Units: "requests/s", + Fam: "dbactivity", + Ctx: "couchdb.activity", + Type: module.Stacked, + Dims: Dims{ + {ID: "couchdb_database_reads", Name: "DB reads", Algo: module.Incremental}, + {ID: "couchdb_database_writes", Name: "DB writes", Algo: module.Incremental}, + {ID: "couchdb_httpd_view_reads", Name: "View reads", Algo: module.Incremental}, + }, + }, +} + +var httpTrafficBreakdownCharts = Charts{ + { + ID: "request_methods", + Title: "HTTP request methods", + Units: "requests/s", + Fam: "httptraffic", + Ctx: "couchdb.request_methods", + Type: module.Stacked, + Dims: Dims{ + {ID: "couchdb_httpd_request_methods_COPY", Name: "COPY", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_DELETE", Name: "DELETE", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_GET", Name: "GET", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_HEAD", Name: "HEAD", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_OPTIONS", Name: "OPTIONS", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_POST", Name: "POST", Algo: module.Incremental}, + {ID: "couchdb_httpd_request_methods_PUT", Name: "PUT", Algo: module.Incremental}, + }, + }, + { + ID: "response_codes", + Title: "HTTP response status codes", + Units: "responses/s", + Fam: "httptraffic", + Ctx: "couchdb.response_codes", + Type: module.Stacked, + Dims: Dims{ + {ID: "couchdb_httpd_status_codes_200", Name: "200 OK", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_201", Name: "201 Created", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_202", Name: "202 Accepted", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_204", Name: "204 No Content", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_206", Name: "206 Partial Content", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_301", Name: "301 Moved Permanently", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_302", Name: "302 Found", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_304", Name: "304 Not Modified", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_400", Name: "400 Bad Request", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_401", Name: "401 Unauthorized", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_403", Name: "403 Forbidden", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_404", Name: "404 Not Found", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_406", Name: "406 Not Acceptable", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_409", Name: "409 Conflict", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_412", Name: "412 Precondition Failed", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_413", Name: "413 Request Entity Too Long", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_414", Name: "414 Request URI Too Long", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_415", Name: "415 Unsupported Media Type", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_416", Name: "416 Requested Range Not Satisfiable", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_417", Name: "417 Expectation Failed", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_500", Name: "500 Internal Server Error", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_501", Name: "501 Not Implemented", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_503", Name: "503 Service Unavailable", Algo: module.Incremental}, + }, + }, + { + ID: "response_code_classes", + Title: "HTTP response status code classes", + Units: "responses/s", + Fam: "httptraffic", + Ctx: "couchdb.response_code_classes", + Type: module.Stacked, + Dims: Dims{ + {ID: "couchdb_httpd_status_codes_2xx", Name: "2xx Success", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_3xx", Name: "3xx Redirection", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_4xx", Name: "4xx Client error", Algo: module.Incremental}, + {ID: "couchdb_httpd_status_codes_5xx", Name: "5xx Server error", Algo: module.Incremental}, + }, + }, +} + +var serverOperationsCharts = Charts{ + { + ID: "active_tasks", + Title: "Active task breakdown", + Units: "tasks", + Fam: "ops", + Ctx: "couchdb.active_tasks", + Type: module.Stacked, + Dims: Dims{ + {ID: "active_tasks_indexer", Name: "Indexer"}, + {ID: "active_tasks_database_compaction", Name: "DB Compaction"}, + {ID: "active_tasks_replication", Name: "Replication"}, + {ID: "active_tasks_view_compaction", Name: "View Compaction"}, + }, + }, + { + ID: "replicator_jobs", + Title: "Replicator job breakdown", + Units: "jobs", + Fam: "ops", + Ctx: "couchdb.replicator_jobs", + Type: module.Stacked, + Dims: Dims{ + {ID: "couch_replicator_jobs_running", Name: "Running"}, + {ID: "couch_replicator_jobs_pending", Name: "Pending"}, + {ID: "couch_replicator_jobs_crashed", Name: "Crashed"}, + {ID: "internal_replication_jobs", Name: "Internal replication jobs"}, + }, + }, + { + ID: "open_files", + Title: "Open files", + Units: "files", + Fam: "ops", + Ctx: "couchdb.open_files", + Dims: Dims{ + {ID: "couchdb_open_os_files", Name: "# files"}, + }, + }, +} + +var erlangStatisticsCharts = Charts{ + { + ID: "erlang_memory", + Title: "Erlang VM memory usage", + Units: "B", + Fam: "erlang", + Ctx: "couchdb.erlang_vm_memory", + Type: module.Stacked, + Dims: Dims{ + {ID: "memory_atom", Name: "atom"}, + {ID: "memory_binary", Name: "binaries"}, + {ID: "memory_code", Name: "code"}, + {ID: "memory_ets", Name: "ets"}, + {ID: "memory_processes", Name: "procs"}, + {ID: "memory_other", Name: "other"}, + }, + }, + { + ID: "erlang_proc_counts", + Title: "Process counts", + Units: "processes", + Fam: "erlang", + Ctx: "couchdb.proccounts", + Dims: Dims{ + {ID: "os_proc_count", Name: "OS procs"}, + {ID: "process_count", Name: "erl procs"}, + }, + }, + { + ID: "erlang_peak_msg_queue", + Title: "Peak message queue size", + Units: "messages", + Fam: "erlang", + Ctx: "couchdb.peakmsgqueue", + Dims: Dims{ + {ID: "peak_msg_queue", Name: "peak size"}, + }, + }, + { + ID: "erlang_reductions", + Title: "Erlang reductions", + Units: "reductions", + Fam: "erlang", + Ctx: "couchdb.reductions", + Type: module.Stacked, + Dims: Dims{ + {ID: "reductions", Name: "reductions", Algo: module.Incremental}, + }, + }, +} + +var ( + dbSpecificCharts = Charts{ + { + ID: "db_sizes_file", + Title: "Database sizes (file)", + Units: "KiB", + Fam: "perdbstats", + Ctx: "couchdb.db_sizes_file", + }, + { + ID: "db_sizes_external", + Title: "Database sizes (external)", + Units: "KiB", + Fam: "perdbstats", + Ctx: "couchdb.db_sizes_external", + }, + { + ID: "db_sizes_active", + Title: "Database sizes (active)", + Units: "KiB", + Fam: "perdbstats", + Ctx: "couchdb.db_sizes_active", + }, + { + ID: "db_doc_counts", + Title: "Database # of docs", + Units: "docs", + Fam: "perdbstats", + Ctx: "couchdb.db_doc_count", + }, + { + ID: "db_doc_del_counts", + Title: "Database # of deleted docs", + Units: "docs", + Fam: "perdbstats", + Ctx: "couchdb.db_doc_del_count", + }, + } +) |