It all started rather inconspicuous:
The Data Engineering team filed a bug report about a sudden increase in schema errors at ingestion of telemetry data from Firefox for Android.
The data we were seeing was surprising and couldn't be explained by the code.
An incident was called and multiple people started working, mitigating the issue and ultimately tracking it down to a compiler bug.
Intrigued by algorithmic symphonies from one line of code
I completely overengineered a compiler that takes in
a (binary) arithmetic expression and turns that into a program that generates sound.
In the [previous][always-dns] blog post I showed how to use getaddrinfo_async_start from C.
However I didn't stop there and decided to see if I can fit that into the [smol] async stack in Rust.
On *nix systems the default way to resolve a hostname into an IP address is getaddrinfo.
However that function blocks until all the DNS queries return.
macOS has a "hidden" async DNS API: getaddrinfo_async_start.
It's undocumented and near impossible to find how to use it.
So I did find out how to use it and show that.
Since Bug 1896609 landed we now have Glean & Firefox on Glean (FOG) memory reporting built into the Firefox Memory Reporter.
This allows us to measure the allocated memory in use by Glean and FOG.
It currently covers memory allocated by the C++ module of FOG and all instantiated Glean metrics.
It does not yet measure the memory used by Glean and its database.