You can't reliably get any of that information without having
an agent running inside the guest OS.

We should be able to get the uptime of the guest's qemu process itself
though, and report that back "over the wire" to a requesting client,
without needing a guest OS agent. Or even keep track of when libvirt
launched the guest as wall clock time.

Not the same thing as "how long has the guest OS been up?", but
potentially useful for management tools.