MOB_TELEMETRY_ENABLED=true in
its environment. With the setting on, the instance sends one GET request to
the mob.so telemetry service when it starts and then once a day
(mob/telemetry.py).
The query string is the entire payload:
The three counts come from one query over the
installations table
(telemetry_counts in mob/db/repository.py). The request contains no
instance identifier, no account data, no member identities, and no message
content. The telemetry server sees the sending IP address, as the receiving
end of any HTTP request does.
Turning it off
LeaveMOB_TELEMETRY_ENABLED unset, or set DO_NOT_TRACK=1 or
DISABLE_TELEMETRY=1 in the environment. Either of those two variables wins
over MOB_TELEMETRY_ENABLED=true, so a machine-wide DO_NOT_TRACK covers a
mob instance running on it.
A failed heartbeat is dropped: the sender swallows the error and waits for
the next daily interval. Telemetry has no path into request handling, search,
or posting.
Where the code is
The sender isapi/src/mob/telemetry.py and the count query is
telemetry_counts in api/src/mob/db/repository.py. The service that
receives the heartbeats is not part of this repository.