mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
get_dns_stats: Expose total cache size and cached text entries
It wasn't possible from script land to determine the total size of the cache table held by the DNS_Mgr. Add the total and also also the TEXT entries count.
This commit is contained in:
parent
16bdcd27bd
commit
2251c67e56
6 changed files with 16 additions and 0 deletions
|
@ -757,6 +757,8 @@ type DNSStats: record {
|
||||||
pending: count; ##< Current pending queries.
|
pending: count; ##< Current pending queries.
|
||||||
cached_hosts: count; ##< Number of cached hosts.
|
cached_hosts: count; ##< Number of cached hosts.
|
||||||
cached_addresses: count; ##< Number of cached addresses.
|
cached_addresses: count; ##< Number of cached addresses.
|
||||||
|
cached_texts: count; ##< Number of cached text entries.
|
||||||
|
cached_total: count; ##< Total number of cached entries.
|
||||||
};
|
};
|
||||||
|
|
||||||
## Statistics about number of gaps in TCP connections.
|
## Statistics about number of gaps in TCP connections.
|
||||||
|
|
|
@ -1485,6 +1485,7 @@ void DNS_Mgr::GetStats(Stats* stats)
|
||||||
stats->cached_hosts = 0;
|
stats->cached_hosts = 0;
|
||||||
stats->cached_addresses = 0;
|
stats->cached_addresses = 0;
|
||||||
stats->cached_texts = 0;
|
stats->cached_texts = 0;
|
||||||
|
stats->cached_total = all_mappings.size();
|
||||||
|
|
||||||
for ( const auto& [key, mapping] : all_mappings )
|
for ( const auto& [key, mapping] : all_mappings )
|
||||||
{
|
{
|
||||||
|
|
|
@ -209,6 +209,7 @@ public:
|
||||||
unsigned long cached_hosts;
|
unsigned long cached_hosts;
|
||||||
unsigned long cached_addresses;
|
unsigned long cached_addresses;
|
||||||
unsigned long cached_texts;
|
unsigned long cached_texts;
|
||||||
|
unsigned long cached_total;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -259,6 +259,8 @@ function get_dns_stats%(%): DNSStats
|
||||||
r->Assign(n++, static_cast<uint64_t>(dstats.pending));
|
r->Assign(n++, static_cast<uint64_t>(dstats.pending));
|
||||||
r->Assign(n++, static_cast<uint64_t>(dstats.cached_hosts));
|
r->Assign(n++, static_cast<uint64_t>(dstats.cached_hosts));
|
||||||
r->Assign(n++, static_cast<uint64_t>(dstats.cached_addresses));
|
r->Assign(n++, static_cast<uint64_t>(dstats.cached_addresses));
|
||||||
|
r->Assign(n++, static_cast<uint64_t>(dstats.cached_texts));
|
||||||
|
r->Assign(n++, static_cast<uint64_t>(dstats.cached_total));
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
%}
|
%}
|
||||||
|
|
2
testing/btest/Baseline/bifs.get_dns_stats/out
Normal file
2
testing/btest/Baseline/bifs.get_dns_stats/out
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
|
[requests=0, successful=0, failed=0, pending=0, cached_hosts=0, cached_addresses=0, cached_texts=0, cached_total=0]
|
8
testing/btest/bifs/get_dns_stats.test
Normal file
8
testing/btest/bifs/get_dns_stats.test
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# @TEST-DOC: With FAKE_DNS mode caching is disabled, so testing is difficult, invoke the bif once at least.
|
||||||
|
# @TEST-EXEC: zeek -b %INPUT >out
|
||||||
|
# @TEST-EXEC: btest-diff out
|
||||||
|
|
||||||
|
event zeek_init()
|
||||||
|
{
|
||||||
|
print get_dns_stats();
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue