def METHOD_NAME(self, *args, **kwargs):
    # type: (Dict[str, Any]) -> None
    host = self.instance.get("host")
    ip = self.instance.get("ip")
    interface = self.instance.get("interface")
    server_id = self.instance.get("server_id")
    tags = self.instance.get("tags") or []
    # test config for only **one** of the following above options
    c = 0
    for opt in (host, ip, interface, server_id):
        c += int(opt not in [None, ""])  # trick, int(bool) returns 0 if False, 1 if True
    if c > 1:
        raise ConfigurationError("Only one of `host`, `ip`, `interface` or `server_id` may be configured.")
    # Build command
    cmd = self._build_command(host, ip, interface, server_id)
    # call to speedtest cli on the system path
    try:
        payload = self._call_command(cmd)
        self._submit_data(payload, tags)
        self.service_check("speedtest.run", self.OK)
    except Exception as e:
        # something went wrong with this command
        msg = (
            "Be sure to have the speedtest CLI installed https://www.speedtest.net/apps/cli\n"
            + "Also be sure to accept the license as the datadog-agent user!\n"
            + "\t Linux/Mac: sudo su -s /bin/bash - dd-agent speedtest\n"
            + "\t Windows: runas /user:dd-agent speedtest\n"
        )
        self.log.exception(msg, e)
        self.service_check("speedtest.run", self.CRITICAL, message=str(e))