Skip to content

Commit

Permalink
Merge pull request #104 from hainenber/include-git-tag-for-release-do…
Browse files Browse the repository at this point in the history
…wnload-metrics

feat(exporter): include Git tag as attribute for `github_repo_release_downloads` metrics
  • Loading branch information
henrymcconville authored Mar 5, 2024
2 parents 656e7dc + f1b6d8e commit 439dc52
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
4 changes: 2 additions & 2 deletions exporter/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func AddMetrics() map[string]*prometheus.Desc {
APIMetrics["ReleaseDownloads"] = prometheus.NewDesc(
prometheus.BuildFQName("github", "repo", "release_downloads"),
"Download count for a given release",
[]string{"repo", "user", "release", "name", "created_at"}, nil,
[]string{"repo", "user", "release", "name", "tag", "created_at"}, nil,
)
APIMetrics["Limit"] = prometheus.NewDesc(
prometheus.BuildFQName("github", "rate", "limit"),
Expand Down Expand Up @@ -77,7 +77,7 @@ func (e *Exporter) processMetrics(data []*Datum, rates *RateLimits, ch chan<- pr

for _, release := range x.Releases {
for _, asset := range release.Assets {
ch <- prometheus.MustNewConstMetric(e.APIMetrics["ReleaseDownloads"], prometheus.GaugeValue, float64(asset.Downloads), x.Name, x.Owner.Login, release.Name, asset.Name, asset.CreatedAt)
ch <- prometheus.MustNewConstMetric(e.APIMetrics["ReleaseDownloads"], prometheus.GaugeValue, float64(asset.Downloads), x.Name, x.Owner.Login, release.Name, asset.Name, release.Tag, asset.CreatedAt)
}
}
prCount := 0
Expand Down
1 change: 1 addition & 0 deletions exporter/structs.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ type Datum struct {
type Release struct {
Name string `json:"name"`
Assets []Asset `json:"assets"`
Tag string `json:"tag_name"`
}

type Pull struct {
Expand Down
8 changes: 4 additions & 4 deletions test/github_exporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ func TestGithubExporter(t *testing.T) {
Assert(bodyContains(`github_repo_size_kb{archived="false",fork="false",language="Go",license="mit",private="false",repo="myRepo",user="myOrg"} 946`)).
Assert(bodyContains(`github_repo_stars{archived="false",fork="false",language="Go",license="mit",private="false",repo="myRepo",user="myOrg"} 120`)).
Assert(bodyContains(`github_repo_watchers{archived="false",fork="false",language="Go",license="mit",private="false",repo="myRepo",user="myOrg"} 5`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-02-28T08:25:53Z",name="myRepo_1.3.0_checksums.txt",release="1.3.0",repo="myRepo",user="myOrg"} 7292`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-02-28T08:25:53Z",name="myRepo_1.3.0_windows_amd64.tar.gz",release="1.3.0",repo="myRepo",user="myOrg"} 21`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-05-02T15:22:16Z",name="myRepo_2.0.0_checksums.txt",release="2.0.0",repo="myRepo",user="myOrg"} 14564`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-05-02T15:22:16Z",name="myRepo_2.0.0_windows_amd64.tar.gz",release="2.0.0",repo="myRepo",user="myOrg"} 55`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-02-28T08:25:53Z",name="myRepo_1.3.0_checksums.txt",release="1.3.0",repo="myRepo",tag="1.3.0",user="myOrg"} 7292`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-02-28T08:25:53Z",name="myRepo_1.3.0_windows_amd64.tar.gz",release="1.3.0",repo="myRepo",tag="1.3.0",user="myOrg"} 21`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-05-02T15:22:16Z",name="myRepo_2.0.0_checksums.txt",release="2.0.0",repo="myRepo",tag="2.0.0",user="myOrg"} 14564`)).
Assert(bodyContains(`github_repo_release_downloads{created_at="2019-05-02T15:22:16Z",name="myRepo_2.0.0_windows_amd64.tar.gz",release="2.0.0",repo="myRepo",tag="2.0.0",user="myOrg"} 55`)).
Status(http.StatusOK).
End()
}
Expand Down

0 comments on commit 439dc52

Please sign in to comment.