def METHOD_NAME(self, request):
    try:
        page = int(request.query_params.METHOD_NAME("page", 1))
        page_size = int(request.query_params.METHOD_NAME("pageSize", 20))
        running_state = request.query_params.METHOD_NAME("state", None)
        if running_state is not None:
            running_state = int(running_state)
        project_id = request.query_params.METHOD_NAME("project_id", None)
        if project_id:
            project_id = int(project_id)
        fields = get_model_field(
            IastAgent,
            include=["token", "project_name"],
        )
        searchfields = dict(filter(lambda k: k[0] in fields, request.query_params.items()))
        searchfields_ = {k: v for k, v in searchfields.items() if k in fields}
        q = reduce(
            lambda x, y: x | y,
            (
                Q(**x)
                for x in ({"__".join([kv_pair[0], "icontains"]): kv_pair[1]} for kv_pair in searchfields_.items())
            ),
            Q(),
        )
        if running_state is not None:
            q = q & Q(online=running_state)
        if request.user.is_superuser == 1:
            pass
        elif request.user.is_superuser == 2:
            q = q & Q(user__in=self.get_auth_users(request.user))
        else:
            q = q & Q(user_id=request.user.id)
        if project_id:
            q = q & Q(bind_project_id=project_id)
        self.make_key(request)
        if page == 1:
            total, max_id = self.set_query_cache(q)
        else:
            total, max_id = self.get_query_cache()
            if not total or not max_id:
                total, max_id = self.set_query_cache(q)
        if page > 1:
            before_id = page * page_size
            q = q & Q(id__gt=before_id)
        baseQuery = IastAgent.objects.filter(q)
        cur_data = (
            baseQuery.filter(id__lte=max_id)
            .values_list("id", flat=True)
            .order_by("-id")[(page - 1) * page_size : page * page_size]
        )
        cur_ids = list(cur_data)
        queryset = (
            IastAgent.objects.filter(id__in=cur_ids)
            .order_by("-id")
            .select_related("server", "user")
            .prefetch_related("heartbeats")
        )
        end = []
        for item in queryset:
            one = model_to_dict(item)  # type: ignore
            server_data = model_to_dict(item.server)
            one["cluster_name"] = server_data.METHOD_NAME("cluster_name", "")
            one["cluster_version"] = server_data.METHOD_NAME("cluster_version", "")
            one["owner"] = item.user.username
            one["server"] = self.get_server(item)
            if not one.METHOD_NAME("alias", ""):
                one["alias"] = one["token"]
            all = item.heartbeats.all()
            if all:
                one["report_queue"] = all[0].report_queue
                one["method_queue"] = all[0].method_queue
                one["replay_queue"] = all[0].replay_queue
                one["system_load"] = all[0].cpu
                one["flow"] = all[0].req_count
                one["latest_time"] = all[0].dt
            else:
                one["report_queue"] = 0
                one["method_queue"] = 0
                one["replay_queue"] = 0
                one["system_load"] = _("Load data is not uploaded")
                one["flow"] = 0
            del one["online"]
            one["running_status"] = self.get_running_status(item)
            end.append(one)
        # if not request.user.is_talent_admin():
        page_info = {"alltotal": total, "num_pages": page, "page_size": page_size}
        return R.success(msg="success", data=end, page=page_info)
    except ValueError as e:
        logger.error(e, exc_info=True)
        return R.failure(msg=_("Incorrect format parameter, please check again"))
    except Exception as e:
        logger.error(e, exc_info=True)
        return R.failure(msg=_("Program error"))