in src/braket/jobs/metrics_data/cwl_metrics_fetcher.py [0:0]
def _get_log_streams_for_job(self, job_name: str, timeout_time: float) -> List[str]:
"""
Retrieves the list of log streams relevant to a job.
Args:
job_name (str): The name of the job.
timeout_time (float) : Metrics cease getting streamed if the current time exceeds
the timeout time.
Returns:
List[str] : A list of log stream names for the given job.
"""
kwargs = {
"logGroupName": self.LOG_GROUP_NAME,
"logStreamNamePrefix": job_name + "/algo-",
}
log_streams = []
while time.time() < timeout_time:
response = self._logs_client.describe_log_streams(**kwargs)
streams = response.get("logStreams")
if streams:
for stream in streams:
name = stream.get("logStreamName")
if name:
log_streams.append(name)
next_token = response.get("nextToken")
if not next_token:
return log_streams
kwargs["nextToken"] = next_token
self._logger.warning("Timed out waiting for all metrics. Data may be incomplete.")
return log_streams