github.com/netdata/go.d.plugin@v0.58.1/modules/coredns/charts.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package coredns
     4  
     5  import "github.com/netdata/go.d.plugin/agent/module"
     6  
     7  type (
     8  	// Charts is an alias for module.Charts
     9  	Charts = module.Charts
    10  	// Chart is an alias for module.Chart
    11  	Chart = module.Chart
    12  	// Dims is an alias for module.Dims
    13  	Dims = module.Dims
    14  	// Dim is an alias for module.Dim
    15  	Dim = module.Dim
    16  )
    17  
    18  var summaryCharts = Charts{
    19  	{
    20  		ID:    "dns_request_count_total",
    21  		Title: "Number Of DNS Requests",
    22  		Units: "requests/s",
    23  		Fam:   "summary",
    24  		Ctx:   "coredns.dns_request_count_total",
    25  		Dims: Dims{
    26  			{ID: "request_total", Name: "requests", Algo: module.Incremental},
    27  		},
    28  	},
    29  	{
    30  		ID:    "dns_responses_count_total",
    31  		Title: "Number Of DNS Responses",
    32  		Units: "responses/s",
    33  		Fam:   "summary",
    34  		Ctx:   "coredns.dns_responses_count_total",
    35  		Dims: Dims{
    36  			{ID: "response_total", Name: "responses", Algo: module.Incremental},
    37  		},
    38  	},
    39  	{
    40  		ID:    "dns_request_count_total_per_status",
    41  		Title: "Number Of Processed And Dropped DNS Requests",
    42  		Units: "requests/s",
    43  		Fam:   "summary",
    44  		Ctx:   "coredns.dns_request_count_total_per_status",
    45  		Type:  module.Stacked,
    46  		Dims: Dims{
    47  			{ID: "request_per_status_processed", Name: "processed", Algo: module.Incremental},
    48  			{ID: "request_per_status_dropped", Name: "dropped", Algo: module.Incremental},
    49  		},
    50  	},
    51  	{
    52  		ID:    "dns_no_matching_zone_dropped_total",
    53  		Title: "Number Of Dropped DNS Requests Because Of No Matching Zone",
    54  		Units: "requests/s",
    55  		Fam:   "summary",
    56  		Ctx:   "coredns.dns_no_matching_zone_dropped_total",
    57  		Dims: Dims{
    58  			{ID: "no_matching_zone_dropped_total", Name: "dropped", Algo: module.Incremental},
    59  		},
    60  	},
    61  	{
    62  		ID:    "dns_panic_count_total",
    63  		Title: "Number Of Panics",
    64  		Units: "panics/s",
    65  		Fam:   "summary",
    66  		Ctx:   "coredns.dns_panic_count_total",
    67  		Dims: Dims{
    68  			{ID: "panic_total", Name: "panics", Algo: module.Incremental},
    69  		},
    70  	},
    71  	{
    72  		ID:    "dns_requests_count_total_per_proto",
    73  		Title: "Number Of DNS Requests Per Transport Protocol",
    74  		Units: "requests/s",
    75  		Fam:   "summary",
    76  		Ctx:   "coredns.dns_requests_count_total_per_proto",
    77  		Type:  module.Stacked,
    78  		Dims: Dims{
    79  			{ID: "request_per_proto_udp", Name: "udp", Algo: module.Incremental},
    80  			{ID: "request_per_proto_tcp", Name: "tcp", Algo: module.Incremental},
    81  		},
    82  	},
    83  	{
    84  		ID:    "dns_requests_count_total_per_ip_family",
    85  		Title: "Number Of DNS Requests Per IP Family",
    86  		Units: "requests/s",
    87  		Fam:   "summary",
    88  		Ctx:   "coredns.dns_requests_count_total_per_ip_family",
    89  		Type:  module.Stacked,
    90  		Dims: Dims{
    91  			{ID: "request_per_ip_family_v4", Name: "v4", Algo: module.Incremental},
    92  			{ID: "request_per_ip_family_v6", Name: "v6", Algo: module.Incremental},
    93  		},
    94  	},
    95  	//{
    96  	//	ID:    "dns_requests_duration_seconds",
    97  	//	Title: "Number Of DNS Requests Per Bucket",
    98  	//	Units: "requests/s",
    99  	//	Fam:   "summary",
   100  	//	Ctx:   "coredns.dns_requests_duration_seconds",
   101  	//	Type:  module.Stacked,
   102  	//	Dims: Dims{
   103  	//		{ID: "request_duration_seconds_bucket_0.00025", Name: "0.00025s", Algo: module.Incremental},
   104  	//		{ID: "request_duration_seconds_bucket_0.0005", Name: "0.0005s", Algo: module.Incremental},
   105  	//		{ID: "request_duration_seconds_bucket_0.001", Name: "0.001s", Algo: module.Incremental},
   106  	//		{ID: "request_duration_seconds_bucket_0.002", Name: "0.002s", Algo: module.Incremental},
   107  	//		{ID: "request_duration_seconds_bucket_0.004", Name: "0.004s", Algo: module.Incremental},
   108  	//		{ID: "request_duration_seconds_bucket_0.008", Name: "0.008s", Algo: module.Incremental},
   109  	//		{ID: "request_duration_seconds_bucket_0.016", Name: "0.016s", Algo: module.Incremental},
   110  	//		{ID: "request_duration_seconds_bucket_0.032", Name: "0.032s", Algo: module.Incremental},
   111  	//		{ID: "request_duration_seconds_bucket_0.064", Name: "0.064s", Algo: module.Incremental},
   112  	//		{ID: "request_duration_seconds_bucket_0.128", Name: "0.128s", Algo: module.Incremental},
   113  	//		{ID: "request_duration_seconds_bucket_0.256", Name: "0.256s", Algo: module.Incremental},
   114  	//		{ID: "request_duration_seconds_bucket_0.512", Name: "0.512s", Algo: module.Incremental},
   115  	//		{ID: "request_duration_seconds_bucket_1.024", Name: "1.024s", Algo: module.Incremental},
   116  	//		{ID: "request_duration_seconds_bucket_2.048", Name: "2.048s", Algo: module.Incremental},
   117  	//		{ID: "request_duration_seconds_bucket_4.096", Name: "4.096s", Algo: module.Incremental},
   118  	//		{ID: "request_duration_seconds_bucket_8.192", Name: "8.192s", Algo: module.Incremental},
   119  	//		{ID: "request_duration_seconds_bucket_+Inf", Name: "+Inf", Algo: module.Incremental},
   120  	//	},
   121  	//},
   122  	{
   123  		ID:    "dns_requests_count_total_per_type",
   124  		Title: "Number Of DNS Requests Per Type",
   125  		Units: "requests/s",
   126  		Fam:   "summary",
   127  		Ctx:   "coredns.dns_requests_count_total_per_per_type",
   128  		Type:  module.Stacked,
   129  		Dims: Dims{
   130  			{ID: "request_per_type_A", Name: "A", Algo: module.Incremental},
   131  			{ID: "request_per_type_AAAA", Name: "AAAA", Algo: module.Incremental},
   132  			{ID: "request_per_type_MX", Name: "MX", Algo: module.Incremental},
   133  			{ID: "request_per_type_SOA", Name: "SOA", Algo: module.Incremental},
   134  			{ID: "request_per_type_CNAME", Name: "CNAME", Algo: module.Incremental},
   135  			{ID: "request_per_type_PTR", Name: "PTR", Algo: module.Incremental},
   136  			{ID: "request_per_type_TXT", Name: "TXT", Algo: module.Incremental},
   137  			{ID: "request_per_type_NS", Name: "NS", Algo: module.Incremental},
   138  			{ID: "request_per_type_DS", Name: "DS", Algo: module.Incremental},
   139  			{ID: "request_per_type_DNSKEY", Name: "DNSKEY", Algo: module.Incremental},
   140  			{ID: "request_per_type_RRSIG", Name: "RRSIG", Algo: module.Incremental},
   141  			{ID: "request_per_type_NSEC", Name: "NSEC", Algo: module.Incremental},
   142  			{ID: "request_per_type_NSEC3", Name: "NSEC3", Algo: module.Incremental},
   143  			{ID: "request_per_type_IXFR", Name: "IXFR", Algo: module.Incremental},
   144  			{ID: "request_per_type_ANY", Name: "ANY", Algo: module.Incremental},
   145  			{ID: "request_per_type_other", Name: "other", Algo: module.Incremental},
   146  		},
   147  	},
   148  	{
   149  		ID:    "dns_responses_count_total_per_rcode",
   150  		Title: "Number Of DNS Responses Per Rcode",
   151  		Units: "responses/s",
   152  		Fam:   "summary",
   153  		Ctx:   "coredns.dns_responses_count_total_per_rcode",
   154  		Type:  module.Stacked,
   155  		Dims: Dims{
   156  			{ID: "response_per_rcode_NOERROR", Name: "NOERROR", Algo: module.Incremental},
   157  			{ID: "response_per_rcode_FORMERR", Name: "FORMERR", Algo: module.Incremental},
   158  			{ID: "response_per_rcode_SERVFAIL", Name: "SERVFAIL", Algo: module.Incremental},
   159  			{ID: "response_per_rcode_NXDOMAIN", Name: "NXDOMAIN", Algo: module.Incremental},
   160  			{ID: "response_per_rcode_NOTIMP", Name: "NOTIMP", Algo: module.Incremental},
   161  			{ID: "response_per_rcode_REFUSED", Name: "REFUSED", Algo: module.Incremental},
   162  			{ID: "response_per_rcode_YXDOMAIN", Name: "YXDOMAIN", Algo: module.Incremental},
   163  			{ID: "response_per_rcode_YXRRSET", Name: "YXRRSET", Algo: module.Incremental},
   164  			{ID: "response_per_rcode_NXRRSET", Name: "NXRRSET", Algo: module.Incremental},
   165  			{ID: "response_per_rcode_NOTAUTH", Name: "NOTAUTH", Algo: module.Incremental},
   166  			{ID: "response_per_rcode_NOTZONE", Name: "NOTZONE", Algo: module.Incremental},
   167  			{ID: "response_per_rcode_BADSIG", Name: "BADSIG", Algo: module.Incremental},
   168  			{ID: "response_per_rcode_BADKEY", Name: "BADKEY", Algo: module.Incremental},
   169  			{ID: "response_per_rcode_BADTIME", Name: "BADTIME", Algo: module.Incremental},
   170  			{ID: "response_per_rcode_BADMODE", Name: "BADMODE", Algo: module.Incremental},
   171  			{ID: "response_per_rcode_BADNAME", Name: "BADNAME", Algo: module.Incremental},
   172  			{ID: "response_per_rcode_BADALG", Name: "BADALG", Algo: module.Incremental},
   173  			{ID: "response_per_rcode_BADTRUNC", Name: "BADTRUNC", Algo: module.Incremental},
   174  			{ID: "response_per_rcode_BADCOOKIE", Name: "BADCOOKIE", Algo: module.Incremental},
   175  			{ID: "response_per_rcode_other", Name: "other", Algo: module.Incremental},
   176  		},
   177  	},
   178  }
   179  
   180  var serverCharts = Charts{
   181  	{
   182  		ID:    "per_%s_%s_dns_request_count_total",
   183  		Title: "Number Of DNS Requests, %s %s",
   184  		Units: "requests/s",
   185  		Fam:   "%s %s",
   186  		Ctx:   "coredns.server_dns_request_count_total",
   187  		Dims: Dims{
   188  			{ID: "%s_request_total", Name: "requests", Algo: module.Incremental},
   189  		},
   190  	},
   191  	{
   192  		ID:    "per_%s_%s_dns_responses_count_total",
   193  		Title: "Number Of DNS Responses, %s %s",
   194  		Units: "responses/s",
   195  		Fam:   "%s %s",
   196  		Ctx:   "coredns.server_dns_responses_count_total",
   197  		Dims: Dims{
   198  			{ID: "%s_response_total", Name: "responses", Algo: module.Incremental},
   199  		},
   200  	},
   201  	{
   202  		ID:    "per_%s_%s_dns_request_count_total_per_status",
   203  		Title: "Number Of Processed And Dropped DNS Requests, %s %s",
   204  		Units: "requests/s",
   205  		Fam:   "%s %s",
   206  		Ctx:   "coredns.server_dns_request_count_total_per_status",
   207  		Type:  module.Stacked,
   208  		Dims: Dims{
   209  			{ID: "%s_request_per_status_processed", Name: "processed", Algo: module.Incremental},
   210  			{ID: "%s_request_per_status_dropped", Name: "dropped", Algo: module.Incremental},
   211  		},
   212  	},
   213  	{
   214  		ID:    "per_%s_%s_dns_requests_count_total_per_proto",
   215  		Title: "Number Of DNS Requests Per Transport Protocol, %s %s",
   216  		Units: "requests/s",
   217  		Fam:   "%s %s",
   218  		Ctx:   "coredns.server_dns_requests_count_total_per_proto",
   219  		Type:  module.Stacked,
   220  		Dims: Dims{
   221  			{ID: "%s_request_per_proto_udp", Name: "udp", Algo: module.Incremental},
   222  			{ID: "%s_request_per_proto_tcp", Name: "tcp", Algo: module.Incremental},
   223  		},
   224  	},
   225  	{
   226  		ID:    "per_%s_%s_dns_requests_count_total_per_ip_family",
   227  		Title: "Number Of DNS Requests Per IP Family, %s %s",
   228  		Units: "requests/s",
   229  		Fam:   "%s %s",
   230  		Ctx:   "coredns.server_dns_requests_count_total_per_ip_family",
   231  		Type:  module.Stacked,
   232  		Dims: Dims{
   233  			{ID: "%s_request_per_ip_family_v4", Name: "v4", Algo: module.Incremental},
   234  			{ID: "%s_request_per_ip_family_v6", Name: "v6", Algo: module.Incremental},
   235  		},
   236  	},
   237  	//{
   238  	//	ID:    "per_%s_%s_dns_requests_duration_seconds",
   239  	//	Title: "Number Of DNS Requests Per Bucket, %s %s",
   240  	//	Units: "requests/s",
   241  	//	Fam:   "%s %s",
   242  	//	Ctx:   "coredns.server_dns_requests_duration_seconds",
   243  	//	Type:  module.Stacked,
   244  	//	Dims: Dims{
   245  	//		{ID: "%s_request_duration_seconds_bucket_0.00025", Name: "0.00025s", Algo: module.Incremental},
   246  	//		{ID: "%s_request_duration_seconds_bucket_0.0005", Name: "0.0005s", Algo: module.Incremental},
   247  	//		{ID: "%s_request_duration_seconds_bucket_0.001", Name: "0.001s", Algo: module.Incremental},
   248  	//		{ID: "%s_request_duration_seconds_bucket_0.002", Name: "0.002s", Algo: module.Incremental},
   249  	//		{ID: "%s_request_duration_seconds_bucket_0.004", Name: "0.004s", Algo: module.Incremental},
   250  	//		{ID: "%s_request_duration_seconds_bucket_0.008", Name: "0.008s", Algo: module.Incremental},
   251  	//		{ID: "%s_request_duration_seconds_bucket_0.016", Name: "0.016s", Algo: module.Incremental},
   252  	//		{ID: "%s_request_duration_seconds_bucket_0.032", Name: "0.032s", Algo: module.Incremental},
   253  	//		{ID: "%s_request_duration_seconds_bucket_0.064", Name: "0.064s", Algo: module.Incremental},
   254  	//		{ID: "%s_request_duration_seconds_bucket_0.128", Name: "0.128s", Algo: module.Incremental},
   255  	//		{ID: "%s_request_duration_seconds_bucket_0.256", Name: "0.256s", Algo: module.Incremental},
   256  	//		{ID: "%s_request_duration_seconds_bucket_0.512", Name: "0.512s", Algo: module.Incremental},
   257  	//		{ID: "%s_request_duration_seconds_bucket_1.024", Name: "1.024s", Algo: module.Incremental},
   258  	//		{ID: "%s_request_duration_seconds_bucket_2.048", Name: "2.048s", Algo: module.Incremental},
   259  	//		{ID: "%s_request_duration_seconds_bucket_4.096", Name: "4.096s", Algo: module.Incremental},
   260  	//		{ID: "%s_request_duration_seconds_bucket_8.192", Name: "8.192s", Algo: module.Incremental},
   261  	//		{ID: "%s_request_duration_seconds_bucket_+Inf", Name: "+Inf", Algo: module.Incremental},
   262  	//	},
   263  	//},
   264  	{
   265  		ID:    "per_%s_%s_dns_requests_count_total_per_type",
   266  		Title: "Number Of DNS Requests Per Type, %s %s",
   267  		Units: "requests/s",
   268  		Fam:   "%s %s",
   269  		Ctx:   "coredns.server_dns_requests_count_total_per_per_type",
   270  		Type:  module.Stacked,
   271  		Dims: Dims{
   272  			{ID: "%s_request_per_type_A", Name: "A", Algo: module.Incremental},
   273  			{ID: "%s_request_per_type_AAAA", Name: "AAAA", Algo: module.Incremental},
   274  			{ID: "%s_request_per_type_MX", Name: "MX", Algo: module.Incremental},
   275  			{ID: "%s_request_per_type_SOA", Name: "SOA", Algo: module.Incremental},
   276  			{ID: "%s_request_per_type_CNAME", Name: "CNAME", Algo: module.Incremental},
   277  			{ID: "%s_request_per_type_PTR", Name: "PTR", Algo: module.Incremental},
   278  			{ID: "%s_request_per_type_TXT", Name: "TXT", Algo: module.Incremental},
   279  			{ID: "%s_request_per_type_NS", Name: "NS", Algo: module.Incremental},
   280  			{ID: "%s_request_per_type_DS", Name: "DS", Algo: module.Incremental},
   281  			{ID: "%s_request_per_type_DNSKEY", Name: "DNSKEY", Algo: module.Incremental},
   282  			{ID: "%s_request_per_type_RRSIG", Name: "RRSIG", Algo: module.Incremental},
   283  			{ID: "%s_request_per_type_NSEC", Name: "NSEC", Algo: module.Incremental},
   284  			{ID: "%s_request_per_type_NSEC3", Name: "NSEC3", Algo: module.Incremental},
   285  			{ID: "%s_request_per_type_IXFR", Name: "IXFR", Algo: module.Incremental},
   286  			{ID: "%s_request_per_type_ANY", Name: "ANY", Algo: module.Incremental},
   287  			{ID: "%s_request_per_type_other", Name: "other", Algo: module.Incremental},
   288  		},
   289  	},
   290  	{
   291  		ID:    "per_%s_%s_dns_responses_count_total_per_rcode",
   292  		Title: "Number Of DNS Responses Per Rcode, %s %s",
   293  		Units: "responses/s",
   294  		Fam:   "%s %s",
   295  		Ctx:   "coredns.server_dns_responses_count_total_per_rcode",
   296  		Type:  module.Stacked,
   297  		Dims: Dims{
   298  			{ID: "%s_response_per_rcode_NOERROR", Name: "NOERROR", Algo: module.Incremental},
   299  			{ID: "%s_response_per_rcode_FORMERR", Name: "FORMERR", Algo: module.Incremental},
   300  			{ID: "%s_response_per_rcode_SERVFAIL", Name: "SERVFAIL", Algo: module.Incremental},
   301  			{ID: "%s_response_per_rcode_NXDOMAIN", Name: "NXDOMAIN", Algo: module.Incremental},
   302  			{ID: "%s_response_per_rcode_NOTIMP", Name: "NOTIMP", Algo: module.Incremental},
   303  			{ID: "%s_response_per_rcode_REFUSED", Name: "REFUSED", Algo: module.Incremental},
   304  			{ID: "%s_response_per_rcode_YXDOMAIN", Name: "YXDOMAIN", Algo: module.Incremental},
   305  			{ID: "%s_response_per_rcode_YXRRSET", Name: "YXRRSET", Algo: module.Incremental},
   306  			{ID: "%s_response_per_rcode_NXRRSET", Name: "NXRRSET", Algo: module.Incremental},
   307  			{ID: "%s_response_per_rcode_NOTAUTH", Name: "NOTAUTH", Algo: module.Incremental},
   308  			{ID: "%s_response_per_rcode_NOTZONE", Name: "NOTZONE", Algo: module.Incremental},
   309  			{ID: "%s_response_per_rcode_BADSIG", Name: "BADSIG", Algo: module.Incremental},
   310  			{ID: "%s_response_per_rcode_BADKEY", Name: "BADKEY", Algo: module.Incremental},
   311  			{ID: "%s_response_per_rcode_BADTIME", Name: "BADTIME", Algo: module.Incremental},
   312  			{ID: "%s_response_per_rcode_BADMODE", Name: "BADMODE", Algo: module.Incremental},
   313  			{ID: "%s_response_per_rcode_BADNAME", Name: "BADNAME", Algo: module.Incremental},
   314  			{ID: "%s_response_per_rcode_BADALG", Name: "BADALG", Algo: module.Incremental},
   315  			{ID: "%s_response_per_rcode_BADTRUNC", Name: "BADTRUNC", Algo: module.Incremental},
   316  			{ID: "%s_response_per_rcode_BADCOOKIE", Name: "BADCOOKIE", Algo: module.Incremental},
   317  			{ID: "%s_response_per_rcode_other", Name: "other", Algo: module.Incremental},
   318  		},
   319  	},
   320  }
   321  
   322  var zoneCharts = func() Charts {
   323  	c := serverCharts.Copy()
   324  	_ = c.Remove("per_%s_%s_dns_request_count_total_per_status")
   325  	return *c
   326  }()