def get_health(self, index_name: Optional[str] = None, hostname_filter: Optional[str] = None) -> MarqoHealthStatus:
        """
        Get health status for a Marqo index.

        Args:
            index_name: Optional name of Marqo index to get health status for
            hostname_filter: Optional hostname filter. If provided, only Vespa nodes with this value in their hostname
            will be considered in the health check

        Returns:
            Marqo index health status
        """
        # TODO - Check index specific metrics such as memory and disk usage
        inference_status = self._get_inference_health()
        vespa_status = self._get_vespa_health(hostname_filter=hostname_filter)

        aggregated_status = max(inference_status.status, vespa_status.status)

        return MarqoHealthStatus(
            status=aggregated_status,
            inference=inference_status,
            backend=vespa_status
        )

        Get health status for a Marqo index.

        Args:
            index_name: Optional name of Marqo index to get health status for
            hostname_filter: Optional hostname filter. If provided, only Vespa nodes with this value in their hostname
            will be considered in the health check

        Returns:
            Marqo index health status
        
src/marqo/core/monitoring/monitoring.py