Improve handling of min release asset size.
diff --git a/metrics/collectors/release_downloads.go b/metrics/collectors/release_downloads.go
index 8bcddbb..b7f32c9 100644
--- a/metrics/collectors/release_downloads.go
+++ b/metrics/collectors/release_downloads.go
@@ -10,13 +10,12 @@
)
type ReleaseDownloads struct {
- org string
- repo string
- client *github.Client
+ org string
+ repo string
+ client *github.Client
+ minSizeBytes int
}
-const megaByte = 1024 * 1024
-
func (rd ReleaseDownloads) Collect() (*data.DataSet, error) {
all_releases, err := rd.getReleases()
if err != nil {
@@ -26,7 +25,7 @@
result := data.CreateDataSet("release", "artifact", "downloads")
for _, release := range all_releases {
for _, asset := range release.Assets {
- if *asset.Size >= megaByte {
+ if *asset.Size >= rd.minSizeBytes {
result.AddRow(*release.TagName, *asset.Name, *asset.DownloadCount)
}
}
@@ -56,7 +55,7 @@
return all_releases, nil
}
-func CreateReleaseDownloadsCollector(org string, repo string, token string) ReleaseDownloads {
+func CreateReleaseDownloadsCollector(org string, repo string, token string, minSizeBytes int) ReleaseDownloads {
ctx := context.Background()
ts := oauth2.StaticTokenSource(
&oauth2.Token{AccessToken: token},
@@ -64,5 +63,5 @@
tc := oauth2.NewClient(ctx, ts)
client := github.NewClient(tc)
- return ReleaseDownloads{org: org, repo: repo, client: client}
+ return ReleaseDownloads{org: org, repo: repo, client: client, minSizeBytes: minSizeBytes}
}
diff --git a/metrics/main.go b/metrics/main.go
index e6f8e55..5a8b4b6 100644
--- a/metrics/main.go
+++ b/metrics/main.go
@@ -25,6 +25,8 @@
sqlInstance = flag.String("sql_instance", "", "Instance name for the CloudSQL publisher.")
)
+const megaByte = 1024 * 1024
+
func handleError(metricName string, err error) {
fmt.Printf("[%s] %v", metricName, err)
}
@@ -45,7 +47,7 @@
cloudSql := publishers.CreateCloudSqlPublisher()
pipelinePerformance := collectors.CreatePipelinePerformanceCollector(bk, pipelines...)
workerAvailability := collectors.CreateWorkerAvailabilityCollector(bk)
- releaseDownloads := collectors.CreateReleaseDownloadsCollector(*ghOrg, *ghRepo, *ghApiToken)
+ releaseDownloads := collectors.CreateReleaseDownloadsCollector(*ghOrg, *ghRepo, *ghApiToken, megaByte)
srv := service.CreateService(handleError)
srv.AddMetric("pipeline_performance", 120, pipelinePerformance, cloudSql)