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