From a63733b4ea0cfb73bea75eb2028f4459c198a728 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 15 Jul 2021 13:48:28 +0800 Subject: [PATCH] Move Sourcemap from model to sourcemap handler (#5720) Reserve model for event types, not auxiliary documents like this. --- beater/api/asset/sourcemap/handler.go | 9 ++++----- {model => beater/api/asset/sourcemap}/sourcemap.go | 10 +++++----- .../api/asset/sourcemap}/sourcemap_test.go | 7 +++---- 3 files changed, 12 insertions(+), 14 deletions(-) rename {model => beater/api/asset/sourcemap}/sourcemap.go (86%) rename {model => beater/api/asset/sourcemap}/sourcemap_test.go (92%) diff --git a/beater/api/asset/sourcemap/handler.go b/beater/api/asset/sourcemap/handler.go index eb61bd10e58..0d627a9372d 100644 --- a/beater/api/asset/sourcemap/handler.go +++ b/beater/api/asset/sourcemap/handler.go @@ -31,7 +31,6 @@ import ( "github.com/elastic/apm-server/beater/auth" "github.com/elastic/apm-server/beater/request" - "github.com/elastic/apm-server/model" "github.com/elastic/apm-server/publish" "github.com/elastic/apm-server/utility" ) @@ -75,7 +74,7 @@ func Handler(report publish.Reporter, notifier AddedNotifier) request.Handler { return } - var smap model.Sourcemap + var smap sourcemapDoc decodingCount.Inc() if err := decode(c.Request, &smap); err != nil { decodingError.Inc() @@ -88,7 +87,7 @@ func Handler(report publish.Reporter, notifier AddedNotifier) request.Handler { return } validateCount.Inc() - if err := validate(smap); err != nil { + if err := validate(&smap); err != nil { validateError.Inc() c.Result.SetWithError(request.IDResponseErrorsValidate, err) c.Write() @@ -114,7 +113,7 @@ func Handler(report publish.Reporter, notifier AddedNotifier) request.Handler { } } -func decode(req *http.Request, smap *model.Sourcemap) error { +func decode(req *http.Request, smap *sourcemapDoc) error { if !strings.Contains(req.Header.Get("Content-Type"), "multipart/form-data") { return fmt.Errorf("invalid content type: %s", req.Header.Get("Content-Type")) } @@ -134,7 +133,7 @@ func decode(req *http.Request, smap *model.Sourcemap) error { return nil } -func validate(smap model.Sourcemap) error { +func validate(smap *sourcemapDoc) error { // ensure all information is given if smap.BundleFilepath == "" || smap.ServiceName == "" || smap.ServiceVersion == "" { return errors.New("error validating sourcemap: bundle_filepath, service_name and service_version must be sent") diff --git a/model/sourcemap.go b/beater/api/asset/sourcemap/sourcemap.go similarity index 86% rename from model/sourcemap.go rename to beater/api/asset/sourcemap/sourcemap.go index 8e1991ab68e..46df5fdde12 100644 --- a/model/sourcemap.go +++ b/beater/api/asset/sourcemap/sourcemap.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package model +package sourcemap import ( "context" @@ -35,19 +35,19 @@ const ( ) var ( - registry = monitoring.Default.NewRegistry("apm-server.processor.sourcemap") - sourcemapCounter = monitoring.NewInt(registry, "counter") + processorRegistry = monitoring.Default.NewRegistry("apm-server.processor.sourcemap") + sourcemapCounter = monitoring.NewInt(processorRegistry, "counter") sourcemapProcessorEntry = common.MapStr{"name": sourcemapProcessorName, "event": sourcemapDocType} ) -type Sourcemap struct { +type sourcemapDoc struct { ServiceName string ServiceVersion string Sourcemap string BundleFilepath string } -func (pa *Sourcemap) Transform(ctx context.Context, cfg *transform.Config) []beat.Event { +func (pa *sourcemapDoc) Transform(ctx context.Context, cfg *transform.Config) []beat.Event { sourcemapCounter.Inc() if pa == nil { return nil diff --git a/model/sourcemap_test.go b/beater/api/asset/sourcemap/sourcemap_test.go similarity index 92% rename from model/sourcemap_test.go rename to beater/api/asset/sourcemap/sourcemap_test.go index 765447ad5b2..10d818a7463 100644 --- a/model/sourcemap_test.go +++ b/beater/api/asset/sourcemap/sourcemap_test.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package model_test +package sourcemap import ( "context" @@ -28,7 +28,6 @@ import ( "github.com/elastic/beats/v7/libbeat/common" - "github.com/elastic/apm-server/model" "github.com/elastic/apm-server/transform" ) @@ -38,7 +37,7 @@ func getStr(data common.MapStr, key string) string { } func TestTransform(t *testing.T) { - p := model.Sourcemap{ + p := sourcemapDoc{ ServiceName: "myService", ServiceVersion: "1.0", BundleFilepath: "/my/path", @@ -59,7 +58,7 @@ func TestTransform(t *testing.T) { } func TestParseSourcemaps(t *testing.T) { - fileBytes, err := ioutil.ReadFile("../testdata/sourcemap/bundle.js.map") + fileBytes, err := ioutil.ReadFile("../../../../testdata/sourcemap/bundle.js.map") assert.NoError(t, err) parser, err := s.Parse("", fileBytes) assert.NoError(t, err)