Use stdout publisher in test mode
diff --git a/metrics/main.go b/metrics/main.go
index 29b73af..aa36313 100644
--- a/metrics/main.go
+++ b/metrics/main.go
@@ -34,6 +34,10 @@
return time.Duration(value) * time.Minute
}
+func logInTestMode(message string) {
+ log.Printf("[Test mode] %s\n", message)
+}
+
func main() {
flag.Parse()
@@ -68,56 +72,60 @@
stackdriver := publishers.CreateStackdriverPublisher(stackdriverClient, *projectID)
*/
- cloudSql, err := publishers.CreateCloudSqlPublisher(settings.CloudSqlUser, settings.CloudSqlPassword, settings.CloudSqlInstance, settings.CloudSqlDatabase, settings.CloudSqlLocalPort)
- if err != nil {
- log.Fatalf("Failed to set up Cloud SQL publisher: %v", err)
- }
+ stdout := publishers.CreateStdoutPublisher(publishers.Csv)
- /*
- stdout := publishers.CreateStdoutPublisher(publishers.Csv)
- */
+ var defaultPublisher publishers.Publisher
+ if *testMode {
+ logInTestMode("Using stdout publisher for all metrics.")
+ defaultPublisher = stdout
+ } else {
+ defaultPublisher, err = publishers.CreateCloudSqlPublisher(settings.CloudSqlUser, settings.CloudSqlPassword, settings.CloudSqlInstance, settings.CloudSqlDatabase, settings.CloudSqlLocalPort)
+ if err != nil {
+ log.Fatalf("Failed to set up Cloud SQL publisher: %v", err)
+ }
+ }
srv := service.CreateService(handleError)
buildsPerChange := metrics.CreateBuildsPerChange(bk, 500, pipelines...)
- srv.AddMetric(buildsPerChange, minutes(60), cloudSql)
+ srv.AddMetric(buildsPerChange, minutes(60), defaultPublisher)
buildSuccess := metrics.CreateBuildSuccess(bk, 200, pipelines...)
- srv.AddMetric(buildSuccess, minutes(60), cloudSql)
+ srv.AddMetric(buildSuccess, minutes(60), defaultPublisher)
criticalPath := metrics.CreateCriticalPath(bk, 20, pipelines...)
- srv.AddMetric(criticalPath, minutes(60), cloudSql)
+ srv.AddMetric(criticalPath, minutes(60), defaultPublisher)
flakiness := metrics.CreateFlakiness(gcs, "bazel-buildkite-stats", "flaky-tests-bep", pipelines...)
- srv.AddMetric(flakiness, minutes(60), cloudSql)
+ srv.AddMetric(flakiness, minutes(60), defaultPublisher)
macPerformance := metrics.CreateMacPerformance(bk, 20, pipelines...)
- srv.AddMetric(macPerformance, minutes(60), cloudSql)
+ srv.AddMetric(macPerformance, minutes(60), defaultPublisher)
/*
pipelinePerformance := metrics.CreatePipelinePerformance(bk, 20, pipelines...)
- srv.AddMetric(pipelinePerformance, minutes(60), cloudSql)
+ srv.AddMetric(pipelinePerformance, minutes(60), defaultPublisher)
*/
platformLoad := metrics.CreatePlatformLoad(bk, 100, settings.BuildkiteOrgs...)
- srv.AddMetric(platformLoad, minutes(5), cloudSql)
+ srv.AddMetric(platformLoad, minutes(5), defaultPublisher)
platformSignificance := metrics.CreatePlatformSignificance(bk, 100, pipelines...)
- srv.AddMetric(platformSignificance, minutes(24*60), cloudSql)
+ srv.AddMetric(platformSignificance, minutes(24*60), defaultPublisher)
platformUsage := metrics.CreatePlatformUsage(bk, 100, settings.BuildkiteOrgs...)
- srv.AddMetric(platformUsage, minutes(60), cloudSql)
+ srv.AddMetric(platformUsage, minutes(60), defaultPublisher)
releaseDownloads := metrics.CreateReleaseDownloads(settings.GitHubOrg,
settings.GitHubRepo,
settings.GitHubApiToken, megaByte)
- srv.AddMetric(releaseDownloads, minutes(12*60), cloudSql)
+ srv.AddMetric(releaseDownloads, minutes(12*60), defaultPublisher)
workerAvailability := metrics.CreateWorkerAvailability(bk, settings.BuildkiteOrgs...)
- srv.AddMetric(workerAvailability, minutes(5), cloudSql)
+ srv.AddMetric(workerAvailability, minutes(5), defaultPublisher)
if *testMode {
- log.Println("[Test mode] Running all jobs exactly once...")
+ logInTestMode("Running all jobs exactly once...")
srv.RunJobsOnce()
os.Exit(0)
}