示例#1
0
def status(name, dashboard_url):
    """Get the status of a benchmark run, or all runs if no name is given"""
    loaded = setup_client_from_config()

    client = ApiClient(in_cluster=False,
                       url=dashboard_url,
                       load_config=not loaded)

    ret = client.get_runs()
    runs = ret.result().json()

    if name is None:  # List all runs
        for run in runs:
            del run["job_id"]
            del run["job_metadata"]

        click.echo(tabulate(runs, headers="keys"))
        return

    try:
        run = next(r for r in runs if r["name"] == name)
    except StopIteration:
        click.echo("Run not found")
        return

    del run["job_id"]
    del run["job_metadata"]

    click.echo(tabulate([run], headers="keys"))

    loss = client.get_run_metrics(run["id"],
                                  metric_filter="val_global_loss @ 0",
                                  last_n=1)
    prec = client.get_run_metrics(run["id"],
                                  metric_filter="val_global_Prec@1 @ 0",
                                  last_n=1)

    loss = loss.result()
    prec = prec.result()

    if loss.status_code < 300 and "val_global_loss @ 0" in loss.json():
        val = loss.json()["val_global_loss @ 0"][0]
        click.echo("Current Global Loss: {0:.2f} ({1})".format(
            float(val["value"]), val["date"]))
    else:
        click.echo("No Validation Loss Data yet")
    if prec.status_code < 300 and "val_global_Prec@1 @ 0" in prec.json():
        val = prec.json()["val_global_Prec@1 @ 0"][0]
        click.echo("Current Global Precision: {0:.2f} ({1})".format(
            float(val["value"]), val["date"]))
    else:
        click.echo("No Validation Precision Data yet")
示例#2
0
def test_get_run_metrics(mocker, kubernetes_api_client_node_port):
    mocker.patch("kubernetes.config.load_kube_config")
    rg = mocker.patch("concurrent.futures.ThreadPoolExecutor")
    rg.return_value.submit.return_value.result.return_value.json.return_value = "a"

    client = ApiClient(in_cluster=False)

    result = client.get_run_metrics("1",
                                    since=datetime.datetime.now(),
                                    summarize=100)

    assert result is not None
    assert result.result().json() == "a"