[arvados] created: 2.1.0-2940-gfe5fc284f

git repository hosting git at public.arvados.org
Tue Oct 4 19:06:07 UTC 2022


        at  fe5fc284f0dd1cdd0c01922a98bcf75b4186e80a (commit)


commit fe5fc284f0dd1cdd0c01922a98bcf75b4186e80a
Author: Tom Clegg <tom at curii.com>
Date:   Tue Oct 4 15:04:58 2022 -0400

    19377: Include health check in diagnostics report, if appropriate.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/lib/diagnostics/cmd.go b/lib/diagnostics/cmd.go
index 799abf9da..3a2ebe0c2 100644
--- a/lib/diagnostics/cmd.go
+++ b/lib/diagnostics/cmd.go
@@ -16,12 +16,15 @@ import (
 	"net"
 	"net/http"
 	"net/url"
+	"os"
 	"strings"
 	"time"
 
 	"git.arvados.org/arvados.git/lib/cmd"
+	"git.arvados.org/arvados.git/lib/config"
 	"git.arvados.org/arvados.git/sdk/go/arvados"
 	"git.arvados.org/arvados.git/sdk/go/ctxlog"
+	"git.arvados.org/arvados.git/sdk/go/health"
 	"github.com/sirupsen/logrus"
 )
 
@@ -125,6 +128,30 @@ func (diag *diagnoser) runtests() {
 		return
 	}
 
+	diag.dotest(5, "running health check (same as `arvados-server check`)", func() error {
+		ldr := config.NewLoader(&bytes.Buffer{}, ctxlog.New(&bytes.Buffer{}, "text", "info"))
+		ldr.SetupFlags(flag.NewFlagSet("diagnostics", flag.ContinueOnError))
+		cfg, err := ldr.Load()
+		if err != nil {
+			diag.infof("skipping because config could not be loaded: %s", err)
+			return nil
+		}
+		cluster, err := cfg.GetCluster("")
+		if err != nil {
+			return err
+		}
+		if cluster.SystemRootToken != os.Getenv("ARVADOS_API_TOKEN") {
+			diag.infof("skipping because provided token is not SystemRootToken")
+		}
+		agg := &health.Aggregator{Cluster: cluster}
+		resp := agg.ClusterHealth()
+		for _, e := range resp.Errors {
+			diag.errorf("health check: %s", e)
+		}
+		diag.infof("health check: reported clock skew %v", resp.ClockSkew)
+		return nil
+	})
+
 	var dd arvados.DiscoveryDocument
 	ddpath := "discovery/v1/apis/arvados/v1/rest"
 	diag.dotest(10, fmt.Sprintf("getting discovery document from https://%s/%s", client.APIHost, ddpath), func() error {
diff --git a/sdk/go/health/aggregator.go b/sdk/go/health/aggregator.go
index b5301dffe..caf99108a 100644
--- a/sdk/go/health/aggregator.go
+++ b/sdk/go/health/aggregator.go
@@ -223,7 +223,8 @@ func (agg *Aggregator) ClusterHealth() ClusterHealthResponse {
 	for svcName, sh := range resp.Services {
 		switch svcName {
 		case arvados.ServiceNameDispatchCloud,
-			arvados.ServiceNameDispatchLSF:
+			arvados.ServiceNameDispatchLSF,
+			arvados.ServiceNameDispatchSLURM:
 			// ok to not run any given dispatcher
 		case arvados.ServiceNameHealth,
 			arvados.ServiceNameWorkbench1,

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list