CloudMigrations: Send local events to gms during the migration process (#90637)

* add gms client function

* add timeout config for endpoint

* report events to gms

* fix lint error

* clean up report calls and make sure reports all have local ids

* extra validation

* improve error logging and fix url
This commit is contained in:
Michael Mandrus
2024-07-20 07:02:31 +03:00
committed by GitHub
parent 1c5ed0da4d
commit ee90cd3031
9 changed files with 157 additions and 2 deletions
@@ -11,8 +11,10 @@ import (
"github.com/grafana/grafana/pkg/api/routing"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/kvstore"
"github.com/grafana/grafana/pkg/infra/tracing"
"github.com/grafana/grafana/pkg/services/cloudmigration"
"github.com/grafana/grafana/pkg/services/cloudmigration/gmsclient"
"github.com/grafana/grafana/pkg/services/contexthandler/ctxkey"
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
"github.com/grafana/grafana/pkg/services/dashboards"
@@ -442,6 +444,7 @@ func setUpServiceTest(t *testing.T, withDashboardMock bool) cloudmigration.Servi
tracer,
dashboardService,
mockFolder,
kvstore.ProvideService(sqlStore),
)
require.NoError(t, err)
@@ -453,6 +456,7 @@ type gmsClientMock struct {
startSnapshotCalled int
getStatusCalled int
createUploadUrlCalled int
reportEventCalled int
getSnapshotResponse *cloudmigration.GetSnapshotStatusResponse
}
@@ -480,3 +484,7 @@ func (m *gmsClientMock) CreatePresignedUploadUrl(ctx context.Context, session cl
m.createUploadUrlCalled++
return "http://localhost:3000", nil
}
func (m *gmsClientMock) ReportEvent(context.Context, cloudmigration.CloudMigrationSession, gmsclient.EventRequestDTO) {
m.reportEventCalled++
}