github.com/netdata/go.d.plugin@v0.58.1/modules/couchdb/charts.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package couchdb 4 5 import ( 6 "github.com/netdata/go.d.plugin/agent/module" 7 ) 8 9 type ( 10 Charts = module.Charts 11 Dims = module.Dims 12 Vars = module.Vars 13 ) 14 15 var dbActivityCharts = Charts{ 16 { 17 ID: "activity", 18 Title: "Overall Activity", 19 Units: "requests/s", 20 Fam: "dbactivity", 21 Ctx: "couchdb.activity", 22 Type: module.Stacked, 23 Dims: Dims{ 24 {ID: "couchdb_database_reads", Name: "DB reads", Algo: module.Incremental}, 25 {ID: "couchdb_database_writes", Name: "DB writes", Algo: module.Incremental}, 26 {ID: "couchdb_httpd_view_reads", Name: "View reads", Algo: module.Incremental}, 27 }, 28 }, 29 } 30 31 var httpTrafficBreakdownCharts = Charts{ 32 { 33 ID: "request_methods", 34 Title: "HTTP request methods", 35 Units: "requests/s", 36 Fam: "httptraffic", 37 Ctx: "couchdb.request_methods", 38 Type: module.Stacked, 39 Dims: Dims{ 40 {ID: "couchdb_httpd_request_methods_COPY", Name: "COPY", Algo: module.Incremental}, 41 {ID: "couchdb_httpd_request_methods_DELETE", Name: "DELETE", Algo: module.Incremental}, 42 {ID: "couchdb_httpd_request_methods_GET", Name: "GET", Algo: module.Incremental}, 43 {ID: "couchdb_httpd_request_methods_HEAD", Name: "HEAD", Algo: module.Incremental}, 44 {ID: "couchdb_httpd_request_methods_OPTIONS", Name: "OPTIONS", Algo: module.Incremental}, 45 {ID: "couchdb_httpd_request_methods_POST", Name: "POST", Algo: module.Incremental}, 46 {ID: "couchdb_httpd_request_methods_PUT", Name: "PUT", Algo: module.Incremental}, 47 }, 48 }, 49 { 50 ID: "response_codes", 51 Title: "HTTP response status codes", 52 Units: "responses/s", 53 Fam: "httptraffic", 54 Ctx: "couchdb.response_codes", 55 Type: module.Stacked, 56 Dims: Dims{ 57 {ID: "couchdb_httpd_status_codes_200", Name: "200 OK", Algo: module.Incremental}, 58 {ID: "couchdb_httpd_status_codes_201", Name: "201 Created", Algo: module.Incremental}, 59 {ID: "couchdb_httpd_status_codes_202", Name: "202 Accepted", Algo: module.Incremental}, 60 {ID: "couchdb_httpd_status_codes_204", Name: "204 No Content", Algo: module.Incremental}, 61 {ID: "couchdb_httpd_status_codes_206", Name: "206 Partial Content", Algo: module.Incremental}, 62 {ID: "couchdb_httpd_status_codes_301", Name: "301 Moved Permanently", Algo: module.Incremental}, 63 {ID: "couchdb_httpd_status_codes_302", Name: "302 Found", Algo: module.Incremental}, 64 {ID: "couchdb_httpd_status_codes_304", Name: "304 Not Modified", Algo: module.Incremental}, 65 {ID: "couchdb_httpd_status_codes_400", Name: "400 Bad Request", Algo: module.Incremental}, 66 {ID: "couchdb_httpd_status_codes_401", Name: "401 Unauthorized", Algo: module.Incremental}, 67 {ID: "couchdb_httpd_status_codes_403", Name: "403 Forbidden", Algo: module.Incremental}, 68 {ID: "couchdb_httpd_status_codes_404", Name: "404 Not Found", Algo: module.Incremental}, 69 {ID: "couchdb_httpd_status_codes_406", Name: "406 Not Acceptable", Algo: module.Incremental}, 70 {ID: "couchdb_httpd_status_codes_409", Name: "409 Conflict", Algo: module.Incremental}, 71 {ID: "couchdb_httpd_status_codes_412", Name: "412 Precondition Failed", Algo: module.Incremental}, 72 {ID: "couchdb_httpd_status_codes_413", Name: "413 Request Entity Too Long", Algo: module.Incremental}, 73 {ID: "couchdb_httpd_status_codes_414", Name: "414 Request URI Too Long", Algo: module.Incremental}, 74 {ID: "couchdb_httpd_status_codes_415", Name: "415 Unsupported Media Type", Algo: module.Incremental}, 75 {ID: "couchdb_httpd_status_codes_416", Name: "416 Requested Range Not Satisfiable", Algo: module.Incremental}, 76 {ID: "couchdb_httpd_status_codes_417", Name: "417 Expectation Failed", Algo: module.Incremental}, 77 {ID: "couchdb_httpd_status_codes_500", Name: "500 Internal Server Error", Algo: module.Incremental}, 78 {ID: "couchdb_httpd_status_codes_501", Name: "501 Not Implemented", Algo: module.Incremental}, 79 {ID: "couchdb_httpd_status_codes_503", Name: "503 Service Unavailable", Algo: module.Incremental}, 80 }, 81 }, 82 { 83 ID: "response_code_classes", 84 Title: "HTTP response status code classes", 85 Units: "responses/s", 86 Fam: "httptraffic", 87 Ctx: "couchdb.response_code_classes", 88 Type: module.Stacked, 89 Dims: Dims{ 90 {ID: "couchdb_httpd_status_codes_2xx", Name: "2xx Success", Algo: module.Incremental}, 91 {ID: "couchdb_httpd_status_codes_3xx", Name: "3xx Redirection", Algo: module.Incremental}, 92 {ID: "couchdb_httpd_status_codes_4xx", Name: "4xx Client error", Algo: module.Incremental}, 93 {ID: "couchdb_httpd_status_codes_5xx", Name: "5xx Server error", Algo: module.Incremental}, 94 }, 95 }, 96 } 97 98 var serverOperationsCharts = Charts{ 99 { 100 ID: "active_tasks", 101 Title: "Active task breakdown", 102 Units: "tasks", 103 Fam: "ops", 104 Ctx: "couchdb.active_tasks", 105 Type: module.Stacked, 106 Dims: Dims{ 107 {ID: "active_tasks_indexer", Name: "Indexer"}, 108 {ID: "active_tasks_database_compaction", Name: "DB Compaction"}, 109 {ID: "active_tasks_replication", Name: "Replication"}, 110 {ID: "active_tasks_view_compaction", Name: "View Compaction"}, 111 }, 112 }, 113 { 114 ID: "replicator_jobs", 115 Title: "Replicator job breakdown", 116 Units: "jobs", 117 Fam: "ops", 118 Ctx: "couchdb.replicator_jobs", 119 Type: module.Stacked, 120 Dims: Dims{ 121 {ID: "couch_replicator_jobs_running", Name: "Running"}, 122 {ID: "couch_replicator_jobs_pending", Name: "Pending"}, 123 {ID: "couch_replicator_jobs_crashed", Name: "Crashed"}, 124 {ID: "internal_replication_jobs", Name: "Internal replication jobs"}, 125 }, 126 }, 127 { 128 ID: "open_files", 129 Title: "Open files", 130 Units: "files", 131 Fam: "ops", 132 Ctx: "couchdb.open_files", 133 Dims: Dims{ 134 {ID: "couchdb_open_os_files", Name: "# files"}, 135 }, 136 }, 137 } 138 139 var erlangStatisticsCharts = Charts{ 140 { 141 ID: "erlang_memory", 142 Title: "Erlang VM memory usage", 143 Units: "B", 144 Fam: "erlang", 145 Ctx: "couchdb.erlang_vm_memory", 146 Type: module.Stacked, 147 Dims: Dims{ 148 {ID: "memory_atom", Name: "atom"}, 149 {ID: "memory_binary", Name: "binaries"}, 150 {ID: "memory_code", Name: "code"}, 151 {ID: "memory_ets", Name: "ets"}, 152 {ID: "memory_processes", Name: "procs"}, 153 {ID: "memory_other", Name: "other"}, 154 }, 155 }, 156 { 157 ID: "erlang_proc_counts", 158 Title: "Process counts", 159 Units: "processes", 160 Fam: "erlang", 161 Ctx: "couchdb.proccounts", 162 Dims: Dims{ 163 {ID: "os_proc_count", Name: "OS procs"}, 164 {ID: "process_count", Name: "erl procs"}, 165 }, 166 }, 167 { 168 ID: "erlang_peak_msg_queue", 169 Title: "Peak message queue size", 170 Units: "messages", 171 Fam: "erlang", 172 Ctx: "couchdb.peakmsgqueue", 173 Dims: Dims{ 174 {ID: "peak_msg_queue", Name: "peak size"}, 175 }, 176 }, 177 { 178 ID: "erlang_reductions", 179 Title: "Erlang reductions", 180 Units: "reductions", 181 Fam: "erlang", 182 Ctx: "couchdb.reductions", 183 Type: module.Stacked, 184 Dims: Dims{ 185 {ID: "reductions", Name: "reductions", Algo: module.Incremental}, 186 }, 187 }, 188 } 189 190 var ( 191 dbSpecificCharts = Charts{ 192 { 193 ID: "db_sizes_file", 194 Title: "Database sizes (file)", 195 Units: "KiB", 196 Fam: "perdbstats", 197 Ctx: "couchdb.db_sizes_file", 198 }, 199 { 200 ID: "db_sizes_external", 201 Title: "Database sizes (external)", 202 Units: "KiB", 203 Fam: "perdbstats", 204 Ctx: "couchdb.db_sizes_external", 205 }, 206 { 207 ID: "db_sizes_active", 208 Title: "Database sizes (active)", 209 Units: "KiB", 210 Fam: "perdbstats", 211 Ctx: "couchdb.db_sizes_active", 212 }, 213 { 214 ID: "db_doc_counts", 215 Title: "Database # of docs", 216 Units: "docs", 217 Fam: "perdbstats", 218 Ctx: "couchdb.db_doc_count", 219 }, 220 { 221 ID: "db_doc_del_counts", 222 Title: "Database # of deleted docs", 223 Units: "docs", 224 Fam: "perdbstats", 225 Ctx: "couchdb.db_doc_del_count", 226 }, 227 } 228 )