diff --git a/api/cron/job_telemetry.go b/api/cron/job_telemetry.go index 569e524a6..e7b845727 100644 --- a/api/cron/job_telemetry.go +++ b/api/cron/job_telemetry.go @@ -54,6 +54,7 @@ type ( Tag TagTelemetryData `json:"Tag"` Team TeamTelemetryData `json:"Team"` User UserTelemetryData `json:"User"` + Webhook WebhookTelemetryData `json:"Webhook"` } DockerHubTelemetryData struct { @@ -164,6 +165,10 @@ type ( AdminUserCount int `json:"AdminUserCount"` StandardUserCount int `json:"StandardUserCount"` } + + WebhookTelemetryData struct { + Count int `json:"Count"` + } ) const AuthenticationMethodInternal = "internal" @@ -253,6 +258,12 @@ func (runner *TelemetryJobRunner) Run() { log.Printf("background schedule error (telemetry). Unable to compute user telemetry (err=%s)\n", err) return } + + err = computeWebhookTelemetry(telemetryData, runner.context.dataStore) + if err != nil { + log.Printf("background schedule error (telemetry). Unable to compute webhook telemetry (err=%s)\n", err) + return + } }() } @@ -588,3 +599,16 @@ func computeUserTelemetry(telemetryData *TelemetryData, dataStore portainer.Data return nil } + +func computeWebhookTelemetry(telemetryData *TelemetryData, store *bolt.Store) error { + webhooks, err := store.WebhookService.Webhooks() + if err != nil { + return err + } + + telemetryData.Webhook = WebhookTelemetryData{ + Count: len(webhooks), + } + + return nil +}