The | metadata command will only ever give you the current stats, so it wont do you any good as far as comparing today's hosts with last week's host.
and the _internal metrics data technically only lists stats from hosts that are significant contributors. So if there are a lot of hosts that are contributing relatively little, they wont show up there at all.
The answer may be to just spin up a search that searches every event.
If you run this search over a given time period:
* | fields host | stats count by host | sort host
it will give you an exhaustive list of all of the hosts in that period.
If you run this search:
* | fields host | timechart dc(host)
that will give you a graph of the number of distinct hosts over time, which might be useful.
And if you want to try doing the whole diff of this weeks hosts versus the hosts from a week ago, here are some searches that can do that:
* | fields host | eval daysAgo=(now()-_time)/(24*3600) | eval interval=case(daysAgo<1,"recent",daysAgo>7,"last week") | fillnull interval value="in between" | timechart dc(host) by interval
* | fields host | eval daysAgo=(now()-_time)/(24*3600) | eval interval=case(daysAgo<1,"recent",daysAgo>7,"last week") | stats dc(host) by interval
... View more