1 /* $NetBSD: stats.h,v 1.7 2023/01/25 21:43:33 christos Exp $ */ 2 3 /* 4 * Copyright (C) Internet Systems Consortium, Inc. ("ISC") 5 * 6 * SPDX-License-Identifier: MPL-2.0 7 * 8 * This Source Code Form is subject to the terms of the Mozilla Public 9 * License, v. 2.0. If a copy of the MPL was not distributed with this 10 * file, you can obtain one at https://mozilla.org/MPL/2.0/. 11 * 12 * See the COPYRIGHT file distributed with this work for additional 13 * information regarding copyright ownership. 14 */ 15 16 #ifndef NS_STATS_H 17 #define NS_STATS_H 1 18 19 /*! \file include/ns/stats.h */ 20 21 #include <ns/types.h> 22 23 /*% 24 * Server statistics counters. Used as isc_statscounter_t values. 25 */ 26 enum { 27 ns_statscounter_requestv4 = 0, 28 ns_statscounter_requestv6 = 1, 29 ns_statscounter_edns0in = 2, 30 ns_statscounter_badednsver = 3, 31 ns_statscounter_tsigin = 4, 32 ns_statscounter_sig0in = 5, 33 ns_statscounter_invalidsig = 6, 34 ns_statscounter_requesttcp = 7, 35 36 ns_statscounter_authrej = 8, 37 ns_statscounter_recurserej = 9, 38 ns_statscounter_xfrrej = 10, 39 ns_statscounter_updaterej = 11, 40 41 ns_statscounter_response = 12, 42 ns_statscounter_truncatedresp = 13, 43 ns_statscounter_edns0out = 14, 44 ns_statscounter_tsigout = 15, 45 ns_statscounter_sig0out = 16, 46 47 ns_statscounter_success = 17, 48 ns_statscounter_authans = 18, 49 ns_statscounter_nonauthans = 19, 50 ns_statscounter_referral = 20, 51 ns_statscounter_nxrrset = 21, 52 ns_statscounter_servfail = 22, 53 ns_statscounter_formerr = 23, 54 ns_statscounter_nxdomain = 24, 55 ns_statscounter_recursion = 25, 56 ns_statscounter_duplicate = 26, 57 ns_statscounter_dropped = 27, 58 ns_statscounter_failure = 28, 59 60 ns_statscounter_xfrdone = 29, 61 62 ns_statscounter_updatereqfwd = 30, 63 ns_statscounter_updaterespfwd = 31, 64 ns_statscounter_updatefwdfail = 32, 65 ns_statscounter_updatedone = 33, 66 ns_statscounter_updatefail = 34, 67 ns_statscounter_updatebadprereq = 35, 68 69 ns_statscounter_recursclients = 36, 70 71 ns_statscounter_dns64 = 37, 72 73 ns_statscounter_ratedropped = 38, 74 ns_statscounter_rateslipped = 39, 75 76 ns_statscounter_rpz_rewrites = 40, 77 78 ns_statscounter_udp = 41, 79 ns_statscounter_tcp = 42, 80 81 ns_statscounter_nsidopt = 43, 82 ns_statscounter_expireopt = 44, 83 ns_statscounter_otheropt = 45, 84 ns_statscounter_ecsopt = 46, 85 ns_statscounter_padopt = 47, 86 ns_statscounter_keepaliveopt = 48, 87 88 ns_statscounter_nxdomainredirect = 49, 89 ns_statscounter_nxdomainredirect_rlookup = 50, 90 91 ns_statscounter_cookiein = 51, 92 ns_statscounter_cookiebadsize = 52, 93 ns_statscounter_cookiebadtime = 53, 94 ns_statscounter_cookienomatch = 54, 95 ns_statscounter_cookiematch = 55, 96 ns_statscounter_cookienew = 56, 97 ns_statscounter_badcookie = 57, 98 99 ns_statscounter_nxdomainsynth = 58, 100 ns_statscounter_nodatasynth = 59, 101 ns_statscounter_wildcardsynth = 60, 102 103 ns_statscounter_trystale = 61, 104 ns_statscounter_usedstale = 62, 105 106 ns_statscounter_prefetch = 63, 107 ns_statscounter_keytagopt = 64, 108 109 ns_statscounter_tcphighwater = 65, 110 111 ns_statscounter_reclimitdropped = 66, 112 113 ns_statscounter_updatequota = 67, 114 115 ns_statscounter_max = 68, 116 }; 117 118 void 119 ns_stats_attach(ns_stats_t *stats, ns_stats_t **statsp); 120 121 void 122 ns_stats_detach(ns_stats_t **statsp); 123 124 isc_result_t 125 ns_stats_create(isc_mem_t *mctx, int ncounters, ns_stats_t **statsp); 126 127 void 128 ns_stats_increment(ns_stats_t *stats, isc_statscounter_t counter); 129 130 void 131 ns_stats_decrement(ns_stats_t *stats, isc_statscounter_t counter); 132 133 isc_stats_t * 134 ns_stats_get(ns_stats_t *stats); 135 136 void 137 ns_stats_update_if_greater(ns_stats_t *stats, isc_statscounter_t counter, 138 isc_statscounter_t value); 139 140 isc_statscounter_t 141 ns_stats_get_counter(ns_stats_t *stats, isc_statscounter_t counter); 142 143 #endif /* NS_STATS_H */ 144