Usage stats: Count API keys (#42883) (#44025)

* Stats: add api key count to usage stats

* Chore: correctly capitalize struct member

(cherry picked from commit a1b8b5d123)

Co-authored-by: J Guerreiro <joao.guerreiro@grafana.com>
This commit is contained in:
Grot (@grafanabot)
2022-01-14 10:28:02 +01:00
committed by GitHub
co-authored by J Guerreiro
parent 37bb5f17f2
commit 16a8902593
5 changed files with 11 additions and 0 deletions
+1
View File
@@ -93,6 +93,7 @@ func GetSystemStats(ctx context.Context, query *models.GetSystemStatsQuery) erro
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("team") + `) AS teams,`)
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("user_auth_token") + `) AS auth_tokens,`)
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("alert_rule") + `) AS alert_rules,`)
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("api_key") + `) AS api_keys,`)
sb.Write(`(SELECT COUNT(id) FROM `+dialect.Quote("library_element")+` WHERE kind = ?) AS library_panels,`, models.PanelElement)
sb.Write(`(SELECT COUNT(id) FROM `+dialect.Quote("library_element")+` WHERE kind = ?) AS library_variables,`, models.VariableElement)
+6
View File
@@ -27,6 +27,7 @@ func TestStatsDataAccess(t *testing.T) {
assert.Equal(t, int64(3), query.Result.Admins)
assert.Equal(t, int64(0), query.Result.LibraryPanels)
assert.Equal(t, int64(0), query.Result.LibraryVariables)
assert.Equal(t, int64(1), query.Result.APIKeys)
})
t.Run("Get system user count stats should not results in error", func(t *testing.T) {
@@ -125,4 +126,9 @@ func populateDB(t *testing.T, sqlStore *SQLStore) {
// force renewal of user stats
err = updateUserRoleCountsIfNecessary(context.Background(), true)
require.NoError(t, err)
// add 1st api key
addAPIKeyCmd := &models.AddApiKeyCommand{OrgId: org.Id, Name: "Test key 1", Key: "secret-key", Role: models.ROLE_VIEWER}
err = sqlStore.AddAPIKey(context.Background(), addAPIKeyCmd)
require.NoError(t, err)
}