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  )