From 2b1f9e9f045af02136827c3effe7ad907fd7ed93 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 29 Nov 2019 19:27:47 +0800 Subject: [PATCH] Experimental self-profiling (#2839) * vendor: add github.com/google/pprof/profile * model/profile: add profile data model * config: config for profiling the server * beater: add profiling endpoint * vendor: add github.com/OneOfOne/xxhash Already being used by Beats. * model: fix fields * beater/api/profile: address review comments * beater/config: split InstrumentationConfig out * decoder: add LimitedReader * beater/api/profile: use decoder.LimitedReader * Add integration test * idxmgmt: add "profile" event index * tests/system: add system tests for profiling * model/profile: remove profile.id Not needed for now, and will get in the way of storage optimisations (aggregating multiple profiles) later. --- NOTICE.txt | 18 + _meta/beat.yml | 14 + apm-server.docker.yml | 14 + apm-server.yml | 14 + beater/api/mux.go | 18 + beater/api/profile/handler.go | 240 + beater/api/profile/handler_test.go | 287 + beater/beater.go | 14 + beater/config/config.go | 18 +- beater/config/instrumentation.go | 110 + beater/integration_test.go | 85 +- beater/server_test.go | 13 + ...IntegrationProfileCPUProfile.approved.json | 9402 ++++++++++++++ ...ionProfileCPUProfileMetadata.approved.json | 10284 ++++++++++++++++ ...ntegrationProfileHeapProfile.approved.json | 4288 +++++++ changelogs/head.asciidoc | 1 + decoder/limited_reader.go | 60 + decoder/limited_reader_test.go | 53 + docs/fields.asciidoc | 166 + idxmgmt/ilm/policy.go | 3 +- idxmgmt/indices.go | 2 +- idxmgmt/indices_test.go | 2 + idxmgmt/manager_test.go | 34 +- include/fields.go | 2 +- model/profile/_meta/fields.yml | 112 + model/profile/profile.go | 129 + model/profile/profile_test.go | 133 + testdata/profile/cpu.pprof | Bin 0 -> 14209 bytes testdata/profile/heap.pprof | Bin 0 -> 8478 bytes testdata/profile/metadata.json | 1 + tests/system/apmserver.py | 1 + tests/system/config/apm-server.yml.j2 | 19 + tests/system/test_integration.py | 74 + tests/system/test_setup_index_management.py | 10 +- vendor/github.com/OneOfOne/xxhash/LICENSE | 187 + vendor/github.com/OneOfOne/xxhash/README.md | 75 + vendor/github.com/OneOfOne/xxhash/go.mod | 3 + vendor/github.com/OneOfOne/xxhash/xxhash.go | 189 + .../github.com/OneOfOne/xxhash/xxhash_go17.go | 161 + .../github.com/OneOfOne/xxhash/xxhash_safe.go | 183 + .../OneOfOne/xxhash/xxhash_unsafe.go | 241 + vendor/github.com/google/pprof/LICENSE | 202 + .../github.com/google/pprof/profile/encode.go | 567 + .../github.com/google/pprof/profile/filter.go | 270 + .../github.com/google/pprof/profile/index.go | 64 + .../pprof/profile/legacy_java_profile.go | 315 + .../google/pprof/profile/legacy_profile.go | 1225 ++ .../github.com/google/pprof/profile/merge.go | 479 + .../google/pprof/profile/profile.go | 791 ++ .../github.com/google/pprof/profile/proto.go | 367 + .../github.com/google/pprof/profile/prune.go | 178 + vendor/vendor.json | 12 + 52 files changed, 31085 insertions(+), 45 deletions(-) create mode 100644 beater/api/profile/handler.go create mode 100644 beater/api/profile/handler_test.go create mode 100644 beater/config/instrumentation.go create mode 100644 beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json create mode 100644 beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json create mode 100644 beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json create mode 100644 decoder/limited_reader.go create mode 100644 decoder/limited_reader_test.go create mode 100644 model/profile/_meta/fields.yml create mode 100644 model/profile/profile.go create mode 100644 model/profile/profile_test.go create mode 100644 testdata/profile/cpu.pprof create mode 100644 testdata/profile/heap.pprof create mode 100644 testdata/profile/metadata.json create mode 100644 vendor/github.com/OneOfOne/xxhash/LICENSE create mode 100644 vendor/github.com/OneOfOne/xxhash/README.md create mode 100644 vendor/github.com/OneOfOne/xxhash/go.mod create mode 100644 vendor/github.com/OneOfOne/xxhash/xxhash.go create mode 100644 vendor/github.com/OneOfOne/xxhash/xxhash_go17.go create mode 100644 vendor/github.com/OneOfOne/xxhash/xxhash_safe.go create mode 100644 vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go create mode 100644 vendor/github.com/google/pprof/LICENSE create mode 100644 vendor/github.com/google/pprof/profile/encode.go create mode 100644 vendor/github.com/google/pprof/profile/filter.go create mode 100644 vendor/github.com/google/pprof/profile/index.go create mode 100644 vendor/github.com/google/pprof/profile/legacy_java_profile.go create mode 100644 vendor/github.com/google/pprof/profile/legacy_profile.go create mode 100644 vendor/github.com/google/pprof/profile/merge.go create mode 100644 vendor/github.com/google/pprof/profile/profile.go create mode 100644 vendor/github.com/google/pprof/profile/proto.go create mode 100644 vendor/github.com/google/pprof/profile/prune.go diff --git a/NOTICE.txt b/NOTICE.txt index 5235d88a3bc..4c45d5a7d74 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1022,6 +1022,15 @@ License type (autodetected): Apache-2.0 Apache License 2.0 +-------------------------------------------------------------------- +Dependency: github.com/google/pprof +Revision: 27840fff0d09770c422884093a210ac5ce453ea6 +License type (autodetected): Apache-2.0 +./vendor/github.com/google/pprof/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/google/shlex Revision: c34317bd91bf98fab745d77b03933cf8769299fe @@ -2474,6 +2483,15 @@ License type (autodetected): Apache-2.0 Apache License 2.0 +-------------------------------------------------------------------- +Dependency: github.com/OneOfOne/xxhash +Revision: 8f0be54a8d5ccf68817143d8c996147ec5cbd795 +License type (autodetected): Apache-2.0 +./vendor/github.com/OneOfOne/xxhash/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/opencontainers/go-digest Revision: eaa60544f31ccf3b0653b1a118b76d33418ff41b diff --git a/_meta/beat.yml b/_meta/beat.yml index 9ef9edb1469..87d655d51b0 100644 --- a/_meta/beat.yml +++ b/_meta/beat.yml @@ -53,6 +53,20 @@ apm-server: # secret_token for the remote apm-servers. #secret_token: + # Enable profiling of the server, recording profile samples as events. + # + # This feature is experimental. + #profiling: + #cpu: + # Set to true to enable CPU profiling. + #enabled: false + #interval: 60s + #duration: 10s + #heap: + # Set to true to enable heap profiling. + #enabled: false + #interval: 60s + # A pipeline is a definition of processors applied to documents when ingesting them to Elasticsearch. # Using pipelines involves two steps: # (1) registering a pipeline diff --git a/apm-server.docker.yml b/apm-server.docker.yml index 875078b85aa..5a2f590db8e 100644 --- a/apm-server.docker.yml +++ b/apm-server.docker.yml @@ -53,6 +53,20 @@ apm-server: # secret_token for the remote apm-servers. #secret_token: + # Enable profiling of the server, recording profile samples as events. + # + # This feature is experimental. + #profiling: + #cpu: + # Set to true to enable CPU profiling. + #enabled: false + #interval: 60s + #duration: 10s + #heap: + # Set to true to enable heap profiling. + #enabled: false + #interval: 60s + # A pipeline is a definition of processors applied to documents when ingesting them to Elasticsearch. # Using pipelines involves two steps: # (1) registering a pipeline diff --git a/apm-server.yml b/apm-server.yml index 815c2a009ca..15760c4ba59 100644 --- a/apm-server.yml +++ b/apm-server.yml @@ -53,6 +53,20 @@ apm-server: # secret_token for the remote apm-servers. #secret_token: + # Enable profiling of the server, recording profile samples as events. + # + # This feature is experimental. + #profiling: + #cpu: + # Set to true to enable CPU profiling. + #enabled: false + #interval: 60s + #duration: 10s + #heap: + # Set to true to enable heap profiling. + #enabled: false + #interval: 60s + # A pipeline is a definition of processors applied to documents when ingesting them to Elasticsearch. # Using pipelines involves two steps: # (1) registering a pipeline diff --git a/beater/api/mux.go b/beater/api/mux.go index 1515b58c588..6a9ab22030e 100644 --- a/beater/api/mux.go +++ b/beater/api/mux.go @@ -29,6 +29,7 @@ import ( "github.com/elastic/apm-server/beater/api/asset/sourcemap" "github.com/elastic/apm-server/beater/api/config/agent" "github.com/elastic/apm-server/beater/api/intake" + "github.com/elastic/apm-server/beater/api/profile" "github.com/elastic/apm-server/beater/api/root" "github.com/elastic/apm-server/beater/config" "github.com/elastic/apm-server/beater/middleware" @@ -58,6 +59,9 @@ const ( // IntakeRUMPath defines the path to ingest monitored RUM events IntakeRUMPath = "/intake/v2/rum/events" + // ProfilePath defines the path to ingest profiles + ProfilePath = "/intake/v2/profile" + // AssetSourcemapPath defines the path to upload sourcemaps AssetSourcemapPath = "/assets/v1/sourcemaps" ) @@ -86,6 +90,15 @@ func NewMux(beaterConfig *config.Config, report publish.Reporter) (*http.ServeMu {IntakePath, backendHandler}, } + // Profiling is currently experimental, and intended for profiling the + // server itself, so we only add the route if self-profiling is enabled. + if beaterConfig.SelfInstrumentation.IsEnabled() { + if beaterConfig.SelfInstrumentation.Profiling.CPU.IsEnabled() || + beaterConfig.SelfInstrumentation.Profiling.Heap.IsEnabled() { + routeMap = append(routeMap, route{ProfilePath, profileHandler}) + } + } + for _, route := range routeMap { h, err := route.handlerFn(beaterConfig, report) if err != nil { @@ -103,6 +116,11 @@ func NewMux(beaterConfig *config.Config, report publish.Reporter) (*http.ServeMu return mux, nil } +func profileHandler(cfg *config.Config, reporter publish.Reporter) (request.Handler, error) { + h := profile.Handler(systemMetadataDecoder(cfg, emptyDecoder), transform.Config{}, reporter) + return middleware.Wrap(h, backendMiddleware(cfg, profile.MonitoringMap)...) +} + func backendHandler(cfg *config.Config, reporter publish.Reporter) (request.Handler, error) { h := intake.Handler(systemMetadataDecoder(cfg, emptyDecoder), &stream.Processor{ diff --git a/beater/api/profile/handler.go b/beater/api/profile/handler.go new file mode 100644 index 00000000000..6fed36d1580 --- /dev/null +++ b/beater/api/profile/handler.go @@ -0,0 +1,240 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package profile + +import ( + "fmt" + "io" + "net/http" + "strings" + + pprof_profile "github.com/google/pprof/profile" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/monitoring" + + "github.com/elastic/apm-server/beater/headers" + "github.com/elastic/apm-server/beater/request" + "github.com/elastic/apm-server/decoder" + "github.com/elastic/apm-server/model/metadata" + "github.com/elastic/apm-server/model/profile" + "github.com/elastic/apm-server/publish" + "github.com/elastic/apm-server/transform" + "github.com/elastic/apm-server/utility" + "github.com/elastic/apm-server/validation" +) + +var ( + // MonitoringMap holds a mapping for request.IDs to monitoring counters + MonitoringMap = request.MonitoringMapForRegistry(registry) + registry = monitoring.Default.NewRegistry("apm-server.profile", monitoring.PublishExpvar) +) + +const ( + // TODO(axw) include messageType in pprofContentType; needs fix in agent + pprofContentType = "application/x-protobuf" + metadataContentType = "application/json" + requestContentType = "multipart/form-data" + + metadataContentLengthLimit = 10 * 1024 + profileContentLengthLimit = 10 * 1024 * 1024 +) + +// Handler returns a request.Handler for managing profile requests. +func Handler( + dec decoder.ReqDecoder, + transformConfig transform.Config, + report publish.Reporter, +) request.Handler { + handle := func(c *request.Context) (*result, error) { + if c.Request.Method != http.MethodPost { + return nil, requestError{ + id: request.IDResponseErrorsMethodNotAllowed, + err: errors.New("only POST requests are supported"), + } + } + if err := validateContentType(c.Request.Header, requestContentType); err != nil { + return nil, requestError{ + id: request.IDResponseErrorsValidate, + err: err, + } + } + + ok := c.RateLimiter == nil || c.RateLimiter.Allow() + if !ok { + return nil, requestError{ + id: request.IDResponseErrorsRateLimit, + err: errors.New("rate limit exceeded"), + } + } + + // Extract metadata from the request, such as the remote address. + reqMeta, err := dec(c.Request) + if err != nil { + return nil, requestError{ + id: request.IDResponseErrorsDecode, + err: errors.Wrap(err, "failed to decode request metadata"), + } + } + + tctx := &transform.Context{ + RequestTime: utility.RequestTime(c.Request.Context()), + Config: transformConfig, + } + + var totalLimitRemaining int64 = profileContentLengthLimit + var profiles []*pprof_profile.Profile + mr, err := c.Request.MultipartReader() + if err != nil { + return nil, err + } + for { + part, err := mr.NextPart() + if err == io.EOF { + break + } else if err != nil { + return nil, err + } + + switch part.FormName() { + case "metadata": + if err := validateContentType(http.Header(part.Header), metadataContentType); err != nil { + return nil, requestError{ + id: request.IDResponseErrorsValidate, + err: errors.Wrap(err, "invalid metadata"), + } + } + r := &decoder.LimitedReader{R: part, N: metadataContentLengthLimit} + raw, err := decoder.DecodeJSONData(r) + if err != nil { + if r.N < 0 { + return nil, requestError{ + id: request.IDResponseErrorsRequestTooLarge, + err: err, + } + } + return nil, requestError{ + id: request.IDResponseErrorsDecode, + err: errors.Wrap(err, "failed to decode metadata JSON"), + } + } + for k, v := range reqMeta { + utility.InsertInMap(raw, k, v.(map[string]interface{})) + } + if err := validation.Validate(raw, metadata.ModelSchema()); err != nil { + return nil, requestError{ + id: request.IDResponseErrorsValidate, + err: errors.Wrap(err, "invalid metadata"), + } + } + metadata, err := metadata.DecodeMetadata(raw) + if err != nil { + return nil, requestError{ + id: request.IDResponseErrorsDecode, + err: errors.Wrap(err, "failed to decode metadata"), + } + } + tctx.Metadata = *metadata + + case "profile": + if err := validateContentType(http.Header(part.Header), pprofContentType); err != nil { + return nil, requestError{ + id: request.IDResponseErrorsValidate, + err: errors.Wrap(err, "invalid profile"), + } + } + r := &decoder.LimitedReader{R: part, N: totalLimitRemaining} + profile, err := pprof_profile.Parse(r) + if err != nil { + if r.N < 0 { + return nil, requestError{ + id: request.IDResponseErrorsRequestTooLarge, + err: err, + } + } + return nil, requestError{ + id: request.IDResponseErrorsDecode, + err: errors.Wrap(err, "failed to decode profile"), + } + } + profiles = append(profiles, profile) + totalLimitRemaining = r.N + } + } + + transformables := make([]transform.Transformable, len(profiles)) + for i, p := range profiles { + transformables[i] = profile.PprofProfile{Profile: p} + } + + if err := report(c.Request.Context(), publish.PendingReq{ + Transformables: transformables, + Tcontext: tctx, + }); err != nil { + switch err { + case publish.ErrChannelClosed: + return nil, requestError{ + id: request.IDResponseErrorsShuttingDown, + err: errors.New("server is shutting down"), + } + case publish.ErrFull: + return nil, requestError{ + id: request.IDResponseErrorsFullQueue, + err: err, + } + } + return nil, err + } + return &result{Accepted: len(transformables)}, nil + } + return func(c *request.Context) { + result, err := handle(c) + if err != nil { + switch err := err.(type) { + case requestError: + c.Result.SetWithError(err.id, err) + default: + c.Result.SetWithError(request.IDResponseErrorsInternal, err) + } + } else { + c.Result.SetWithBody(request.IDResponseValidAccepted, result) + } + c.Write() + } +} + +func validateContentType(header http.Header, contentType string) error { + got := header.Get(headers.ContentType) + if !strings.Contains(got, contentType) { + return fmt.Errorf("invalid content type %q, expected %q", got, contentType) + } + return nil +} + +type result struct { + Accepted int `json:"accepted"` +} + +type requestError struct { + id request.ResultID + err error +} + +func (e requestError) Error() string { + return e.err.Error() +} diff --git a/beater/api/profile/handler_test.go b/beater/api/profile/handler_test.go new file mode 100644 index 00000000000..ea5bb0620f9 --- /dev/null +++ b/beater/api/profile/handler_test.go @@ -0,0 +1,287 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package profile + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "mime/multipart" + "net/http" + "net/http/httptest" + "net/textproto" + "runtime/pprof" + "strings" + "testing" + + "github.com/elastic/apm-server/beater/api/ratelimit" + "github.com/elastic/apm-server/transform" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/elastic/apm-server/beater/beatertest" + "github.com/elastic/apm-server/beater/headers" + "github.com/elastic/apm-server/beater/request" + "github.com/elastic/apm-server/decoder" + "github.com/elastic/apm-server/publish" +) + +func TestHandler(t *testing.T) { + var rateLimit, err = ratelimit.NewStore(1, 0, 0) + require.NoError(t, err) + for name, tc := range map[string]testcaseIntakeHandler{ + "MethodNotAllowed": { + r: httptest.NewRequest(http.MethodGet, "/", nil), + id: request.IDResponseErrorsMethodNotAllowed, + }, + "RequestInvalidContentType": { + r: func() *http.Request { + req := httptest.NewRequest(http.MethodPost, "/", nil) + req.Header.Set(headers.ContentType, "text/plain") + return req + }(), + id: request.IDResponseErrorsValidate, + }, + "RateLimitExceeded": { + rateLimit: rateLimit, + id: request.IDResponseErrorsRateLimit, + }, + "Closing": { + reporter: func(t *testing.T) publish.Reporter { + return beatertest.ErrorReporterFn(publish.ErrChannelClosed) + }, + id: request.IDResponseErrorsShuttingDown, + }, + "FullQueue": { + reporter: func(t *testing.T) publish.Reporter { + return beatertest.ErrorReporterFn(publish.ErrFull) + }, + id: request.IDResponseErrorsFullQueue, + }, + "Empty": { + id: request.IDResponseValidAccepted, + body: prettyJSON(map[string]interface{}{"accepted": 0}), + }, + "UnknownPartIgnored": { + id: request.IDResponseValidAccepted, + body: prettyJSON(map[string]interface{}{"accepted": 0}), + parts: []part{{ + name: "foo", + contentType: "text/plain", + body: strings.NewReader(""), + }}, + }, + + "MetadataTooLarge": { + id: request.IDResponseErrorsRequestTooLarge, + parts: []part{{ + name: "metadata", + contentType: "application/json", + body: strings.NewReader("{" + strings.Repeat(" ", 10*1024) + "}"), + }}, + }, + "MetadataInvalidContentType": { + id: request.IDResponseErrorsValidate, + parts: []part{{ + name: "metadata", + contentType: "text/plain", + body: strings.NewReader(`{"service":{"name":"foo","agent":{}}}`), + }}, + }, + "MetadataInvalidJSON": { + id: request.IDResponseErrorsDecode, + parts: []part{{ + name: "metadata", + contentType: "application/json", + body: strings.NewReader("{..."), + }}, + }, + "MetadataInvalid": { + id: request.IDResponseErrorsValidate, + parts: []part{{ + name: "metadata", + contentType: "application/json", + body: strings.NewReader("{}"), // does not validate + }}, + }, + + "Profile": { + id: request.IDResponseValidAccepted, + parts: []part{ + heapProfilePart(), + heapProfilePart(), + part{ + name: "metadata", + contentType: "application/json", + body: strings.NewReader(`{"service":{"name":"foo","agent":{}}}`), + }, + }, + body: prettyJSON(map[string]interface{}{"accepted": 2}), + reports: 1, + reporter: func(t *testing.T) publish.Reporter { + return func(ctx context.Context, req publish.PendingReq) error { + require.Len(t, req.Transformables, 2) + assert.Equal(t, "foo", *req.Tcontext.Metadata.Service.Name) + return nil + } + }, + }, + "ProfileInvalidContentType": { + id: request.IDResponseErrorsValidate, + parts: []part{{ + name: "metadata", + contentType: "text/plain", + body: strings.NewReader(""), + }}, + body: prettyJSON(map[string]interface{}{"accepted": 0}), + }, + "ProfileInvalid": { + id: request.IDResponseErrorsDecode, + parts: []part{{ + name: "profile", + contentType: "application/x-protobuf", + body: strings.NewReader("foo"), + }}, + body: prettyJSON(map[string]interface{}{"accepted": 0}), + }, + "ProfileTooLarge": { + id: request.IDResponseErrorsRequestTooLarge, + parts: []part{ + heapProfilePart(), + part{ + name: "profile", + contentType: "application/x-protobuf", + body: strings.NewReader(strings.Repeat("*", 10*1024*1024)), + }, + }, + body: prettyJSON(map[string]interface{}{"accepted": 0}), + }, + } { + t.Run(name, func(t *testing.T) { + tc.setup(t) + if tc.rateLimit != nil { + tc.c.RateLimiter = tc.rateLimit.ForIP(&http.Request{}) + } + Handler(tc.dec, transform.Config{}, tc.reporter(t))(tc.c) + + assert.Equal(t, string(tc.id), string(tc.c.Result.ID)) + resultStatus := request.MapResultIDToStatus[tc.id] + assert.Equal(t, resultStatus.Code, tc.w.Code) + assert.Equal(t, "application/json", tc.w.Header().Get(headers.ContentType)) + + assert.Zero(t, tc.reports) + if tc.id == request.IDResponseValidAccepted { + assert.Equal(t, tc.body, tc.w.Body.String()) + assert.Nil(t, tc.c.Result.Err) + } else { + assert.NotNil(t, tc.c.Result.Err) + assert.NotZero(t, tc.w.Body.Len()) + } + }) + } +} + +type testcaseIntakeHandler struct { + c *request.Context + w *httptest.ResponseRecorder + r *http.Request + dec decoder.ReqDecoder + rateLimit *ratelimit.Store + reporter func(t *testing.T) publish.Reporter + reports int + parts []part + + id request.ResultID + body string +} + +func (tc *testcaseIntakeHandler) setup(t *testing.T) { + if tc.dec == nil { + tc.dec = emptyDec + } + if tc.reporter == nil { + tc.reporter = func(t *testing.T) publish.Reporter { + return beatertest.NilReporter + } + } + if tc.reports > 0 { + orig := tc.reporter + tc.reporter = func(t *testing.T) publish.Reporter { + orig := orig(t) + return func(ctx context.Context, req publish.PendingReq) error { + tc.reports-- + return orig(ctx, req) + } + } + } + if tc.r == nil { + var buf bytes.Buffer + mpw := multipart.NewWriter(&buf) + for _, part := range tc.parts { + h := make(textproto.MIMEHeader) + h.Set("Content-Disposition", fmt.Sprintf(`form-data; name=%q`, part.name)) + h.Set("Content-Type", part.contentType) + + p, err := mpw.CreatePart(h) + require.NoError(t, err) + _, err = io.Copy(p, part.body) + require.NoError(t, err) + } + mpw.Close() + + tc.r = httptest.NewRequest(http.MethodPost, "/", &buf) + tc.r.Header.Set("Content-Type", mpw.FormDataContentType()) + } + tc.r.Header.Add("Accept", "application/json") + tc.w = httptest.NewRecorder() + tc.c = &request.Context{} + tc.c.Reset(tc.w, tc.r) +} + +func emptyDec(_ *http.Request) (map[string]interface{}, error) { + return map[string]interface{}{}, nil +} + +func heapProfilePart() part { + var buf bytes.Buffer + if err := pprof.WriteHeapProfile(&buf); err != nil { + panic(err) + } + return part{ + name: "profile", + contentType: "application/x-protobuf", + body: &buf, + } +} + +type part struct { + name string + contentType string + body io.Reader +} + +func prettyJSON(v interface{}) string { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + enc.SetIndent("", " ") + enc.Encode(v) + return buf.String() +} diff --git a/beater/beater.go b/beater/beater.go index be24dfde05f..d6cba45ee10 100644 --- a/beater/beater.go +++ b/beater/beater.go @@ -255,6 +255,19 @@ func initTracer(info beat.Info, cfg *config.Config, logger *logp.Logger) (*apm.T return tracer, nil, err } + if cfg.SelfInstrumentation.Profiling.CPU.IsEnabled() { + interval := cfg.SelfInstrumentation.Profiling.CPU.Interval + duration := cfg.SelfInstrumentation.Profiling.CPU.Duration + logger.Infof("CPU profiling: every %s for %s", interval, duration) + os.Setenv("ELASTIC_APM_CPU_PROFILE_INTERVAL", fmt.Sprintf("%dms", int(interval.Seconds()*1000))) + os.Setenv("ELASTIC_APM_CPU_PROFILE_DURATION", fmt.Sprintf("%dms", int(duration.Seconds()*1000))) + } + if cfg.SelfInstrumentation.Profiling.Heap.IsEnabled() { + interval := cfg.SelfInstrumentation.Profiling.Heap.Interval + logger.Infof("Heap profiling: every %s", interval) + os.Setenv("ELASTIC_APM_HEAP_PROFILE_INTERVAL", fmt.Sprintf("%dms", int(interval.Seconds()*1000))) + } + var tracerTransport transport.Transport var lis net.Listener if cfg.SelfInstrumentation.Hosts != nil { @@ -304,6 +317,7 @@ func initTracer(info beat.Info, cfg *config.Config, logger *logp.Logger) (*apm.T return nil, nil, err } tracer.SetLogger(logp.NewLogger(logs.Tracing)) + return tracer, lis, nil } diff --git a/beater/config/config.go b/beater/config/config.go index 2d06cc16655..de9df386bf3 100644 --- a/beater/config/config.go +++ b/beater/config/config.go @@ -82,14 +82,6 @@ type Cache struct { Expiration time.Duration `config:"expiration"` } -// InstrumentationConfig holds config information about self instrumenting the APM Server -type InstrumentationConfig struct { - Enabled *bool `config:"enabled"` - Environment *string `config:"environment"` - Hosts urls `config:"hosts" validate:"nonzero"` - SecretToken string `config:"secret_token"` -} - // NewConfig creates a Config struct based on the default config and the given input params func NewConfig(version string, ucfg *common.Config, outputESCfg *common.Config) (*Config, error) { logger := logp.NewLogger(logs.Config) @@ -123,6 +115,10 @@ func NewConfig(version string, ucfg *common.Config, outputESCfg *common.Config) return nil, err } + if err := c.SelfInstrumentation.setup(logger); err != nil { + return nil, err + } + return c, nil } @@ -131,12 +127,6 @@ func (c *ExpvarConfig) IsEnabled() bool { return c != nil && (c.Enabled == nil || *c.Enabled) } -// IsEnabled indicates whether self instrumentation is enabled -func (c *InstrumentationConfig) IsEnabled() bool { - // self instrumentation is disabled by default. - return c != nil && c.Enabled != nil && *c.Enabled -} - // DefaultConfig returns a config with default settings for `apm-server` config options. func DefaultConfig(beatVersion string) *Config { return &Config{ diff --git a/beater/config/instrumentation.go b/beater/config/instrumentation.go new file mode 100644 index 00000000000..930f2641af2 --- /dev/null +++ b/beater/config/instrumentation.go @@ -0,0 +1,110 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package config + +import ( + "time" + + "github.com/elastic/beats/libbeat/logp" +) + +const ( + defaultCPUProfilingInterval = 1 * time.Minute + defaultCPUProfilingDuration = 10 * time.Second + defaultHeapProfilingInterval = 1 * time.Minute +) + +// InstrumentationConfig holds config information about self instrumenting the APM Server +type InstrumentationConfig struct { + Enabled *bool `config:"enabled"` + Environment *string `config:"environment"` + Hosts urls `config:"hosts" validate:"nonzero"` + Profiling ProfilingConfig `config:"profiling"` + SecretToken string `config:"secret_token"` +} + +// IsEnabled indicates whether self instrumentation is enabled +func (c *InstrumentationConfig) IsEnabled() bool { + // self instrumentation is disabled by default. + return c != nil && c.Enabled != nil && *c.Enabled +} + +func (c *InstrumentationConfig) setup(log *logp.Logger) error { + if !c.IsEnabled() { + return nil + } + if err := c.Profiling.CPU.setup(log); err != nil { + return err + } + if err := c.Profiling.Heap.setup(log); err != nil { + return err + } + return nil +} + +// ProfilingConfig holds config information about self profiling the APM Server +type ProfilingConfig struct { + CPU *CPUProfiling `config:"cpu"` + Heap *HeapProfiling `config:"heap"` +} + +// CPUProfiling holds config information about CPU profiling of the APM Server +type CPUProfiling struct { + Enabled bool `config:"enabled"` + Interval time.Duration `config:"interval" validate:"positive"` + Duration time.Duration `config:"duration" validate:"positive"` +} + +// IsEnabled indicates whether CPU profiling is enabled or not +func (p *CPUProfiling) IsEnabled() bool { + return p != nil && p.Enabled +} + +func (p *CPUProfiling) setup(log *logp.Logger) error { + if !p.IsEnabled() { + return nil + } + if p.Interval <= 0 { + p.Interval = defaultCPUProfilingInterval + } + if p.Duration <= 0 { + p.Duration = defaultCPUProfilingDuration + } + return nil +} + +// HeapProfiling holds config information about heap profiling of the APM Server +type HeapProfiling struct { + Enabled bool `config:"enabled"` + Interval time.Duration `config:"interval" validate:"positive"` +} + +// IsEnabled indicates whether heap profiling is enabled or not +func (p *HeapProfiling) IsEnabled() bool { + return p != nil && p.Enabled +} + +func (p *HeapProfiling) setup(log *logp.Logger) error { + if !p.IsEnabled() { + return nil + } + if p.Interval <= 0 { + p.Interval = defaultHeapProfilingInterval + } + return nil +} diff --git a/beater/integration_test.go b/beater/integration_test.go index d19d6c7c6e1..b4b899949aa 100644 --- a/beater/integration_test.go +++ b/beater/integration_test.go @@ -20,8 +20,11 @@ package beater import ( "bytes" "encoding/json" + "fmt" "io" + "mime/multipart" "net/http" + "net/textproto" "path/filepath" "testing" "time" @@ -64,14 +67,44 @@ func adjustMissingTimestamp(event *beat.Event) { } } -// testPublish exercises the publishing pipeline, from apm-server intake to beat publishing. -// It posts a payload to a running APM server via the intake API and gathers the resulting documents that would -// normally be published to Elasticsearch. -func testPublish(t *testing.T, apm *beater, events <-chan beat.Event, url string, payload io.Reader) []byte { - baseUrl, client := apm.client(false) - req, err := http.NewRequest(http.MethodPost, baseUrl+url, payload) +func testPublishIntake(t *testing.T, apm *beater, events <-chan beat.Event, payload io.Reader) []byte { + baseURL, client := apm.client(false) + req, err := http.NewRequest(http.MethodPost, baseURL+api.IntakePath, payload) require.NoError(t, err) req.Header.Add("Content-Type", "application/x-ndjson") + return testPublish(t, client, req, events) +} + +func testPublishProfile(t *testing.T, apm *beater, events <-chan beat.Event, metadata, profile io.Reader) []byte { + var buf bytes.Buffer + mpw := multipart.NewWriter(&buf) + writePart := func(name, contentType string, body io.Reader) { + h := make(textproto.MIMEHeader) + h.Set("Content-Disposition", fmt.Sprintf(`form-data; name="%s"`, name)) + h.Set("Content-Type", contentType) + part, err := mpw.CreatePart(h) + require.NoError(t, err) + _, err = io.Copy(part, body) + require.NoError(t, err) + } + if metadata != nil { + writePart("metadata", "application/json", metadata) + } + writePart("profile", `application/x-protobuf; messageType="perftools.profiles.Profile"`, profile) + err := mpw.Close() + require.NoError(t, err) + + baseURL, client := apm.client(false) + req, err := http.NewRequest(http.MethodPost, baseURL+api.ProfilePath, &buf) + require.NoError(t, err) + req.Header.Add("Content-Type", mpw.FormDataContentType()) + return testPublish(t, client, req, events) +} + +// testPublish exercises the publishing pipeline, from apm-server intake to beat publishing. +// It posts a payload to a running APM server via the intake API and gathers the resulting +// documents that would normally be published to Elasticsearch. +func testPublish(t *testing.T, client *http.Client, req *http.Request, events <-chan beat.Event) []byte { rsp, err := client.Do(req) require.NoError(t, err) got := body(t, rsp) @@ -127,7 +160,7 @@ func TestPublishIntegration(t *testing.T) { b, err := loader.LoadDataAsBytes(filepath.Join("../testdata/intake-v2/", tc.payload)) require.NoError(t, err) - docs := testPublish(t, apm, events, api.IntakePath, bytes.NewReader(b)) + docs := testPublishIntake(t, apm, events, bytes.NewReader(b)) approvals.AssertApproveResult(t, "test_approved_es_documents/TestPublishIntegration"+tc.name, docs) }) } @@ -154,3 +187,41 @@ func TestPublishIntegrationOnboarding(t *testing.T) { require.NoError(t, err) assert.True(t, hasListen, "missing field: observer.listening") } + +func TestPublishIntegrationProfile(t *testing.T) { + if testing.Short() { + t.Skip("skipping slow tc") + } + + for name, tc := range map[string]struct { + metadata string + profile string + }{ + "CPUProfile": {profile: "cpu.pprof"}, + "HeapProfile": {profile: "heap.pprof"}, + "CPUProfileMetadata": {profile: "cpu.pprof", metadata: "metadata.json"}, + } { + name, tc := name, tc + t.Run(name, func(t *testing.T) { + t.Parallel() + // fresh APM Server for each run + events := make(chan beat.Event) + defer close(events) + apm, teardown, err := setupServer(t, nil, nil, events) + require.NoError(t, err) + defer teardown() + + var metadata io.Reader + if tc.metadata != "" { + b, err := loader.LoadDataAsBytes(filepath.Join("../testdata/profile/", tc.metadata)) + require.NoError(t, err) + metadata = bytes.NewReader(b) + } + profileBytes, err := loader.LoadDataAsBytes(filepath.Join("../testdata/profile/", tc.profile)) + require.NoError(t, err) + + docs := testPublishProfile(t, apm, events, metadata, bytes.NewReader(profileBytes)) + approvals.AssertApproveResult(t, "test_approved_es_documents/TestPublishIntegrationProfile"+name, docs) + }) + } +} diff --git a/beater/server_test.go b/beater/server_test.go index 5b1b33e01db..a95ccb33e14 100644 --- a/beater/server_test.go +++ b/beater/server_test.go @@ -485,6 +485,19 @@ func setupServer(t *testing.T, cfg *common.Config, beatConfig *beat.BeatConfig, baseConfig := common.MustNewConfigFrom(map[string]interface{}{ "host": "localhost:0", + + // Enable instrumentation so the profile endpoint is + // available, but set the profiling interval to something + // long enough that it won't kick in. + "instrumentation": map[string]interface{}{ + "enabled": true, + "profiling": map[string]interface{}{ + "cpu": map[string]interface{}{ + "enabled": true, + "interval": "360s", + }, + }, + }, }) if cfg != nil { err := cfg.Unpack(baseConfig) diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json new file mode 100644 index 00000000000..2697113271c --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json @@ -0,0 +1,9402 @@ +{ + "events": [ + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 30000000, + "duration": 5100778105, + "samples.count": 3, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollctl", + "id": "32cd0e3183bb82bc", + "line": 660 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll_epoll.go", + "function": "runtime.netpollopen", + "id": "629ded4f949e3029", + "line": 47 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll.go", + "function": "internal/poll.runtime_pollOpen", + "id": "38dcb172e1eb4d3f", + "line": 134 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_poll_runtime.go", + "function": "internal/poll.(*pollDesc).init", + "id": "65f5120f00f58e01", + "line": 39 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Init", + "id": "4721ed44011ffa17", + "line": 63 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollctl", + "id": "32cd0e3183bb82bc", + "line": 660 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "a0d212f48c2f575f", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "17d0462de974d83c", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "d3628434dbf6d0c8", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ffdb30a6e3e65329", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "aa6e72ffe1830bb6", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "688b1c1bff9bc588", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goexit0", + "id": "43970629a66d18c8", + "line": 2727 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "a0d212f48c2f575f", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "6fd788cb7a4c1abc", + "line": 175 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemmove", + "id": "5bf025576f5d5585", + "line": 170 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "reflect.typedmemmove", + "id": "be58623d3eda7a47", + "line": 186 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/value.go", + "function": "reflect.copyVal", + "id": "0b7f134070de7510", + "line": 1297 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/value.go", + "function": "reflect.Value.MapKeys", + "id": "169dc095b3537ef2", + "line": 1213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "ff802428e51f4687", + "line": 690 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "bc67c0d04bae0d09", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "f706b2dd4cd000ae", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "54e1095112f7fa99", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "9dfd0320b0731276", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "fadf4a88c59cf755", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "cc76b03127b93ee2", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "652ffb54390f2d75", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "319421dc3ee866ee", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "74b936b3f4dd7b75", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "5fd76ecd9dc9db03", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.Marshal", + "id": "5dd13b5f9e20eb3b", + "line": 161 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.testPublish", + "id": "1fbc7413d1975be4", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 130 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "6fd788cb7a4c1abc", + "line": 175 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map_faststr.go", + "function": "runtime.mapaccess2_faststr", + "id": "2634e14c9852c8be", + "line": 112 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ignoredKey", + "id": "c979e82fc826cb43", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ignoredKey", + "id": "3d28c1a0a06db273", + "line": 103 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 124 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map_faststr.go", + "function": "runtime.mapaccess2_faststr", + "id": "2634e14c9852c8be", + "line": 112 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1157 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 948 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1904 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1157 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.arenaIndex", + "id": "58e17edc82104388", + "line": 681 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.spanOf", + "id": "684384333ee1bb16", + "line": 754 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "45766d86f0f56650", + "line": 363 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mwbbuf.go", + "function": "runtime.wbBufFlush1", + "id": "e8c65e79f5080c74", + "line": 288 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkDone.func1.1", + "id": "7816ff88907d1c0a", + "line": 1430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runSafePointFn", + "id": "da77db42ce7da5fe", + "line": 1432 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "fdadcbeb59e1c18a", + "line": 2485 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goschedImpl", + "id": "00d1b67b739c31a5", + "line": 2625 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.gopreempt_m", + "id": "8a93d71493886d85", + "line": 2653 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "6a44e45108a89e8a", + "line": 1038 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.morestack", + "id": "6fc346d2628e5b90", + "line": 449 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.arenaIndex", + "id": "58e17edc82104388", + "line": 681 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "e9958e28d794a0fd", + "line": 818 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "0fec3f0eb62ed6b5", + "line": 1020 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "6b89c0c5e03818bd", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.Unmarshal", + "id": "185c511a5bf9c975", + "line": 99 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).Compare", + "id": "905d326976efbf0c", + "line": 59 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 137 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "e9958e28d794a0fd", + "line": 818 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "0d9beee2ace7888f", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "f266669b18adbdfe", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "b3c4de77e4d4f466", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "4b0fe69bdf1d479a", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "124b0893bd2708a8", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.resetspinning", + "id": "cbc85bb2185c064d", + "line": 2430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "688b1c1bff9bc588", + "line": 2531 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goexit0", + "id": "43970629a66d18c8", + "line": 2727 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "0d9beee2ace7888f", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 40000000, + "duration": 5100778105, + "samples.count": 4, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "c2462692e946f6ed", + "line": 53 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.accept4", + "id": "2c3e50e2df092222", + "line": 1484 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_linux.go", + "function": "syscall.Accept4", + "id": "5a30db9461bd9346", + "line": 541 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/sock_cloexec.go", + "function": "internal/poll.accept", + "id": "f3ad2ab759232cb8", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Accept", + "id": "63f04589f60a07fd", + "line": 377 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).accept", + "id": "c8e5d91b5400edc1", + "line": 238 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*TCPListener).accept", + "id": "d2671a2a79327929", + "line": 139 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock.go", + "function": "net.(*TCPListener).Accept", + "id": "3cb20c340a256d73", + "line": 261 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).Serve", + "id": "0a433376bb41b571", + "line": 2896 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.run", + "id": "c2a4ed3696fcf77e", + "line": 108 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run.func1", + "id": "806d8e46bc9c983a", + "line": 200 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup/errgroup.go", + "function": "github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1", + "id": "dfc08546e5506992", + "line": 58 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "c2462692e946f6ed", + "line": 53 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "ec78ef192f5b7b3f", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.read", + "id": "b14605dbf54bce75", + "line": 732 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Read", + "id": "d2736d96d1645195", + "line": 183 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Read", + "id": "cea96df8d14ca276", + "line": 165 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Read", + "id": "30c856ff58e8b149", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Read", + "id": "0ec08931a8b20da2", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*connReader).Read", + "id": "56edf1d7d58374e1", + "line": 785 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).fill", + "id": "1771d35eada3a331", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).ReadSlice", + "id": "53f1ebdd73f56cdb", + "line": 359 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).ReadLine", + "id": "5728912c61947b05", + "line": 388 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/textproto/reader.go", + "function": "net/textproto.(*Reader).readLineSlice", + "id": "ba5d252a03ca9157", + "line": 57 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/textproto/reader.go", + "function": "net/textproto.(*Reader).ReadLine", + "id": "e9c8aed5b5eb4fa0", + "line": 38 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.readRequest", + "id": "ddf182e6c2f0b795", + "line": 1012 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).readRequest", + "id": "1358d46aeae15793", + "line": 965 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1817 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "ec78ef192f5b7b3f", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 110000000, + "duration": 5100778105, + "samples.count": 11, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "81c3bf17225965f8", + "line": 820 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*chunkWriter).writeHeader", + "id": "f6754633e07e759b", + "line": 1239 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*chunkWriter).Write", + "id": "ec8169aa586bc501", + "line": 369 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "e7c5d249c40e1ad4", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*response).finishRequest", + "id": "7caa1657199944c1", + "line": 1585 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1895 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "81c3bf17225965f8", + "line": 820 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "27b504492e5c8fd2", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "790d6bf03f5f38d6", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "5a8d41ab293b40f5", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.(*timersBucket).addtimerLocked", + "id": "addca429cfaf41b3", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.addtimer", + "id": "d39d55bf657a5958", + "line": 134 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.startTimer", + "id": "0521eb532ec2007c", + "line": 114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/time/sleep.go", + "function": "time.NewTimer", + "id": "d503a899b4f90e09", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/time/sleep.go", + "function": "time.After", + "id": "799129e07df36901", + "line": 149 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater", + "id": "b62dd43ad45d65e1", + "line": 132 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.setupServer", + "id": "b29c53ed297abe99", + "line": 520 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.TestServerRootWithToken", + "id": "edbd8cd785d6dcab", + "line": 127 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "27b504492e5c8fd2", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "d5359a0d2c6dbe09", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "f1ac4919e5bfc974", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "19faf5ad761ff6b4", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "6243222ffd5e4468", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "fae654b343d2ac55", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "a711fc6146c0e979", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "92afbc40fb1afa23", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "567e256f4a371681", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "e8ebbbaeefab8145", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "7ed4a3b68f4f21ed", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "c93cb1fd9e514074", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "d4ea54466b798144", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "4eed7d4c13159879", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.DialTimeout", + "id": "91bf517642cc6bf3", + "line": 333 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).isServerAvailable", + "id": "0263b38d7052121d", + "line": 225 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 203 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "d5359a0d2c6dbe09", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "86636246e0ad6d39", + "line": 130 + }, + { + "filename": "_cgo_gotypes.go", + "function": "net._C2func_getaddrinfo", + "id": "547d2f1e63d0c130", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupServicePort.func1", + "id": "f662a49f419d2883", + "line": 107 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupServicePort", + "id": "a1bb6bc9d2e720c3", + "line": 107 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoPortLookup", + "id": "62ce87cbcfa51a05", + "line": 139 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "86636246e0ad6d39", + "line": 130 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 150000000, + "duration": 5100778105, + "samples.count": 15, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.RawSyscall", + "id": "4316dc666966c8f2", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.socket", + "id": "e305c7028c7f7a13", + "line": 1571 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Socket", + "id": "4af6f3cccb107eb5", + "line": 335 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_cloexec.go", + "function": "net.sysSocket", + "id": "297413375abf0a0e", + "line": 21 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 19 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.RawSyscall", + "id": "4316dc666966c8f2", + "line": 78 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcstack.go", + "function": "runtime.(*stackScanState).addObject", + "id": "a9d3727724e6ca32", + "line": 275 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanframeworker", + "id": "8a629bd70cc501c2", + "line": 849 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanstack.func1", + "id": "0532467a388d4213", + "line": 708 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "0d94d8bb50f14c3b", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanstack", + "id": "229919ec9afb079e", + "line": 711 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.scang", + "id": "390cbab40268e840", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot.func1", + "id": "00d8610fa98fffc3", + "line": 221 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot", + "id": "2b685eb11fd664a5", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 915 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1923 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcstack.go", + "function": "runtime.(*stackScanState).addObject", + "id": "a9d3727724e6ca32", + "line": 275 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).cacheSpan", + "id": "3d85a8fc3b39e92e", + "line": 129 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).refill", + "id": "3da46f383b012dd1", + "line": 138 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.(*mcache).nextFree", + "id": "f20c76020c780a37", + "line": 854 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "748de694ce7ea36d", + "line": 1022 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "c543118541618bbc", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).newConn", + "id": "18afa3130ebd4177", + "line": 622 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).Serve", + "id": "0a433376bb41b571", + "line": 2925 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.run", + "id": "c2a4ed3696fcf77e", + "line": 108 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run.func1", + "id": "806d8e46bc9c983a", + "line": 200 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup/errgroup.go", + "function": "github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1", + "id": "dfc08546e5506992", + "line": 58 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).cacheSpan", + "id": "3d85a8fc3b39e92e", + "line": 129 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "4ed05081595056d6", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "fccb04333090df61", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "d13a9a764f17974e", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "6aaa2bba92df4f16", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "1f062c8ff1105bc9", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "0921e0a65b70b416", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.checkConnErrorWriter.Write", + "id": "132ccb7052638d48", + "line": 3427 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "e7c5d249c40e1ad4", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*response).finishRequest", + "id": "7caa1657199944c1", + "line": 1588 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1895 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "4ed05081595056d6", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 190000000, + "duration": 5100778105, + "samples.count": 19, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "a17ef2e4bcb184e1", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "86a48c07f0853713", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "4a47a7438d3a6c80", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "a17ef2e4bcb184e1", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2186 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2186 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "15ec84b38426a436", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "04decf91fb46d8d6", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "74bab507652426a3", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "c383664563a124df", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "9f3686fa08486497", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "c407f8afa3b46cdb", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.persistConnWriter.Write", + "id": "9ae12c48aaec3f57", + "line": 1582 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "b34ae2aa31b26f98", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*persistConn).writeLoop", + "id": "78a0f47db5085268", + "line": 2212 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "15ec84b38426a436", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "71119413cdbe7805", + "line": 130 + }, + { + "filename": "_cgo_gotypes.go", + "function": "net._C2func_getaddrinfo", + "id": "eb3cdde32edcc682", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupIPCNAME.func1", + "id": "94a225e00f71a35c", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupIPCNAME", + "id": "24d9ce9018443339", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoIPLookup", + "id": "c3d55ef6159ad5a4", + "line": 218 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "71119413cdbe7805", + "line": 130 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4caa0a0e17de91f2", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1925 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4caa0a0e17de91f2", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 140000000, + "duration": 5100778105, + "samples.count": 14, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "dcc21e7239a7500f", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.Close", + "id": "594908e7a39c1e8b", + "line": 310 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).destroy", + "id": "a71ccbff66d245ca", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "dcc21e7239a7500f", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "33680c9a1944233e", + "line": 820 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/common/mapstr.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/common.MapStr.Clone", + "id": "708fad2ff98dbd3e", + "line": 130 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/processing/default.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/processing.(*builder).Create", + "id": "47f4903505c51455", + "line": 286 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline.(*Pipeline).createEventProcessing", + "id": "1d284b9d30acf518", + "line": 468 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline.(*Pipeline).ConnectWith", + "id": "e91041d04de8962e", + "line": 333 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/publish/pub.go", + "function": "github.com/elastic/apm-server/publish.NewPublisher", + "id": "02f820abd5920946", + "line": 89 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 171 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "33680c9a1944233e", + "line": 820 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2191 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2191 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.sweepone", + "id": "549ec89923a04d7b", + "line": 112 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.bgsweep", + "id": "b9648f36e8d64f41", + "line": 73 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.sweepone", + "id": "549ec89923a04d7b", + "line": 112 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 50000000, + "duration": 5100778105, + "samples.count": 5, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "69e71dfd56937182", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "81fb7224c3c476f2", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "8d679caf57053079", + "line": 2975 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.setsockopt", + "id": "396364bdc2b07e38", + "line": 1561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.SetsockoptInt", + "id": "9bbb3142e456a3f7", + "line": 296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sockopt_linux.go", + "function": "net.setDefaultSockopts", + "id": "c09cc7bc20f95878", + "line": 20 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 23 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "8d679caf57053079", + "line": 2975 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "e9ea7f0ee93ebb69", + "line": 71 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.runJanitor", + "id": "f0038982c41c0b71", + "line": 1096 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.newCacheWithJanitor", + "id": "2a79d9fe5a5dd8a8", + "line": 1122 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.New", + "id": "90cb5cfddf883442", + "line": 1135 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/agentcfg/cache.go", + "function": "github.com/elastic/apm-server/agentcfg.newCache", + "id": "86704ee04d9444dd", + "line": 41 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/agentcfg/fetch.go", + "function": "github.com/elastic/apm-server/agentcfg.NewFetcher", + "id": "187cc9a9067bbb5c", + "line": 57 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/config/agent/handler.go", + "function": "github.com/elastic/apm-server/beater/api/config/agent.Handler", + "id": "a667e6cb60565f24", + "line": 65 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.agentConfigHandler", + "id": "8b269a063fe1ef0e", + "line": 174 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.backendAgentConfigHandler", + "id": "618031eb8651d8a8", + "line": 160 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.NewMux", + "id": "2c72d7e54fb5bc5f", + "line": 103 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.newServer", + "id": "e9836a225acd1949", + "line": 38 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 191 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "e9ea7f0ee93ebb69", + "line": 71 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustpointers", + "id": "5af3c92fa2f56323", + "line": 581 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 633 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustpointers", + "id": "5af3c92fa2f56323", + "line": 581 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do.func2", + "id": "62425e969417ad5e", + "line": 549 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 651 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do.func2", + "id": "62425e969417ad5e", + "line": 549 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "53c360c4b3f4ad90", + "line": 818 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "8f40d4106e7e3ede", + "line": 1020 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "33f8025e917af8cc", + "line": 106 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1219 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "53c360c4b3f4ad90", + "line": 818 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 30000000, + "duration": 5100778105, + "samples.count": 3, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "b8bd67b55a9ff423", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "7f764778e1d9ab18", + "line": 50 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleep_internal", + "id": "2f9b1413e754a554", + "line": 193 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 228 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "b8bd67b55a9ff423", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "73690ae8cddd5b2d", + "line": 1110 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "675f9c6f53ae9849", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 870 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "73690ae8cddd5b2d", + "line": 1110 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4106 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1930 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4106 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode.func1", + "id": "a0a251ad9f0c209c", + "line": 698 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/zfuncversion.go", + "function": "sort.insertionSort_func", + "id": "901c8e9ae484172e", + "line": 12 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/zfuncversion.go", + "function": "sort.quickSort_func", + "id": "81ac69c13884bb98", + "line": 158 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/slice.go", + "function": "sort.Slice", + "id": "c85b096864e4d358", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "0fedc223e91a7f94", + "line": 698 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "745512297a3fbe7e", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "34bae42af6958380", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Encoder).Encode", + "id": "d9db21b4c18c4bb9", + "line": 202 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).writeJSON", + "id": "93a1c4c6c6b8a593", + "line": 132 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).writePlain", + "id": "06c6bf34cc445cca", + "line": 141 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).Write", + "id": "d4f5289f1e835fbf", + "line": 110 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/root/handler.go", + "function": "github.com/elastic/apm-server/beater/api/root.Handler.func1", + "id": "de7322cd7c615139", + "line": 55 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetAuthorizationMiddleware.func1.1", + "id": "2898ad3f880fdae3", + "line": 55 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode.func1", + "id": "a0a251ad9f0c209c", + "line": 698 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "4ae89e4d3fd6dd9e", + "line": 365 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanblock", + "id": "dc901c61462f8f19", + "line": 1086 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markrootBlock", + "id": "745efe941a1593aa", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot", + "id": "2b685eb11fd664a5", + "line": 166 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 915 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1927 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "4ae89e4d3fd6dd9e", + "line": 365 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "14d9609df0bc069a", + "line": 108 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).uncacheSpan", + "id": "51c66b92f4594518", + "line": 191 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).releaseAll", + "id": "d331fd734c46bf55", + "line": 158 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "06c7343976364808", + "line": 185 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.procresize", + "id": "94b9b350bc70b394", + "line": 4037 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startTheWorldWithSema", + "id": "4c0f96409422794f", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkTermination.func3", + "id": "e915b13522a3c781", + "line": 1699 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "aec8632bd75aabb1", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkTermination", + "id": "246e507318588d74", + "line": 1699 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkDone", + "id": "a88d7791a9606b01", + "line": 1581 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1964 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "14d9609df0bc069a", + "line": 108 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "543f9274304d337f", + "line": 829 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "b1c28d835c740bb9", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.funcspdelta", + "id": "f3b50579db099970", + "line": 775 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "0f8346ae297d6a6c", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "b502cd012da40c5d", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "99938c026530914f", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.heapBitsSetType", + "id": "907923d57b72656c", + "line": 938 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "ba01f176d7dfb679", + "line": 1052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "c667e9fc36900fc7", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquireSudog", + "id": "ff1624b09bfc5c49", + "line": 343 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/select.go", + "function": "runtime.selectgo", + "id": "5672939efd538346", + "line": 287 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1226 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "543f9274304d337f", + "line": 829 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 831 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 831 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 53 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.setsockopt", + "id": "396364bdc2b07e38", + "line": 1561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.SetsockoptInt", + "id": "9bbb3142e456a3f7", + "line": 296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sockopt_linux.go", + "function": "net.setDefaultSockopts", + "id": "c09cc7bc20f95878", + "line": 20 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 23 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 53 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 164 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 164 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 40000000, + "duration": 5100778105, + "samples.count": 4, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "70ed9cef8ac209d2", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "696a09396f17ef39", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "d6210b19012bd4d9", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "9779cd8dbb15d4b7", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "ebc5d8e3a2785cb5", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.resetspinning", + "id": "db2b7bd539826913", + "line": 2430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2531 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "70ed9cef8ac209d2", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2511 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2511 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.SplitHostPort", + "id": "9e62ad960e54d498", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 249 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.SplitHostPort", + "id": "9e62ad960e54d498", + "line": 196 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.retake", + "id": "ef4468308a6aaab0", + "line": 4403 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4353 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.retake", + "id": "ef4468308a6aaab0", + "line": 4403 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 836 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 836 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 427 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 427 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "b7c1904da1257bbc", + "line": 111 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "a8b807a99b7e95b6", + "line": 1962 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.handoffp", + "id": "eeac6b2d22f47253", + "line": 1996 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.entersyscallblock_handoff", + "id": "ccc5d6897e42776f", + "line": 2937 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "7c618babd343beb6", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.entersyscallblock", + "id": "56aa608614675d48", + "line": 2924 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 227 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "b7c1904da1257bbc", + "line": 111 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/panic.go", + "function": "runtime.deferreturn", + "id": "4e0dc00cd41f515d", + "line": 510 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).queueForDial", + "id": "c5d4f876cad37fb4", + "line": 1270 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1223 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/panic.go", + "function": "runtime.deferreturn", + "id": "4e0dc00cd41f515d", + "line": 510 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 827 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "789ded814a29844a", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "48756d955497bd97", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "5144b43294286526", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "bcaaef944622760b", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 827 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.assertI2I2", + "id": "7ec8a57c8bc1c2a1", + "line": 454 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 855 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.assertI2I2", + "id": "7ec8a57c8bc1c2a1", + "line": 454 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.canonicalAddr", + "id": "fccf951df2973e96", + "line": 2532 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).connectMethodForRequest", + "id": "3b8486404ba5bd52", + "line": 719 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 512 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.canonicalAddr", + "id": "fccf951df2973e96", + "line": 2532 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "5cb0cf7871844d20", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "2e1864f27cf5dc7d", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "06e1cb2c1363a40b", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "b811fe6eb1e2071a", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "20f40cb36afa2df2", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.ready", + "id": "cb7afbcda5f806f3", + "line": 666 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goready.func1", + "id": "e046621d119ca4ef", + "line": 315 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "2d597c125162253c", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goready", + "id": "0a55e1f8d90c3d7b", + "line": 314 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.closechan", + "id": "753ddda63d8c2379", + "line": 399 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*wantConn).tryDeliver", + "id": "3bc7d2b66346941c", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1301 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "5cb0cf7871844d20", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 535 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "69e71dfd56937182", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "81fb7224c3c476f2", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 535 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/hash64.go", + "function": "runtime.memhash", + "id": "f0d899dba24939ba", + "line": 26 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/alg.go", + "function": "runtime.strhash", + "id": "f76eb4fa3fece5a8", + "line": 98 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapassign", + "id": "a5dd044feaf2a1bb", + "line": 591 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).queueForIdleConn", + "id": "d174c5393027641d", + "line": 958 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1207 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/hash64.go", + "function": "runtime.memhash", + "id": "f0d899dba24939ba", + "line": 26 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/strings/strings.go", + "function": "strings.HasPrefix", + "id": "5b30bbed3ce60322", + "line": 449 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.parse", + "id": "1cf858385c43ae76", + "line": 561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 475 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 851 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/strings/strings.go", + "function": "strings.HasPrefix", + "id": "5b30bbed3ce60322", + "line": 449 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "e5a0ec5d91a38a12", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "517355fc1d3b1a72", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "6d778c82ecee2523", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "e5a0ec5d91a38a12", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "984d681c7ddcf577", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "67757042c900575f", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "d132dbb16f05670a", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "3a0a0e65053b75f3", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.injectglist", + "id": "c88788e6d1ba6f49", + "line": 2454 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2381 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "984d681c7ddcf577", + "line": 536 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3102 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3102 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4e3fa9b517e2b5d1", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 100 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4e3fa9b517e2b5d1", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "1871fb0c915c1363", + "line": 938 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "ef735ed51ad1303e", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.newFD", + "id": "0936e4adcfb42b7b", + "line": 40 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "1871fb0c915c1363", + "line": 938 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "33b68bd6b8bd2431", + "line": 1097 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.convT64", + "id": "c0121da1b108677b", + "line": 352 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.errnoErr", + "id": "668b9d26cc462fcf", + "line": 163 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "86a48c07f0853713", + "line": 1507 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "4a47a7438d3a6c80", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "33b68bd6b8bd2431", + "line": 1097 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "e5f47d4bd5b26025", + "line": 692 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "a163e6f1d383fc32", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "08559ddc2eb1574b", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "da8b5512347b0846", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "3923759c23120ecf", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "4032422b48271c82", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "5da2c2b95504224b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "fb5c8a9eea585ceb", + "line": 18 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.unixSocket", + "id": "c63e8ba9d4426cdb", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.(*sysDialer).dialUnix", + "id": "fe22b3557217018d", + "line": 154 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "b7d193ca299bbc77", + "line": 587 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "3bc2e35d76d0d90c", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "e5f47d4bd5b26025", + "line": 692 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "d38e607fad550fb3", + "line": 179 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "17ab88e722ae562a", + "line": 4114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3104 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "d38e607fad550fb3", + "line": 179 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemclr", + "id": "5779a3a97943ce1d", + "line": 320 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 95 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemclr", + "id": "5779a3a97943ce1d", + "line": 320 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "52674aebfb1f738c", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "a36551638cfc6a8f", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "8a5c560917b716ed", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "369139190ef055d1", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "8b39fc11c95398e7", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "5622c15103299659", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/fmt/print.go", + "function": "fmt.Fprintf", + "id": "66fa3cb90a2c10f7", + "line": 205 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).isServerAvailable", + "id": "0263b38d7052121d", + "line": 233 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 203 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "52674aebfb1f738c", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "ba812820725702cb", + "line": 173 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemmove", + "id": "5b841a33d2f1e4c8", + "line": 170 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.convT2I", + "id": "90ca8a619fc60e76", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/io/ioutil/ioutil.go", + "function": "io/ioutil.NopCloser", + "id": "0bf385b5d92c1508", + "line": 119 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/decoder/stream_decoder.go", + "function": "github.com/elastic/apm-server/decoder.(*NDJSONStreamReader).Read", + "id": "c33dd4e3d9e0ce4b", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*srErrorWrapper).Read", + "id": "7f792359e2f2266f", + "line": 64 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).readBatch", + "id": "7d9bd9e743107f98", + "line": 211 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "676ac7988a25ed34", + "line": 279 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "6afd1153987bccd2", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequireAuthorizationMiddleware.func1.1", + "id": "6babd90d96b742a1", + "line": 43 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "ba812820725702cb", + "line": 173 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "0711b3be41d688a6", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "1aa83e1749386d80", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "24b9b0edad62f892", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "ad38dc439266cc5e", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "c954b737133c0775", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "fb5c8a9eea585ceb", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.unixSocket", + "id": "c63e8ba9d4426cdb", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.(*sysDialer).dialUnix", + "id": "fe22b3557217018d", + "line": 154 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "b7d193ca299bbc77", + "line": 587 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "3bc2e35d76d0d90c", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "0711b3be41d688a6", + "line": 27 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "622acdb589a4b69c", + "line": 843 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cd4a2f73c245c8b0", + "line": 824 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "fc7edf5a9fc7453f", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.funcspdelta", + "id": "79d6ef6cfb31d844", + "line": 775 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "622acdb589a4b69c", + "line": 843 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 453 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 453 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollwait", + "id": "b98bd7d5b78f6184", + "line": 673 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll_epoll.go", + "function": "runtime.netpoll", + "id": "a849573d7dd05146", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2372 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollwait", + "id": "b98bd7d5b78f6184", + "line": 673 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.findfunc", + "id": "ca13ea10530acb0e", + "line": 589 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 254 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.findfunc", + "id": "ca13ea10530acb0e", + "line": 589 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "1fdcc4f81801d7a5", + "line": 4334 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "1fdcc4f81801d7a5", + "line": 4334 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4293 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4293 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1930 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4114 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 58 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 58 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "18b6f7e94a48c4bc", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 592 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "18b6f7e94a48c4bc", + "line": 1151 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.procyield", + "id": "6d181953b9895597", + "line": 570 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "7f8db34f90196aeb", + "line": 83 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3096 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.procyield", + "id": "6d181953b9895597", + "line": 570 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*fdMutex).increfAndClose", + "id": "2d7c061c779dffde", + "line": 84 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 87 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*fdMutex).increfAndClose", + "id": "2d7c061c779dffde", + "line": 84 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 848 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 848 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "1307fc0f93411442", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runqgrab", + "id": "c6e67736eae7c45e", + "line": 4887 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runqsteal", + "id": "a6b1fde919889f3a", + "line": 4922 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2253 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "1307fc0f93411442", + "line": 131 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memclr_amd64.s", + "function": "runtime.memclrNoHeapPointers", + "id": "20b2885de9731800", + "line": 163 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "14b2cff922f10c2a", + "line": 1026 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "3a94b6a00b3451a3", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1198 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memclr_amd64.s", + "function": "runtime.memclrNoHeapPointers", + "id": "20b2885de9731800", + "line": 163 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "3c8a8376e0b2c362", + "line": 365 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1190 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 948 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1923 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "3c8a8376e0b2c362", + "line": 365 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.casgstatus", + "id": "f6b3158adf3e3a77", + "line": 797 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1059 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.casgstatus", + "id": "f6b3158adf3e3a77", + "line": 797 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 836 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "789ded814a29844a", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "48756d955497bd97", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "5144b43294286526", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "bcaaef944622760b", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 836 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 545 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 545 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.stkbucket", + "id": "cfdf7226e88e761a", + "line": 245 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.mProf_Malloc", + "id": "2e6eae52a4a61888", + "line": 344 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.profilealloc", + "id": "6a9e6320556f65c8", + "line": 1183 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "9dd9b7bc2d9956a3", + "line": 1102 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "e3bebd26753720e0", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 410 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.stkbucket", + "id": "cfdf7226e88e761a", + "line": 245 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 472 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 851 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 472 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 310 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 310 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "682ff9b1671f52b1", + "line": 843 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 824 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "682ff9b1671f52b1", + "line": 843 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "c6600f0686eb9d96", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.Close", + "id": "5a8ae02982dba15d", + "line": 310 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).destroy", + "id": "2cf0a18d2f622665", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).readUnlock", + "id": "8e7618a3911ee13c", + "line": 232 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Read", + "id": "bb5746fc84948aeb", + "line": 181 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Read", + "id": "68d48382cc450a59", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Read", + "id": "f18df09bbf199671", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*connReader).Read", + "id": "22b12b8c23153931", + "line": 785 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).fill", + "id": "33d641782ee58a3e", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).Peek", + "id": "925ba2b32dc73861", + "line": 138 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1915 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "c6600f0686eb9d96", + "line": 27 + } + } + } + ] +} diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json new file mode 100644 index 00000000000..0f74cb178e4 --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json @@ -0,0 +1,10284 @@ +{ + "events": [ + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 30000000, + "duration": 5100778105, + "samples.count": 3, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollctl", + "id": "32cd0e3183bb82bc", + "line": 660 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll_epoll.go", + "function": "runtime.netpollopen", + "id": "629ded4f949e3029", + "line": 47 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll.go", + "function": "internal/poll.runtime_pollOpen", + "id": "38dcb172e1eb4d3f", + "line": 134 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_poll_runtime.go", + "function": "internal/poll.(*pollDesc).init", + "id": "65f5120f00f58e01", + "line": 39 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Init", + "id": "4721ed44011ffa17", + "line": 63 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollctl", + "id": "32cd0e3183bb82bc", + "line": 660 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "a0d212f48c2f575f", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "17d0462de974d83c", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "d3628434dbf6d0c8", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ffdb30a6e3e65329", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "aa6e72ffe1830bb6", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "688b1c1bff9bc588", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goexit0", + "id": "43970629a66d18c8", + "line": 2727 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "a0d212f48c2f575f", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "6fd788cb7a4c1abc", + "line": 175 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemmove", + "id": "5bf025576f5d5585", + "line": 170 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "reflect.typedmemmove", + "id": "be58623d3eda7a47", + "line": 186 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/value.go", + "function": "reflect.copyVal", + "id": "0b7f134070de7510", + "line": 1297 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/value.go", + "function": "reflect.Value.MapKeys", + "id": "169dc095b3537ef2", + "line": 1213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "ff802428e51f4687", + "line": 690 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "bc67c0d04bae0d09", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "f706b2dd4cd000ae", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "54e1095112f7fa99", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "9dfd0320b0731276", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "fadf4a88c59cf755", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "cc76b03127b93ee2", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "652ffb54390f2d75", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "319421dc3ee866ee", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "74b936b3f4dd7b75", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "5fd76ecd9dc9db03", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.Marshal", + "id": "5dd13b5f9e20eb3b", + "line": 161 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.testPublish", + "id": "1fbc7413d1975be4", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 130 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "6fd788cb7a4c1abc", + "line": 175 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map_faststr.go", + "function": "runtime.mapaccess2_faststr", + "id": "2634e14c9852c8be", + "line": 112 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ignoredKey", + "id": "c979e82fc826cb43", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ignoredKey", + "id": "3d28c1a0a06db273", + "line": 103 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 124 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map_faststr.go", + "function": "runtime.mapaccess2_faststr", + "id": "2634e14c9852c8be", + "line": 112 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1157 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 948 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1904 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1157 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.arenaIndex", + "id": "58e17edc82104388", + "line": 681 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.spanOf", + "id": "684384333ee1bb16", + "line": 754 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "45766d86f0f56650", + "line": 363 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mwbbuf.go", + "function": "runtime.wbBufFlush1", + "id": "e8c65e79f5080c74", + "line": 288 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkDone.func1.1", + "id": "7816ff88907d1c0a", + "line": 1430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runSafePointFn", + "id": "da77db42ce7da5fe", + "line": 1432 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "fdadcbeb59e1c18a", + "line": 2485 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goschedImpl", + "id": "00d1b67b739c31a5", + "line": 2625 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.gopreempt_m", + "id": "8a93d71493886d85", + "line": 2653 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "6a44e45108a89e8a", + "line": 1038 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.morestack", + "id": "6fc346d2628e5b90", + "line": 449 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mheap.go", + "function": "runtime.arenaIndex", + "id": "58e17edc82104388", + "line": 681 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "e9958e28d794a0fd", + "line": 818 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "0fec3f0eb62ed6b5", + "line": 1020 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "6b89c0c5e03818bd", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.Unmarshal", + "id": "185c511a5bf9c975", + "line": 99 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).Compare", + "id": "905d326976efbf0c", + "line": 59 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 137 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "e9958e28d794a0fd", + "line": 818 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "0d9beee2ace7888f", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "f266669b18adbdfe", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "b3c4de77e4d4f466", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "4b0fe69bdf1d479a", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "124b0893bd2708a8", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.resetspinning", + "id": "cbc85bb2185c064d", + "line": 2430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "688b1c1bff9bc588", + "line": 2531 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goexit0", + "id": "43970629a66d18c8", + "line": 2727 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "0d9beee2ace7888f", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 40000000, + "duration": 5100778105, + "samples.count": 4, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "c2462692e946f6ed", + "line": 53 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.accept4", + "id": "2c3e50e2df092222", + "line": 1484 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_linux.go", + "function": "syscall.Accept4", + "id": "5a30db9461bd9346", + "line": 541 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/sock_cloexec.go", + "function": "internal/poll.accept", + "id": "f3ad2ab759232cb8", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Accept", + "id": "63f04589f60a07fd", + "line": 377 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).accept", + "id": "c8e5d91b5400edc1", + "line": 238 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*TCPListener).accept", + "id": "d2671a2a79327929", + "line": 139 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock.go", + "function": "net.(*TCPListener).Accept", + "id": "3cb20c340a256d73", + "line": 261 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).Serve", + "id": "0a433376bb41b571", + "line": 2896 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.run", + "id": "c2a4ed3696fcf77e", + "line": 108 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run.func1", + "id": "806d8e46bc9c983a", + "line": 200 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup/errgroup.go", + "function": "github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1", + "id": "dfc08546e5506992", + "line": 58 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "c2462692e946f6ed", + "line": 53 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "ec78ef192f5b7b3f", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.read", + "id": "b14605dbf54bce75", + "line": 732 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Read", + "id": "d2736d96d1645195", + "line": 183 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Read", + "id": "cea96df8d14ca276", + "line": 165 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Read", + "id": "30c856ff58e8b149", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Read", + "id": "0ec08931a8b20da2", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*connReader).Read", + "id": "56edf1d7d58374e1", + "line": 785 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).fill", + "id": "1771d35eada3a331", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).ReadSlice", + "id": "53f1ebdd73f56cdb", + "line": 359 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).ReadLine", + "id": "5728912c61947b05", + "line": 388 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/textproto/reader.go", + "function": "net/textproto.(*Reader).readLineSlice", + "id": "ba5d252a03ca9157", + "line": 57 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/textproto/reader.go", + "function": "net/textproto.(*Reader).ReadLine", + "id": "e9c8aed5b5eb4fa0", + "line": 38 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.readRequest", + "id": "ddf182e6c2f0b795", + "line": 1012 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).readRequest", + "id": "1358d46aeae15793", + "line": 965 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1817 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "ec78ef192f5b7b3f", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 110000000, + "duration": 5100778105, + "samples.count": 11, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "81c3bf17225965f8", + "line": 820 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*chunkWriter).writeHeader", + "id": "f6754633e07e759b", + "line": 1239 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*chunkWriter).Write", + "id": "ec8169aa586bc501", + "line": 369 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "e7c5d249c40e1ad4", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*response).finishRequest", + "id": "7caa1657199944c1", + "line": 1585 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1895 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "81c3bf17225965f8", + "line": 820 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "27b504492e5c8fd2", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "790d6bf03f5f38d6", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "5a8d41ab293b40f5", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.(*timersBucket).addtimerLocked", + "id": "addca429cfaf41b3", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.addtimer", + "id": "d39d55bf657a5958", + "line": 134 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.startTimer", + "id": "0521eb532ec2007c", + "line": 114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/time/sleep.go", + "function": "time.NewTimer", + "id": "d503a899b4f90e09", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/time/sleep.go", + "function": "time.After", + "id": "799129e07df36901", + "line": 149 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater", + "id": "b62dd43ad45d65e1", + "line": 132 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.setupServer", + "id": "b29c53ed297abe99", + "line": 520 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.TestServerRootWithToken", + "id": "edbd8cd785d6dcab", + "line": 127 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "27b504492e5c8fd2", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "d5359a0d2c6dbe09", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "f1ac4919e5bfc974", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "19faf5ad761ff6b4", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "6243222ffd5e4468", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "fae654b343d2ac55", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "a711fc6146c0e979", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "92afbc40fb1afa23", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "567e256f4a371681", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "e8ebbbaeefab8145", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "7ed4a3b68f4f21ed", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "c93cb1fd9e514074", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "d4ea54466b798144", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "4eed7d4c13159879", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.DialTimeout", + "id": "91bf517642cc6bf3", + "line": 333 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).isServerAvailable", + "id": "0263b38d7052121d", + "line": 225 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 203 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "d5359a0d2c6dbe09", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "86636246e0ad6d39", + "line": 130 + }, + { + "filename": "_cgo_gotypes.go", + "function": "net._C2func_getaddrinfo", + "id": "547d2f1e63d0c130", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupServicePort.func1", + "id": "f662a49f419d2883", + "line": 107 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupServicePort", + "id": "a1bb6bc9d2e720c3", + "line": 107 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoPortLookup", + "id": "62ce87cbcfa51a05", + "line": 139 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "86636246e0ad6d39", + "line": 130 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 150000000, + "duration": 5100778105, + "samples.count": 15, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.RawSyscall", + "id": "4316dc666966c8f2", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.socket", + "id": "e305c7028c7f7a13", + "line": 1571 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Socket", + "id": "4af6f3cccb107eb5", + "line": 335 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_cloexec.go", + "function": "net.sysSocket", + "id": "297413375abf0a0e", + "line": 21 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 19 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.RawSyscall", + "id": "4316dc666966c8f2", + "line": 78 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcstack.go", + "function": "runtime.(*stackScanState).addObject", + "id": "a9d3727724e6ca32", + "line": 275 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanframeworker", + "id": "8a629bd70cc501c2", + "line": 849 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanstack.func1", + "id": "0532467a388d4213", + "line": 708 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "0d94d8bb50f14c3b", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanstack", + "id": "229919ec9afb079e", + "line": 711 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.scang", + "id": "390cbab40268e840", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot.func1", + "id": "00d8610fa98fffc3", + "line": 221 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot", + "id": "2b685eb11fd664a5", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 915 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1923 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcstack.go", + "function": "runtime.(*stackScanState).addObject", + "id": "a9d3727724e6ca32", + "line": 275 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).cacheSpan", + "id": "3d85a8fc3b39e92e", + "line": 129 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).refill", + "id": "3da46f383b012dd1", + "line": 138 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.(*mcache).nextFree", + "id": "f20c76020c780a37", + "line": 854 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "748de694ce7ea36d", + "line": 1022 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "c543118541618bbc", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).newConn", + "id": "18afa3130ebd4177", + "line": 622 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*Server).Serve", + "id": "0a433376bb41b571", + "line": 2925 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.run", + "id": "c2a4ed3696fcf77e", + "line": 108 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run.func1", + "id": "806d8e46bc9c983a", + "line": 200 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup/errgroup.go", + "function": "github.com/elastic/apm-server/vendor/golang.org/x/sync/errgroup.(*Group).Go.func1", + "id": "dfc08546e5506992", + "line": 58 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).cacheSpan", + "id": "3d85a8fc3b39e92e", + "line": 129 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "4ed05081595056d6", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "fccb04333090df61", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "d13a9a764f17974e", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "6aaa2bba92df4f16", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "1f062c8ff1105bc9", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "0921e0a65b70b416", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.checkConnErrorWriter.Write", + "id": "132ccb7052638d48", + "line": 3427 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "e7c5d249c40e1ad4", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*response).finishRequest", + "id": "7caa1657199944c1", + "line": 1588 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1895 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "4ed05081595056d6", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 190000000, + "duration": 5100778105, + "samples.count": 19, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "a17ef2e4bcb184e1", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "86a48c07f0853713", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "4a47a7438d3a6c80", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "a17ef2e4bcb184e1", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2186 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2186 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "15ec84b38426a436", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "04decf91fb46d8d6", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "74bab507652426a3", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "c383664563a124df", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "9f3686fa08486497", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "c407f8afa3b46cdb", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.persistConnWriter.Write", + "id": "9ae12c48aaec3f57", + "line": 1582 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Writer).Flush", + "id": "b34ae2aa31b26f98", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*persistConn).writeLoop", + "id": "78a0f47db5085268", + "line": 2212 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "15ec84b38426a436", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "71119413cdbe7805", + "line": 130 + }, + { + "filename": "_cgo_gotypes.go", + "function": "net._C2func_getaddrinfo", + "id": "eb3cdde32edcc682", + "line": 92 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupIPCNAME.func1", + "id": "94a225e00f71a35c", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoLookupIPCNAME", + "id": "24d9ce9018443339", + "line": 161 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/cgo_unix.go", + "function": "net.cgoIPLookup", + "id": "c3d55ef6159ad5a4", + "line": 218 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/cgocall.go", + "function": "runtime.cgocall", + "id": "71119413cdbe7805", + "line": 130 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4caa0a0e17de91f2", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1925 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4caa0a0e17de91f2", + "line": 56 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 140000000, + "duration": 5100778105, + "samples.count": 14, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "dcc21e7239a7500f", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.Close", + "id": "594908e7a39c1e8b", + "line": 310 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).destroy", + "id": "a71ccbff66d245ca", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "dcc21e7239a7500f", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "33680c9a1944233e", + "line": 820 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/common/mapstr.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/common.MapStr.Clone", + "id": "708fad2ff98dbd3e", + "line": 130 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/processing/default.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/processing.(*builder).Create", + "id": "47f4903505c51455", + "line": 286 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline.(*Pipeline).createEventProcessing", + "id": "1d284b9d30acf518", + "line": 468 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/publisher/pipeline.(*Pipeline).ConnectWith", + "id": "e91041d04de8962e", + "line": 333 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/publish/pub.go", + "function": "github.com/elastic/apm-server/publish.NewPublisher", + "id": "02f820abd5920946", + "line": 89 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 171 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapiterinit", + "id": "33680c9a1944233e", + "line": 820 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2191 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2191 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.sweepone", + "id": "549ec89923a04d7b", + "line": 112 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.bgsweep", + "id": "b9648f36e8d64f41", + "line": 73 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcsweep.go", + "function": "runtime.sweepone", + "id": "549ec89923a04d7b", + "line": 112 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 50000000, + "duration": 5100778105, + "samples.count": 5, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "69e71dfd56937182", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "81fb7224c3c476f2", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "8d679caf57053079", + "line": 2975 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.setsockopt", + "id": "396364bdc2b07e38", + "line": 1561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.SetsockoptInt", + "id": "9bbb3142e456a3f7", + "line": 296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sockopt_linux.go", + "function": "net.setDefaultSockopts", + "id": "c09cc7bc20f95878", + "line": 20 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 23 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "8d679caf57053079", + "line": 2975 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "e9ea7f0ee93ebb69", + "line": 71 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.runJanitor", + "id": "f0038982c41c0b71", + "line": 1096 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.newCacheWithJanitor", + "id": "2a79d9fe5a5dd8a8", + "line": 1122 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache/cache.go", + "function": "github.com/elastic/apm-server/vendor/github.com/patrickmn/go-cache.New", + "id": "90cb5cfddf883442", + "line": 1135 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/agentcfg/cache.go", + "function": "github.com/elastic/apm-server/agentcfg.newCache", + "id": "86704ee04d9444dd", + "line": 41 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/agentcfg/fetch.go", + "function": "github.com/elastic/apm-server/agentcfg.NewFetcher", + "id": "187cc9a9067bbb5c", + "line": 57 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/config/agent/handler.go", + "function": "github.com/elastic/apm-server/beater/api/config/agent.Handler", + "id": "a667e6cb60565f24", + "line": 65 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.agentConfigHandler", + "id": "8b269a063fe1ef0e", + "line": 174 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.backendAgentConfigHandler", + "id": "618031eb8651d8a8", + "line": 160 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.NewMux", + "id": "2c72d7e54fb5bc5f", + "line": 103 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.newServer", + "id": "e9836a225acd1949", + "line": 38 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 191 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "e9ea7f0ee93ebb69", + "line": 71 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustpointers", + "id": "5af3c92fa2f56323", + "line": 581 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 633 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustpointers", + "id": "5af3c92fa2f56323", + "line": 581 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do.func2", + "id": "62425e969417ad5e", + "line": 549 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 651 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do.func2", + "id": "62425e969417ad5e", + "line": 549 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "53c360c4b3f4ad90", + "line": 818 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "8f40d4106e7e3ede", + "line": 1020 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.makechan", + "id": "33f8025e917af8cc", + "line": 106 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1219 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.nextFreeFast", + "id": "53c360c4b3f4ad90", + "line": 818 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 30000000, + "duration": 5100778105, + "samples.count": 3, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "b8bd67b55a9ff423", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "7f764778e1d9ab18", + "line": 50 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleep_internal", + "id": "2f9b1413e754a554", + "line": 193 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 228 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "b8bd67b55a9ff423", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "73690ae8cddd5b2d", + "line": 1110 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "675f9c6f53ae9849", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 870 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "73690ae8cddd5b2d", + "line": 1110 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4106 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1930 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4106 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode.func1", + "id": "a0a251ad9f0c209c", + "line": 698 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/zfuncversion.go", + "function": "sort.insertionSort_func", + "id": "901c8e9ae484172e", + "line": 12 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/zfuncversion.go", + "function": "sort.quickSort_func", + "id": "81ac69c13884bb98", + "line": 158 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sort/slice.go", + "function": "sort.Slice", + "id": "c85b096864e4d358", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "0fedc223e91a7f94", + "line": 698 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "745512297a3fbe7e", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "34bae42af6958380", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Encoder).Encode", + "id": "d9db21b4c18c4bb9", + "line": 202 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).writeJSON", + "id": "93a1c4c6c6b8a593", + "line": 132 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).writePlain", + "id": "06c6bf34cc445cca", + "line": 141 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/request/context.go", + "function": "github.com/elastic/apm-server/beater/request.(*Context).Write", + "id": "d4f5289f1e835fbf", + "line": 110 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/root/handler.go", + "function": "github.com/elastic/apm-server/beater/api/root.Handler.func1", + "id": "de7322cd7c615139", + "line": 55 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetAuthorizationMiddleware.func1.1", + "id": "2898ad3f880fdae3", + "line": 55 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode.func1", + "id": "a0a251ad9f0c209c", + "line": 698 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "4ae89e4d3fd6dd9e", + "line": 365 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanblock", + "id": "dc901c61462f8f19", + "line": 1086 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markrootBlock", + "id": "745efe941a1593aa", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.markroot", + "id": "2b685eb11fd664a5", + "line": 166 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 915 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1927 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "4ae89e4d3fd6dd9e", + "line": 365 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "14d9609df0bc069a", + "line": 108 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcentral.go", + "function": "runtime.(*mcentral).uncacheSpan", + "id": "51c66b92f4594518", + "line": 191 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).releaseAll", + "id": "d331fd734c46bf55", + "line": 158 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "06c7343976364808", + "line": 185 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.procresize", + "id": "94b9b350bc70b394", + "line": 4037 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startTheWorldWithSema", + "id": "4c0f96409422794f", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkTermination.func3", + "id": "e915b13522a3c781", + "line": 1699 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "aec8632bd75aabb1", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkTermination", + "id": "246e507318588d74", + "line": 1699 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcMarkDone", + "id": "a88d7791a9606b01", + "line": 1581 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1964 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "14d9609df0bc069a", + "line": 108 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "543f9274304d337f", + "line": 829 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "b1c28d835c740bb9", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.funcspdelta", + "id": "f3b50579db099970", + "line": 775 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "0f8346ae297d6a6c", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "b502cd012da40c5d", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "99938c026530914f", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.heapBitsSetType", + "id": "907923d57b72656c", + "line": 938 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "ba01f176d7dfb679", + "line": 1052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "c667e9fc36900fc7", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquireSudog", + "id": "ff1624b09bfc5c49", + "line": 343 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/select.go", + "function": "runtime.selectgo", + "id": "5672939efd538346", + "line": 287 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1226 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "543f9274304d337f", + "line": 829 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "eb5f0f05556d246f", + "line": 131 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 831 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 831 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 53 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.setsockopt", + "id": "396364bdc2b07e38", + "line": 1561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.SetsockoptInt", + "id": "9bbb3142e456a3f7", + "line": 296 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sockopt_linux.go", + "function": "net.setDefaultSockopts", + "id": "c09cc7bc20f95878", + "line": 20 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 23 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall6", + "id": "4db33483798768ac", + "line": 53 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 164 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 164 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 40000000, + "duration": 5100778105, + "samples.count": 4, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "70ed9cef8ac209d2", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "696a09396f17ef39", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "d6210b19012bd4d9", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "9779cd8dbb15d4b7", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "ebc5d8e3a2785cb5", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.resetspinning", + "id": "db2b7bd539826913", + "line": 2430 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2531 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "70ed9cef8ac209d2", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2511 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2511 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.SplitHostPort", + "id": "9e62ad960e54d498", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 249 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.SplitHostPort", + "id": "9e62ad960e54d498", + "line": 196 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.retake", + "id": "ef4468308a6aaab0", + "line": 4403 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4353 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.retake", + "id": "ef4468308a6aaab0", + "line": 4403 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 836 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 836 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 427 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 427 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "b7c1904da1257bbc", + "line": 111 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "a8b807a99b7e95b6", + "line": 1962 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.handoffp", + "id": "eeac6b2d22f47253", + "line": 1996 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.entersyscallblock_handoff", + "id": "ccc5d6897e42776f", + "line": 2937 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "7c618babd343beb6", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.entersyscallblock", + "id": "56aa608614675d48", + "line": 2924 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 227 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.unlock", + "id": "b7c1904da1257bbc", + "line": 111 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/panic.go", + "function": "runtime.deferreturn", + "id": "4e0dc00cd41f515d", + "line": 510 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).queueForDial", + "id": "c5d4f876cad37fb4", + "line": 1270 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1223 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/panic.go", + "function": "runtime.deferreturn", + "id": "4e0dc00cd41f515d", + "line": 510 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 827 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "789ded814a29844a", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "48756d955497bd97", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "5144b43294286526", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "bcaaef944622760b", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 827 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.assertI2I2", + "id": "7ec8a57c8bc1c2a1", + "line": 454 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 855 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.assertI2I2", + "id": "7ec8a57c8bc1c2a1", + "line": 454 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.canonicalAddr", + "id": "fccf951df2973e96", + "line": 2532 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).connectMethodForRequest", + "id": "3b8486404ba5bd52", + "line": 719 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 512 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.canonicalAddr", + "id": "fccf951df2973e96", + "line": 2532 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "5cb0cf7871844d20", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "2e1864f27cf5dc7d", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "06e1cb2c1363a40b", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "b811fe6eb1e2071a", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.wakep", + "id": "20f40cb36afa2df2", + "line": 2050 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.ready", + "id": "cb7afbcda5f806f3", + "line": 666 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goready.func1", + "id": "e046621d119ca4ef", + "line": 315 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "2d597c125162253c", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.goready", + "id": "0a55e1f8d90c3d7b", + "line": 314 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/chan.go", + "function": "runtime.closechan", + "id": "753ddda63d8c2379", + "line": 399 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*wantConn).tryDeliver", + "id": "3bc7d2b66346941c", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1301 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "5cb0cf7871844d20", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 535 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexsleep", + "id": "69e71dfd56937182", + "line": 44 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notesleep", + "id": "81fb7224c3c476f2", + "line": 151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1928 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "ca97f12e3bf1e9c8", + "line": 535 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/hash64.go", + "function": "runtime.memhash", + "id": "f0d899dba24939ba", + "line": 26 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/alg.go", + "function": "runtime.strhash", + "id": "f76eb4fa3fece5a8", + "line": 98 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "runtime.mapassign", + "id": "a5dd044feaf2a1bb", + "line": 591 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).queueForIdleConn", + "id": "d174c5393027641d", + "line": 958 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1207 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/hash64.go", + "function": "runtime.memhash", + "id": "f0d899dba24939ba", + "line": 26 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/strings/strings.go", + "function": "strings.HasPrefix", + "id": "5b30bbed3ce60322", + "line": 449 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.parse", + "id": "1cf858385c43ae76", + "line": 561 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 475 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 851 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/strings/strings.go", + "function": "strings.HasPrefix", + "id": "5b30bbed3ce60322", + "line": 449 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "e5a0ec5d91a38a12", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "517355fc1d3b1a72", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "6d778c82ecee2523", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "e5a0ec5d91a38a12", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "984d681c7ddcf577", + "line": 536 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/os_linux.go", + "function": "runtime.futexwakeup", + "id": "67757042c900575f", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notewakeup", + "id": "d132dbb16f05670a", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.startm", + "id": "3a0a0e65053b75f3", + "line": 1984 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.injectglist", + "id": "c88788e6d1ba6f49", + "line": 2454 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2381 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.futex", + "id": "984d681c7ddcf577", + "line": 536 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3102 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3102 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4e3fa9b517e2b5d1", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 100 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "4e3fa9b517e2b5d1", + "line": 56 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "1871fb0c915c1363", + "line": 938 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "ef735ed51ad1303e", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.newFD", + "id": "0936e4adcfb42b7b", + "line": 40 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "1871fb0c915c1363", + "line": 938 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "33b68bd6b8bd2431", + "line": 1097 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.convT64", + "id": "c0121da1b108677b", + "line": 352 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.errnoErr", + "id": "668b9d26cc462fcf", + "line": 163 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "86a48c07f0853713", + "line": 1507 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "4a47a7438d3a6c80", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "33b68bd6b8bd2431", + "line": 1097 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "e5f47d4bd5b26025", + "line": 692 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "a163e6f1d383fc32", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "08559ddc2eb1574b", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "da8b5512347b0846", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "3923759c23120ecf", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "4032422b48271c82", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "5da2c2b95504224b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "fb5c8a9eea585ceb", + "line": 18 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.unixSocket", + "id": "c63e8ba9d4426cdb", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.(*sysDialer).dialUnix", + "id": "fe22b3557217018d", + "line": 154 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "b7d193ca299bbc77", + "line": 587 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "3bc2e35d76d0d90c", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "e5f47d4bd5b26025", + "line": 692 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "d38e607fad550fb3", + "line": 179 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "17ab88e722ae562a", + "line": 4114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3104 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mcache.go", + "function": "runtime.(*mcache).prepareForSweep", + "id": "d38e607fad550fb3", + "line": 179 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemclr", + "id": "5779a3a97943ce1d", + "line": 320 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 95 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemclr", + "id": "5779a3a97943ce1d", + "line": 320 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "52674aebfb1f738c", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.write", + "id": "a36551638cfc6a8f", + "line": 1005 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Write", + "id": "8a5c560917b716ed", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Write", + "id": "369139190ef055d1", + "line": 268 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Write", + "id": "8b39fc11c95398e7", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Write", + "id": "5622c15103299659", + "line": 196 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/fmt/print.go", + "function": "fmt.Fprintf", + "id": "66fa3cb90a2c10f7", + "line": 205 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).isServerAvailable", + "id": "0263b38d7052121d", + "line": 233 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 203 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "52674aebfb1f738c", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "ba812820725702cb", + "line": 173 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbarrier.go", + "function": "runtime.typedmemmove", + "id": "5b841a33d2f1e4c8", + "line": 170 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/iface.go", + "function": "runtime.convT2I", + "id": "90ca8a619fc60e76", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/io/ioutil/ioutil.go", + "function": "io/ioutil.NopCloser", + "id": "0bf385b5d92c1508", + "line": 119 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/decoder/stream_decoder.go", + "function": "github.com/elastic/apm-server/decoder.(*NDJSONStreamReader).Read", + "id": "c33dd4e3d9e0ce4b", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*srErrorWrapper).Read", + "id": "7f792359e2f2266f", + "line": 64 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).readBatch", + "id": "7d9bd9e743107f98", + "line": 211 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "676ac7988a25ed34", + "line": 279 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "6afd1153987bccd2", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequireAuthorizationMiddleware.func1.1", + "id": "6babd90d96b742a1", + "line": 43 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memmove_amd64.s", + "function": "runtime.memmove", + "id": "ba812820725702cb", + "line": 173 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "0711b3be41d688a6", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.connect", + "id": "1aa83e1749386d80", + "line": 1505 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/syscall_unix.go", + "function": "syscall.Connect", + "id": "24b9b0edad62f892", + "line": 251 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "ad38dc439266cc5e", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "c954b737133c0775", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "fb5c8a9eea585ceb", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.unixSocket", + "id": "c63e8ba9d4426cdb", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/unixsock_posix.go", + "function": "net.(*sysDialer).dialUnix", + "id": "fe22b3557217018d", + "line": 154 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "b7d193ca299bbc77", + "line": 587 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "3bc2e35d76d0d90c", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "0711b3be41d688a6", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "622acdb589a4b69c", + "line": 843 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cd4a2f73c245c8b0", + "line": 824 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "fc7edf5a9fc7453f", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.funcspdelta", + "id": "79d6ef6cfb31d844", + "line": 775 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "622acdb589a4b69c", + "line": 843 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 453 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 453 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollwait", + "id": "b98bd7d5b78f6184", + "line": 673 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/netpoll_epoll.go", + "function": "runtime.netpoll", + "id": "a849573d7dd05146", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2372 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.epollwait", + "id": "b98bd7d5b78f6184", + "line": 673 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 20000000, + "duration": 5100778105, + "samples.count": 2, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.findfunc", + "id": "ca13ea10530acb0e", + "line": 589 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 254 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.findfunc", + "id": "ca13ea10530acb0e", + "line": 589 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "1fdcc4f81801d7a5", + "line": 4334 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "1fdcc4f81801d7a5", + "line": 4334 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4293 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart1", + "id": "b359768887075555", + "line": 1201 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.mstart", + "id": "583dc208ea39213c", + "line": 1167 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.sysmon", + "id": "bc8ecb7aa0471062", + "line": 4293 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4114 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.stopm", + "id": "ef369f30b469c52f", + "line": 1930 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2391 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.acquirep", + "id": "857dbe564334f04d", + "line": 4114 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 58 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 58 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "18b6f7e94a48c4bc", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 592 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "18b6f7e94a48c4bc", + "line": 1151 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.procyield", + "id": "6d181953b9895597", + "line": 570 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.lock", + "id": "7f8db34f90196aeb", + "line": 83 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast_pidle", + "id": "6dff2ea4f233ad1b", + "line": 3096 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast.func1", + "id": "92a3945fdfdd0e6e", + "line": 3053 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "8bdd49053345cc1d", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscallfast", + "id": "796314d19ac4e2ef", + "line": 3052 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.exitsyscall", + "id": "e0a5c2f60e0e5eb1", + "line": 2963 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/lock_futex.go", + "function": "runtime.notetsleepg", + "id": "f0357357a2814eea", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "runtime.timerproc", + "id": "5e314810ee027bcc", + "line": 311 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.procyield", + "id": "6d181953b9895597", + "line": 570 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*fdMutex).increfAndClose", + "id": "2d7c061c779dffde", + "line": 84 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 87 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*fdMutex).increfAndClose", + "id": "2d7c061c779dffde", + "line": 84 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 848 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 848 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "1307fc0f93411442", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runqgrab", + "id": "c6e67736eae7c45e", + "line": 4887 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.runqsteal", + "id": "a6b1fde919889f3a", + "line": 4922 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.findrunnable", + "id": "23ffea1f5c57beaa", + "line": 2253 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.schedule", + "id": "3b341d6d305c454e", + "line": 2524 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.park_m", + "id": "04d4b5b581785925", + "line": 2610 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.mcall", + "id": "36e2944a1be45e0c", + "line": 318 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/sys_linux_amd64.s", + "function": "runtime.usleep", + "id": "1307fc0f93411442", + "line": 131 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memclr_amd64.s", + "function": "runtime.memclrNoHeapPointers", + "id": "20b2885de9731800", + "line": 163 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "14b2cff922f10c2a", + "line": 1026 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "3a94b6a00b3451a3", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1198 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/memclr_amd64.s", + "function": "runtime.memclrNoHeapPointers", + "id": "20b2885de9731800", + "line": 163 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "3c8a8376e0b2c362", + "line": 365 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.scanobject", + "id": "fb2951a9cae5bd81", + "line": 1190 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgcmark.go", + "function": "runtime.gcDrain", + "id": "17ccd9b3b5ed4251", + "line": 948 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker.func2", + "id": "bf517e7b1f267349", + "line": 1923 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/asm_amd64.s", + "function": "runtime.systemstack", + "id": "05aeaed3632f60f5", + "line": 370 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mgc.go", + "function": "runtime.gcBgMarkWorker", + "id": "077520c26745a1c3", + "line": 1891 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mbitmap.go", + "function": "runtime.findObject", + "id": "3c8a8376e0b2c362", + "line": 365 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Close", + "id": "9f3e61a316032c73", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Close", + "id": "91e25f2f628b6697", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).decref", + "id": "db1de23a1cccc839", + "line": 213 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.casgstatus", + "id": "f6b3158adf3e3a77", + "line": 797 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1059 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.casgstatus", + "id": "f6b3158adf3e3a77", + "line": 797 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 836 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "789ded814a29844a", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "48756d955497bd97", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "5144b43294286526", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "bcaaef944622760b", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ef2d03e605b0d947", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "fbecf9713591c3aa", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "8a3dbbca724c198b", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1423 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "cac658644f0b926b", + "line": 836 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 545 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 545 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.stkbucket", + "id": "cfdf7226e88e761a", + "line": 245 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.mProf_Malloc", + "id": "2e6eae52a4a61888", + "line": 344 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.profilealloc", + "id": "6a9e6320556f65c8", + "line": 1183 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.mallocgc", + "id": "9dd9b7bc2d9956a3", + "line": 1102 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/malloc.go", + "function": "runtime.newobject", + "id": "e3bebd26753720e0", + "line": 1151 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "77f114f7632ecbfa", + "line": 410 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "d0cc0007046a8047", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.Dial", + "id": "4f9fe28ba3133074", + "line": 318 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.(*beater).client.func1", + "id": "d41766b466e3d41c", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1034 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/mprof.go", + "function": "runtime.stkbucket", + "id": "cfdf7226e88e761a", + "line": 245 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 472 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 851 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 472 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 310 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 557 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/time.go", + "function": "time.Sleep", + "id": "7bf8abcae8104c39", + "line": 310 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "682ff9b1671f52b1", + "line": 843 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.step", + "id": "986fb263704a857d", + "line": 824 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcvalue", + "id": "2e0c824efad80c17", + "line": 676 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.pcdatavalue", + "id": "014e8ddc2cd86833", + "line": 790 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.getStackMap", + "id": "dca5b10c086f4a38", + "line": 1187 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.adjustframe", + "id": "e1461af2854a4a25", + "line": 628 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/traceback.go", + "function": "runtime.gentraceback", + "id": "ce79f8e09b966096", + "line": 334 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.copystack", + "id": "d077063ed2b6b09b", + "line": 886 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/stack.go", + "function": "runtime.newstack", + "id": "694f7cb1c4d49d9e", + "line": 1055 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ip.go", + "function": "net.parseIPZone", + "id": "a2d1ef10ebb3c1c6", + "line": 689 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).lookupIPAddr", + "id": "0a401815a6acca09", + "line": 243 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 280 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/symtab.go", + "function": "runtime.readvarint", + "id": "682ff9b1671f52b1", + "line": 843 + } + }, + "service": { + "name": "apm-server" + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:36.305Z", + "agent": { + "name": "go" + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "ip": "127.0.0.1" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "cpu.ns": 10000000, + "duration": 5100778105, + "samples.count": 1, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "c6600f0686eb9d96", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/zsyscall_linux_amd64.go", + "function": "syscall.Close", + "id": "5a8ae02982dba15d", + "line": 310 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).destroy", + "id": "2cf0a18d2f622665", + "line": 78 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_mutex.go", + "function": "internal/poll.(*FD).readUnlock", + "id": "8e7618a3911ee13c", + "line": 232 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/internal/poll/fd_unix.go", + "function": "internal/poll.(*FD).Read", + "id": "bb5746fc84948aeb", + "line": 181 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).Read", + "id": "68d48382cc450a59", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/net.go", + "function": "net.(*conn).Read", + "id": "f18df09bbf199671", + "line": 184 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*connReader).Read", + "id": "22b12b8c23153931", + "line": 785 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).fill", + "id": "33d641782ee58a3e", + "line": 100 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.(*Reader).Peek", + "id": "925ba2b32dc73861", + "line": 138 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1915 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/syscall/asm_linux_amd64.s", + "function": "syscall.Syscall", + "id": "c6600f0686eb9d96", + "line": 27 + } + }, + "service": { + "name": "apm-server" + } + } + ] +} diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json new file mode 100644 index 00000000000..ad353e65a70 --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json @@ -0,0 +1,4288 @@ +{ + "events": [ + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 65536, + "alloc_space.bytes": 524292, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 638 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 638 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16384, + "alloc_space.bytes": 524304, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.ipToSockaddr", + "id": "6240a1da2243b4c0", + "line": 154 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*TCPAddr).sockaddr", + "id": "73159fe80e554168", + "line": 40 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 146 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.ipToSockaddr", + "id": "6240a1da2243b4c0", + "line": 154 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2979, + "alloc_space.bytes": 524376, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1198 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 522 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).getConn", + "id": "13d277471c8a51e1", + "line": 1198 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 4096, + "alloc_space.bytes": 524352, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.newFD", + "id": "0936e4adcfb42b7b", + "line": 40 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 27 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.newFD", + "id": "0936e4adcfb42b7b", + "line": 40 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16384, + "alloc_space.bytes": 524304, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1428 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1428 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 10923, + "alloc_space.bytes": 524312, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 511 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/roundtrip.go", + "function": "net/http.(*Transport).RoundTrip", + "id": "17d2edff7744a123", + "line": 17 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.send", + "id": "4363b6602efdf023", + "line": 250 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).send", + "id": "164d305333838441", + "line": 174 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).do", + "id": "9ffba5bf73df5422", + "line": 641 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Do", + "id": "05c0047046f3e6a3", + "line": 509 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 398 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).roundTrip", + "id": "da8c03fe6c99671f", + "line": 511 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 5461, + "alloc_space.bytes": 524336, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1431 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1431 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2, + "alloc_space.bytes": 666237, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.(*compressor).init", + "id": "04672a73568bb4d2", + "line": 593 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.NewWriter", + "id": "9beaa370b4bf30de", + "line": 668 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.NewWriterDict", + "id": "29de519015a138b9", + "line": 682 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/zlib/writer.go", + "function": "compress/zlib.(*Writer).writeHeader", + "id": "b6f5897097b4ad74", + "line": 132 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/zlib/writer.go", + "function": "compress/zlib.(*Writer).Write", + "id": "48847863dbc70923", + "line": 146 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.(*Tracer).loop", + "id": "e8a8185b76ac04e6", + "line": 1006 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.(*compressor).init", + "id": "04672a73568bb4d2", + "line": 593 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1, + "alloc_space.bytes": 924248, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.NewWriter", + "id": "9beaa370b4bf30de", + "line": 667 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.NewWriterDict", + "id": "29de519015a138b9", + "line": 682 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/zlib/writer.go", + "function": "compress/zlib.(*Writer).writeHeader", + "id": "b6f5897097b4ad74", + "line": 132 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/zlib/writer.go", + "function": "compress/zlib.(*Writer).Write", + "id": "48847863dbc70923", + "line": 146 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.(*Tracer).loop", + "id": "e8a8185b76ac04e6", + "line": 1006 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/compress/flate/deflate.go", + "function": "compress/flate.NewWriter", + "id": "9beaa370b4bf30de", + "line": 667 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2, + "alloc_space.bytes": 695248, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "081a144143cad6c9", + "line": 56 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "676ac7988a25ed34", + "line": 246 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "6afd1153987bccd2", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequireAuthorizationMiddleware.func1.1", + "id": "6babd90d96b742a1", + "line": 43 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "081a144143cad6c9", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 4096, + "alloc_space.bytes": 524352, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.parse", + "id": "1cf858385c43ae76", + "line": 516 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.Parse", + "id": "7bae6f1e03ae9d40", + "line": 475 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequestWithContext", + "id": "cbc81e5d2040808a", + "line": 851 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/request.go", + "function": "net/http.NewRequest", + "id": "303626d14220282f", + "line": 813 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/client.go", + "function": "net/http.(*Client).Get", + "id": "5bfee585405a97cd", + "line": 394 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer.func1", + "id": "1d17851098d53868", + "line": 548 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.waitForServer", + "id": "e407056a2b9bc8ab", + "line": 558 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func2", + "id": "5152fa8af62087fd", + "line": 127 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/url/url.go", + "function": "net/url.parse", + "id": "1cf858385c43ae76", + "line": 516 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16384, + "alloc_space.bytes": 524304, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/os/error.go", + "function": "os.NewSyscallError", + "id": "449ff9f3de0c34d4", + "line": 79 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/fd_unix.go", + "function": "net.(*netFD).connect", + "id": "559fc46d5c07960b", + "line": 176 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.(*netFD).dial", + "id": "e467f57dfaf8fee7", + "line": 149 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/sock_posix.go", + "function": "net.socket", + "id": "3744e5cf88e5dc4c", + "line": 70 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock_posix.go", + "function": "net.internetSocket", + "id": "9cf553e93cb3ad32", + "line": 141 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).doDialTCP", + "id": "aaeb3f29c135d052", + "line": 65 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/tcpsock_posix.go", + "function": "net.(*sysDialer).dialTCP", + "id": "a0efb5d4894c6cbf", + "line": 61 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSingle", + "id": "c873b23502e2a074", + "line": 578 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*sysDialer).dialSerial", + "id": "988ba8ff8d1f0012", + "line": 546 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 424 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/os/error.go", + "function": "os.NewSyscallError", + "id": "449ff9f3de0c34d4", + "line": 79 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 10923, + "alloc_space.bytes": 524312, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList.func1", + "id": "0e318b61c95a421a", + "line": 266 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.filterAddrList", + "id": "868b64d590a91a0b", + "line": 128 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "8657baf0da3b7d7c", + "line": 299 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "537c548a34569799", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "578e314c9c012074", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dial", + "id": "ff6df33ebd67a383", + "line": 1043 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1470 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList.func1", + "id": "0e318b61c95a421a", + "line": 266 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/utility/map_str_enhancer.go", + "function": "github.com/elastic/apm-server/utility.update", + "id": "f819d6a2eade573e", + "line": 85 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/utility/map_str_enhancer.go", + "function": "github.com/elastic/apm-server/utility.Set", + "id": "c490fe98628ced9c", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/model/context.go", + "function": "github.com/elastic/apm-server/model.(*Http).Fields", + "id": "ec8914aa95a5a8ac", + "line": 172 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/model/transaction/event.go", + "function": "github.com/elastic/apm-server/model/transaction.(*Event).Transform", + "id": "15493d152d7ea7c5", + "line": 199 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/publish/pub.go", + "function": "github.com/elastic/apm-server/publish.(*Publisher).processPendingReq", + "id": "f47d080967418fba", + "line": 166 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/publish/pub.go", + "function": "github.com/elastic/apm-server/publish.(*Publisher).run", + "id": "8f6ea0821e456ac4", + "line": 153 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/utility/map_str_enhancer.go", + "function": "github.com/elastic/apm-server/utility.update", + "id": "f819d6a2eade573e", + "line": 85 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2, + "alloc_space.bytes": 2425393, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer/buffer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer.New", + "id": "4ea0c57c6caff9c1", + "line": 57 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.(*Tracer).loop", + "id": "e8a8185b76ac04e6", + "line": 748 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer/buffer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer.New", + "id": "4ea0c57c6caff9c1", + "line": 57 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2, + "alloc_space.bytes": 2000678, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer/buffer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer.New", + "id": "4ea0c57c6caff9c1", + "line": 57 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.(*Tracer).loop", + "id": "e8a8185b76ac04e6", + "line": 728 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer/buffer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/internal/ringbuffer.New", + "id": "4ea0c57c6caff9c1", + "line": 57 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 5, + "alloc_space.bytes": 579337, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "f49cb3cd4d327d48", + "line": 121 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetrics", + "id": "7d0588b33bd3e88d", + "line": 107 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newTracer", + "id": "b2d7aed1704ebda8", + "line": 368 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracerOptions", + "id": "6d63ad29feb55c66", + "line": 352 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.initTracer", + "id": "621a205b2b06e60c", + "line": 310 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 162 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "f49cb3cd4d327d48", + "line": 121 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1431 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1431 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16, + "alloc_space.bytes": 540842, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*bitState).reset", + "id": "4dc598d71b1a16ae", + "line": 91 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*Regexp).backtrack", + "id": "02ad856b1b4df700", + "line": 319 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/exec.go", + "function": "regexp.(*Regexp).doExecute", + "id": "5fc8caa0874ee67e", + "line": 535 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/exec.go", + "function": "regexp.(*Regexp).doMatch", + "id": "fa85a09062d523e4", + "line": 514 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/regexp.go", + "function": "regexp.(*Regexp).MatchString", + "id": "a7d0d8f5d9e63710", + "line": 507 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "80b4eca73e873130", + "line": 328 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "1ac27a0dcbdf1324", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "8d5d716b325dfffa", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "b6933ebe2b3c24f1", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "b232e1d3f9b40ed0", + "line": 216 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).ValidateInterface", + "id": "cf1b159653e7fb79", + "line": 129 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/validation/validator.go", + "function": "github.com/elastic/apm-server/validation.Validate", + "id": "b3c06b23a2ba9e09", + "line": 41 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleRawModel", + "id": "6fdb530404d70080", + "line": 171 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).readBatch", + "id": "63023b3a45f7a099", + "line": 224 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "9a35d4a08d4f56ab", + "line": 279 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "93a7b77929a42fb6", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/kill_switch_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.KillSwitchMiddleware.func1.1", + "id": "7a68636048cb5a2b", + "line": 31 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/cors_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.CORSMiddleware.func2.1", + "id": "d06668e8e6e75570", + "line": 80 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/rate_limit_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetIPRateLimitMiddleware.func1.1", + "id": "0a4ebdfba65b4493", + "line": 35 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/rum_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetRumFlagMiddleware.func1.1", + "id": "8b7d10eb1c40b7f3", + "line": 29 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*bitState).reset", + "id": "4dc598d71b1a16ae", + "line": 91 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 128, + "alloc_space.bytes": 526338, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "500135ab36d928ce", + "line": 56 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1563 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "500135ab36d928ce", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 5461, + "alloc_space.bytes": 524336, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/context/context.go", + "function": "context.(*cancelCtx).Done", + "id": "ee4c52e172d6544d", + "line": 327 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/context/context.go", + "function": "context.propagateCancel", + "id": "64cc8bcbf28a5ef0", + "line": 242 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/context/context.go", + "function": "context.WithCancel", + "id": "8c595b2b609a4095", + "line": 231 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).readRequest", + "id": "1358d46aeae15793", + "line": 1003 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1817 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/context/context.go", + "function": "context.(*cancelCtx).Done", + "id": "ee4c52e172d6544d", + "line": 327 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 4, + "alloc_space.bytes": 1390497, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "848863d2a3d891a9", + "line": 56 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "9a35d4a08d4f56ab", + "line": 246 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "93a7b77929a42fb6", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/kill_switch_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.KillSwitchMiddleware.func1.1", + "id": "7a68636048cb5a2b", + "line": 31 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/cors_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.CORSMiddleware.func2.1", + "id": "d06668e8e6e75570", + "line": 80 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/rate_limit_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetIPRateLimitMiddleware.func1.1", + "id": "0a4ebdfba65b4493", + "line": 35 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/rum_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.SetRumFlagMiddleware.func1.1", + "id": "8b7d10eb1c40b7f3", + "line": 29 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "848863d2a3d891a9", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 128, + "alloc_space.bytes": 526338, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewWriterSize", + "id": "e940e7cd51a5a81a", + "line": 564 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConn", + "id": "0a7feedb8232ad47", + "line": 1564 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*Transport).dialConnFor", + "id": "8e7960e2a57f4ad2", + "line": 1300 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewWriterSize", + "id": "e940e7cd51a5a81a", + "line": 564 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 32768, + "alloc_space.bytes": 524296, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/parse.go", + "function": "net.splitAtBytes", + "id": "f5630322de6b1ab2", + "line": 96 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/parse.go", + "function": "net.getFields", + "id": "436d686a2904d2db", + "line": 115 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/port_unix.go", + "function": "net.readServices", + "id": "e783d0f0626c92c2", + "line": 30 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sync/once.go", + "function": "sync.(*Once).doSlow", + "id": "4774af14772fbecd", + "line": 66 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/sync/once.go", + "function": "sync.(*Once).Do", + "id": "79b8ec5a7e74d180", + "line": 57 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/port_unix.go", + "function": "net.goLookupPort", + "id": "43451f519396a70c", + "line": 55 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup_unix.go", + "function": "net.(*Resolver).lookupPort", + "id": "7cc6dc3352400da5", + "line": 112 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/lookup.go", + "function": "net.(*Resolver).LookupPort", + "id": "b46c5d0ec3a63bb4", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/ipsock.go", + "function": "net.(*Resolver).internetAddrList", + "id": "ee46e496e0f44efd", + "line": 252 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Resolver).resolveAddrList", + "id": "c84c1bded038bfa5", + "line": 220 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).DialContext", + "id": "d4ea54466b798144", + "line": 402 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.(*Dialer).Dial", + "id": "4eed7d4c13159879", + "line": 347 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/dial.go", + "function": "net.DialTimeout", + "id": "91bf517642cc6bf3", + "line": 333 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).isServerAvailable", + "id": "0263b38d7052121d", + "line": 225 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 203 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/parse.go", + "function": "net.splitAtBytes", + "id": "f5630322de6b1ab2", + "line": 96 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 8192, + "alloc_space.bytes": 524320, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*persistConn).readLoop", + "id": "0fe012a4fcfa6fc3", + "line": 1986 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/transport.go", + "function": "net/http.(*persistConn).readLoop", + "id": "0fe012a4fcfa6fc3", + "line": 1986 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 5461, + "alloc_space.bytes": 524336, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.uber.org/zap/logger.go", + "function": "github.com/elastic/apm-server/vendor/go.uber.org/zap.(*Logger).clone", + "id": "cb65a154864338da", + "line": 127 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.uber.org/zap/logger.go", + "function": "github.com/elastic/apm-server/vendor/go.uber.org/zap.(*Logger).Sugar", + "id": "4584208f72adc8e6", + "line": 127 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/logp/logger.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/logp.newLogger", + "id": "cd5fece93dacf232", + "line": 39 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/logp/logger.go", + "function": "github.com/elastic/apm-server/vendor/github.com/elastic/beats/libbeat/logp.NewLogger", + "id": "9366e47438083516", + "line": 48 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/onboarding.go", + "function": "github.com/elastic/apm-server/beater.notifyListening", + "id": "d587a79f8c302194", + "line": 32 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.uber.org/zap/logger.go", + "function": "github.com/elastic/apm-server/vendor/go.uber.org/zap.(*Logger).clone", + "id": "cb65a154864338da", + "line": 127 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 33, + "alloc_space.bytes": 1647743, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newTracer", + "id": "49f0effd1fb3cede", + "line": 366 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracerOptions", + "id": "d0cb2d405a7585e1", + "line": 352 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracer", + "id": "a3bbe17e9becff60", + "line": 339 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.initTracer", + "id": "621a205b2b06e60c", + "line": 254 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 162 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newTracer", + "id": "49f0effd1fb3cede", + "line": 366 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 5461, + "alloc_space.bytes": 524336, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "reflect.mapiterinit", + "id": "5e1a162ba0f15954", + "line": 1340 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/value.go", + "function": "reflect.Value.MapKeys", + "id": "69c48853a7045602", + "line": 1202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.deepValueEqual", + "id": "d71d3293404be974", + "line": 116 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.deepValueEqual", + "id": "ab2d54ab005cf92d", + "line": 93 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.deepValueEqual", + "id": "81469ed8068246e8", + "line": 119 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.deepValueEqual", + "id": "9013e19b02452530", + "line": 93 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.deepValueEqual", + "id": "c877b10c53618e7e", + "line": 119 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/reflect/deepequal.go", + "function": "reflect.DeepEqual", + "id": "537feaee766194cc", + "line": 196 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/golcs/golcs.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/golcs.(*lcs).Table", + "id": "27daa617ad34333b", + "line": 55 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/golcs/golcs.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/golcs.(*lcs).IndexPairs", + "id": "07a1212b7ec47d08", + "line": 76 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).compareArrays", + "id": "72f0b96722f72643", + "line": 131 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).compareValues", + "id": "728bb1e102e70b41", + "line": 255 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).compareMaps", + "id": "61c30952b9853c6b", + "line": 95 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).CompareObjects", + "id": "539385c9a5a23978", + "line": 72 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).Compare", + "id": "905d326976efbf0c", + "line": 63 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 137 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/map.go", + "function": "reflect.mapiterinit", + "id": "5e1a162ba0f15954", + "line": 1340 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "e0c5fbcb48bd54d2", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "3b54001beb055d10", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "918bacac6a51d8c9", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "ac7e791b4c0799c6", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "bacf958d7a44c126", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "ac3975d1b6885087", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "ed17d2ede4e306cd", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "59fca276b833b1ed", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).arrayInterface", + "id": "3a32eff0e183db1c", + "line": 1111 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).array", + "id": "1be083d85e9a10fd", + "line": 575 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "8648a8553929dffe", + "line": 419 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).object", + "id": "e2c3dd1ee37358f4", + "line": 823 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "b8bd2c0a60a348f3", + "line": 429 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).unmarshal", + "id": "7927df870da2a4c6", + "line": 179 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.Unmarshal", + "id": "185c511a5bf9c975", + "line": 106 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).Compare", + "id": "905d326976efbf0c", + "line": 59 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 137 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "e0c5fbcb48bd54d2", + "line": 1160 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "a0d46e1b099a9299", + "line": 691 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "f1db5f2b2f49b41c", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "eaa45be7eb1bbb31", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "445d844168fbc711", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "47e9106109018cca", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "768e6189d4f1212c", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "4a4365c4ca4297a3", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "772da3a73fe4e4c2", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "ea70318dd4f9be27", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "b9595c91eaa8c556", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "760269429a6c2b59", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "0c2c6d542ee81c67", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "8db7675a50241ce4", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "076ff22da61113f6", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "122accdc1dc1bac0", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "f641d747768d456c", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "2f6276e023bf804e", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "499afb6a20bd590c", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "9431fbe0296b0f5c", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "3af9ebe52fc7884e", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "3850712a8b834964", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "bc25b0f282d14328", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "e6ecc49e718a7bec", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.Marshal", + "id": "742e286631e07a98", + "line": 161 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 125 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "a0d46e1b099a9299", + "line": 691 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "32ab12f894ab1d72", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "7ceb95c842597014", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "39b5ada62ca2e524", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "ea4beea7d0a66f29", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).arrayInterface", + "id": "0ab2df47fd3eb570", + "line": 1111 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).array", + "id": "86f72cc77940e687", + "line": 575 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "f5091bdf6a1ae334", + "line": 419 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).object", + "id": "6b76110de55d01f0", + "line": 823 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "7e29677ab4156d18", + "line": 429 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).unmarshal", + "id": "20760b6a880f3561", + "line": 179 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.Unmarshal", + "id": "2f66753fb2097231", + "line": 106 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 46 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "32ab12f894ab1d72", + "line": 1160 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 13, + "alloc_space.bytes": 545034, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.makeSlice", + "id": "63d7c650436133eb", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.(*Buffer).grow", + "id": "d8b3ac493e452568", + "line": 142 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.(*Buffer).WriteByte", + "id": "a3700bd5a000f943", + "line": 267 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/indent.go", + "function": "encoding/json.Indent", + "id": "1d470895d0a06ba8", + "line": 103 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.MarshalIndent", + "id": "bf3af228fbdcb0e9", + "line": 182 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 75 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.makeSlice", + "id": "63d7c650436133eb", + "line": 229 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1820, + "alloc_space.bytes": 524432, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "bacf958d7a44c126", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "ac3975d1b6885087", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "ed17d2ede4e306cd", + "line": 1160 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).valueInterface", + "id": "59fca276b833b1ed", + "line": 1093 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).arrayInterface", + "id": "3a32eff0e183db1c", + "line": 1111 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).array", + "id": "1be083d85e9a10fd", + "line": 575 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "8648a8553929dffe", + "line": 419 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).object", + "id": "e2c3dd1ee37358f4", + "line": 823 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).value", + "id": "b8bd2c0a60a348f3", + "line": 429 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).unmarshal", + "id": "7927df870da2a4c6", + "line": 179 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.Unmarshal", + "id": "185c511a5bf9c975", + "line": 106 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff/gojsondiff.go", + "function": "github.com/elastic/apm-server/vendor/github.com/yudai/gojsondiff.(*Differ).Compare", + "id": "905d326976efbf0c", + "line": 59 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.Compare", + "id": "6ed6f5a16feb02a7", + "line": 137 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.ApproveJSON", + "id": "e21712756246c926", + "line": 77 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/approvals/approvals.go", + "function": "github.com/elastic/apm-server/tests/approvals.AssertApproveResult", + "id": "27145517bc61cde6", + "line": 49 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 131 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/decode.go", + "function": "encoding/json.(*decodeState).objectInterface", + "id": "bacf958d7a44c126", + "line": 1160 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 2521, + "alloc_space.bytes": 524392, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "ff802428e51f4687", + "line": 691 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "bc67c0d04bae0d09", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "f706b2dd4cd000ae", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "54e1095112f7fa99", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "9dfd0320b0731276", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "fadf4a88c59cf755", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "cc76b03127b93ee2", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "652ffb54390f2d75", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "319421dc3ee866ee", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "74b936b3f4dd7b75", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "5fd76ecd9dc9db03", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.Marshal", + "id": "5dd13b5f9e20eb3b", + "line": 161 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.testPublish", + "id": "1fbc7413d1975be4", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 130 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "ff802428e51f4687", + "line": 691 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 819, + "alloc_space.bytes": 524608, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "54e1095112f7fa99", + "line": 691 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.arrayEncoder.encode", + "id": "9dfd0320b0731276", + "line": 791 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.sliceEncoder.encode", + "id": "fadf4a88c59cf755", + "line": 765 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "cc76b03127b93ee2", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.interfaceEncoder", + "id": "652ffb54390f2d75", + "line": 619 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "319421dc3ee866ee", + "line": 706 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).reflectValue", + "id": "74b936b3f4dd7b75", + "line": 337 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.(*encodeState).marshal", + "id": "5fd76ecd9dc9db03", + "line": 309 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.Marshal", + "id": "5dd13b5f9e20eb3b", + "line": 161 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.testPublish", + "id": "1fbc7413d1975be4", + "line": 96 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/integration_test.go", + "function": "github.com/elastic/apm-server/beater.TestPublishIntegration.func1", + "id": "723b6c5da8b2a10a", + "line": 130 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/testing/testing.go", + "function": "testing.tRunner", + "id": "6230e7f92cdd4c4d", + "line": 909 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/encode.go", + "function": "encoding/json.mapEncoder.encode", + "id": "54e1095112f7fa99", + "line": 691 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16, + "alloc_space.bytes": 540842, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*bitState).reset", + "id": "1920085ab0eedde2", + "line": 91 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*Regexp).backtrack", + "id": "718d9736eb005652", + "line": 319 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/exec.go", + "function": "regexp.(*Regexp).doExecute", + "id": "8c2dda6968d3adc9", + "line": 535 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/exec.go", + "function": "regexp.(*Regexp).doMatch", + "id": "83f3faa66a95f1c0", + "line": 514 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/regexp.go", + "function": "regexp.(*Regexp).MatchString", + "id": "58da48d34c4a5d9a", + "line": 507 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "c0323b6cde3df7cd", + "line": 328 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "6d68672ba1410fa9", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "76881ba9416e946d", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "51118f1cf0684297", + "line": 304 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).validate", + "id": "a343804330e1b152", + "line": 216 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/schema.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Schema).ValidateInterface", + "id": "dce71beab120ee2f", + "line": 129 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/validation/validator.go", + "function": "github.com/elastic/apm-server/validation.Validate", + "id": "d2fd2b5fba3466e3", + "line": 41 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleRawModel", + "id": "b2bcbc6d7419ec28", + "line": 171 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).readBatch", + "id": "7d9bd9e743107f98", + "line": 224 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "676ac7988a25ed34", + "line": 279 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "6afd1153987bccd2", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequireAuthorizationMiddleware.func1.1", + "id": "6babd90d96b742a1", + "line": 43 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/backtrack.go", + "function": "regexp.(*bitState).reset", + "id": "1920085ab0eedde2", + "line": 91 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 4, + "alloc_space.bytes": 1390497, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "081a144143cad6c9", + "line": 56 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/processor/stream/processor.go", + "function": "github.com/elastic/apm-server/processor/stream.(*Processor).HandleStream", + "id": "676ac7988a25ed34", + "line": 246 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/intake/handler.go", + "function": "github.com/elastic/apm-server/beater/api/intake.Handler.func1", + "id": "6afd1153987bccd2", + "line": 74 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/authorization_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequireAuthorizationMiddleware.func1.1", + "id": "6babd90d96b742a1", + "line": 43 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/request_time_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RequestTimeMiddleware.func1.1", + "id": "b8d84efe37b458d7", + "line": 32 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/monitoring_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.MonitoringMiddleware.func1.2", + "id": "9665248f10c46b9f", + "line": 40 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/recover_panic_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.RecoverPanicMiddleware.func1.1", + "id": "6f4ab6e9e8eb0cfe", + "line": 60 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/middleware/log_middleware.go", + "function": "github.com/elastic/apm-server/beater/middleware.LogMiddleware.func1.1", + "id": "b432c861f507b019", + "line": 54 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/context_pool.go", + "function": "github.com/elastic/apm-server/beater/api.(*contextPool).handler.func1", + "id": "2236ddf4ff605968", + "line": 45 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.HandlerFunc.ServeHTTP", + "id": "5548732d0d0cd8f5", + "line": 2007 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*ServeMux).ServeHTTP", + "id": "cf5fff6426e94178", + "line": 2387 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp/handler.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm/module/apmhttp.(*handler).ServeHTTP", + "id": "7bb38132b5b43a5d", + "line": 71 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.serverHandler.ServeHTTP", + "id": "ce33b13d93314f8a", + "line": 2802 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/net/http/server.go", + "function": "net/http.(*conn).serve", + "id": "e600b4df2273d0ff", + "line": 1890 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bufio/bufio.go", + "function": "bufio.NewReaderSize", + "id": "081a144143cad6c9", + "line": 56 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1638, + "alloc_space.bytes": 524448, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.(*compiler).inst", + "id": "47e34a2ca2ee562d", + "line": 173 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.(*compiler).rune", + "id": "f18e0349b0f33065", + "line": 267 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.(*compiler).compile", + "id": "e4edc1d4bec56b20", + "line": 110 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.(*compiler).compile", + "id": "585a2da142263613", + "line": 156 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.Compile", + "id": "4a9115b90809ece7", + "line": 83 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/regexp.go", + "function": "regexp.compile", + "id": "66a7c9cf98ef64f0", + "line": 178 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/regexp.go", + "function": "regexp.Compile", + "id": "d456ed668b8bdad2", + "line": 133 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/regexp.go", + "function": "regexp.MustCompile", + "id": "b37c4accb9996c43", + "line": 309 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.rumTransformConfig", + "id": "440671aebb9e79a4", + "line": 242 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.sourcemapHandler", + "id": "f00963fa78df02fc", + "line": 151 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/api/mux.go", + "function": "github.com/elastic/apm-server/beater/api.NewMux", + "id": "2c72d7e54fb5bc5f", + "line": 103 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server.go", + "function": "github.com/elastic/apm-server/beater.newServer", + "id": "e9836a225acd1949", + "line": 38 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 191 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/regexp/syntax/compile.go", + "function": "regexp/syntax.(*compiler).inst", + "id": "47e34a2ca2ee562d", + "line": 173 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 21, + "alloc_space.bytes": 2317349, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "b92162b928746560", + "line": 121 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetrics", + "id": "9da86185cdd70a1e", + "line": 107 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newTracer", + "id": "49f0effd1fb3cede", + "line": 368 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracerOptions", + "id": "d0cb2d405a7585e1", + "line": 352 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracer", + "id": "a3bbe17e9becff60", + "line": 339 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.initTracer", + "id": "621a205b2b06e60c", + "line": 254 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 162 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "b92162b928746560", + "line": 121 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 16, + "alloc_space.bytes": 1738012, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "b92162b928746560", + "line": 121 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetrics", + "id": "9da86185cdd70a1e", + "line": 106 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newTracer", + "id": "49f0effd1fb3cede", + "line": 368 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracerOptions", + "id": "d0cb2d405a7585e1", + "line": 352 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/tracer.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.NewTracer", + "id": "a3bbe17e9becff60", + "line": 339 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.initTracer", + "id": "621a205b2b06e60c", + "line": 254 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater.go", + "function": "github.com/elastic/apm-server/beater.(*beater).Run", + "id": "58ecee0fdc3ea31e", + "line": 162 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/beater_test.go", + "function": "github.com/elastic/apm-server/beater.setupBeater.func1", + "id": "b91f27fa6a1c6d75", + "line": 114 + } + ], + "top": { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/go.elastic.co/apm/breakdown.go", + "function": "github.com/elastic/apm-server/vendor/go.elastic.co/apm.newBreakdownMetricsMap", + "id": "b92162b928746560", + "line": 121 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 64, + "alloc_space.bytes": 528394, + "inuse_objects.count": 64, + "inuse_space.bytes": 528394, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.makeSlice", + "id": "85ab139bfd1b0fa3", + "line": 229 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.(*Buffer).grow", + "id": "44a06cab98238b0a", + "line": 142 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.(*Buffer).ReadFrom", + "id": "95b7bead589cf3f3", + "line": 202 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/io/ioutil/ioutil.go", + "function": "io/ioutil.readAll", + "id": "c467310bd876be46", + "line": 36 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/io/ioutil/ioutil.go", + "function": "io/ioutil.ReadAll", + "id": "387c9e562773d850", + "line": 45 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/loader/loader.go", + "function": "github.com/elastic/apm-server/tests/loader.readFile", + "id": "9c9c6957c5132a0b", + "line": 64 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/tests/loader/loader.go", + "function": "github.com/elastic/apm-server/tests/loader.LoadDataAsBytes", + "id": "31a7c40366fb39fe", + "line": 35 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.glob..func1", + "id": "427ba65f5f023a7a", + "line": 528 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/beater/server_test.go", + "function": "github.com/elastic/apm-server/beater.init", + "id": "d755585e425239a1", + "line": 533 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "74505c16affec119", + "line": 5222 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "eea1e04af8a122f9", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.main", + "id": "948073768bcd06b1", + "line": 190 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/bytes/buffer.go", + "function": "bytes.makeSlice", + "id": "85ab139bfd1b0fa3", + "line": 229 + } + } + }, + { + "@metadata": { + "beat": "apm-test", + "pipeline": "apm", + "type": "_doc", + "version": "8.0.0" + }, + "@timestamp": "2019-11-22T10:30:54.440Z", + "ecs": { + "version": "1.2.0" + }, + "observer": { + "ephemeral_id": "00000000-0000-0000-0000-000000000000", + "hostname": "", + "id": "fbba762a-14dd-412c-b7e9-b79f903eb492", + "type": "test-apm-server", + "version": "8.0.0", + "version_major": 8 + }, + "processor": { + "event": "profile", + "name": "profile" + }, + "profile": { + "alloc_objects.count": 1024, + "alloc_space.bytes": 524544, + "inuse_objects.count": 0, + "inuse_space.bytes": 0, + "stack": [ + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Decoder).refill", + "id": "b1aa463614ca42dd", + "line": 155 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Decoder).readValue", + "id": "0cea82f237e74977", + "line": 136 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Decoder).Decode", + "id": "c74c1222108c7a69", + "line": 63 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/resource.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.DecodeJSON", + "id": "45721988531354b2", + "line": 31 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/resource.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.newResource", + "id": "7cc2c9a8228c1e1e", + "line": 44 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/compiler.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.(*Compiler).AddResource", + "id": "31f6418dd218b09f", + "line": 92 + }, + { + "filename": "/home/andrew/go/src/github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema/draft4.go", + "function": "github.com/elastic/apm-server/vendor/github.com/santhosh-tekuri/jsonschema.init.1", + "id": "c31384e6052f4bad", + "line": 15 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "0ce0cf98900546d5", + "line": 5222 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "9772ca0757bd3306", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "ae7bdb3f4479e24e", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "f943dc4842622cd6", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "74505c16affec119", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.doInit", + "id": "eea1e04af8a122f9", + "line": 5217 + }, + { + "filename": "/home/andrew/tools/go/1.13.0/src/runtime/proc.go", + "function": "runtime.main", + "id": "948073768bcd06b1", + "line": 190 + } + ], + "top": { + "filename": "/home/andrew/tools/go/1.13.0/src/encoding/json/stream.go", + "function": "encoding/json.(*Decoder).refill", + "id": "b1aa463614ca42dd", + "line": 155 + } + } + } + ] +} diff --git a/changelogs/head.asciidoc b/changelogs/head.asciidoc index 9f40796e287..27e7775cf88 100644 --- a/changelogs/head.asciidoc +++ b/changelogs/head.asciidoc @@ -14,3 +14,4 @@ https://github.com/elastic/apm-server/compare/7.5\...master[View commits] - Use go-elasticsearch client for fetching sourcemaps from Elasticsearch {pull}2897[2897]. - Try to extract IP address from headers before using socket remote_address for `client.ip` and `source.ip` {pull}2935[2935]. - Only use extracted hostname when valid IP for enriching events {pull}2935[2935]. +- Added experimental support for continuous profiling of the server {pull}2839[2839] diff --git a/decoder/limited_reader.go b/decoder/limited_reader.go new file mode 100644 index 00000000000..6dc6e2fa5d0 --- /dev/null +++ b/decoder/limited_reader.go @@ -0,0 +1,60 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package decoder + +import ( + "io" + + "github.com/pkg/errors" +) + +// LimitedReader is like io.LimitedReader, but returns a +// requestError upon detecting a request that is too large. +// +// Based on net/http.maxBytesReader. +type LimitedReader struct { + R io.Reader + N int64 + err error +} + +// Read implements the standard Read interface, returning an +// error if more than l.N bytes are read. +// +// After each read, l.N is decremented by the number of bytes +// read; if an error is returned due to the l.N limit being +// exceeded, on return l.N will be set to a negative value. +func (l *LimitedReader) Read(p []byte) (n int, err error) { + if l.err != nil || len(p) == 0 { + return 0, l.err + } + if int64(len(p)) > l.N+1 { + p = p[:l.N+1] + } + n, err = l.R.Read(p) + + if int64(n) <= l.N { + l.N -= int64(n) + l.err = err + return n, err + } + + n, l.N = int(l.N), l.N-int64(n) + l.err = errors.New("too large") + return n, l.err +} diff --git a/decoder/limited_reader_test.go b/decoder/limited_reader_test.go new file mode 100644 index 00000000000..a9ec3c2e996 --- /dev/null +++ b/decoder/limited_reader_test.go @@ -0,0 +1,53 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package decoder + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestLimitedReaderRead(t *testing.T) { + test := func(t *testing.T, buflen, expectedLen int) { + r := &LimitedReader{R: strings.NewReader("abc"), N: 3} + out := make([]byte, buflen) + n, err := r.Read(out) + require.NoError(t, err) + assert.Equal(t, expectedLen, n) + assert.Equal(t, "abc"[:n], string(out[:n])) + assert.Equal(t, int64(3-n), r.N) + } + test(t, 1, 1) + test(t, 2, 2) + test(t, 3, 3) + test(t, 4, 3) +} + +func TestLimitedReaderLimited(t *testing.T) { + r := &LimitedReader{R: strings.NewReader("abcd"), N: 3} + out := make([]byte, 4) + n, err := r.Read(out) + require.Error(t, err) + require.EqualError(t, err, "too large") + assert.Equal(t, 3, n) + assert.Equal(t, "abc", string(out[:n])) + assert.Equal(t, int64(-1), r.N) +} diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index ab305bf495d..31e151b5e26 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -14,6 +14,7 @@ grouped in the following categories: * <> * <> +* <> * <> * <> * <> @@ -1107,6 +1108,171 @@ type: keyword -- +[[exported-fields-apm-profile]] +== APM Profile fields + +Profiling-specific data for APM. + + + + +*`profile.cpu.ns`*:: ++ +-- +Amount of CPU time profiled, in nanoseconds. + + +type: long + +-- + + +*`profile.samples.count`*:: ++ +-- +Number of profile samples for the profiling period. + + +type: long + +-- + + +*`profile.alloc_objects.count`*:: ++ +-- +Number of objects allocated since the process started. + + +type: long + +-- + + +*`profile.alloc_space.bytes`*:: ++ +-- +Amount of memory allocated, in bytes, since the process started. + + +type: long + +-- + + +*`profile.inuse_objects.count`*:: ++ +-- +Number of objects allocated and currently in use. + + +type: long + +-- + + +*`profile.inuse_space.bytes`*:: ++ +-- +Amount of memory allocated, in bytes, and currently in use. + + +type: long + +-- + +*`profile.duration`*:: ++ +-- +Duration of the profile, in microseconds. + + +type: long + +-- + + +*`profile.top.id`*:: ++ +-- +Unique ID for the top stack frame in the context of its callers. + + +type: keyword + +-- + +*`profile.top.function`*:: ++ +-- +Function name for the top stack frame. + + +type: keyword + +-- + +*`profile.top.filename`*:: ++ +-- +Source code filename for the top stack frame. + + +type: keyword + +-- + +*`profile.top.line`*:: ++ +-- +Source code line number for the top stack frame. + + +type: long + +-- + + +*`profile.stack.id`*:: ++ +-- +Unique ID for a stack frame in the context of its callers. + + +type: keyword + +-- + +*`profile.stack.function`*:: ++ +-- +Function name for a stack frame. + + +type: keyword + +-- + +*`profile.stack.filename`*:: ++ +-- +Source code filename for a stack frame. + + +type: keyword + +-- + +*`profile.stack.line`*:: ++ +-- +Source code line number for a stack frame. + + +type: long + +-- + [[exported-fields-apm-sourcemap]] == APM Sourcemap fields diff --git a/idxmgmt/ilm/policy.go b/idxmgmt/ilm/policy.go index 1873a433ad7..a753724569f 100644 --- a/idxmgmt/ilm/policy.go +++ b/idxmgmt/ilm/policy.go @@ -37,11 +37,12 @@ const ( spanEvent = "span" transactionEvent = "transaction" metricEvent = "metric" + profileEvent = "profile" ) func policyMapping() map[string]string { m := map[string]string{} - for _, event := range []string{errorEvent, spanEvent, transactionEvent, metricEvent} { + for _, event := range []string{errorEvent, spanEvent, transactionEvent, metricEvent, profileEvent} { m[event] = rollover30Days } return m diff --git a/idxmgmt/indices.go b/idxmgmt/indices.go index 8b6603cb315..92e27b65ef5 100644 --- a/idxmgmt/indices.go +++ b/idxmgmt/indices.go @@ -54,7 +54,7 @@ func eventIdxNames(dateSuffix bool) map[string]string { suffix = apmSuffix } idcs := map[string]string{} - for _, k := range []string{"span", "transaction", "error", "metric"} { + for _, k := range []string{"span", "transaction", "error", "metric", "profile"} { idcs[k] = idxStr(k, suffix) } return idcs diff --git a/idxmgmt/indices_test.go b/idxmgmt/indices_test.go index 8d1426f5704..b1c40504903 100644 --- a/idxmgmt/indices_test.go +++ b/idxmgmt/indices_test.go @@ -29,6 +29,7 @@ func TestEventIdxNames(t *testing.T) { expected := map[string]string{ "error": "apm-%{[observer.version]}-error-%{+yyyy.MM.dd}", "metric": "apm-%{[observer.version]}-metric-%{+yyyy.MM.dd}", + "profile": "apm-%{[observer.version]}-profile-%{+yyyy.MM.dd}", "span": "apm-%{[observer.version]}-span-%{+yyyy.MM.dd}", "transaction": "apm-%{[observer.version]}-transaction-%{+yyyy.MM.dd}", } @@ -40,6 +41,7 @@ func TestEventIdxNames(t *testing.T) { expected := map[string]string{ "error": "apm-%{[observer.version]}-error", "metric": "apm-%{[observer.version]}-metric", + "profile": "apm-%{[observer.version]}-profile", "span": "apm-%{[observer.version]}-span", "transaction": "apm-%{[observer.version]}-transaction", } diff --git a/idxmgmt/manager_test.go b/idxmgmt/manager_test.go index 9d03fcf37e2..9165a28e8fd 100644 --- a/idxmgmt/manager_test.go +++ b/idxmgmt/manager_test.go @@ -229,12 +229,12 @@ func TestManager_SetupILM(t *testing.T) { var testCasesSetupEnabled = map[string]testCase{ "Default": { loadMode: libidxmgmt.LoadModeEnabled, - templatesILMEnabled: 3, policiesLoaded: 1, aliasesLoaded: 3, + templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 4, }, "ILM disabled": { cfg: common.MapStr{"apm-server.ilm.enabled": false}, loadMode: libidxmgmt.LoadModeEnabled, - templatesILMDisabled: 3, + templatesILMDisabled: 4, }, "ILM setup enabled no overwrite": { cfg: common.MapStr{ @@ -244,7 +244,7 @@ func TestManager_SetupILM(t *testing.T) { "apm-server.ilm.setup.policies": []common.MapStr{policyRollover1Day}, }, loadMode: libidxmgmt.LoadModeEnabled, - templatesILMEnabled: 3, policiesLoaded: 1, aliasesLoaded: 3, + templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 4, }, "ILM overwrite": { cfg: common.MapStr{ @@ -253,20 +253,20 @@ func TestManager_SetupILM(t *testing.T) { "apm-server.ilm.setup.policies": []common.MapStr{policyRollover1Day}, }, loadMode: libidxmgmt.LoadModeEnabled, - templatesILMEnabled: 4, policiesLoaded: 2, aliasesLoaded: 3, + templatesILMEnabled: 5, policiesLoaded: 2, aliasesLoaded: 4, }, "LoadModeOverwrite": { loadMode: libidxmgmt.LoadModeOverwrite, - templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 3, + templatesILMEnabled: 5, policiesLoaded: 1, aliasesLoaded: 4, }, "LoadModeForce ILM enabled": { loadMode: libidxmgmt.LoadModeForce, - templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 3, + templatesILMEnabled: 5, policiesLoaded: 1, aliasesLoaded: 4, }, "LoadModeForce ILM disabled": { cfg: common.MapStr{"apm-server.ilm.enabled": false}, loadMode: libidxmgmt.LoadModeForce, - templatesILMDisabled: 4, + templatesILMDisabled: 5, }, "ILM overwrite LoadModeDisabled": { cfg: common.MapStr{"apm-server.ilm.setup.overwrite": true}, @@ -294,12 +294,12 @@ func TestManager_SetupILM(t *testing.T) { "SetupDisabled LoadModeForce ILM enabled": { cfg: common.MapStr{"apm-server.ilm.setup.enabled": false}, loadMode: libidxmgmt.LoadModeForce, - templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 3, + templatesILMEnabled: 5, policiesLoaded: 1, aliasesLoaded: 4, }, "SetupDisabled LoadModeForce ILM disabled": { cfg: common.MapStr{"apm-server.ilm.setup.enabled": false, "apm-server.ilm.enabled": false}, loadMode: libidxmgmt.LoadModeForce, - templatesILMDisabled: 4, + templatesILMDisabled: 5, }, "LoadModeDisabled": { loadMode: libidxmgmt.LoadModeDisabled, @@ -310,19 +310,19 @@ func TestManager_SetupILM(t *testing.T) { "Default ES Unsupported ILM": { version: "6.2.0", loadMode: libidxmgmt.LoadModeEnabled, - templatesILMDisabled: 3, + templatesILMDisabled: 4, }, "SetupOverwrite Default ES Unsupported ILM": { cfg: common.MapStr{"apm-server.ilm.setup.overwrite": "true"}, version: "6.2.0", loadMode: libidxmgmt.LoadModeEnabled, - templatesILMDisabled: 4, + templatesILMDisabled: 5, }, "ILM True ES Unsupported ILM": { cfg: common.MapStr{"apm-server.ilm.enabled": "true"}, loadMode: libidxmgmt.LoadModeEnabled, version: "6.2.0", - templatesILMDisabled: 3, + templatesILMDisabled: 4, }, "Default ES Unsupported ILM Setup disabled": { cfg: common.MapStr{"apm-server.ilm.setup.enabled": false}, @@ -344,7 +344,7 @@ func TestManager_SetupILM(t *testing.T) { "setup.template.pattern": "custom", "output.elasticsearch.index": "custom"}, loadMode: libidxmgmt.LoadModeEnabled, - templatesILMDisabled: 3, + templatesILMDisabled: 4, }, "ESIndicesConfigured": { cfg: common.MapStr{ @@ -357,7 +357,7 @@ func TestManager_SetupILM(t *testing.T) { "when": map[string]interface{}{ "contains": map[string]interface{}{"processor.event": "metric"}}}}}, loadMode: libidxmgmt.LoadModeEnabled, - templatesILMDisabled: 3, + templatesILMDisabled: 4, }, "ESIndexConfigured Setup disabled": { cfg: common.MapStr{ @@ -393,9 +393,9 @@ func TestManager_SetupILM(t *testing.T) { }}, loadMode: libidxmgmt.LoadModeEnabled, // templates for all event types are loaded - // span and metrics share the same default policy, one policy is loaded - // 1 alias already exists, 3 new ones are loaded - templatesILMEnabled: 3, policiesLoaded: 1, aliasesLoaded: 3, + // profile, span, and metrics share the same default policy, one policy is loaded + // 1 alias already exists, 4 new ones are loaded + templatesILMEnabled: 4, policiesLoaded: 1, aliasesLoaded: 4, }, } diff --git a/include/fields.go b/include/fields.go index 30b605e5958..f9c577b8e6f 100644 --- a/include/fields.go +++ b/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/model/profile/_meta/fields.yml b/model/profile/_meta/fields.yml new file mode 100644 index 00000000000..444a631f912 --- /dev/null +++ b/model/profile/_meta/fields.yml @@ -0,0 +1,112 @@ +- key: apm-profile + title: APM Profile + description: Profiling-specific data for APM. + fields: + - name: profile + type: group + dynamic: false + fields: + - name: cpu + type: group + fields: + - name: ns + type: long + count: 1 + description: > + Amount of CPU time profiled, in nanoseconds. + + - name: samples + type: group + fields: + - name: count + type: long + count: 1 + description: > + Number of profile samples for the profiling period. + + - name: alloc_objects + type: group + fields: + - name: count + type: long + count: 1 + description: > + Number of objects allocated since the process started. + + - name: alloc_space + type: group + fields: + - name: bytes + type: long + count: 1 + description: > + Amount of memory allocated, in bytes, since the process started. + + - name: inuse_objects + type: group + fields: + - name: count + type: long + count: 1 + description: > + Number of objects allocated and currently in use. + + - name: inuse_space + type: group + fields: + - name: bytes + type: long + count: 1 + description: > + Amount of memory allocated, in bytes, and currently in use. + + - name: duration + type: long + count: 1 + description: > + Duration of the profile, in microseconds. + + - name: top + type: group + dynamic: false + fields: + - name: id + type: keyword + description: > + Unique ID for the top stack frame in the context of its callers. + - name: function + type: keyword + count: 1 + description: > + Function name for the top stack frame. + - name: filename + type: keyword + count: 1 + description: > + Source code filename for the top stack frame. + - name: line + type: long + count: 1 + description: > + Source code line number for the top stack frame. + + - name: stack + type: group + dynamic: false + fields: + - name: id + type: keyword + description: > + Unique ID for a stack frame in the context of its callers. + - name: function + type: keyword + description: > + Function name for a stack frame. + - name: filename + type: keyword + description: > + Source code filename for a stack frame. + - name: line + type: long + description: > + Source code line number for a stack frame. diff --git a/model/profile/profile.go b/model/profile/profile.go new file mode 100644 index 00000000000..81d9cea5fa7 --- /dev/null +++ b/model/profile/profile.go @@ -0,0 +1,129 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package profile + +import ( + "fmt" + "time" + + "github.com/OneOfOne/xxhash" + "github.com/google/pprof/profile" + + "github.com/elastic/apm-server/transform" + "github.com/elastic/apm-server/utility" + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +const ( + processorName = "profile" + profileDocType = "profile" +) + +var processorEntry = common.MapStr{ + "name": processorName, + "event": profileDocType, +} + +// PprofProfile represents a resource profile. +type PprofProfile struct { + Profile *profile.Profile +} + +// Transform transforms a Profile into a sequence of beat.Events: one per profile sample. +func (pp PprofProfile) Transform(tctx *transform.Context) []beat.Event { + // Precompute value field names for use in each event. + // TODO(axw) limit to well-known value names? + profileTimestamp := time.Unix(0, pp.Profile.TimeNanos) + valueFieldNames := make([]string, len(pp.Profile.SampleType)) + for i, sampleType := range pp.Profile.SampleType { + sampleUnit := normalizeUnit(sampleType.Unit) + valueFieldNames[i] = sampleType.Type + "." + sampleUnit + } + + samples := make([]beat.Event, len(pp.Profile.Sample)) + for i, sample := range pp.Profile.Sample { + profileFields := common.MapStr{} + if pp.Profile.DurationNanos > 0 { + profileFields["duration"] = pp.Profile.DurationNanos + } + if len(sample.Location) > 0 { + hash := xxhash.New64() + stack := make([]common.MapStr, len(sample.Location)) + for i := len(sample.Location) - 1; i >= 0; i-- { + loc := sample.Location[i] + line := loc.Line[0] // aggregated at function level + + // NOTE(axw) Currently we hash the function names so that + // we can aggregate stacks across multiple builds, or where + // binaries are not reproducible. + // + // If we decide to identify stack traces and frames using + // function addresses, then need to subtract the mapping's + // start address to eliminate the effects of ASLR, i.e. + // + // var buf [8]byte + // binary.BigEndian.PutUint64(buf[:], loc.Address-loc.Mapping.Start) + // hash.Write(buf[:]) + + hash.WriteString(line.Function.Name) + fields := common.MapStr{ + "id": fmt.Sprintf("%x", hash.Sum(nil)), + "function": line.Function.Name, + } + if line.Function.Filename != "" { + utility.Set(fields, "filename", line.Function.Filename) + if line.Line > 0 { + utility.Set(fields, "line", line.Line) + } + } + stack[i] = fields + } + utility.Set(profileFields, "stack", stack) + utility.Set(profileFields, "top", stack[0]) + } + for i, v := range sample.Value { + utility.Set(profileFields, valueFieldNames[i], v) + } + event := beat.Event{ + Timestamp: profileTimestamp, + Fields: common.MapStr{ + "processor": processorEntry, + profileDocType: profileFields, + }, + } + tctx.Metadata.Set(event.Fields) + if len(sample.Label) > 0 { + labels := make(common.MapStr) + for k, v := range sample.Label { + utility.Set(labels, k, v) + } + utility.DeepUpdate(event.Fields, "labels", labels) + } + samples[i] = event + } + return samples +} + +func normalizeUnit(unit string) string { + switch unit { + case "nanoseconds": + unit = "ns" + } + return unit +} diff --git a/model/profile/profile_test.go b/model/profile/profile_test.go new file mode 100644 index 00000000000..20aa77d524c --- /dev/null +++ b/model/profile/profile_test.go @@ -0,0 +1,133 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package profile_test + +import ( + "testing" + "time" + + pprof_profile "github.com/google/pprof/profile" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/elastic/apm-server/model/metadata" + "github.com/elastic/apm-server/model/profile" + "github.com/elastic/apm-server/sourcemap" + "github.com/elastic/apm-server/transform" + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +func TestPprofProfileTransform(t *testing.T) { + timestamp := time.Unix(123, 456) + pp := profile.PprofProfile{ + Profile: &pprof_profile.Profile{ + TimeNanos: timestamp.UnixNano(), + DurationNanos: int64(10 * time.Second), + SampleType: []*pprof_profile.ValueType{ + {Type: "cpu", Unit: "nanoseconds"}, + {Type: "inuse_space", Unit: "bytes"}, + }, + Sample: []*pprof_profile.Sample{{ + Value: []int64{123, 456}, + Label: map[string][]string{ + "key1": []string{"abc", "def"}, + "key2": []string{"ghi"}, + }, + Location: []*pprof_profile.Location{{ + Line: []pprof_profile.Line{{ + Function: &pprof_profile.Function{Name: "foo", Filename: "foo.go"}, + Line: 1, + }}, + }, { + Line: []pprof_profile.Line{{ + Function: &pprof_profile.Function{Name: "bar", Filename: "bar.go"}, + }}, + }}, + }, { + Value: []int64{123, 456}, + Label: map[string][]string{ + "key1": []string{"abc", "def"}, + "key2": []string{"ghi"}, + }, + Location: []*pprof_profile.Location{{ + Line: []pprof_profile.Line{{ + Function: &pprof_profile.Function{Name: "foo", Filename: "foo.go"}, + Line: 1, + }}, + }, { + Line: []pprof_profile.Line{{ + Function: &pprof_profile.Function{Name: "bar", Filename: "bar.go"}, + }}, + }}, + }}, + }, + } + + serviceName, env := "myService", "staging" + service := metadata.Service{ + Name: &serviceName, + Environment: &env, + } + metadata := metadata.Metadata{Service: &service} + + tctx := &transform.Context{ + Config: transform.Config{SourcemapStore: &sourcemap.Store{}}, + Metadata: metadata, + RequestTime: time.Time{}, // not used + } + output := pp.Transform(tctx) + require.Len(t, output, 2) + assert.Equal(t, output[0], output[1]) + + assert.Equal(t, beat.Event{ + Timestamp: timestamp, + Fields: common.MapStr{ + "processor": common.MapStr{"event": "profile", "name": "profile"}, + "service": common.MapStr{ + "name": "myService", + "environment": "staging", + }, + "labels": common.MapStr{ + "key1": []string{"abc", "def"}, + "key2": []string{"ghi"}, + }, + "profile": common.MapStr{ + "duration": int64(10 * time.Second), + "cpu.ns": int64(123), + "inuse_space.bytes": int64(456), + "top": common.MapStr{ + "function": "foo", + "filename": "foo.go", + "line": int64(1), + "id": "98430081820ed765", + }, + "stack": []common.MapStr{{ + "function": "foo", + "filename": "foo.go", + "line": int64(1), + "id": "98430081820ed765", + }, { + "function": "bar", + "filename": "bar.go", + "id": "48a37c90ad27a659", + }}, + }, + }, + }, output[0]) +} diff --git a/testdata/profile/cpu.pprof b/testdata/profile/cpu.pprof new file mode 100644 index 0000000000000000000000000000000000000000..eda741cf14978190480798c86d4cc1e6325a794f GIT binary patch literal 14209 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 X#r#Gn^veG~00960@4fVDo_GKNuC%E3 literal 0 HcmV?d00001 diff --git a/testdata/profile/heap.pprof b/testdata/profile/heap.pprof new file mode 100644 index 0000000000000000000000000000000000000000..3b13974743ad240599ec0e5bca1799ca9d300ed6 GIT binary patch literal 8478 zcmV+(A>rO1iwFP!00004|Fl{Od=ypEPX&@Zl0Yg0XbB2U<1vXclXOA|o?Id-ftcWZ z#GaW>(lD7GdwMu@)qu*SA|iMoDuO2pA6}q%fCu7*%Zhlcu8OYit{3X6tM01buU_}$ z0&=kI?hmKa|Ehmg*L$z()$2Z|y8ukTu(46e?k>7v_w4Q>1Jkp+i%fZ)h3WAO6$Q{8 zw|tVRW(dIFx+4?{0Vqf)JyaCwv|-LCjHTnR-6WQd*_17@ZuE+ab;AWN)(vwgM`GP+ z#xih?i)COh>ZSBl^F$`i-L)fIWfw1(<}xvl z@)Y!uPc$}mzp_zDOUurL^lsfVGW&HG=_FJXS@i7A1?*%NE(NKTh53}P_|!Zh=-R7p z$W*%vfqn@I>`lFuJ}QbHw7GE+tM$M|u38W5OMR6C)I5<*yZ&`Ot7YR@sg{ig(t*kW zDvBIh`{4ps%fV}1wHzcOX)TwYT_COH;z+5MiwDs`N*^^(^rUsyNT??sC!wC$kNQbR zdePH6<}zb1e9jF>FYHhKm4j6jdGyV*63fFCE|!Of&><2-T5^xX5btvb0C4~fkXSw~ zUhy+?=Hm@Q+RMj*G*D4g6h7Lz^cTi__)Lz(d^m^(Nvt=$_qx>Ujf=A-)*Dq)6~#A@ zM*tSe5$KsEdSvJ1_Ux61`M%!$cp#X#58bdnqUMPM=+Udb<7gj%`BLowJd6%g4p&heNbi38F{>Sjzqrvp5RafEyOJaWTgA!5E>$}LGAUYFHXyZ(24FE2OYBg3^yT}q)C@5Y zzs{0+15qPQDe;jnGyT^${k)n7DudL)hxW@9>D1VWDvHBsQ_9O*dF&4KWx_j;mZzm< zXB^fny2-ERiNoos`8#^3-GzeXl3&46DpiK6D2|}J=k4gBW{5%fBS>rzmQk59OwAL1 z`rt*Wrs63QQn8%MmEmfhD4^>Xe8h}{@kj{`#-r(IC3Gk%5;_!*rDK)j z)I4z{z5b$v4)bQuVR$?pubiOfiKFP9Hzag89xJsD#}PC_8L8%pA@te?2_1oD5;_7$ z(I{oKnkNFZ<>{U5h98GW$d6-ajB=uiB1qepea}mx0N>7&SOJcuvC2s*iXwXO&k`%d z?LLVW;y4@nkw#IYmXG(aNiSV9KNLyS@@T3Qwg|C1nY{ z@Y6pT8-gGAlGqR&Pve!7e2OnKecSrNw6yGAhacfDC_M70A%S2~u~y=ZWp5QlDJ|Z$ zjUo++^+tfWfiG!?}# z`f9dZ+r_xr#fq_tsw7rUce+?NoX=~jpRZ}LiqfHF!^*jEcq=te45yctT+N9`!->*} zhSgN9Oj1!CO)DA75GA=rWr^ew&ACujj6nOD+YCM*1 z{%r|APbtn%m!?Yb3_3$OQ$=wc%~>HU%1~@{O%27f=q!mHPv38rSQ$Rx>XqTybhgA! zpdCNWVa{RrzNz|7)Rn{nyi$l zC@N_CTM`?EAGz2loI+D1Hi2&b;tk#_jmC8@HX5T8RT@+j6KVS^5*vdnK-wFFF^VY- zYM!X1U%rz2s1wna(1~b~rJ(O1UuMRk0=jl-MVTrdt3lu#TM#p(3O3or4cI2mWT*vXirq{PmkUC&GG6#RELY3~%AN>i0- zDvC2{gR6HczU10F6{pj5Wrm94Ec)k{Qtwn;n~q$W&!&66+R{VK5U1ihAn%+*U;I_x z8ILpFAdbh2>0)JunkUYsMYCSvxnF?=(rg7@LYF9iP*I#m>pzq8djdY-s!hO4=~88w zisF2F_j8F&#E)ETB3?$9N$di8?RSX{!kgHoJW)gceDEVSQi%f*3VVo3yqqpq8hKB0 zAGnBIQCs|6<^_=J{`Z~_~nSxaURe-53Z+GS4#K{{F@7(f%Adpd$37Mzx|Gr z;+gmbZ#lBXnRqqO)gX)6WLo)ySIlndh2T4&X%Cg1QCnAUPL>J#Lf>FtX7@XHO-f74 z&OiK!J;#8n+Z3Alt6VT=;iEijv&C6>4bU~9@D3zOZ~aH2K3vu|AXB1E0m%~$^vHJ$ zIh1G1%A6z4#%qDD1!Vz`Rg7MIU2Z?m!Gs*ibMQK#>paw=m2XJ&TpS?Lb8#WiLQt+} z-8g;x+h$&==iw-co`;Ko7J+gDqZiStH>K|RGH>RH^KmiIVh^?Hq3sgA0EbE43vdb0 z5|24Svo>GHKG$GeqBVFU(2bzn#AE2tlgqB-QMeG_bBFjsycy_bP;Oy3Nh@FTs@i|t zbvTt4-z4jm?kZ#p9hU+v1zF9e(fuwO!mUh~EkbxJ(5)^you2uY`ix3B{JaOfm{#rhg&!b- z&+#TJTSV|SpxZ!EeEGht#u3YzKwK;pMyPq>5?b-pBU~2@*}3Kj18)bq9h5sb(tn^u zE?VoMwYVH;xrbg#i=LLcb$En~WgXrLbSEe)SobpeY4&#RiR-aQqV>2EXr+f!Ti#)PolQ-T94#9ULcN2Ok4^ z%!983`em1dlX!xJlei9OorLqnLZF=szGmm9;yl;*R9p|V9+b!V*{%orWf zIq(GxpUuirGsGo0*PS+(;6|X0plo8(Hv(<^i^TtcoB7})NBjYw1$x%QZvxu* zsl;7pn8fL`$=Rsg;FnUuH+@Cy!RE?>P0^r|PZ5@^YdSF)AafH%3( znhp3G&}*K=T|mDrkP>qMe|7zs1Gp7vt0!?c&^P~z>xVK-bTb67vA>1R2qJfPVz~qm)2#AJDt=zvfjl6)#2bjc<ExQ1MFVM_?aB9R_kJSC{>hKtRVinMjpZ+~V z%@p$iKXspBKHxT>ZJ_*#$LIl|4ev;as{t3d5?2Gh0rZ9^@gUFxpG%2r0IzlgJ2JK(BAx z&VAH%Ah%e#eDOBW+g`?c2x!g^UPhb6)vd^v^=|LKbB)g);12EGyA9!5c!*OI2Y(y* z3Vm6RWNwKri1fm2Lp6mP$7Oz7O=ir?ehu-HspFv&Dc9vu8Pc z^%tPOfHF<>iN}FH-z5c>0AA$^ECKug=mS^a37}_Pfg8QGo5NQh0)6NTYyi4<{mve0 zrnm{*rXiQFJ_7m(l%4$WPXgV3hm^P(@FupA%U2%*eJmyN#Zy2(FWlKf%@DVwCiN|V zp8$R02|Nw7V1b-OO92m;54sfauRwnVP$_57rgT1|?tAy+*Fsuab~ZQXE%#KiKi>%SH1FEF zyN3@dicLT-rOq5CBlrgRGI81b$!TfXxf@{Z=n30pYwTsVv^^)NZKyF@h`Ql5UFQtG_ya@Ezr#rIMOtBnrA=ilKCuPplUv_nfja@0xB_@%f7!%|>REUWo`)A;GrR~} z;3aq&UI96tjU!Z_copcyyJmASy9@AEm+mf}q4XUn|70g#1N!22DRDR8Tvy_5!0&;+ zmlFA6E70SMXJ@Gy;vSG&y9P$BhUkP zOM&|Uk3!ym+z0p*&`+MgHlY9fbu%;E4|tvwxF7Impr1kcg&F0AEw{|-fs>HSD_!^Tb9K3T%Z@>l-4 z9MOQMCfsG$+{Y)au-{fEaRp~{u8Og-PO*{VP zA|LXve@=SQ-1L5ZMHV(T-h0=!-v?6TCi&~1m)@_x5bW;1f9L-JH7-wG`sb%>X<9}i zu7?dRBQ(P?5?W6^8nwbTR%o&jb`n}f*hmAVtr$V6RdZf zc)(vcI%*m*ryvlqw31-G)nEkmSj0A_1s%(ZCW3WVusBd$5-18L>~Jup7Ys|SK%KQm zt}&K&KuWZQiIWURE3Y%1`eY~&wi<#)R8Kf&IH<=Ph9nGos$mC1hVB@4V47|^V=cSd z;G2QkWGq~)oz%*^IxENyb%rhIa@ROULVB!qMya(6T3M%b5{8qEk22&Vu+!Rq;j|lx zCZ{oGH~}+0$*Q)(Q}js0)=FE&V{fBn#uHX}N=@8KnA3T<4rCsG;iS=(BO?*JAi$`k z8`>#4C)|cF-{p%L&e$;pfrzO`HLX)jY`EF2Y^LE`hNJoT+Kf4d9Wxw$T*J}&@jZWG zVn$+&sYeZ)=PO@L8eOT;?wF}dr2ig~YBN?BHMFBTy!t)PJ>QLm3l%Wi!>sE9vt$RF>UM^ zE!e3r)<$ZQF?S6N3R?|v+ejpWwNc$M0{+6(4a+VFm@(7Qj_!~%rQ&h~BZkXWXKBPIJw+`7G zy)>hp*nWnaYQ!Rz9jvngUe*qTEl%8=OKd&N(>`ihacxp7|2mbW_eRZ=KJ5D5JCv+7 zEskWB3`4bfvC)Zfms;+BIRfL_f5f6vXoqEeQFV-E?id8hjTnvi?#ahii``K(OsJApy(+qGNEB3{4BjHRk8;m{p zd%^zj*ETL<6E%+6V6<^}d{^DAuwtfT*=DS6H*YoVy#3*ALz9IzzE0?>uT@6anrhgU zddv*(=Iwr(3$|;cCeB9MINU)-^AH8z9QLAk@JLjDqH)VN}n~6%x ziWUS?%T%r@ZTvoa$H^q@64%5nOYU--cNT8Cv&SZ5;egzRkDD~9vMU{eyXodN*-Yv$ zlvEYT=>;uF&uM>R?X^5KSdnDZ;3C9Zq=3KBi%d)INY}&DNqa5RrP5;4!X1kjycW;c zvKd_6B<*M*uG@*ulr*-Kw4?lwV=K2ytY0bhn?pUpn8rETNH}MjPJL=O z+PR*A!KdWaX!g@4%qHSAtC$`j9B51HE)Ar#loIlk%a8!)2 zqaE(vtuhi;bSiHvQk?+zE91?C<4ycPtC4NL{b6getEe@jj$x;msJ%SQSDFOq+>=+XGS0ykLZq}RkU)tQ@bONA=seDYZ8uKW5nw9n71t|=$!Ft!|AB$ zZLlInG~h2B=Q#0#z*y6WMiSbnu6rwaQfY<5KB|2eU3uBv=waS81pI|3PL&4|va_kR z?1p{Gal7#b4Q6GJ# zp-+ie(_$5dW1Hbbg&x<=+>efjQvB@aDecdYuK1~q*mtf;vaixk+DC>7hQ}~5&I>D{ zb?UH8w!fa`eOUkArpo={Sa$BP&0pwh6a=c0v5r=TE4tfZTd_vAQD;o&oj}NRsvX@i z3OHXIPABS~s~QaH;VF)-hh@p==iZe0pNR_sP4FJDh;`z0Bb;T;d-M%=k1)lCC-B> zx_8uZw9jQ5dSsNGl3nguPc@^_>S?AEuHQo!cz)Mo<*xr0jazVv8I9H?q=}jq{al@; zjctGQcB2Z6o>*1g#!W3ytevqx+zeZGqK$u*UG=Zpa89nQ(j8;G*yA+qWeaWm?egGP8%|ZSVQf_YpS9L@vZ0NW2YGERch0<5j*fPw7X-#wF{2X=tf!m$ zc96S3KD+n!?UIkJa<^@UjYKC3h2*nrrzUks-a9cP77q9e zC&t1Czip|GTGKk=7i$HrSXla%$A2|(jImtL>a6jWH6dZI~+5?!(!MY zr|M=@4@C{xhPwT=zc6mt2{R$z!tmxrkBsM2^$vQLRI#%H$&g_OEW0jvvCf-@@m5_O z_b=fnPyVV_v#N7-sp;6iB{Lsq)ww6d|E*`$$vWNECbgdiQ(iO|^He3~=q7?uGsG9{ zR-C&9_p$fSW@PV{*j$|(h5hOO1S92t=^h?<_jlzn%Q0(b@X3e~Gh=ny*shN<2hXsB zRxD)cHg~u@`S-PRY3e()-nLO2HNsAyL67tMFZpJzy&vN}+LG~}=zT_1wg0KLq3v_>H#v!*9*^7BR6UwVd9*JtG}}a-kJn&?RF#N45gm+L_8_q1jCP!aApxW?{8mW+~i(jI^!|ZkNZ6 zgm!qlLdjTzZYS#XsCHm$xzn3~fvtfCJ$@n&fMEwDV01aet{R89Kwg@$rlFL7r-sri zbTYGP10>WW%F{~@u;+_5s5LHw=wT^8+lVBhW;msu5;?Rri@&u)sZjN8Emh$~Fi(CZ z8EDX_7}d(km5u8=XO z%OhgOB1TL$o&8($d5`AN7PX&~yoAC_)=Mbb0PiF)F(c;a(`9ek5I5!LYGy3qXu~^< zP%DBUe@tXX<=kn9+D^s{ZBQ%CR;E1`-sABBYsx#WOJ>y2dbyfSVyVAVxX;5YlH4)L z=h2SoOlbJ!cfd|IG`(XQZN+NMI&E~TD0Hera%0Ve!G@&##Il20)2t9kSV=omPO=-C$UvMZ9)wLoW{mRlmX=lm~@^yT|%c_vA17Xg2hHP*How0zSFnijvYl*bPv zqtQ;Byf^8jRO_skL`=>^CG9^c&-FwwYU!K~`RrpXPoQyKAJ3LVDZV;OJGu+z$6I=2 zjPB?o6Py_mom{PTQ7aVis(lA9cHJo?U)5;6yml!Nu}1 zGuF1q_zTC#qHgnPM6DT(b~&XbtZxAOwS zrIfq8$z7i*T`?8p?*@3Wa~wMOx~?m{ytJzfH;-tc{TLd5p_gRsg22c~q{+trI!<0i zkcsBB{rEg)%ya_9`{zh#?=vbGvGrP~lm~fC*C&*_ti2yuy)}O*WE2lGhU?{esJ5gw z64v#|&>}-GDG!ChTCHBD*Oo?#i))Lt!eG=41*eyn)s&SEiJGzG^dWVzBp;2%5{a5x zGioG;XaQ|lAYp0#p(UY6QHdVWOSB>*92qur_|TyxC8heXp;~Cz&`6PCl!S&2s~xJT zOc2}?Yq*&$R9ZYNTolrWg~LO`wMAu-;z)7Gh?JEL)xt(3G+Y~65-ux>6lsHld-E|8 zZKl(P>XD&k#_%G|&`Lt3!;AFc;cz5WRIU#nR$3YBV|cSdSFzq4MIg($ex;P1(x>x8N!(jno#0hL;s< zT6syiR%;ZOmz9@lrNfO#c~OxbDvpE=U5}J%ndeT8B&_qb>~p6kW+cLTGplayground](http://play.golang.org/p/rhRN3RdQyd) + +## TODO + +* Rewrite the 32bit version to be more optimized. +* General cleanup as the Go inliner gets smarter. + +## License + +This project is released under the Apache v2. licence. See [LICENCE](LICENCE) for more details. diff --git a/vendor/github.com/OneOfOne/xxhash/go.mod b/vendor/github.com/OneOfOne/xxhash/go.mod new file mode 100644 index 00000000000..c6da85e0afa --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/go.mod @@ -0,0 +1,3 @@ +module github.com/OneOfOne/xxhash + +go 1.11 diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash.go b/vendor/github.com/OneOfOne/xxhash/xxhash.go new file mode 100644 index 00000000000..2387d65934b --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/xxhash.go @@ -0,0 +1,189 @@ +package xxhash + +const ( + prime32x1 uint32 = 2654435761 + prime32x2 uint32 = 2246822519 + prime32x3 uint32 = 3266489917 + prime32x4 uint32 = 668265263 + prime32x5 uint32 = 374761393 + + prime64x1 uint64 = 11400714785074694791 + prime64x2 uint64 = 14029467366897019727 + prime64x3 uint64 = 1609587929392839161 + prime64x4 uint64 = 9650029242287828579 + prime64x5 uint64 = 2870177450012600261 + + maxInt32 int32 = (1<<31 - 1) + + // precomputed zero Vs for seed 0 + zero64x1 = 0x60ea27eeadc0b5d6 + zero64x2 = 0xc2b2ae3d27d4eb4f + zero64x3 = 0x0 + zero64x4 = 0x61c8864e7a143579 +) + +// Checksum32 returns the checksum of the input data with the seed set to 0. +func Checksum32(in []byte) uint32 { + return Checksum32S(in, 0) +} + +// ChecksumString32 returns the checksum of the input data, without creating a copy, with the seed set to 0. +func ChecksumString32(s string) uint32 { + return ChecksumString32S(s, 0) +} + +type XXHash32 struct { + mem [16]byte + ln, memIdx int32 + v1, v2, v3, v4 uint32 + seed uint32 +} + +// Size returns the number of bytes Sum will return. +func (xx *XXHash32) Size() int { + return 4 +} + +// BlockSize returns the hash's underlying block size. +// The Write method must be able to accept any amount +// of data, but it may operate more efficiently if all writes +// are a multiple of the block size. +func (xx *XXHash32) BlockSize() int { + return 16 +} + +// NewS32 creates a new hash.Hash32 computing the 32bit xxHash checksum starting with the specific seed. +func NewS32(seed uint32) (xx *XXHash32) { + xx = &XXHash32{ + seed: seed, + } + xx.Reset() + return +} + +// New32 creates a new hash.Hash32 computing the 32bit xxHash checksum starting with the seed set to 0. +func New32() *XXHash32 { + return NewS32(0) +} + +func (xx *XXHash32) Reset() { + xx.v1 = xx.seed + prime32x1 + prime32x2 + xx.v2 = xx.seed + prime32x2 + xx.v3 = xx.seed + xx.v4 = xx.seed - prime32x1 + xx.ln, xx.memIdx = 0, 0 +} + +// Sum appends the current hash to b and returns the resulting slice. +// It does not change the underlying hash state. +func (xx *XXHash32) Sum(in []byte) []byte { + s := xx.Sum32() + return append(in, byte(s>>24), byte(s>>16), byte(s>>8), byte(s)) +} + +// Checksum64 an alias for Checksum64S(in, 0) +func Checksum64(in []byte) uint64 { + return Checksum64S(in, 0) +} + +// ChecksumString64 returns the checksum of the input data, without creating a copy, with the seed set to 0. +func ChecksumString64(s string) uint64 { + return ChecksumString64S(s, 0) +} + +type XXHash64 struct { + v1, v2, v3, v4 uint64 + seed uint64 + ln uint64 + mem [32]byte + memIdx int8 +} + +// Size returns the number of bytes Sum will return. +func (xx *XXHash64) Size() int { + return 8 +} + +// BlockSize returns the hash's underlying block size. +// The Write method must be able to accept any amount +// of data, but it may operate more efficiently if all writes +// are a multiple of the block size. +func (xx *XXHash64) BlockSize() int { + return 32 +} + +// NewS64 creates a new hash.Hash64 computing the 64bit xxHash checksum starting with the specific seed. +func NewS64(seed uint64) (xx *XXHash64) { + xx = &XXHash64{ + seed: seed, + } + xx.Reset() + return +} + +// New64 creates a new hash.Hash64 computing the 64bit xxHash checksum starting with the seed set to 0x0. +func New64() *XXHash64 { + return NewS64(0) +} + +func (xx *XXHash64) Reset() { + xx.ln, xx.memIdx = 0, 0 + xx.v1, xx.v2, xx.v3, xx.v4 = resetVs64(xx.seed) +} + +// Sum appends the current hash to b and returns the resulting slice. +// It does not change the underlying hash state. +func (xx *XXHash64) Sum(in []byte) []byte { + s := xx.Sum64() + return append(in, byte(s>>56), byte(s>>48), byte(s>>40), byte(s>>32), byte(s>>24), byte(s>>16), byte(s>>8), byte(s)) +} + +// force the compiler to use ROTL instructions + +func rotl32_1(x uint32) uint32 { return (x << 1) | (x >> (32 - 1)) } +func rotl32_7(x uint32) uint32 { return (x << 7) | (x >> (32 - 7)) } +func rotl32_11(x uint32) uint32 { return (x << 11) | (x >> (32 - 11)) } +func rotl32_12(x uint32) uint32 { return (x << 12) | (x >> (32 - 12)) } +func rotl32_13(x uint32) uint32 { return (x << 13) | (x >> (32 - 13)) } +func rotl32_17(x uint32) uint32 { return (x << 17) | (x >> (32 - 17)) } +func rotl32_18(x uint32) uint32 { return (x << 18) | (x >> (32 - 18)) } + +func rotl64_1(x uint64) uint64 { return (x << 1) | (x >> (64 - 1)) } +func rotl64_7(x uint64) uint64 { return (x << 7) | (x >> (64 - 7)) } +func rotl64_11(x uint64) uint64 { return (x << 11) | (x >> (64 - 11)) } +func rotl64_12(x uint64) uint64 { return (x << 12) | (x >> (64 - 12)) } +func rotl64_18(x uint64) uint64 { return (x << 18) | (x >> (64 - 18)) } +func rotl64_23(x uint64) uint64 { return (x << 23) | (x >> (64 - 23)) } +func rotl64_27(x uint64) uint64 { return (x << 27) | (x >> (64 - 27)) } +func rotl64_31(x uint64) uint64 { return (x << 31) | (x >> (64 - 31)) } + +func mix64(h uint64) uint64 { + h ^= h >> 33 + h *= prime64x2 + h ^= h >> 29 + h *= prime64x3 + h ^= h >> 32 + return h +} + +func resetVs64(seed uint64) (v1, v2, v3, v4 uint64) { + if seed == 0 { + return zero64x1, zero64x2, zero64x3, zero64x4 + } + return (seed + prime64x1 + prime64x2), (seed + prime64x2), (seed), (seed - prime64x1) +} + +// borrowed from cespare +func round64(h, v uint64) uint64 { + h += v * prime64x2 + h = rotl64_31(h) + h *= prime64x1 + return h +} + +func mergeRound64(h, v uint64) uint64 { + v = round64(0, v) + h ^= v + h = h*prime64x1 + prime64x4 + return h +} diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go b/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go new file mode 100644 index 00000000000..ae48e0c5ca7 --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go @@ -0,0 +1,161 @@ +package xxhash + +func u32(in []byte) uint32 { + return uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24 +} + +func u64(in []byte) uint64 { + return uint64(in[0]) | uint64(in[1])<<8 | uint64(in[2])<<16 | uint64(in[3])<<24 | uint64(in[4])<<32 | uint64(in[5])<<40 | uint64(in[6])<<48 | uint64(in[7])<<56 +} + +// Checksum32S returns the checksum of the input bytes with the specific seed. +func Checksum32S(in []byte, seed uint32) (h uint32) { + var i int + + if len(in) > 15 { + var ( + v1 = seed + prime32x1 + prime32x2 + v2 = seed + prime32x2 + v3 = seed + 0 + v4 = seed - prime32x1 + ) + for ; i < len(in)-15; i += 16 { + in := in[i : i+16 : len(in)] + v1 += u32(in[0:4:len(in)]) * prime32x2 + v1 = rotl32_13(v1) * prime32x1 + + v2 += u32(in[4:8:len(in)]) * prime32x2 + v2 = rotl32_13(v2) * prime32x1 + + v3 += u32(in[8:12:len(in)]) * prime32x2 + v3 = rotl32_13(v3) * prime32x1 + + v4 += u32(in[12:16:len(in)]) * prime32x2 + v4 = rotl32_13(v4) * prime32x1 + } + + h = rotl32_1(v1) + rotl32_7(v2) + rotl32_12(v3) + rotl32_18(v4) + + } else { + h = seed + prime32x5 + } + + h += uint32(len(in)) + for ; i <= len(in)-4; i += 4 { + in := in[i : i+4 : len(in)] + h += u32(in[0:4:len(in)]) * prime32x3 + h = rotl32_17(h) * prime32x4 + } + + for ; i < len(in); i++ { + h += uint32(in[i]) * prime32x5 + h = rotl32_11(h) * prime32x1 + } + + h ^= h >> 15 + h *= prime32x2 + h ^= h >> 13 + h *= prime32x3 + h ^= h >> 16 + + return +} + +func (xx *XXHash32) Write(in []byte) (n int, err error) { + i, ml := 0, int(xx.memIdx) + n = len(in) + xx.ln += int32(n) + + if d := 16 - ml; ml > 0 && ml+len(in) > 16 { + xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in[:d])) + ml, in = 16, in[d:len(in):len(in)] + } else if ml+len(in) < 16 { + xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in)) + return + } + + if ml > 0 { + i += 16 - ml + xx.memIdx += int32(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in)) + in := xx.mem[:16:len(xx.mem)] + + xx.v1 += u32(in[0:4:len(in)]) * prime32x2 + xx.v1 = rotl32_13(xx.v1) * prime32x1 + + xx.v2 += u32(in[4:8:len(in)]) * prime32x2 + xx.v2 = rotl32_13(xx.v2) * prime32x1 + + xx.v3 += u32(in[8:12:len(in)]) * prime32x2 + xx.v3 = rotl32_13(xx.v3) * prime32x1 + + xx.v4 += u32(in[12:16:len(in)]) * prime32x2 + xx.v4 = rotl32_13(xx.v4) * prime32x1 + + xx.memIdx = 0 + } + + for ; i <= len(in)-16; i += 16 { + in := in[i : i+16 : len(in)] + xx.v1 += u32(in[0:4:len(in)]) * prime32x2 + xx.v1 = rotl32_13(xx.v1) * prime32x1 + + xx.v2 += u32(in[4:8:len(in)]) * prime32x2 + xx.v2 = rotl32_13(xx.v2) * prime32x1 + + xx.v3 += u32(in[8:12:len(in)]) * prime32x2 + xx.v3 = rotl32_13(xx.v3) * prime32x1 + + xx.v4 += u32(in[12:16:len(in)]) * prime32x2 + xx.v4 = rotl32_13(xx.v4) * prime32x1 + } + + if len(in)-i != 0 { + xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in[i:len(in):len(in)])) + } + + return +} + +func (xx *XXHash32) Sum32() (h uint32) { + var i int32 + if xx.ln > 15 { + h = rotl32_1(xx.v1) + rotl32_7(xx.v2) + rotl32_12(xx.v3) + rotl32_18(xx.v4) + } else { + h = xx.seed + prime32x5 + } + + h += uint32(xx.ln) + + if xx.memIdx > 0 { + for ; i < xx.memIdx-3; i += 4 { + in := xx.mem[i : i+4 : len(xx.mem)] + h += u32(in[0:4:len(in)]) * prime32x3 + h = rotl32_17(h) * prime32x4 + } + + for ; i < xx.memIdx; i++ { + h += uint32(xx.mem[i]) * prime32x5 + h = rotl32_11(h) * prime32x1 + } + } + h ^= h >> 15 + h *= prime32x2 + h ^= h >> 13 + h *= prime32x3 + h ^= h >> 16 + + return +} + +// Checksum64S returns the 64bit xxhash checksum for a single input +func Checksum64S(in []byte, seed uint64) uint64 { + if len(in) == 0 && seed == 0 { + return 0xef46db3751d8e999 + } + + if len(in) > 31 { + return checksum64(in, seed) + } + + return checksum64Short(in, seed) +} diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go b/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go new file mode 100644 index 00000000000..e92ec29e025 --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go @@ -0,0 +1,183 @@ +// +build appengine safe ppc64le ppc64be mipsle mips s390x + +package xxhash + +// Backend returns the current version of xxhash being used. +const Backend = "GoSafe" + +func ChecksumString32S(s string, seed uint32) uint32 { + return Checksum32S([]byte(s), seed) +} + +func (xx *XXHash32) WriteString(s string) (int, error) { + if len(s) == 0 { + return 0, nil + } + return xx.Write([]byte(s)) +} + +func ChecksumString64S(s string, seed uint64) uint64 { + return Checksum64S([]byte(s), seed) +} + +func (xx *XXHash64) WriteString(s string) (int, error) { + if len(s) == 0 { + return 0, nil + } + return xx.Write([]byte(s)) +} + +func checksum64(in []byte, seed uint64) (h uint64) { + var ( + v1, v2, v3, v4 = resetVs64(seed) + + i int + ) + + for ; i < len(in)-31; i += 32 { + in := in[i : i+32 : len(in)] + v1 = round64(v1, u64(in[0:8:len(in)])) + v2 = round64(v2, u64(in[8:16:len(in)])) + v3 = round64(v3, u64(in[16:24:len(in)])) + v4 = round64(v4, u64(in[24:32:len(in)])) + } + + h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4) + + h = mergeRound64(h, v1) + h = mergeRound64(h, v2) + h = mergeRound64(h, v3) + h = mergeRound64(h, v4) + + h += uint64(len(in)) + + for ; i < len(in)-7; i += 8 { + h ^= round64(0, u64(in[i:len(in):len(in)])) + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + for ; i < len(in)-3; i += 4 { + h ^= uint64(u32(in[i:len(in):len(in)])) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + } + + for ; i < len(in); i++ { + h ^= uint64(in[i]) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + + return mix64(h) +} + +func checksum64Short(in []byte, seed uint64) uint64 { + var ( + h = seed + prime64x5 + uint64(len(in)) + i int + ) + + for ; i < len(in)-7; i += 8 { + k := u64(in[i : i+8 : len(in)]) + h ^= round64(0, k) + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + for ; i < len(in)-3; i += 4 { + h ^= uint64(u32(in[i:i+4:len(in)])) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + } + + for ; i < len(in); i++ { + h ^= uint64(in[i]) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + + return mix64(h) +} + +func (xx *XXHash64) Write(in []byte) (n int, err error) { + var ( + ml = int(xx.memIdx) + d = 32 - ml + ) + + n = len(in) + xx.ln += uint64(n) + + if ml+len(in) < 32 { + xx.memIdx += int8(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in)) + return + } + + i, v1, v2, v3, v4 := 0, xx.v1, xx.v2, xx.v3, xx.v4 + if ml > 0 && ml+len(in) > 32 { + xx.memIdx += int8(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in[:d:len(in)])) + in = in[d:len(in):len(in)] + + in := xx.mem[0:32:len(xx.mem)] + + v1 = round64(v1, u64(in[0:8:len(in)])) + v2 = round64(v2, u64(in[8:16:len(in)])) + v3 = round64(v3, u64(in[16:24:len(in)])) + v4 = round64(v4, u64(in[24:32:len(in)])) + + xx.memIdx = 0 + } + + for ; i < len(in)-31; i += 32 { + in := in[i : i+32 : len(in)] + v1 = round64(v1, u64(in[0:8:len(in)])) + v2 = round64(v2, u64(in[8:16:len(in)])) + v3 = round64(v3, u64(in[16:24:len(in)])) + v4 = round64(v4, u64(in[24:32:len(in)])) + } + + if len(in)-i != 0 { + xx.memIdx += int8(copy(xx.mem[xx.memIdx:], in[i:len(in):len(in)])) + } + + xx.v1, xx.v2, xx.v3, xx.v4 = v1, v2, v3, v4 + + return +} + +func (xx *XXHash64) Sum64() (h uint64) { + var i int + if xx.ln > 31 { + v1, v2, v3, v4 := xx.v1, xx.v2, xx.v3, xx.v4 + h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4) + + h = mergeRound64(h, v1) + h = mergeRound64(h, v2) + h = mergeRound64(h, v3) + h = mergeRound64(h, v4) + } else { + h = xx.seed + prime64x5 + } + + h += uint64(xx.ln) + if xx.memIdx > 0 { + in := xx.mem[:xx.memIdx] + for ; i < int(xx.memIdx)-7; i += 8 { + in := in[i : i+8 : len(in)] + k := u64(in[0:8:len(in)]) + k *= prime64x2 + k = rotl64_31(k) + k *= prime64x1 + h ^= k + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + for ; i < int(xx.memIdx)-3; i += 4 { + in := in[i : i+4 : len(in)] + h ^= uint64(u32(in[0:4:len(in)])) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + } + + for ; i < int(xx.memIdx); i++ { + h ^= uint64(in[i]) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + } + + return mix64(h) +} diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go b/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go new file mode 100644 index 00000000000..9c67f8e7141 --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go @@ -0,0 +1,241 @@ +// +build !safe +// +build !appengine +// +build !ppc64le +// +build !mipsle +// +build !ppc64be +// +build !mips +// +build !s390x + +package xxhash + +import ( + "reflect" + "unsafe" +) + +// Backend returns the current version of xxhash being used. +const Backend = "GoUnsafe" + +// ChecksumString32S returns the checksum of the input data, without creating a copy, with the specific seed. +func ChecksumString32S(s string, seed uint32) uint32 { + if len(s) == 0 { + return Checksum32S(nil, seed) + } + ss := (*reflect.StringHeader)(unsafe.Pointer(&s)) + return Checksum32S((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)], seed) +} + +func (xx *XXHash32) WriteString(s string) (int, error) { + if len(s) == 0 { + return 0, nil + } + + ss := (*reflect.StringHeader)(unsafe.Pointer(&s)) + return xx.Write((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)]) +} + +// ChecksumString64S returns the checksum of the input data, without creating a copy, with the specific seed. +func ChecksumString64S(s string, seed uint64) uint64 { + if len(s) == 0 { + return Checksum64S(nil, seed) + } + + ss := (*reflect.StringHeader)(unsafe.Pointer(&s)) + return Checksum64S((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)], seed) +} + +func (xx *XXHash64) WriteString(s string) (int, error) { + if len(s) == 0 { + return 0, nil + } + ss := (*reflect.StringHeader)(unsafe.Pointer(&s)) + return xx.Write((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)]) +} + +//go:nocheckptr +func checksum64(in []byte, seed uint64) uint64 { + var ( + wordsLen = len(in) >> 3 + words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen] + + h uint64 = prime64x5 + + v1, v2, v3, v4 = resetVs64(seed) + + i int + ) + + for ; i < len(words)-3; i += 4 { + words := (*[4]uint64)(unsafe.Pointer(&words[i])) + + v1 = round64(v1, words[0]) + v2 = round64(v2, words[1]) + v3 = round64(v3, words[2]) + v4 = round64(v4, words[3]) + } + + h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4) + + h = mergeRound64(h, v1) + h = mergeRound64(h, v2) + h = mergeRound64(h, v3) + h = mergeRound64(h, v4) + + h += uint64(len(in)) + + for _, k := range words[i:] { + h ^= round64(0, k) + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + if in = in[wordsLen<<3 : len(in) : len(in)]; len(in) > 3 { + words := (*[1]uint32)(unsafe.Pointer(&in[0])) + h ^= uint64(words[0]) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + + in = in[4:len(in):len(in)] + } + + for _, b := range in { + h ^= uint64(b) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + + return mix64(h) +} + +//go:nocheckptr +func checksum64Short(in []byte, seed uint64) uint64 { + var ( + h = seed + prime64x5 + uint64(len(in)) + i int + ) + + if len(in) > 7 { + var ( + wordsLen = len(in) >> 3 + words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen] + ) + + for i := range words { + h ^= round64(0, words[i]) + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + i = wordsLen << 3 + } + + if in = in[i:len(in):len(in)]; len(in) > 3 { + words := (*[1]uint32)(unsafe.Pointer(&in[0])) + h ^= uint64(words[0]) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + + in = in[4:len(in):len(in)] + } + + for _, b := range in { + h ^= uint64(b) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + + return mix64(h) +} + +func (xx *XXHash64) Write(in []byte) (n int, err error) { + mem, idx := xx.mem[:], int(xx.memIdx) + + xx.ln, n = xx.ln+uint64(len(in)), len(in) + + if idx+len(in) < 32 { + xx.memIdx += int8(copy(mem[idx:len(mem):len(mem)], in)) + return + } + + var ( + v1, v2, v3, v4 = xx.v1, xx.v2, xx.v3, xx.v4 + + i int + ) + + if d := 32 - int(idx); d > 0 && int(idx)+len(in) > 31 { + copy(mem[idx:len(mem):len(mem)], in[:len(in):len(in)]) + + words := (*[4]uint64)(unsafe.Pointer(&mem[0])) + + v1 = round64(v1, words[0]) + v2 = round64(v2, words[1]) + v3 = round64(v3, words[2]) + v4 = round64(v4, words[3]) + + if in, xx.memIdx = in[d:len(in):len(in)], 0; len(in) == 0 { + goto RET + } + } + + for ; i < len(in)-31; i += 32 { + words := (*[4]uint64)(unsafe.Pointer(&in[i])) + + v1 = round64(v1, words[0]) + v2 = round64(v2, words[1]) + v3 = round64(v3, words[2]) + v4 = round64(v4, words[3]) + } + + if len(in)-i != 0 { + xx.memIdx += int8(copy(mem[xx.memIdx:len(mem):len(mem)], in[i:len(in):len(in)])) + } + +RET: + xx.v1, xx.v2, xx.v3, xx.v4 = v1, v2, v3, v4 + + return +} + +func (xx *XXHash64) Sum64() (h uint64) { + if seed := xx.seed; xx.ln > 31 { + v1, v2, v3, v4 := xx.v1, xx.v2, xx.v3, xx.v4 + h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4) + + h = mergeRound64(h, v1) + h = mergeRound64(h, v2) + h = mergeRound64(h, v3) + h = mergeRound64(h, v4) + } else if seed == 0 { + h = prime64x5 + } else { + h = seed + prime64x5 + } + + h += uint64(xx.ln) + + if xx.memIdx == 0 { + return mix64(h) + } + + var ( + in = xx.mem[:xx.memIdx:xx.memIdx] + wordsLen = len(in) >> 3 + words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen] + ) + + for _, k := range words { + h ^= round64(0, k) + h = rotl64_27(h)*prime64x1 + prime64x4 + } + + if in = in[wordsLen<<3 : len(in) : len(in)]; len(in) > 3 { + words := (*[1]uint32)(unsafe.Pointer(&in[0])) + + h ^= uint64(words[0]) * prime64x1 + h = rotl64_23(h)*prime64x2 + prime64x3 + + in = in[4:len(in):len(in)] + } + + for _, b := range in { + h ^= uint64(b) * prime64x5 + h = rotl64_11(h) * prime64x1 + } + + return mix64(h) +} diff --git a/vendor/github.com/google/pprof/LICENSE b/vendor/github.com/google/pprof/LICENSE new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/vendor/github.com/google/pprof/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/google/pprof/profile/encode.go b/vendor/github.com/google/pprof/profile/encode.go new file mode 100644 index 00000000000..1e84c72d43d --- /dev/null +++ b/vendor/github.com/google/pprof/profile/encode.go @@ -0,0 +1,567 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package profile + +import ( + "errors" + "sort" +) + +func (p *Profile) decoder() []decoder { + return profileDecoder +} + +// preEncode populates the unexported fields to be used by encode +// (with suffix X) from the corresponding exported fields. The +// exported fields are cleared up to facilitate testing. +func (p *Profile) preEncode() { + strings := make(map[string]int) + addString(strings, "") + + for _, st := range p.SampleType { + st.typeX = addString(strings, st.Type) + st.unitX = addString(strings, st.Unit) + } + + for _, s := range p.Sample { + s.labelX = nil + var keys []string + for k := range s.Label { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + vs := s.Label[k] + for _, v := range vs { + s.labelX = append(s.labelX, + label{ + keyX: addString(strings, k), + strX: addString(strings, v), + }, + ) + } + } + var numKeys []string + for k := range s.NumLabel { + numKeys = append(numKeys, k) + } + sort.Strings(numKeys) + for _, k := range numKeys { + keyX := addString(strings, k) + vs := s.NumLabel[k] + units := s.NumUnit[k] + for i, v := range vs { + var unitX int64 + if len(units) != 0 { + unitX = addString(strings, units[i]) + } + s.labelX = append(s.labelX, + label{ + keyX: keyX, + numX: v, + unitX: unitX, + }, + ) + } + } + s.locationIDX = make([]uint64, len(s.Location)) + for i, loc := range s.Location { + s.locationIDX[i] = loc.ID + } + } + + for _, m := range p.Mapping { + m.fileX = addString(strings, m.File) + m.buildIDX = addString(strings, m.BuildID) + } + + for _, l := range p.Location { + for i, ln := range l.Line { + if ln.Function != nil { + l.Line[i].functionIDX = ln.Function.ID + } else { + l.Line[i].functionIDX = 0 + } + } + if l.Mapping != nil { + l.mappingIDX = l.Mapping.ID + } else { + l.mappingIDX = 0 + } + } + for _, f := range p.Function { + f.nameX = addString(strings, f.Name) + f.systemNameX = addString(strings, f.SystemName) + f.filenameX = addString(strings, f.Filename) + } + + p.dropFramesX = addString(strings, p.DropFrames) + p.keepFramesX = addString(strings, p.KeepFrames) + + if pt := p.PeriodType; pt != nil { + pt.typeX = addString(strings, pt.Type) + pt.unitX = addString(strings, pt.Unit) + } + + p.commentX = nil + for _, c := range p.Comments { + p.commentX = append(p.commentX, addString(strings, c)) + } + + p.defaultSampleTypeX = addString(strings, p.DefaultSampleType) + + p.stringTable = make([]string, len(strings)) + for s, i := range strings { + p.stringTable[i] = s + } +} + +func (p *Profile) encode(b *buffer) { + for _, x := range p.SampleType { + encodeMessage(b, 1, x) + } + for _, x := range p.Sample { + encodeMessage(b, 2, x) + } + for _, x := range p.Mapping { + encodeMessage(b, 3, x) + } + for _, x := range p.Location { + encodeMessage(b, 4, x) + } + for _, x := range p.Function { + encodeMessage(b, 5, x) + } + encodeStrings(b, 6, p.stringTable) + encodeInt64Opt(b, 7, p.dropFramesX) + encodeInt64Opt(b, 8, p.keepFramesX) + encodeInt64Opt(b, 9, p.TimeNanos) + encodeInt64Opt(b, 10, p.DurationNanos) + if pt := p.PeriodType; pt != nil && (pt.typeX != 0 || pt.unitX != 0) { + encodeMessage(b, 11, p.PeriodType) + } + encodeInt64Opt(b, 12, p.Period) + encodeInt64s(b, 13, p.commentX) + encodeInt64(b, 14, p.defaultSampleTypeX) +} + +var profileDecoder = []decoder{ + nil, // 0 + // repeated ValueType sample_type = 1 + func(b *buffer, m message) error { + x := new(ValueType) + pp := m.(*Profile) + pp.SampleType = append(pp.SampleType, x) + return decodeMessage(b, x) + }, + // repeated Sample sample = 2 + func(b *buffer, m message) error { + x := new(Sample) + pp := m.(*Profile) + pp.Sample = append(pp.Sample, x) + return decodeMessage(b, x) + }, + // repeated Mapping mapping = 3 + func(b *buffer, m message) error { + x := new(Mapping) + pp := m.(*Profile) + pp.Mapping = append(pp.Mapping, x) + return decodeMessage(b, x) + }, + // repeated Location location = 4 + func(b *buffer, m message) error { + x := new(Location) + x.Line = make([]Line, 0, 8) // Pre-allocate Line buffer + pp := m.(*Profile) + pp.Location = append(pp.Location, x) + err := decodeMessage(b, x) + var tmp []Line + x.Line = append(tmp, x.Line...) // Shrink to allocated size + return err + }, + // repeated Function function = 5 + func(b *buffer, m message) error { + x := new(Function) + pp := m.(*Profile) + pp.Function = append(pp.Function, x) + return decodeMessage(b, x) + }, + // repeated string string_table = 6 + func(b *buffer, m message) error { + err := decodeStrings(b, &m.(*Profile).stringTable) + if err != nil { + return err + } + if m.(*Profile).stringTable[0] != "" { + return errors.New("string_table[0] must be ''") + } + return nil + }, + // int64 drop_frames = 7 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Profile).dropFramesX) }, + // int64 keep_frames = 8 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Profile).keepFramesX) }, + // int64 time_nanos = 9 + func(b *buffer, m message) error { + if m.(*Profile).TimeNanos != 0 { + return errConcatProfile + } + return decodeInt64(b, &m.(*Profile).TimeNanos) + }, + // int64 duration_nanos = 10 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Profile).DurationNanos) }, + // ValueType period_type = 11 + func(b *buffer, m message) error { + x := new(ValueType) + pp := m.(*Profile) + pp.PeriodType = x + return decodeMessage(b, x) + }, + // int64 period = 12 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Profile).Period) }, + // repeated int64 comment = 13 + func(b *buffer, m message) error { return decodeInt64s(b, &m.(*Profile).commentX) }, + // int64 defaultSampleType = 14 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Profile).defaultSampleTypeX) }, +} + +// postDecode takes the unexported fields populated by decode (with +// suffix X) and populates the corresponding exported fields. +// The unexported fields are cleared up to facilitate testing. +func (p *Profile) postDecode() error { + var err error + mappings := make(map[uint64]*Mapping, len(p.Mapping)) + mappingIds := make([]*Mapping, len(p.Mapping)+1) + for _, m := range p.Mapping { + m.File, err = getString(p.stringTable, &m.fileX, err) + m.BuildID, err = getString(p.stringTable, &m.buildIDX, err) + if m.ID < uint64(len(mappingIds)) { + mappingIds[m.ID] = m + } else { + mappings[m.ID] = m + } + } + + functions := make(map[uint64]*Function, len(p.Function)) + functionIds := make([]*Function, len(p.Function)+1) + for _, f := range p.Function { + f.Name, err = getString(p.stringTable, &f.nameX, err) + f.SystemName, err = getString(p.stringTable, &f.systemNameX, err) + f.Filename, err = getString(p.stringTable, &f.filenameX, err) + if f.ID < uint64(len(functionIds)) { + functionIds[f.ID] = f + } else { + functions[f.ID] = f + } + } + + locations := make(map[uint64]*Location, len(p.Location)) + locationIds := make([]*Location, len(p.Location)+1) + for _, l := range p.Location { + if id := l.mappingIDX; id < uint64(len(mappingIds)) { + l.Mapping = mappingIds[id] + } else { + l.Mapping = mappings[id] + } + l.mappingIDX = 0 + for i, ln := range l.Line { + if id := ln.functionIDX; id != 0 { + l.Line[i].functionIDX = 0 + if id < uint64(len(functionIds)) { + l.Line[i].Function = functionIds[id] + } else { + l.Line[i].Function = functions[id] + } + } + } + if l.ID < uint64(len(locationIds)) { + locationIds[l.ID] = l + } else { + locations[l.ID] = l + } + } + + for _, st := range p.SampleType { + st.Type, err = getString(p.stringTable, &st.typeX, err) + st.Unit, err = getString(p.stringTable, &st.unitX, err) + } + + for _, s := range p.Sample { + labels := make(map[string][]string, len(s.labelX)) + numLabels := make(map[string][]int64, len(s.labelX)) + numUnits := make(map[string][]string, len(s.labelX)) + for _, l := range s.labelX { + var key, value string + key, err = getString(p.stringTable, &l.keyX, err) + if l.strX != 0 { + value, err = getString(p.stringTable, &l.strX, err) + labels[key] = append(labels[key], value) + } else if l.numX != 0 { + numValues := numLabels[key] + units := numUnits[key] + if l.unitX != 0 { + var unit string + unit, err = getString(p.stringTable, &l.unitX, err) + units = padStringArray(units, len(numValues)) + numUnits[key] = append(units, unit) + } + numLabels[key] = append(numLabels[key], l.numX) + } + } + if len(labels) > 0 { + s.Label = labels + } + if len(numLabels) > 0 { + s.NumLabel = numLabels + for key, units := range numUnits { + if len(units) > 0 { + numUnits[key] = padStringArray(units, len(numLabels[key])) + } + } + s.NumUnit = numUnits + } + s.Location = make([]*Location, len(s.locationIDX)) + for i, lid := range s.locationIDX { + if lid < uint64(len(locationIds)) { + s.Location[i] = locationIds[lid] + } else { + s.Location[i] = locations[lid] + } + } + s.locationIDX = nil + } + + p.DropFrames, err = getString(p.stringTable, &p.dropFramesX, err) + p.KeepFrames, err = getString(p.stringTable, &p.keepFramesX, err) + + if pt := p.PeriodType; pt == nil { + p.PeriodType = &ValueType{} + } + + if pt := p.PeriodType; pt != nil { + pt.Type, err = getString(p.stringTable, &pt.typeX, err) + pt.Unit, err = getString(p.stringTable, &pt.unitX, err) + } + + for _, i := range p.commentX { + var c string + c, err = getString(p.stringTable, &i, err) + p.Comments = append(p.Comments, c) + } + + p.commentX = nil + p.DefaultSampleType, err = getString(p.stringTable, &p.defaultSampleTypeX, err) + p.stringTable = nil + return err +} + +// padStringArray pads arr with enough empty strings to make arr +// length l when arr's length is less than l. +func padStringArray(arr []string, l int) []string { + if l <= len(arr) { + return arr + } + return append(arr, make([]string, l-len(arr))...) +} + +func (p *ValueType) decoder() []decoder { + return valueTypeDecoder +} + +func (p *ValueType) encode(b *buffer) { + encodeInt64Opt(b, 1, p.typeX) + encodeInt64Opt(b, 2, p.unitX) +} + +var valueTypeDecoder = []decoder{ + nil, // 0 + // optional int64 type = 1 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*ValueType).typeX) }, + // optional int64 unit = 2 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*ValueType).unitX) }, +} + +func (p *Sample) decoder() []decoder { + return sampleDecoder +} + +func (p *Sample) encode(b *buffer) { + encodeUint64s(b, 1, p.locationIDX) + encodeInt64s(b, 2, p.Value) + for _, x := range p.labelX { + encodeMessage(b, 3, x) + } +} + +var sampleDecoder = []decoder{ + nil, // 0 + // repeated uint64 location = 1 + func(b *buffer, m message) error { return decodeUint64s(b, &m.(*Sample).locationIDX) }, + // repeated int64 value = 2 + func(b *buffer, m message) error { return decodeInt64s(b, &m.(*Sample).Value) }, + // repeated Label label = 3 + func(b *buffer, m message) error { + s := m.(*Sample) + n := len(s.labelX) + s.labelX = append(s.labelX, label{}) + return decodeMessage(b, &s.labelX[n]) + }, +} + +func (p label) decoder() []decoder { + return labelDecoder +} + +func (p label) encode(b *buffer) { + encodeInt64Opt(b, 1, p.keyX) + encodeInt64Opt(b, 2, p.strX) + encodeInt64Opt(b, 3, p.numX) + encodeInt64Opt(b, 4, p.unitX) +} + +var labelDecoder = []decoder{ + nil, // 0 + // optional int64 key = 1 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*label).keyX) }, + // optional int64 str = 2 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*label).strX) }, + // optional int64 num = 3 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*label).numX) }, + // optional int64 num = 4 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*label).unitX) }, +} + +func (p *Mapping) decoder() []decoder { + return mappingDecoder +} + +func (p *Mapping) encode(b *buffer) { + encodeUint64Opt(b, 1, p.ID) + encodeUint64Opt(b, 2, p.Start) + encodeUint64Opt(b, 3, p.Limit) + encodeUint64Opt(b, 4, p.Offset) + encodeInt64Opt(b, 5, p.fileX) + encodeInt64Opt(b, 6, p.buildIDX) + encodeBoolOpt(b, 7, p.HasFunctions) + encodeBoolOpt(b, 8, p.HasFilenames) + encodeBoolOpt(b, 9, p.HasLineNumbers) + encodeBoolOpt(b, 10, p.HasInlineFrames) +} + +var mappingDecoder = []decoder{ + nil, // 0 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Mapping).ID) }, // optional uint64 id = 1 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Mapping).Start) }, // optional uint64 memory_offset = 2 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Mapping).Limit) }, // optional uint64 memory_limit = 3 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Mapping).Offset) }, // optional uint64 file_offset = 4 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Mapping).fileX) }, // optional int64 filename = 5 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Mapping).buildIDX) }, // optional int64 build_id = 6 + func(b *buffer, m message) error { return decodeBool(b, &m.(*Mapping).HasFunctions) }, // optional bool has_functions = 7 + func(b *buffer, m message) error { return decodeBool(b, &m.(*Mapping).HasFilenames) }, // optional bool has_filenames = 8 + func(b *buffer, m message) error { return decodeBool(b, &m.(*Mapping).HasLineNumbers) }, // optional bool has_line_numbers = 9 + func(b *buffer, m message) error { return decodeBool(b, &m.(*Mapping).HasInlineFrames) }, // optional bool has_inline_frames = 10 +} + +func (p *Location) decoder() []decoder { + return locationDecoder +} + +func (p *Location) encode(b *buffer) { + encodeUint64Opt(b, 1, p.ID) + encodeUint64Opt(b, 2, p.mappingIDX) + encodeUint64Opt(b, 3, p.Address) + for i := range p.Line { + encodeMessage(b, 4, &p.Line[i]) + } + encodeBoolOpt(b, 5, p.IsFolded) +} + +var locationDecoder = []decoder{ + nil, // 0 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Location).ID) }, // optional uint64 id = 1; + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Location).mappingIDX) }, // optional uint64 mapping_id = 2; + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Location).Address) }, // optional uint64 address = 3; + func(b *buffer, m message) error { // repeated Line line = 4 + pp := m.(*Location) + n := len(pp.Line) + pp.Line = append(pp.Line, Line{}) + return decodeMessage(b, &pp.Line[n]) + }, + func(b *buffer, m message) error { return decodeBool(b, &m.(*Location).IsFolded) }, // optional bool is_folded = 5; +} + +func (p *Line) decoder() []decoder { + return lineDecoder +} + +func (p *Line) encode(b *buffer) { + encodeUint64Opt(b, 1, p.functionIDX) + encodeInt64Opt(b, 2, p.Line) +} + +var lineDecoder = []decoder{ + nil, // 0 + // optional uint64 function_id = 1 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Line).functionIDX) }, + // optional int64 line = 2 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Line).Line) }, +} + +func (p *Function) decoder() []decoder { + return functionDecoder +} + +func (p *Function) encode(b *buffer) { + encodeUint64Opt(b, 1, p.ID) + encodeInt64Opt(b, 2, p.nameX) + encodeInt64Opt(b, 3, p.systemNameX) + encodeInt64Opt(b, 4, p.filenameX) + encodeInt64Opt(b, 5, p.StartLine) +} + +var functionDecoder = []decoder{ + nil, // 0 + // optional uint64 id = 1 + func(b *buffer, m message) error { return decodeUint64(b, &m.(*Function).ID) }, + // optional int64 function_name = 2 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Function).nameX) }, + // optional int64 function_system_name = 3 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Function).systemNameX) }, + // repeated int64 filename = 4 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Function).filenameX) }, + // optional int64 start_line = 5 + func(b *buffer, m message) error { return decodeInt64(b, &m.(*Function).StartLine) }, +} + +func addString(strings map[string]int, s string) int64 { + i, ok := strings[s] + if !ok { + i = len(strings) + strings[s] = i + } + return int64(i) +} + +func getString(strings []string, strng *int64, err error) (string, error) { + if err != nil { + return "", err + } + s := int(*strng) + if s < 0 || s >= len(strings) { + return "", errMalformed + } + *strng = 0 + return strings[s], nil +} diff --git a/vendor/github.com/google/pprof/profile/filter.go b/vendor/github.com/google/pprof/profile/filter.go new file mode 100644 index 00000000000..ea8e66c68d2 --- /dev/null +++ b/vendor/github.com/google/pprof/profile/filter.go @@ -0,0 +1,270 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package profile + +// Implements methods to filter samples from profiles. + +import "regexp" + +// FilterSamplesByName filters the samples in a profile and only keeps +// samples where at least one frame matches focus but none match ignore. +// Returns true is the corresponding regexp matched at least one sample. +func (p *Profile) FilterSamplesByName(focus, ignore, hide, show *regexp.Regexp) (fm, im, hm, hnm bool) { + focusOrIgnore := make(map[uint64]bool) + hidden := make(map[uint64]bool) + for _, l := range p.Location { + if ignore != nil && l.matchesName(ignore) { + im = true + focusOrIgnore[l.ID] = false + } else if focus == nil || l.matchesName(focus) { + fm = true + focusOrIgnore[l.ID] = true + } + + if hide != nil && l.matchesName(hide) { + hm = true + l.Line = l.unmatchedLines(hide) + if len(l.Line) == 0 { + hidden[l.ID] = true + } + } + if show != nil { + l.Line = l.matchedLines(show) + if len(l.Line) == 0 { + hidden[l.ID] = true + } else { + hnm = true + } + } + } + + s := make([]*Sample, 0, len(p.Sample)) + for _, sample := range p.Sample { + if focusedAndNotIgnored(sample.Location, focusOrIgnore) { + if len(hidden) > 0 { + var locs []*Location + for _, loc := range sample.Location { + if !hidden[loc.ID] { + locs = append(locs, loc) + } + } + if len(locs) == 0 { + // Remove sample with no locations (by not adding it to s). + continue + } + sample.Location = locs + } + s = append(s, sample) + } + } + p.Sample = s + + return +} + +// ShowFrom drops all stack frames above the highest matching frame and returns +// whether a match was found. If showFrom is nil it returns false and does not +// modify the profile. +// +// Example: consider a sample with frames [A, B, C, B], where A is the root. +// ShowFrom(nil) returns false and has frames [A, B, C, B]. +// ShowFrom(A) returns true and has frames [A, B, C, B]. +// ShowFrom(B) returns true and has frames [B, C, B]. +// ShowFrom(C) returns true and has frames [C, B]. +// ShowFrom(D) returns false and drops the sample because no frames remain. +func (p *Profile) ShowFrom(showFrom *regexp.Regexp) (matched bool) { + if showFrom == nil { + return false + } + // showFromLocs stores location IDs that matched ShowFrom. + showFromLocs := make(map[uint64]bool) + // Apply to locations. + for _, loc := range p.Location { + if filterShowFromLocation(loc, showFrom) { + showFromLocs[loc.ID] = true + matched = true + } + } + // For all samples, strip locations after the highest matching one. + s := make([]*Sample, 0, len(p.Sample)) + for _, sample := range p.Sample { + for i := len(sample.Location) - 1; i >= 0; i-- { + if showFromLocs[sample.Location[i].ID] { + sample.Location = sample.Location[:i+1] + s = append(s, sample) + break + } + } + } + p.Sample = s + return matched +} + +// filterShowFromLocation tests a showFrom regex against a location, removes +// lines after the last match and returns whether a match was found. If the +// mapping is matched, then all lines are kept. +func filterShowFromLocation(loc *Location, showFrom *regexp.Regexp) bool { + if m := loc.Mapping; m != nil && showFrom.MatchString(m.File) { + return true + } + if i := loc.lastMatchedLineIndex(showFrom); i >= 0 { + loc.Line = loc.Line[:i+1] + return true + } + return false +} + +// lastMatchedLineIndex returns the index of the last line that matches a regex, +// or -1 if no match is found. +func (loc *Location) lastMatchedLineIndex(re *regexp.Regexp) int { + for i := len(loc.Line) - 1; i >= 0; i-- { + if fn := loc.Line[i].Function; fn != nil { + if re.MatchString(fn.Name) || re.MatchString(fn.Filename) { + return i + } + } + } + return -1 +} + +// FilterTagsByName filters the tags in a profile and only keeps +// tags that match show and not hide. +func (p *Profile) FilterTagsByName(show, hide *regexp.Regexp) (sm, hm bool) { + matchRemove := func(name string) bool { + matchShow := show == nil || show.MatchString(name) + matchHide := hide != nil && hide.MatchString(name) + + if matchShow { + sm = true + } + if matchHide { + hm = true + } + return !matchShow || matchHide + } + for _, s := range p.Sample { + for lab := range s.Label { + if matchRemove(lab) { + delete(s.Label, lab) + } + } + for lab := range s.NumLabel { + if matchRemove(lab) { + delete(s.NumLabel, lab) + } + } + } + return +} + +// matchesName returns whether the location matches the regular +// expression. It checks any available function names, file names, and +// mapping object filename. +func (loc *Location) matchesName(re *regexp.Regexp) bool { + for _, ln := range loc.Line { + if fn := ln.Function; fn != nil { + if re.MatchString(fn.Name) || re.MatchString(fn.Filename) { + return true + } + } + } + if m := loc.Mapping; m != nil && re.MatchString(m.File) { + return true + } + return false +} + +// unmatchedLines returns the lines in the location that do not match +// the regular expression. +func (loc *Location) unmatchedLines(re *regexp.Regexp) []Line { + if m := loc.Mapping; m != nil && re.MatchString(m.File) { + return nil + } + var lines []Line + for _, ln := range loc.Line { + if fn := ln.Function; fn != nil { + if re.MatchString(fn.Name) || re.MatchString(fn.Filename) { + continue + } + } + lines = append(lines, ln) + } + return lines +} + +// matchedLines returns the lines in the location that match +// the regular expression. +func (loc *Location) matchedLines(re *regexp.Regexp) []Line { + if m := loc.Mapping; m != nil && re.MatchString(m.File) { + return loc.Line + } + var lines []Line + for _, ln := range loc.Line { + if fn := ln.Function; fn != nil { + if !re.MatchString(fn.Name) && !re.MatchString(fn.Filename) { + continue + } + } + lines = append(lines, ln) + } + return lines +} + +// focusedAndNotIgnored looks up a slice of ids against a map of +// focused/ignored locations. The map only contains locations that are +// explicitly focused or ignored. Returns whether there is at least +// one focused location but no ignored locations. +func focusedAndNotIgnored(locs []*Location, m map[uint64]bool) bool { + var f bool + for _, loc := range locs { + if focus, focusOrIgnore := m[loc.ID]; focusOrIgnore { + if focus { + // Found focused location. Must keep searching in case there + // is an ignored one as well. + f = true + } else { + // Found ignored location. Can return false right away. + return false + } + } + } + return f +} + +// TagMatch selects tags for filtering +type TagMatch func(s *Sample) bool + +// FilterSamplesByTag removes all samples from the profile, except +// those that match focus and do not match the ignore regular +// expression. +func (p *Profile) FilterSamplesByTag(focus, ignore TagMatch) (fm, im bool) { + samples := make([]*Sample, 0, len(p.Sample)) + for _, s := range p.Sample { + focused, ignored := true, false + if focus != nil { + focused = focus(s) + } + if ignore != nil { + ignored = ignore(s) + } + fm = fm || focused + im = im || ignored + if focused && !ignored { + samples = append(samples, s) + } + } + p.Sample = samples + return +} diff --git a/vendor/github.com/google/pprof/profile/index.go b/vendor/github.com/google/pprof/profile/index.go new file mode 100644 index 00000000000..bef1d60467c --- /dev/null +++ b/vendor/github.com/google/pprof/profile/index.go @@ -0,0 +1,64 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package profile + +import ( + "fmt" + "strconv" + "strings" +) + +// SampleIndexByName returns the appropriate index for a value of sample index. +// If numeric, it returns the number, otherwise it looks up the text in the +// profile sample types. +func (p *Profile) SampleIndexByName(sampleIndex string) (int, error) { + if sampleIndex == "" { + if dst := p.DefaultSampleType; dst != "" { + for i, t := range sampleTypes(p) { + if t == dst { + return i, nil + } + } + } + // By default select the last sample value + return len(p.SampleType) - 1, nil + } + if i, err := strconv.Atoi(sampleIndex); err == nil { + if i < 0 || i >= len(p.SampleType) { + return 0, fmt.Errorf("sample_index %s is outside the range [0..%d]", sampleIndex, len(p.SampleType)-1) + } + return i, nil + } + + // Remove the inuse_ prefix to support legacy pprof options + // "inuse_space" and "inuse_objects" for profiles containing types + // "space" and "objects". + noInuse := strings.TrimPrefix(sampleIndex, "inuse_") + for i, t := range p.SampleType { + if t.Type == sampleIndex || t.Type == noInuse { + return i, nil + } + } + + return 0, fmt.Errorf("sample_index %q must be one of: %v", sampleIndex, sampleTypes(p)) +} + +func sampleTypes(p *Profile) []string { + types := make([]string, len(p.SampleType)) + for i, t := range p.SampleType { + types[i] = t.Type + } + return types +} diff --git a/vendor/github.com/google/pprof/profile/legacy_java_profile.go b/vendor/github.com/google/pprof/profile/legacy_java_profile.go new file mode 100644 index 00000000000..91f45e53c6c --- /dev/null +++ b/vendor/github.com/google/pprof/profile/legacy_java_profile.go @@ -0,0 +1,315 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This file implements parsers to convert java legacy profiles into +// the profile.proto format. + +package profile + +import ( + "bytes" + "fmt" + "io" + "path/filepath" + "regexp" + "strconv" + "strings" +) + +var ( + attributeRx = regexp.MustCompile(`([\w ]+)=([\w ]+)`) + javaSampleRx = regexp.MustCompile(` *(\d+) +(\d+) +@ +([ x0-9a-f]*)`) + javaLocationRx = regexp.MustCompile(`^\s*0x([[:xdigit:]]+)\s+(.*)\s*$`) + javaLocationFileLineRx = regexp.MustCompile(`^(.*)\s+\((.+):(-?[[:digit:]]+)\)$`) + javaLocationPathRx = regexp.MustCompile(`^(.*)\s+\((.*)\)$`) +) + +// javaCPUProfile returns a new Profile from profilez data. +// b is the profile bytes after the header, period is the profiling +// period, and parse is a function to parse 8-byte chunks from the +// profile in its native endianness. +func javaCPUProfile(b []byte, period int64, parse func(b []byte) (uint64, []byte)) (*Profile, error) { + p := &Profile{ + Period: period * 1000, + PeriodType: &ValueType{Type: "cpu", Unit: "nanoseconds"}, + SampleType: []*ValueType{{Type: "samples", Unit: "count"}, {Type: "cpu", Unit: "nanoseconds"}}, + } + var err error + var locs map[uint64]*Location + if b, locs, err = parseCPUSamples(b, parse, false, p); err != nil { + return nil, err + } + + if err = parseJavaLocations(b, locs, p); err != nil { + return nil, err + } + + // Strip out addresses for better merge. + if err = p.Aggregate(true, true, true, true, false); err != nil { + return nil, err + } + + return p, nil +} + +// parseJavaProfile returns a new profile from heapz or contentionz +// data. b is the profile bytes after the header. +func parseJavaProfile(b []byte) (*Profile, error) { + h := bytes.SplitAfterN(b, []byte("\n"), 2) + if len(h) < 2 { + return nil, errUnrecognized + } + + p := &Profile{ + PeriodType: &ValueType{}, + } + header := string(bytes.TrimSpace(h[0])) + + var err error + var pType string + switch header { + case "--- heapz 1 ---": + pType = "heap" + case "--- contentionz 1 ---": + pType = "contention" + default: + return nil, errUnrecognized + } + + if b, err = parseJavaHeader(pType, h[1], p); err != nil { + return nil, err + } + var locs map[uint64]*Location + if b, locs, err = parseJavaSamples(pType, b, p); err != nil { + return nil, err + } + if err = parseJavaLocations(b, locs, p); err != nil { + return nil, err + } + + // Strip out addresses for better merge. + if err = p.Aggregate(true, true, true, true, false); err != nil { + return nil, err + } + + return p, nil +} + +// parseJavaHeader parses the attribute section on a java profile and +// populates a profile. Returns the remainder of the buffer after all +// attributes. +func parseJavaHeader(pType string, b []byte, p *Profile) ([]byte, error) { + nextNewLine := bytes.IndexByte(b, byte('\n')) + for nextNewLine != -1 { + line := string(bytes.TrimSpace(b[0:nextNewLine])) + if line != "" { + h := attributeRx.FindStringSubmatch(line) + if h == nil { + // Not a valid attribute, exit. + return b, nil + } + + attribute, value := strings.TrimSpace(h[1]), strings.TrimSpace(h[2]) + var err error + switch pType + "/" + attribute { + case "heap/format", "cpu/format", "contention/format": + if value != "java" { + return nil, errUnrecognized + } + case "heap/resolution": + p.SampleType = []*ValueType{ + {Type: "inuse_objects", Unit: "count"}, + {Type: "inuse_space", Unit: value}, + } + case "contention/resolution": + p.SampleType = []*ValueType{ + {Type: "contentions", Unit: "count"}, + {Type: "delay", Unit: value}, + } + case "contention/sampling period": + p.PeriodType = &ValueType{ + Type: "contentions", Unit: "count", + } + if p.Period, err = strconv.ParseInt(value, 0, 64); err != nil { + return nil, fmt.Errorf("failed to parse attribute %s: %v", line, err) + } + case "contention/ms since reset": + millis, err := strconv.ParseInt(value, 0, 64) + if err != nil { + return nil, fmt.Errorf("failed to parse attribute %s: %v", line, err) + } + p.DurationNanos = millis * 1000 * 1000 + default: + return nil, errUnrecognized + } + } + // Grab next line. + b = b[nextNewLine+1:] + nextNewLine = bytes.IndexByte(b, byte('\n')) + } + return b, nil +} + +// parseJavaSamples parses the samples from a java profile and +// populates the Samples in a profile. Returns the remainder of the +// buffer after the samples. +func parseJavaSamples(pType string, b []byte, p *Profile) ([]byte, map[uint64]*Location, error) { + nextNewLine := bytes.IndexByte(b, byte('\n')) + locs := make(map[uint64]*Location) + for nextNewLine != -1 { + line := string(bytes.TrimSpace(b[0:nextNewLine])) + if line != "" { + sample := javaSampleRx.FindStringSubmatch(line) + if sample == nil { + // Not a valid sample, exit. + return b, locs, nil + } + + // Java profiles have data/fields inverted compared to other + // profile types. + var err error + value1, value2, value3 := sample[2], sample[1], sample[3] + addrs, err := parseHexAddresses(value3) + if err != nil { + return nil, nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + + var sloc []*Location + for _, addr := range addrs { + loc := locs[addr] + if locs[addr] == nil { + loc = &Location{ + Address: addr, + } + p.Location = append(p.Location, loc) + locs[addr] = loc + } + sloc = append(sloc, loc) + } + s := &Sample{ + Value: make([]int64, 2), + Location: sloc, + } + + if s.Value[0], err = strconv.ParseInt(value1, 0, 64); err != nil { + return nil, nil, fmt.Errorf("parsing sample %s: %v", line, err) + } + if s.Value[1], err = strconv.ParseInt(value2, 0, 64); err != nil { + return nil, nil, fmt.Errorf("parsing sample %s: %v", line, err) + } + + switch pType { + case "heap": + const javaHeapzSamplingRate = 524288 // 512K + if s.Value[0] == 0 { + return nil, nil, fmt.Errorf("parsing sample %s: second value must be non-zero", line) + } + s.NumLabel = map[string][]int64{"bytes": {s.Value[1] / s.Value[0]}} + s.Value[0], s.Value[1] = scaleHeapSample(s.Value[0], s.Value[1], javaHeapzSamplingRate) + case "contention": + if period := p.Period; period != 0 { + s.Value[0] = s.Value[0] * p.Period + s.Value[1] = s.Value[1] * p.Period + } + } + p.Sample = append(p.Sample, s) + } + // Grab next line. + b = b[nextNewLine+1:] + nextNewLine = bytes.IndexByte(b, byte('\n')) + } + return b, locs, nil +} + +// parseJavaLocations parses the location information in a java +// profile and populates the Locations in a profile. It uses the +// location addresses from the profile as both the ID of each +// location. +func parseJavaLocations(b []byte, locs map[uint64]*Location, p *Profile) error { + r := bytes.NewBuffer(b) + fns := make(map[string]*Function) + for { + line, err := r.ReadString('\n') + if err != nil { + if err != io.EOF { + return err + } + if line == "" { + break + } + } + + if line = strings.TrimSpace(line); line == "" { + continue + } + + jloc := javaLocationRx.FindStringSubmatch(line) + if len(jloc) != 3 { + continue + } + addr, err := strconv.ParseUint(jloc[1], 16, 64) + if err != nil { + return fmt.Errorf("parsing sample %s: %v", line, err) + } + loc := locs[addr] + if loc == nil { + // Unused/unseen + continue + } + var lineFunc, lineFile string + var lineNo int64 + + if fileLine := javaLocationFileLineRx.FindStringSubmatch(jloc[2]); len(fileLine) == 4 { + // Found a line of the form: "function (file:line)" + lineFunc, lineFile = fileLine[1], fileLine[2] + if n, err := strconv.ParseInt(fileLine[3], 10, 64); err == nil && n > 0 { + lineNo = n + } + } else if filePath := javaLocationPathRx.FindStringSubmatch(jloc[2]); len(filePath) == 3 { + // If there's not a file:line, it's a shared library path. + // The path isn't interesting, so just give the .so. + lineFunc, lineFile = filePath[1], filepath.Base(filePath[2]) + } else if strings.Contains(jloc[2], "generated stub/JIT") { + lineFunc = "STUB" + } else { + // Treat whole line as the function name. This is used by the + // java agent for internal states such as "GC" or "VM". + lineFunc = jloc[2] + } + fn := fns[lineFunc] + + if fn == nil { + fn = &Function{ + Name: lineFunc, + SystemName: lineFunc, + Filename: lineFile, + } + fns[lineFunc] = fn + p.Function = append(p.Function, fn) + } + loc.Line = []Line{ + { + Function: fn, + Line: lineNo, + }, + } + loc.Address = 0 + } + + p.remapLocationIDs() + p.remapFunctionIDs() + p.remapMappingIDs() + + return nil +} diff --git a/vendor/github.com/google/pprof/profile/legacy_profile.go b/vendor/github.com/google/pprof/profile/legacy_profile.go new file mode 100644 index 00000000000..0c8f3bb5b71 --- /dev/null +++ b/vendor/github.com/google/pprof/profile/legacy_profile.go @@ -0,0 +1,1225 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This file implements parsers to convert legacy profiles into the +// profile.proto format. + +package profile + +import ( + "bufio" + "bytes" + "fmt" + "io" + "math" + "regexp" + "strconv" + "strings" +) + +var ( + countStartRE = regexp.MustCompile(`\A(\S+) profile: total \d+\z`) + countRE = regexp.MustCompile(`\A(\d+) @(( 0x[0-9a-f]+)+)\z`) + + heapHeaderRE = regexp.MustCompile(`heap profile: *(\d+): *(\d+) *\[ *(\d+): *(\d+) *\] *@ *(heap[_a-z0-9]*)/?(\d*)`) + heapSampleRE = regexp.MustCompile(`(-?\d+): *(-?\d+) *\[ *(\d+): *(\d+) *] @([ x0-9a-f]*)`) + + contentionSampleRE = regexp.MustCompile(`(\d+) *(\d+) @([ x0-9a-f]*)`) + + hexNumberRE = regexp.MustCompile(`0x[0-9a-f]+`) + + growthHeaderRE = regexp.MustCompile(`heap profile: *(\d+): *(\d+) *\[ *(\d+): *(\d+) *\] @ growthz?`) + + fragmentationHeaderRE = regexp.MustCompile(`heap profile: *(\d+): *(\d+) *\[ *(\d+): *(\d+) *\] @ fragmentationz?`) + + threadzStartRE = regexp.MustCompile(`--- threadz \d+ ---`) + threadStartRE = regexp.MustCompile(`--- Thread ([[:xdigit:]]+) \(name: (.*)/(\d+)\) stack: ---`) + + // Regular expressions to parse process mappings. Support the format used by Linux /proc/.../maps and other tools. + // Recommended format: + // Start End object file name offset(optional) linker build id + // 0x40000-0x80000 /path/to/binary (@FF00) abc123456 + spaceDigits = `\s+[[:digit:]]+` + hexPair = `\s+[[:xdigit:]]+:[[:xdigit:]]+` + oSpace = `\s*` + // Capturing expressions. + cHex = `(?:0x)?([[:xdigit:]]+)` + cHexRange = `\s*` + cHex + `[\s-]?` + oSpace + cHex + `:?` + cSpaceString = `(?:\s+(\S+))?` + cSpaceHex = `(?:\s+([[:xdigit:]]+))?` + cSpaceAtOffset = `(?:\s+\(@([[:xdigit:]]+)\))?` + cPerm = `(?:\s+([-rwxp]+))?` + + procMapsRE = regexp.MustCompile(`^` + cHexRange + cPerm + cSpaceHex + hexPair + spaceDigits + cSpaceString) + briefMapsRE = regexp.MustCompile(`^` + cHexRange + cPerm + cSpaceString + cSpaceAtOffset + cSpaceHex) + + // Regular expression to parse log data, of the form: + // ... file:line] msg... + logInfoRE = regexp.MustCompile(`^[^\[\]]+:[0-9]+]\s`) +) + +func isSpaceOrComment(line string) bool { + trimmed := strings.TrimSpace(line) + return len(trimmed) == 0 || trimmed[0] == '#' +} + +// parseGoCount parses a Go count profile (e.g., threadcreate or +// goroutine) and returns a new Profile. +func parseGoCount(b []byte) (*Profile, error) { + s := bufio.NewScanner(bytes.NewBuffer(b)) + // Skip comments at the beginning of the file. + for s.Scan() && isSpaceOrComment(s.Text()) { + } + if err := s.Err(); err != nil { + return nil, err + } + m := countStartRE.FindStringSubmatch(s.Text()) + if m == nil { + return nil, errUnrecognized + } + profileType := m[1] + p := &Profile{ + PeriodType: &ValueType{Type: profileType, Unit: "count"}, + Period: 1, + SampleType: []*ValueType{{Type: profileType, Unit: "count"}}, + } + locations := make(map[uint64]*Location) + for s.Scan() { + line := s.Text() + if isSpaceOrComment(line) { + continue + } + if strings.HasPrefix(line, "---") { + break + } + m := countRE.FindStringSubmatch(line) + if m == nil { + return nil, errMalformed + } + n, err := strconv.ParseInt(m[1], 0, 64) + if err != nil { + return nil, errMalformed + } + fields := strings.Fields(m[2]) + locs := make([]*Location, 0, len(fields)) + for _, stk := range fields { + addr, err := strconv.ParseUint(stk, 0, 64) + if err != nil { + return nil, errMalformed + } + // Adjust all frames by -1 to land on top of the call instruction. + addr-- + loc := locations[addr] + if loc == nil { + loc = &Location{ + Address: addr, + } + locations[addr] = loc + p.Location = append(p.Location, loc) + } + locs = append(locs, loc) + } + p.Sample = append(p.Sample, &Sample{ + Location: locs, + Value: []int64{n}, + }) + } + if err := s.Err(); err != nil { + return nil, err + } + + if err := parseAdditionalSections(s, p); err != nil { + return nil, err + } + return p, nil +} + +// remapLocationIDs ensures there is a location for each address +// referenced by a sample, and remaps the samples to point to the new +// location ids. +func (p *Profile) remapLocationIDs() { + seen := make(map[*Location]bool, len(p.Location)) + var locs []*Location + + for _, s := range p.Sample { + for _, l := range s.Location { + if seen[l] { + continue + } + l.ID = uint64(len(locs) + 1) + locs = append(locs, l) + seen[l] = true + } + } + p.Location = locs +} + +func (p *Profile) remapFunctionIDs() { + seen := make(map[*Function]bool, len(p.Function)) + var fns []*Function + + for _, l := range p.Location { + for _, ln := range l.Line { + fn := ln.Function + if fn == nil || seen[fn] { + continue + } + fn.ID = uint64(len(fns) + 1) + fns = append(fns, fn) + seen[fn] = true + } + } + p.Function = fns +} + +// remapMappingIDs matches location addresses with existing mappings +// and updates them appropriately. This is O(N*M), if this ever shows +// up as a bottleneck, evaluate sorting the mappings and doing a +// binary search, which would make it O(N*log(M)). +func (p *Profile) remapMappingIDs() { + // Some profile handlers will incorrectly set regions for the main + // executable if its section is remapped. Fix them through heuristics. + + if len(p.Mapping) > 0 { + // Remove the initial mapping if named '/anon_hugepage' and has a + // consecutive adjacent mapping. + if m := p.Mapping[0]; strings.HasPrefix(m.File, "/anon_hugepage") { + if len(p.Mapping) > 1 && m.Limit == p.Mapping[1].Start { + p.Mapping = p.Mapping[1:] + } + } + } + + // Subtract the offset from the start of the main mapping if it + // ends up at a recognizable start address. + if len(p.Mapping) > 0 { + const expectedStart = 0x400000 + if m := p.Mapping[0]; m.Start-m.Offset == expectedStart { + m.Start = expectedStart + m.Offset = 0 + } + } + + // Associate each location with an address to the corresponding + // mapping. Create fake mapping if a suitable one isn't found. + var fake *Mapping +nextLocation: + for _, l := range p.Location { + a := l.Address + if l.Mapping != nil || a == 0 { + continue + } + for _, m := range p.Mapping { + if m.Start <= a && a < m.Limit { + l.Mapping = m + continue nextLocation + } + } + // Work around legacy handlers failing to encode the first + // part of mappings split into adjacent ranges. + for _, m := range p.Mapping { + if m.Offset != 0 && m.Start-m.Offset <= a && a < m.Start { + m.Start -= m.Offset + m.Offset = 0 + l.Mapping = m + continue nextLocation + } + } + // If there is still no mapping, create a fake one. + // This is important for the Go legacy handler, which produced + // no mappings. + if fake == nil { + fake = &Mapping{ + ID: 1, + Limit: ^uint64(0), + } + p.Mapping = append(p.Mapping, fake) + } + l.Mapping = fake + } + + // Reset all mapping IDs. + for i, m := range p.Mapping { + m.ID = uint64(i + 1) + } +} + +var cpuInts = []func([]byte) (uint64, []byte){ + get32l, + get32b, + get64l, + get64b, +} + +func get32l(b []byte) (uint64, []byte) { + if len(b) < 4 { + return 0, nil + } + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24, b[4:] +} + +func get32b(b []byte) (uint64, []byte) { + if len(b) < 4 { + return 0, nil + } + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24, b[4:] +} + +func get64l(b []byte) (uint64, []byte) { + if len(b) < 8 { + return 0, nil + } + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56, b[8:] +} + +func get64b(b []byte) (uint64, []byte) { + if len(b) < 8 { + return 0, nil + } + return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56, b[8:] +} + +// parseCPU parses a profilez legacy profile and returns a newly +// populated Profile. +// +// The general format for profilez samples is a sequence of words in +// binary format. The first words are a header with the following data: +// 1st word -- 0 +// 2nd word -- 3 +// 3rd word -- 0 if a c++ application, 1 if a java application. +// 4th word -- Sampling period (in microseconds). +// 5th word -- Padding. +func parseCPU(b []byte) (*Profile, error) { + var parse func([]byte) (uint64, []byte) + var n1, n2, n3, n4, n5 uint64 + for _, parse = range cpuInts { + var tmp []byte + n1, tmp = parse(b) + n2, tmp = parse(tmp) + n3, tmp = parse(tmp) + n4, tmp = parse(tmp) + n5, tmp = parse(tmp) + + if tmp != nil && n1 == 0 && n2 == 3 && n3 == 0 && n4 > 0 && n5 == 0 { + b = tmp + return cpuProfile(b, int64(n4), parse) + } + if tmp != nil && n1 == 0 && n2 == 3 && n3 == 1 && n4 > 0 && n5 == 0 { + b = tmp + return javaCPUProfile(b, int64(n4), parse) + } + } + return nil, errUnrecognized +} + +// cpuProfile returns a new Profile from C++ profilez data. +// b is the profile bytes after the header, period is the profiling +// period, and parse is a function to parse 8-byte chunks from the +// profile in its native endianness. +func cpuProfile(b []byte, period int64, parse func(b []byte) (uint64, []byte)) (*Profile, error) { + p := &Profile{ + Period: period * 1000, + PeriodType: &ValueType{Type: "cpu", Unit: "nanoseconds"}, + SampleType: []*ValueType{ + {Type: "samples", Unit: "count"}, + {Type: "cpu", Unit: "nanoseconds"}, + }, + } + var err error + if b, _, err = parseCPUSamples(b, parse, true, p); err != nil { + return nil, err + } + + // If *most* samples have the same second-to-the-bottom frame, it + // strongly suggests that it is an uninteresting artifact of + // measurement -- a stack frame pushed by the signal handler. The + // bottom frame is always correct as it is picked up from the signal + // structure, not the stack. Check if this is the case and if so, + // remove. + + // Remove up to two frames. + maxiter := 2 + // Allow one different sample for this many samples with the same + // second-to-last frame. + similarSamples := 32 + margin := len(p.Sample) / similarSamples + + for iter := 0; iter < maxiter; iter++ { + addr1 := make(map[uint64]int) + for _, s := range p.Sample { + if len(s.Location) > 1 { + a := s.Location[1].Address + addr1[a] = addr1[a] + 1 + } + } + + for id1, count := range addr1 { + if count >= len(p.Sample)-margin { + // Found uninteresting frame, strip it out from all samples + for _, s := range p.Sample { + if len(s.Location) > 1 && s.Location[1].Address == id1 { + s.Location = append(s.Location[:1], s.Location[2:]...) + } + } + break + } + } + } + + if err := p.ParseMemoryMap(bytes.NewBuffer(b)); err != nil { + return nil, err + } + + cleanupDuplicateLocations(p) + return p, nil +} + +func cleanupDuplicateLocations(p *Profile) { + // The profile handler may duplicate the leaf frame, because it gets + // its address both from stack unwinding and from the signal + // context. Detect this and delete the duplicate, which has been + // adjusted by -1. The leaf address should not be adjusted as it is + // not a call. + for _, s := range p.Sample { + if len(s.Location) > 1 && s.Location[0].Address == s.Location[1].Address+1 { + s.Location = append(s.Location[:1], s.Location[2:]...) + } + } +} + +// parseCPUSamples parses a collection of profilez samples from a +// profile. +// +// profilez samples are a repeated sequence of stack frames of the +// form: +// 1st word -- The number of times this stack was encountered. +// 2nd word -- The size of the stack (StackSize). +// 3rd word -- The first address on the stack. +// ... +// StackSize + 2 -- The last address on the stack +// The last stack trace is of the form: +// 1st word -- 0 +// 2nd word -- 1 +// 3rd word -- 0 +// +// Addresses from stack traces may point to the next instruction after +// each call. Optionally adjust by -1 to land somewhere on the actual +// call (except for the leaf, which is not a call). +func parseCPUSamples(b []byte, parse func(b []byte) (uint64, []byte), adjust bool, p *Profile) ([]byte, map[uint64]*Location, error) { + locs := make(map[uint64]*Location) + for len(b) > 0 { + var count, nstk uint64 + count, b = parse(b) + nstk, b = parse(b) + if b == nil || nstk > uint64(len(b)/4) { + return nil, nil, errUnrecognized + } + var sloc []*Location + addrs := make([]uint64, nstk) + for i := 0; i < int(nstk); i++ { + addrs[i], b = parse(b) + } + + if count == 0 && nstk == 1 && addrs[0] == 0 { + // End of data marker + break + } + for i, addr := range addrs { + if adjust && i > 0 { + addr-- + } + loc := locs[addr] + if loc == nil { + loc = &Location{ + Address: addr, + } + locs[addr] = loc + p.Location = append(p.Location, loc) + } + sloc = append(sloc, loc) + } + p.Sample = append(p.Sample, + &Sample{ + Value: []int64{int64(count), int64(count) * p.Period}, + Location: sloc, + }) + } + // Reached the end without finding the EOD marker. + return b, locs, nil +} + +// parseHeap parses a heapz legacy or a growthz profile and +// returns a newly populated Profile. +func parseHeap(b []byte) (p *Profile, err error) { + s := bufio.NewScanner(bytes.NewBuffer(b)) + if !s.Scan() { + if err := s.Err(); err != nil { + return nil, err + } + return nil, errUnrecognized + } + p = &Profile{} + + sampling := "" + hasAlloc := false + + line := s.Text() + p.PeriodType = &ValueType{Type: "space", Unit: "bytes"} + if header := heapHeaderRE.FindStringSubmatch(line); header != nil { + sampling, p.Period, hasAlloc, err = parseHeapHeader(line) + if err != nil { + return nil, err + } + } else if header = growthHeaderRE.FindStringSubmatch(line); header != nil { + p.Period = 1 + } else if header = fragmentationHeaderRE.FindStringSubmatch(line); header != nil { + p.Period = 1 + } else { + return nil, errUnrecognized + } + + if hasAlloc { + // Put alloc before inuse so that default pprof selection + // will prefer inuse_space. + p.SampleType = []*ValueType{ + {Type: "alloc_objects", Unit: "count"}, + {Type: "alloc_space", Unit: "bytes"}, + {Type: "inuse_objects", Unit: "count"}, + {Type: "inuse_space", Unit: "bytes"}, + } + } else { + p.SampleType = []*ValueType{ + {Type: "objects", Unit: "count"}, + {Type: "space", Unit: "bytes"}, + } + } + + locs := make(map[uint64]*Location) + for s.Scan() { + line := strings.TrimSpace(s.Text()) + + if isSpaceOrComment(line) { + continue + } + + if isMemoryMapSentinel(line) { + break + } + + value, blocksize, addrs, err := parseHeapSample(line, p.Period, sampling, hasAlloc) + if err != nil { + return nil, err + } + + var sloc []*Location + for _, addr := range addrs { + // Addresses from stack traces point to the next instruction after + // each call. Adjust by -1 to land somewhere on the actual call. + addr-- + loc := locs[addr] + if locs[addr] == nil { + loc = &Location{ + Address: addr, + } + p.Location = append(p.Location, loc) + locs[addr] = loc + } + sloc = append(sloc, loc) + } + + p.Sample = append(p.Sample, &Sample{ + Value: value, + Location: sloc, + NumLabel: map[string][]int64{"bytes": {blocksize}}, + }) + } + if err := s.Err(); err != nil { + return nil, err + } + if err := parseAdditionalSections(s, p); err != nil { + return nil, err + } + return p, nil +} + +func parseHeapHeader(line string) (sampling string, period int64, hasAlloc bool, err error) { + header := heapHeaderRE.FindStringSubmatch(line) + if header == nil { + return "", 0, false, errUnrecognized + } + + if len(header[6]) > 0 { + if period, err = strconv.ParseInt(header[6], 10, 64); err != nil { + return "", 0, false, errUnrecognized + } + } + + if (header[3] != header[1] && header[3] != "0") || (header[4] != header[2] && header[4] != "0") { + hasAlloc = true + } + + switch header[5] { + case "heapz_v2", "heap_v2": + return "v2", period, hasAlloc, nil + case "heapprofile": + return "", 1, hasAlloc, nil + case "heap": + return "v2", period / 2, hasAlloc, nil + default: + return "", 0, false, errUnrecognized + } +} + +// parseHeapSample parses a single row from a heap profile into a new Sample. +func parseHeapSample(line string, rate int64, sampling string, includeAlloc bool) (value []int64, blocksize int64, addrs []uint64, err error) { + sampleData := heapSampleRE.FindStringSubmatch(line) + if len(sampleData) != 6 { + return nil, 0, nil, fmt.Errorf("unexpected number of sample values: got %d, want 6", len(sampleData)) + } + + // This is a local-scoped helper function to avoid needing to pass + // around rate, sampling and many return parameters. + addValues := func(countString, sizeString string, label string) error { + count, err := strconv.ParseInt(countString, 10, 64) + if err != nil { + return fmt.Errorf("malformed sample: %s: %v", line, err) + } + size, err := strconv.ParseInt(sizeString, 10, 64) + if err != nil { + return fmt.Errorf("malformed sample: %s: %v", line, err) + } + if count == 0 && size != 0 { + return fmt.Errorf("%s count was 0 but %s bytes was %d", label, label, size) + } + if count != 0 { + blocksize = size / count + if sampling == "v2" { + count, size = scaleHeapSample(count, size, rate) + } + } + value = append(value, count, size) + return nil + } + + if includeAlloc { + if err := addValues(sampleData[3], sampleData[4], "allocation"); err != nil { + return nil, 0, nil, err + } + } + + if err := addValues(sampleData[1], sampleData[2], "inuse"); err != nil { + return nil, 0, nil, err + } + + addrs, err = parseHexAddresses(sampleData[5]) + if err != nil { + return nil, 0, nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + + return value, blocksize, addrs, nil +} + +// parseHexAddresses extracts hex numbers from a string, attempts to convert +// each to an unsigned 64-bit number and returns the resulting numbers as a +// slice, or an error if the string contains hex numbers which are too large to +// handle (which means a malformed profile). +func parseHexAddresses(s string) ([]uint64, error) { + hexStrings := hexNumberRE.FindAllString(s, -1) + var addrs []uint64 + for _, s := range hexStrings { + if addr, err := strconv.ParseUint(s, 0, 64); err == nil { + addrs = append(addrs, addr) + } else { + return nil, fmt.Errorf("failed to parse as hex 64-bit number: %s", s) + } + } + return addrs, nil +} + +// scaleHeapSample adjusts the data from a heapz Sample to +// account for its probability of appearing in the collected +// data. heapz profiles are a sampling of the memory allocations +// requests in a program. We estimate the unsampled value by dividing +// each collected sample by its probability of appearing in the +// profile. heapz v2 profiles rely on a poisson process to determine +// which samples to collect, based on the desired average collection +// rate R. The probability of a sample of size S to appear in that +// profile is 1-exp(-S/R). +func scaleHeapSample(count, size, rate int64) (int64, int64) { + if count == 0 || size == 0 { + return 0, 0 + } + + if rate <= 1 { + // if rate==1 all samples were collected so no adjustment is needed. + // if rate<1 treat as unknown and skip scaling. + return count, size + } + + avgSize := float64(size) / float64(count) + scale := 1 / (1 - math.Exp(-avgSize/float64(rate))) + + return int64(float64(count) * scale), int64(float64(size) * scale) +} + +// parseContention parses a mutex or contention profile. There are 2 cases: +// "--- contentionz " for legacy C++ profiles (and backwards compatibility) +// "--- mutex:" or "--- contention:" for profiles generated by the Go runtime. +func parseContention(b []byte) (*Profile, error) { + s := bufio.NewScanner(bytes.NewBuffer(b)) + if !s.Scan() { + if err := s.Err(); err != nil { + return nil, err + } + return nil, errUnrecognized + } + + switch l := s.Text(); { + case strings.HasPrefix(l, "--- contentionz "): + case strings.HasPrefix(l, "--- mutex:"): + case strings.HasPrefix(l, "--- contention:"): + default: + return nil, errUnrecognized + } + + p := &Profile{ + PeriodType: &ValueType{Type: "contentions", Unit: "count"}, + Period: 1, + SampleType: []*ValueType{ + {Type: "contentions", Unit: "count"}, + {Type: "delay", Unit: "nanoseconds"}, + }, + } + + var cpuHz int64 + // Parse text of the form "attribute = value" before the samples. + const delimiter = "=" + for s.Scan() { + line := s.Text() + if line = strings.TrimSpace(line); isSpaceOrComment(line) { + continue + } + if strings.HasPrefix(line, "---") { + break + } + attr := strings.SplitN(line, delimiter, 2) + if len(attr) != 2 { + break + } + key, val := strings.TrimSpace(attr[0]), strings.TrimSpace(attr[1]) + var err error + switch key { + case "cycles/second": + if cpuHz, err = strconv.ParseInt(val, 0, 64); err != nil { + return nil, errUnrecognized + } + case "sampling period": + if p.Period, err = strconv.ParseInt(val, 0, 64); err != nil { + return nil, errUnrecognized + } + case "ms since reset": + ms, err := strconv.ParseInt(val, 0, 64) + if err != nil { + return nil, errUnrecognized + } + p.DurationNanos = ms * 1000 * 1000 + case "format": + // CPP contentionz profiles don't have format. + return nil, errUnrecognized + case "resolution": + // CPP contentionz profiles don't have resolution. + return nil, errUnrecognized + case "discarded samples": + default: + return nil, errUnrecognized + } + } + if err := s.Err(); err != nil { + return nil, err + } + + locs := make(map[uint64]*Location) + for { + line := strings.TrimSpace(s.Text()) + if strings.HasPrefix(line, "---") { + break + } + if !isSpaceOrComment(line) { + value, addrs, err := parseContentionSample(line, p.Period, cpuHz) + if err != nil { + return nil, err + } + var sloc []*Location + for _, addr := range addrs { + // Addresses from stack traces point to the next instruction after + // each call. Adjust by -1 to land somewhere on the actual call. + addr-- + loc := locs[addr] + if locs[addr] == nil { + loc = &Location{ + Address: addr, + } + p.Location = append(p.Location, loc) + locs[addr] = loc + } + sloc = append(sloc, loc) + } + p.Sample = append(p.Sample, &Sample{ + Value: value, + Location: sloc, + }) + } + if !s.Scan() { + break + } + } + if err := s.Err(); err != nil { + return nil, err + } + + if err := parseAdditionalSections(s, p); err != nil { + return nil, err + } + + return p, nil +} + +// parseContentionSample parses a single row from a contention profile +// into a new Sample. +func parseContentionSample(line string, period, cpuHz int64) (value []int64, addrs []uint64, err error) { + sampleData := contentionSampleRE.FindStringSubmatch(line) + if sampleData == nil { + return nil, nil, errUnrecognized + } + + v1, err := strconv.ParseInt(sampleData[1], 10, 64) + if err != nil { + return nil, nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + v2, err := strconv.ParseInt(sampleData[2], 10, 64) + if err != nil { + return nil, nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + + // Unsample values if period and cpuHz are available. + // - Delays are scaled to cycles and then to nanoseconds. + // - Contentions are scaled to cycles. + if period > 0 { + if cpuHz > 0 { + cpuGHz := float64(cpuHz) / 1e9 + v1 = int64(float64(v1) * float64(period) / cpuGHz) + } + v2 = v2 * period + } + + value = []int64{v2, v1} + addrs, err = parseHexAddresses(sampleData[3]) + if err != nil { + return nil, nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + + return value, addrs, nil +} + +// parseThread parses a Threadz profile and returns a new Profile. +func parseThread(b []byte) (*Profile, error) { + s := bufio.NewScanner(bytes.NewBuffer(b)) + // Skip past comments and empty lines seeking a real header. + for s.Scan() && isSpaceOrComment(s.Text()) { + } + + line := s.Text() + if m := threadzStartRE.FindStringSubmatch(line); m != nil { + // Advance over initial comments until first stack trace. + for s.Scan() { + if line = s.Text(); isMemoryMapSentinel(line) || strings.HasPrefix(line, "-") { + break + } + } + } else if t := threadStartRE.FindStringSubmatch(line); len(t) != 4 { + return nil, errUnrecognized + } + + p := &Profile{ + SampleType: []*ValueType{{Type: "thread", Unit: "count"}}, + PeriodType: &ValueType{Type: "thread", Unit: "count"}, + Period: 1, + } + + locs := make(map[uint64]*Location) + // Recognize each thread and populate profile samples. + for !isMemoryMapSentinel(line) { + if strings.HasPrefix(line, "---- no stack trace for") { + line = "" + break + } + if t := threadStartRE.FindStringSubmatch(line); len(t) != 4 { + return nil, errUnrecognized + } + + var addrs []uint64 + var err error + line, addrs, err = parseThreadSample(s) + if err != nil { + return nil, err + } + if len(addrs) == 0 { + // We got a --same as previous threads--. Bump counters. + if len(p.Sample) > 0 { + s := p.Sample[len(p.Sample)-1] + s.Value[0]++ + } + continue + } + + var sloc []*Location + for i, addr := range addrs { + // Addresses from stack traces point to the next instruction after + // each call. Adjust by -1 to land somewhere on the actual call + // (except for the leaf, which is not a call). + if i > 0 { + addr-- + } + loc := locs[addr] + if locs[addr] == nil { + loc = &Location{ + Address: addr, + } + p.Location = append(p.Location, loc) + locs[addr] = loc + } + sloc = append(sloc, loc) + } + + p.Sample = append(p.Sample, &Sample{ + Value: []int64{1}, + Location: sloc, + }) + } + + if err := parseAdditionalSections(s, p); err != nil { + return nil, err + } + + cleanupDuplicateLocations(p) + return p, nil +} + +// parseThreadSample parses a symbolized or unsymbolized stack trace. +// Returns the first line after the traceback, the sample (or nil if +// it hits a 'same-as-previous' marker) and an error. +func parseThreadSample(s *bufio.Scanner) (nextl string, addrs []uint64, err error) { + var line string + sameAsPrevious := false + for s.Scan() { + line = strings.TrimSpace(s.Text()) + if line == "" { + continue + } + + if strings.HasPrefix(line, "---") { + break + } + if strings.Contains(line, "same as previous thread") { + sameAsPrevious = true + continue + } + + curAddrs, err := parseHexAddresses(line) + if err != nil { + return "", nil, fmt.Errorf("malformed sample: %s: %v", line, err) + } + addrs = append(addrs, curAddrs...) + } + if err := s.Err(); err != nil { + return "", nil, err + } + if sameAsPrevious { + return line, nil, nil + } + return line, addrs, nil +} + +// parseAdditionalSections parses any additional sections in the +// profile, ignoring any unrecognized sections. +func parseAdditionalSections(s *bufio.Scanner, p *Profile) error { + for !isMemoryMapSentinel(s.Text()) && s.Scan() { + } + if err := s.Err(); err != nil { + return err + } + return p.ParseMemoryMapFromScanner(s) +} + +// ParseProcMaps parses a memory map in the format of /proc/self/maps. +// ParseMemoryMap should be called after setting on a profile to +// associate locations to the corresponding mapping based on their +// address. +func ParseProcMaps(rd io.Reader) ([]*Mapping, error) { + s := bufio.NewScanner(rd) + return parseProcMapsFromScanner(s) +} + +func parseProcMapsFromScanner(s *bufio.Scanner) ([]*Mapping, error) { + var mapping []*Mapping + + var attrs []string + const delimiter = "=" + r := strings.NewReplacer() + for s.Scan() { + line := r.Replace(removeLoggingInfo(s.Text())) + m, err := parseMappingEntry(line) + if err != nil { + if err == errUnrecognized { + // Recognize assignments of the form: attr=value, and replace + // $attr with value on subsequent mappings. + if attr := strings.SplitN(line, delimiter, 2); len(attr) == 2 { + attrs = append(attrs, "$"+strings.TrimSpace(attr[0]), strings.TrimSpace(attr[1])) + r = strings.NewReplacer(attrs...) + } + // Ignore any unrecognized entries + continue + } + return nil, err + } + if m == nil { + continue + } + mapping = append(mapping, m) + } + if err := s.Err(); err != nil { + return nil, err + } + return mapping, nil +} + +// removeLoggingInfo detects and removes log prefix entries generated +// by the glog package. If no logging prefix is detected, the string +// is returned unmodified. +func removeLoggingInfo(line string) string { + if match := logInfoRE.FindStringIndex(line); match != nil { + return line[match[1]:] + } + return line +} + +// ParseMemoryMap parses a memory map in the format of +// /proc/self/maps, and overrides the mappings in the current profile. +// It renumbers the samples and locations in the profile correspondingly. +func (p *Profile) ParseMemoryMap(rd io.Reader) error { + return p.ParseMemoryMapFromScanner(bufio.NewScanner(rd)) +} + +// ParseMemoryMapFromScanner parses a memory map in the format of +// /proc/self/maps or a variety of legacy format, and overrides the +// mappings in the current profile. It renumbers the samples and +// locations in the profile correspondingly. +func (p *Profile) ParseMemoryMapFromScanner(s *bufio.Scanner) error { + mapping, err := parseProcMapsFromScanner(s) + if err != nil { + return err + } + p.Mapping = append(p.Mapping, mapping...) + p.massageMappings() + p.remapLocationIDs() + p.remapFunctionIDs() + p.remapMappingIDs() + return nil +} + +func parseMappingEntry(l string) (*Mapping, error) { + var start, end, perm, file, offset, buildID string + if me := procMapsRE.FindStringSubmatch(l); len(me) == 6 { + start, end, perm, offset, file = me[1], me[2], me[3], me[4], me[5] + } else if me := briefMapsRE.FindStringSubmatch(l); len(me) == 7 { + start, end, perm, file, offset, buildID = me[1], me[2], me[3], me[4], me[5], me[6] + } else { + return nil, errUnrecognized + } + + var err error + mapping := &Mapping{ + File: file, + BuildID: buildID, + } + if perm != "" && !strings.Contains(perm, "x") { + // Skip non-executable entries. + return nil, nil + } + if mapping.Start, err = strconv.ParseUint(start, 16, 64); err != nil { + return nil, errUnrecognized + } + if mapping.Limit, err = strconv.ParseUint(end, 16, 64); err != nil { + return nil, errUnrecognized + } + if offset != "" { + if mapping.Offset, err = strconv.ParseUint(offset, 16, 64); err != nil { + return nil, errUnrecognized + } + } + return mapping, nil +} + +var memoryMapSentinels = []string{ + "--- Memory map: ---", + "MAPPED_LIBRARIES:", +} + +// isMemoryMapSentinel returns true if the string contains one of the +// known sentinels for memory map information. +func isMemoryMapSentinel(line string) bool { + for _, s := range memoryMapSentinels { + if strings.Contains(line, s) { + return true + } + } + return false +} + +func (p *Profile) addLegacyFrameInfo() { + switch { + case isProfileType(p, heapzSampleTypes): + p.DropFrames, p.KeepFrames = allocRxStr, allocSkipRxStr + case isProfileType(p, contentionzSampleTypes): + p.DropFrames, p.KeepFrames = lockRxStr, "" + default: + p.DropFrames, p.KeepFrames = cpuProfilerRxStr, "" + } +} + +var heapzSampleTypes = [][]string{ + {"allocations", "size"}, // early Go pprof profiles + {"objects", "space"}, + {"inuse_objects", "inuse_space"}, + {"alloc_objects", "alloc_space"}, + {"alloc_objects", "alloc_space", "inuse_objects", "inuse_space"}, // Go pprof legacy profiles +} +var contentionzSampleTypes = [][]string{ + {"contentions", "delay"}, +} + +func isProfileType(p *Profile, types [][]string) bool { + st := p.SampleType +nextType: + for _, t := range types { + if len(st) != len(t) { + continue + } + + for i := range st { + if st[i].Type != t[i] { + continue nextType + } + } + return true + } + return false +} + +var allocRxStr = strings.Join([]string{ + // POSIX entry points. + `calloc`, + `cfree`, + `malloc`, + `free`, + `memalign`, + `do_memalign`, + `(__)?posix_memalign`, + `pvalloc`, + `valloc`, + `realloc`, + + // TC malloc. + `tcmalloc::.*`, + `tc_calloc`, + `tc_cfree`, + `tc_malloc`, + `tc_free`, + `tc_memalign`, + `tc_posix_memalign`, + `tc_pvalloc`, + `tc_valloc`, + `tc_realloc`, + `tc_new`, + `tc_delete`, + `tc_newarray`, + `tc_deletearray`, + `tc_new_nothrow`, + `tc_newarray_nothrow`, + + // Memory-allocation routines on OS X. + `malloc_zone_malloc`, + `malloc_zone_calloc`, + `malloc_zone_valloc`, + `malloc_zone_realloc`, + `malloc_zone_memalign`, + `malloc_zone_free`, + + // Go runtime + `runtime\..*`, + + // Other misc. memory allocation routines + `BaseArena::.*`, + `(::)?do_malloc_no_errno`, + `(::)?do_malloc_pages`, + `(::)?do_malloc`, + `DoSampledAllocation`, + `MallocedMemBlock::MallocedMemBlock`, + `_M_allocate`, + `__builtin_(vec_)?delete`, + `__builtin_(vec_)?new`, + `__gnu_cxx::new_allocator::allocate`, + `__libc_malloc`, + `__malloc_alloc_template::allocate`, + `allocate`, + `cpp_alloc`, + `operator new(\[\])?`, + `simple_alloc::allocate`, +}, `|`) + +var allocSkipRxStr = strings.Join([]string{ + // Preserve Go runtime frames that appear in the middle/bottom of + // the stack. + `runtime\.panic`, + `runtime\.reflectcall`, + `runtime\.call[0-9]*`, +}, `|`) + +var cpuProfilerRxStr = strings.Join([]string{ + `ProfileData::Add`, + `ProfileData::prof_handler`, + `CpuProfiler::prof_handler`, + `__pthread_sighandler`, + `__restore`, +}, `|`) + +var lockRxStr = strings.Join([]string{ + `RecordLockProfileData`, + `(base::)?RecordLockProfileData.*`, + `(base::)?SubmitMutexProfileData.*`, + `(base::)?SubmitSpinLockProfileData.*`, + `(base::Mutex::)?AwaitCommon.*`, + `(base::Mutex::)?Unlock.*`, + `(base::Mutex::)?UnlockSlow.*`, + `(base::Mutex::)?ReaderUnlock.*`, + `(base::MutexLock::)?~MutexLock.*`, + `(Mutex::)?AwaitCommon.*`, + `(Mutex::)?Unlock.*`, + `(Mutex::)?UnlockSlow.*`, + `(Mutex::)?ReaderUnlock.*`, + `(MutexLock::)?~MutexLock.*`, + `(SpinLock::)?Unlock.*`, + `(SpinLock::)?SlowUnlock.*`, + `(SpinLockHolder::)?~SpinLockHolder.*`, +}, `|`) diff --git a/vendor/github.com/google/pprof/profile/merge.go b/vendor/github.com/google/pprof/profile/merge.go new file mode 100644 index 00000000000..4dcc27f48eb --- /dev/null +++ b/vendor/github.com/google/pprof/profile/merge.go @@ -0,0 +1,479 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package profile + +import ( + "fmt" + "sort" + "strconv" + "strings" +) + +// Compact performs garbage collection on a profile to remove any +// unreferenced fields. This is useful to reduce the size of a profile +// after samples or locations have been removed. +func (p *Profile) Compact() *Profile { + p, _ = Merge([]*Profile{p}) + return p +} + +// Merge merges all the profiles in profs into a single Profile. +// Returns a new profile independent of the input profiles. The merged +// profile is compacted to eliminate unused samples, locations, +// functions and mappings. Profiles must have identical profile sample +// and period types or the merge will fail. profile.Period of the +// resulting profile will be the maximum of all profiles, and +// profile.TimeNanos will be the earliest nonzero one. +func Merge(srcs []*Profile) (*Profile, error) { + if len(srcs) == 0 { + return nil, fmt.Errorf("no profiles to merge") + } + p, err := combineHeaders(srcs) + if err != nil { + return nil, err + } + + pm := &profileMerger{ + p: p, + samples: make(map[sampleKey]*Sample, len(srcs[0].Sample)), + locations: make(map[locationKey]*Location, len(srcs[0].Location)), + functions: make(map[functionKey]*Function, len(srcs[0].Function)), + mappings: make(map[mappingKey]*Mapping, len(srcs[0].Mapping)), + } + + for _, src := range srcs { + // Clear the profile-specific hash tables + pm.locationsByID = make(map[uint64]*Location, len(src.Location)) + pm.functionsByID = make(map[uint64]*Function, len(src.Function)) + pm.mappingsByID = make(map[uint64]mapInfo, len(src.Mapping)) + + if len(pm.mappings) == 0 && len(src.Mapping) > 0 { + // The Mapping list has the property that the first mapping + // represents the main binary. Take the first Mapping we see, + // otherwise the operations below will add mappings in an + // arbitrary order. + pm.mapMapping(src.Mapping[0]) + } + + for _, s := range src.Sample { + if !isZeroSample(s) { + pm.mapSample(s) + } + } + } + + for _, s := range p.Sample { + if isZeroSample(s) { + // If there are any zero samples, re-merge the profile to GC + // them. + return Merge([]*Profile{p}) + } + } + + return p, nil +} + +// Normalize normalizes the source profile by multiplying each value in profile by the +// ratio of the sum of the base profile's values of that sample type to the sum of the +// source profile's value of that sample type. +func (p *Profile) Normalize(pb *Profile) error { + + if err := p.compatible(pb); err != nil { + return err + } + + baseVals := make([]int64, len(p.SampleType)) + for _, s := range pb.Sample { + for i, v := range s.Value { + baseVals[i] += v + } + } + + srcVals := make([]int64, len(p.SampleType)) + for _, s := range p.Sample { + for i, v := range s.Value { + srcVals[i] += v + } + } + + normScale := make([]float64, len(baseVals)) + for i := range baseVals { + if srcVals[i] == 0 { + normScale[i] = 0.0 + } else { + normScale[i] = float64(baseVals[i]) / float64(srcVals[i]) + } + } + p.ScaleN(normScale) + return nil +} + +func isZeroSample(s *Sample) bool { + for _, v := range s.Value { + if v != 0 { + return false + } + } + return true +} + +type profileMerger struct { + p *Profile + + // Memoization tables within a profile. + locationsByID map[uint64]*Location + functionsByID map[uint64]*Function + mappingsByID map[uint64]mapInfo + + // Memoization tables for profile entities. + samples map[sampleKey]*Sample + locations map[locationKey]*Location + functions map[functionKey]*Function + mappings map[mappingKey]*Mapping +} + +type mapInfo struct { + m *Mapping + offset int64 +} + +func (pm *profileMerger) mapSample(src *Sample) *Sample { + s := &Sample{ + Location: make([]*Location, len(src.Location)), + Value: make([]int64, len(src.Value)), + Label: make(map[string][]string, len(src.Label)), + NumLabel: make(map[string][]int64, len(src.NumLabel)), + NumUnit: make(map[string][]string, len(src.NumLabel)), + } + for i, l := range src.Location { + s.Location[i] = pm.mapLocation(l) + } + for k, v := range src.Label { + vv := make([]string, len(v)) + copy(vv, v) + s.Label[k] = vv + } + for k, v := range src.NumLabel { + u := src.NumUnit[k] + vv := make([]int64, len(v)) + uu := make([]string, len(u)) + copy(vv, v) + copy(uu, u) + s.NumLabel[k] = vv + s.NumUnit[k] = uu + } + // Check memoization table. Must be done on the remapped location to + // account for the remapped mapping. Add current values to the + // existing sample. + k := s.key() + if ss, ok := pm.samples[k]; ok { + for i, v := range src.Value { + ss.Value[i] += v + } + return ss + } + copy(s.Value, src.Value) + pm.samples[k] = s + pm.p.Sample = append(pm.p.Sample, s) + return s +} + +// key generates sampleKey to be used as a key for maps. +func (sample *Sample) key() sampleKey { + ids := make([]string, len(sample.Location)) + for i, l := range sample.Location { + ids[i] = strconv.FormatUint(l.ID, 16) + } + + labels := make([]string, 0, len(sample.Label)) + for k, v := range sample.Label { + labels = append(labels, fmt.Sprintf("%q%q", k, v)) + } + sort.Strings(labels) + + numlabels := make([]string, 0, len(sample.NumLabel)) + for k, v := range sample.NumLabel { + numlabels = append(numlabels, fmt.Sprintf("%q%x%x", k, v, sample.NumUnit[k])) + } + sort.Strings(numlabels) + + return sampleKey{ + strings.Join(ids, "|"), + strings.Join(labels, ""), + strings.Join(numlabels, ""), + } +} + +type sampleKey struct { + locations string + labels string + numlabels string +} + +func (pm *profileMerger) mapLocation(src *Location) *Location { + if src == nil { + return nil + } + + if l, ok := pm.locationsByID[src.ID]; ok { + pm.locationsByID[src.ID] = l + return l + } + + mi := pm.mapMapping(src.Mapping) + l := &Location{ + ID: uint64(len(pm.p.Location) + 1), + Mapping: mi.m, + Address: uint64(int64(src.Address) + mi.offset), + Line: make([]Line, len(src.Line)), + IsFolded: src.IsFolded, + } + for i, ln := range src.Line { + l.Line[i] = pm.mapLine(ln) + } + // Check memoization table. Must be done on the remapped location to + // account for the remapped mapping ID. + k := l.key() + if ll, ok := pm.locations[k]; ok { + pm.locationsByID[src.ID] = ll + return ll + } + pm.locationsByID[src.ID] = l + pm.locations[k] = l + pm.p.Location = append(pm.p.Location, l) + return l +} + +// key generates locationKey to be used as a key for maps. +func (l *Location) key() locationKey { + key := locationKey{ + addr: l.Address, + isFolded: l.IsFolded, + } + if l.Mapping != nil { + // Normalizes address to handle address space randomization. + key.addr -= l.Mapping.Start + key.mappingID = l.Mapping.ID + } + lines := make([]string, len(l.Line)*2) + for i, line := range l.Line { + if line.Function != nil { + lines[i*2] = strconv.FormatUint(line.Function.ID, 16) + } + lines[i*2+1] = strconv.FormatInt(line.Line, 16) + } + key.lines = strings.Join(lines, "|") + return key +} + +type locationKey struct { + addr, mappingID uint64 + lines string + isFolded bool +} + +func (pm *profileMerger) mapMapping(src *Mapping) mapInfo { + if src == nil { + return mapInfo{} + } + + if mi, ok := pm.mappingsByID[src.ID]; ok { + return mi + } + + // Check memoization tables. + mk := src.key() + if m, ok := pm.mappings[mk]; ok { + mi := mapInfo{m, int64(m.Start) - int64(src.Start)} + pm.mappingsByID[src.ID] = mi + return mi + } + m := &Mapping{ + ID: uint64(len(pm.p.Mapping) + 1), + Start: src.Start, + Limit: src.Limit, + Offset: src.Offset, + File: src.File, + BuildID: src.BuildID, + HasFunctions: src.HasFunctions, + HasFilenames: src.HasFilenames, + HasLineNumbers: src.HasLineNumbers, + HasInlineFrames: src.HasInlineFrames, + } + pm.p.Mapping = append(pm.p.Mapping, m) + + // Update memoization tables. + pm.mappings[mk] = m + mi := mapInfo{m, 0} + pm.mappingsByID[src.ID] = mi + return mi +} + +// key generates encoded strings of Mapping to be used as a key for +// maps. +func (m *Mapping) key() mappingKey { + // Normalize addresses to handle address space randomization. + // Round up to next 4K boundary to avoid minor discrepancies. + const mapsizeRounding = 0x1000 + + size := m.Limit - m.Start + size = size + mapsizeRounding - 1 + size = size - (size % mapsizeRounding) + key := mappingKey{ + size: size, + offset: m.Offset, + } + + switch { + case m.BuildID != "": + key.buildIDOrFile = m.BuildID + case m.File != "": + key.buildIDOrFile = m.File + default: + // A mapping containing neither build ID nor file name is a fake mapping. A + // key with empty buildIDOrFile is used for fake mappings so that they are + // treated as the same mapping during merging. + } + return key +} + +type mappingKey struct { + size, offset uint64 + buildIDOrFile string +} + +func (pm *profileMerger) mapLine(src Line) Line { + ln := Line{ + Function: pm.mapFunction(src.Function), + Line: src.Line, + } + return ln +} + +func (pm *profileMerger) mapFunction(src *Function) *Function { + if src == nil { + return nil + } + if f, ok := pm.functionsByID[src.ID]; ok { + return f + } + k := src.key() + if f, ok := pm.functions[k]; ok { + pm.functionsByID[src.ID] = f + return f + } + f := &Function{ + ID: uint64(len(pm.p.Function) + 1), + Name: src.Name, + SystemName: src.SystemName, + Filename: src.Filename, + StartLine: src.StartLine, + } + pm.functions[k] = f + pm.functionsByID[src.ID] = f + pm.p.Function = append(pm.p.Function, f) + return f +} + +// key generates a struct to be used as a key for maps. +func (f *Function) key() functionKey { + return functionKey{ + f.StartLine, + f.Name, + f.SystemName, + f.Filename, + } +} + +type functionKey struct { + startLine int64 + name, systemName, fileName string +} + +// combineHeaders checks that all profiles can be merged and returns +// their combined profile. +func combineHeaders(srcs []*Profile) (*Profile, error) { + for _, s := range srcs[1:] { + if err := srcs[0].compatible(s); err != nil { + return nil, err + } + } + + var timeNanos, durationNanos, period int64 + var comments []string + seenComments := map[string]bool{} + var defaultSampleType string + for _, s := range srcs { + if timeNanos == 0 || s.TimeNanos < timeNanos { + timeNanos = s.TimeNanos + } + durationNanos += s.DurationNanos + if period == 0 || period < s.Period { + period = s.Period + } + for _, c := range s.Comments { + if seen := seenComments[c]; !seen { + comments = append(comments, c) + seenComments[c] = true + } + } + if defaultSampleType == "" { + defaultSampleType = s.DefaultSampleType + } + } + + p := &Profile{ + SampleType: make([]*ValueType, len(srcs[0].SampleType)), + + DropFrames: srcs[0].DropFrames, + KeepFrames: srcs[0].KeepFrames, + + TimeNanos: timeNanos, + DurationNanos: durationNanos, + PeriodType: srcs[0].PeriodType, + Period: period, + + Comments: comments, + DefaultSampleType: defaultSampleType, + } + copy(p.SampleType, srcs[0].SampleType) + return p, nil +} + +// compatible determines if two profiles can be compared/merged. +// returns nil if the profiles are compatible; otherwise an error with +// details on the incompatibility. +func (p *Profile) compatible(pb *Profile) error { + if !equalValueType(p.PeriodType, pb.PeriodType) { + return fmt.Errorf("incompatible period types %v and %v", p.PeriodType, pb.PeriodType) + } + + if len(p.SampleType) != len(pb.SampleType) { + return fmt.Errorf("incompatible sample types %v and %v", p.SampleType, pb.SampleType) + } + + for i := range p.SampleType { + if !equalValueType(p.SampleType[i], pb.SampleType[i]) { + return fmt.Errorf("incompatible sample types %v and %v", p.SampleType, pb.SampleType) + } + } + return nil +} + +// equalValueType returns true if the two value types are semantically +// equal. It ignores the internal fields used during encode/decode. +func equalValueType(st1, st2 *ValueType) bool { + return st1.Type == st2.Type && st1.Unit == st2.Unit +} diff --git a/vendor/github.com/google/pprof/profile/profile.go b/vendor/github.com/google/pprof/profile/profile.go new file mode 100644 index 00000000000..c950d8dc7f3 --- /dev/null +++ b/vendor/github.com/google/pprof/profile/profile.go @@ -0,0 +1,791 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package profile provides a representation of profile.proto and +// methods to encode/decode profiles in this format. +package profile + +import ( + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "path/filepath" + "regexp" + "sort" + "strings" + "sync" + "time" +) + +// Profile is an in-memory representation of profile.proto. +type Profile struct { + SampleType []*ValueType + DefaultSampleType string + Sample []*Sample + Mapping []*Mapping + Location []*Location + Function []*Function + Comments []string + + DropFrames string + KeepFrames string + + TimeNanos int64 + DurationNanos int64 + PeriodType *ValueType + Period int64 + + // The following fields are modified during encoding and copying, + // so are protected by a Mutex. + encodeMu sync.Mutex + + commentX []int64 + dropFramesX int64 + keepFramesX int64 + stringTable []string + defaultSampleTypeX int64 +} + +// ValueType corresponds to Profile.ValueType +type ValueType struct { + Type string // cpu, wall, inuse_space, etc + Unit string // seconds, nanoseconds, bytes, etc + + typeX int64 + unitX int64 +} + +// Sample corresponds to Profile.Sample +type Sample struct { + Location []*Location + Value []int64 + Label map[string][]string + NumLabel map[string][]int64 + NumUnit map[string][]string + + locationIDX []uint64 + labelX []label +} + +// label corresponds to Profile.Label +type label struct { + keyX int64 + // Exactly one of the two following values must be set + strX int64 + numX int64 // Integer value for this label + // can be set if numX has value + unitX int64 +} + +// Mapping corresponds to Profile.Mapping +type Mapping struct { + ID uint64 + Start uint64 + Limit uint64 + Offset uint64 + File string + BuildID string + HasFunctions bool + HasFilenames bool + HasLineNumbers bool + HasInlineFrames bool + + fileX int64 + buildIDX int64 +} + +// Location corresponds to Profile.Location +type Location struct { + ID uint64 + Mapping *Mapping + Address uint64 + Line []Line + IsFolded bool + + mappingIDX uint64 +} + +// Line corresponds to Profile.Line +type Line struct { + Function *Function + Line int64 + + functionIDX uint64 +} + +// Function corresponds to Profile.Function +type Function struct { + ID uint64 + Name string + SystemName string + Filename string + StartLine int64 + + nameX int64 + systemNameX int64 + filenameX int64 +} + +// Parse parses a profile and checks for its validity. The input +// may be a gzip-compressed encoded protobuf or one of many legacy +// profile formats which may be unsupported in the future. +func Parse(r io.Reader) (*Profile, error) { + data, err := ioutil.ReadAll(r) + if err != nil { + return nil, err + } + return ParseData(data) +} + +// ParseData parses a profile from a buffer and checks for its +// validity. +func ParseData(data []byte) (*Profile, error) { + var p *Profile + var err error + if len(data) >= 2 && data[0] == 0x1f && data[1] == 0x8b { + gz, err := gzip.NewReader(bytes.NewBuffer(data)) + if err == nil { + data, err = ioutil.ReadAll(gz) + } + if err != nil { + return nil, fmt.Errorf("decompressing profile: %v", err) + } + } + if p, err = ParseUncompressed(data); err != nil && err != errNoData && err != errConcatProfile { + p, err = parseLegacy(data) + } + + if err != nil { + return nil, fmt.Errorf("parsing profile: %v", err) + } + + if err := p.CheckValid(); err != nil { + return nil, fmt.Errorf("malformed profile: %v", err) + } + return p, nil +} + +var errUnrecognized = fmt.Errorf("unrecognized profile format") +var errMalformed = fmt.Errorf("malformed profile format") +var errNoData = fmt.Errorf("empty input file") +var errConcatProfile = fmt.Errorf("concatenated profiles detected") + +func parseLegacy(data []byte) (*Profile, error) { + parsers := []func([]byte) (*Profile, error){ + parseCPU, + parseHeap, + parseGoCount, // goroutine, threadcreate + parseThread, + parseContention, + parseJavaProfile, + } + + for _, parser := range parsers { + p, err := parser(data) + if err == nil { + p.addLegacyFrameInfo() + return p, nil + } + if err != errUnrecognized { + return nil, err + } + } + return nil, errUnrecognized +} + +// ParseUncompressed parses an uncompressed protobuf into a profile. +func ParseUncompressed(data []byte) (*Profile, error) { + if len(data) == 0 { + return nil, errNoData + } + p := &Profile{} + if err := unmarshal(data, p); err != nil { + return nil, err + } + + if err := p.postDecode(); err != nil { + return nil, err + } + + return p, nil +} + +var libRx = regexp.MustCompile(`([.]so$|[.]so[._][0-9]+)`) + +// massageMappings applies heuristic-based changes to the profile +// mappings to account for quirks of some environments. +func (p *Profile) massageMappings() { + // Merge adjacent regions with matching names, checking that the offsets match + if len(p.Mapping) > 1 { + mappings := []*Mapping{p.Mapping[0]} + for _, m := range p.Mapping[1:] { + lm := mappings[len(mappings)-1] + if adjacent(lm, m) { + lm.Limit = m.Limit + if m.File != "" { + lm.File = m.File + } + if m.BuildID != "" { + lm.BuildID = m.BuildID + } + p.updateLocationMapping(m, lm) + continue + } + mappings = append(mappings, m) + } + p.Mapping = mappings + } + + // Use heuristics to identify main binary and move it to the top of the list of mappings + for i, m := range p.Mapping { + file := strings.TrimSpace(strings.Replace(m.File, "(deleted)", "", -1)) + if len(file) == 0 { + continue + } + if len(libRx.FindStringSubmatch(file)) > 0 { + continue + } + if file[0] == '[' { + continue + } + // Swap what we guess is main to position 0. + p.Mapping[0], p.Mapping[i] = p.Mapping[i], p.Mapping[0] + break + } + + // Keep the mapping IDs neatly sorted + for i, m := range p.Mapping { + m.ID = uint64(i + 1) + } +} + +// adjacent returns whether two mapping entries represent the same +// mapping that has been split into two. Check that their addresses are adjacent, +// and if the offsets match, if they are available. +func adjacent(m1, m2 *Mapping) bool { + if m1.File != "" && m2.File != "" { + if m1.File != m2.File { + return false + } + } + if m1.BuildID != "" && m2.BuildID != "" { + if m1.BuildID != m2.BuildID { + return false + } + } + if m1.Limit != m2.Start { + return false + } + if m1.Offset != 0 && m2.Offset != 0 { + offset := m1.Offset + (m1.Limit - m1.Start) + if offset != m2.Offset { + return false + } + } + return true +} + +func (p *Profile) updateLocationMapping(from, to *Mapping) { + for _, l := range p.Location { + if l.Mapping == from { + l.Mapping = to + } + } +} + +func serialize(p *Profile) []byte { + p.encodeMu.Lock() + p.preEncode() + b := marshal(p) + p.encodeMu.Unlock() + return b +} + +// Write writes the profile as a gzip-compressed marshaled protobuf. +func (p *Profile) Write(w io.Writer) error { + zw := gzip.NewWriter(w) + defer zw.Close() + _, err := zw.Write(serialize(p)) + return err +} + +// WriteUncompressed writes the profile as a marshaled protobuf. +func (p *Profile) WriteUncompressed(w io.Writer) error { + _, err := w.Write(serialize(p)) + return err +} + +// CheckValid tests whether the profile is valid. Checks include, but are +// not limited to: +// - len(Profile.Sample[n].value) == len(Profile.value_unit) +// - Sample.id has a corresponding Profile.Location +func (p *Profile) CheckValid() error { + // Check that sample values are consistent + sampleLen := len(p.SampleType) + if sampleLen == 0 && len(p.Sample) != 0 { + return fmt.Errorf("missing sample type information") + } + for _, s := range p.Sample { + if s == nil { + return fmt.Errorf("profile has nil sample") + } + if len(s.Value) != sampleLen { + return fmt.Errorf("mismatch: sample has %d values vs. %d types", len(s.Value), len(p.SampleType)) + } + for _, l := range s.Location { + if l == nil { + return fmt.Errorf("sample has nil location") + } + } + } + + // Check that all mappings/locations/functions are in the tables + // Check that there are no duplicate ids + mappings := make(map[uint64]*Mapping, len(p.Mapping)) + for _, m := range p.Mapping { + if m == nil { + return fmt.Errorf("profile has nil mapping") + } + if m.ID == 0 { + return fmt.Errorf("found mapping with reserved ID=0") + } + if mappings[m.ID] != nil { + return fmt.Errorf("multiple mappings with same id: %d", m.ID) + } + mappings[m.ID] = m + } + functions := make(map[uint64]*Function, len(p.Function)) + for _, f := range p.Function { + if f == nil { + return fmt.Errorf("profile has nil function") + } + if f.ID == 0 { + return fmt.Errorf("found function with reserved ID=0") + } + if functions[f.ID] != nil { + return fmt.Errorf("multiple functions with same id: %d", f.ID) + } + functions[f.ID] = f + } + locations := make(map[uint64]*Location, len(p.Location)) + for _, l := range p.Location { + if l == nil { + return fmt.Errorf("profile has nil location") + } + if l.ID == 0 { + return fmt.Errorf("found location with reserved id=0") + } + if locations[l.ID] != nil { + return fmt.Errorf("multiple locations with same id: %d", l.ID) + } + locations[l.ID] = l + if m := l.Mapping; m != nil { + if m.ID == 0 || mappings[m.ID] != m { + return fmt.Errorf("inconsistent mapping %p: %d", m, m.ID) + } + } + for _, ln := range l.Line { + if f := ln.Function; f != nil { + if f.ID == 0 || functions[f.ID] != f { + return fmt.Errorf("inconsistent function %p: %d", f, f.ID) + } + } + } + } + return nil +} + +// Aggregate merges the locations in the profile into equivalence +// classes preserving the request attributes. It also updates the +// samples to point to the merged locations. +func (p *Profile) Aggregate(inlineFrame, function, filename, linenumber, address bool) error { + for _, m := range p.Mapping { + m.HasInlineFrames = m.HasInlineFrames && inlineFrame + m.HasFunctions = m.HasFunctions && function + m.HasFilenames = m.HasFilenames && filename + m.HasLineNumbers = m.HasLineNumbers && linenumber + } + + // Aggregate functions + if !function || !filename { + for _, f := range p.Function { + if !function { + f.Name = "" + f.SystemName = "" + } + if !filename { + f.Filename = "" + } + } + } + + // Aggregate locations + if !inlineFrame || !address || !linenumber { + for _, l := range p.Location { + if !inlineFrame && len(l.Line) > 1 { + l.Line = l.Line[len(l.Line)-1:] + } + if !linenumber { + for i := range l.Line { + l.Line[i].Line = 0 + } + } + if !address { + l.Address = 0 + } + } + } + + return p.CheckValid() +} + +// NumLabelUnits returns a map of numeric label keys to the units +// associated with those keys and a map of those keys to any units +// that were encountered but not used. +// Unit for a given key is the first encountered unit for that key. If multiple +// units are encountered for values paired with a particular key, then the first +// unit encountered is used and all other units are returned in sorted order +// in map of ignored units. +// If no units are encountered for a particular key, the unit is then inferred +// based on the key. +func (p *Profile) NumLabelUnits() (map[string]string, map[string][]string) { + numLabelUnits := map[string]string{} + ignoredUnits := map[string]map[string]bool{} + encounteredKeys := map[string]bool{} + + // Determine units based on numeric tags for each sample. + for _, s := range p.Sample { + for k := range s.NumLabel { + encounteredKeys[k] = true + for _, unit := range s.NumUnit[k] { + if unit == "" { + continue + } + if wantUnit, ok := numLabelUnits[k]; !ok { + numLabelUnits[k] = unit + } else if wantUnit != unit { + if v, ok := ignoredUnits[k]; ok { + v[unit] = true + } else { + ignoredUnits[k] = map[string]bool{unit: true} + } + } + } + } + } + // Infer units for keys without any units associated with + // numeric tag values. + for key := range encounteredKeys { + unit := numLabelUnits[key] + if unit == "" { + switch key { + case "alignment", "request": + numLabelUnits[key] = "bytes" + default: + numLabelUnits[key] = key + } + } + } + + // Copy ignored units into more readable format + unitsIgnored := make(map[string][]string, len(ignoredUnits)) + for key, values := range ignoredUnits { + units := make([]string, len(values)) + i := 0 + for unit := range values { + units[i] = unit + i++ + } + sort.Strings(units) + unitsIgnored[key] = units + } + + return numLabelUnits, unitsIgnored +} + +// String dumps a text representation of a profile. Intended mainly +// for debugging purposes. +func (p *Profile) String() string { + ss := make([]string, 0, len(p.Comments)+len(p.Sample)+len(p.Mapping)+len(p.Location)) + for _, c := range p.Comments { + ss = append(ss, "Comment: "+c) + } + if pt := p.PeriodType; pt != nil { + ss = append(ss, fmt.Sprintf("PeriodType: %s %s", pt.Type, pt.Unit)) + } + ss = append(ss, fmt.Sprintf("Period: %d", p.Period)) + if p.TimeNanos != 0 { + ss = append(ss, fmt.Sprintf("Time: %v", time.Unix(0, p.TimeNanos))) + } + if p.DurationNanos != 0 { + ss = append(ss, fmt.Sprintf("Duration: %.4v", time.Duration(p.DurationNanos))) + } + + ss = append(ss, "Samples:") + var sh1 string + for _, s := range p.SampleType { + dflt := "" + if s.Type == p.DefaultSampleType { + dflt = "[dflt]" + } + sh1 = sh1 + fmt.Sprintf("%s/%s%s ", s.Type, s.Unit, dflt) + } + ss = append(ss, strings.TrimSpace(sh1)) + for _, s := range p.Sample { + ss = append(ss, s.string()) + } + + ss = append(ss, "Locations") + for _, l := range p.Location { + ss = append(ss, l.string()) + } + + ss = append(ss, "Mappings") + for _, m := range p.Mapping { + ss = append(ss, m.string()) + } + + return strings.Join(ss, "\n") + "\n" +} + +// string dumps a text representation of a mapping. Intended mainly +// for debugging purposes. +func (m *Mapping) string() string { + bits := "" + if m.HasFunctions { + bits = bits + "[FN]" + } + if m.HasFilenames { + bits = bits + "[FL]" + } + if m.HasLineNumbers { + bits = bits + "[LN]" + } + if m.HasInlineFrames { + bits = bits + "[IN]" + } + return fmt.Sprintf("%d: %#x/%#x/%#x %s %s %s", + m.ID, + m.Start, m.Limit, m.Offset, + m.File, + m.BuildID, + bits) +} + +// string dumps a text representation of a location. Intended mainly +// for debugging purposes. +func (l *Location) string() string { + ss := []string{} + locStr := fmt.Sprintf("%6d: %#x ", l.ID, l.Address) + if m := l.Mapping; m != nil { + locStr = locStr + fmt.Sprintf("M=%d ", m.ID) + } + if l.IsFolded { + locStr = locStr + "[F] " + } + if len(l.Line) == 0 { + ss = append(ss, locStr) + } + for li := range l.Line { + lnStr := "??" + if fn := l.Line[li].Function; fn != nil { + lnStr = fmt.Sprintf("%s %s:%d s=%d", + fn.Name, + fn.Filename, + l.Line[li].Line, + fn.StartLine) + if fn.Name != fn.SystemName { + lnStr = lnStr + "(" + fn.SystemName + ")" + } + } + ss = append(ss, locStr+lnStr) + // Do not print location details past the first line + locStr = " " + } + return strings.Join(ss, "\n") +} + +// string dumps a text representation of a sample. Intended mainly +// for debugging purposes. +func (s *Sample) string() string { + ss := []string{} + var sv string + for _, v := range s.Value { + sv = fmt.Sprintf("%s %10d", sv, v) + } + sv = sv + ": " + for _, l := range s.Location { + sv = sv + fmt.Sprintf("%d ", l.ID) + } + ss = append(ss, sv) + const labelHeader = " " + if len(s.Label) > 0 { + ss = append(ss, labelHeader+labelsToString(s.Label)) + } + if len(s.NumLabel) > 0 { + ss = append(ss, labelHeader+numLabelsToString(s.NumLabel, s.NumUnit)) + } + return strings.Join(ss, "\n") +} + +// labelsToString returns a string representation of a +// map representing labels. +func labelsToString(labels map[string][]string) string { + ls := []string{} + for k, v := range labels { + ls = append(ls, fmt.Sprintf("%s:%v", k, v)) + } + sort.Strings(ls) + return strings.Join(ls, " ") +} + +// numLabelsToString returns a string representation of a map +// representing numeric labels. +func numLabelsToString(numLabels map[string][]int64, numUnits map[string][]string) string { + ls := []string{} + for k, v := range numLabels { + units := numUnits[k] + var labelString string + if len(units) == len(v) { + values := make([]string, len(v)) + for i, vv := range v { + values[i] = fmt.Sprintf("%d %s", vv, units[i]) + } + labelString = fmt.Sprintf("%s:%v", k, values) + } else { + labelString = fmt.Sprintf("%s:%v", k, v) + } + ls = append(ls, labelString) + } + sort.Strings(ls) + return strings.Join(ls, " ") +} + +// SetLabel sets the specified key to the specified value for all samples in the +// profile. +func (p *Profile) SetLabel(key string, value []string) { + for _, sample := range p.Sample { + if sample.Label == nil { + sample.Label = map[string][]string{key: value} + } else { + sample.Label[key] = value + } + } +} + +// RemoveLabel removes all labels associated with the specified key for all +// samples in the profile. +func (p *Profile) RemoveLabel(key string) { + for _, sample := range p.Sample { + delete(sample.Label, key) + } +} + +// HasLabel returns true if a sample has a label with indicated key and value. +func (s *Sample) HasLabel(key, value string) bool { + for _, v := range s.Label[key] { + if v == value { + return true + } + } + return false +} + +// DiffBaseSample returns true if a sample belongs to the diff base and false +// otherwise. +func (s *Sample) DiffBaseSample() bool { + return s.HasLabel("pprof::base", "true") +} + +// Scale multiplies all sample values in a profile by a constant. +func (p *Profile) Scale(ratio float64) { + if ratio == 1 { + return + } + ratios := make([]float64, len(p.SampleType)) + for i := range p.SampleType { + ratios[i] = ratio + } + p.ScaleN(ratios) +} + +// ScaleN multiplies each sample values in a sample by a different amount. +func (p *Profile) ScaleN(ratios []float64) error { + if len(p.SampleType) != len(ratios) { + return fmt.Errorf("mismatched scale ratios, got %d, want %d", len(ratios), len(p.SampleType)) + } + allOnes := true + for _, r := range ratios { + if r != 1 { + allOnes = false + break + } + } + if allOnes { + return nil + } + for _, s := range p.Sample { + for i, v := range s.Value { + if ratios[i] != 1 { + s.Value[i] = int64(float64(v) * ratios[i]) + } + } + } + return nil +} + +// HasFunctions determines if all locations in this profile have +// symbolized function information. +func (p *Profile) HasFunctions() bool { + for _, l := range p.Location { + if l.Mapping != nil && !l.Mapping.HasFunctions { + return false + } + } + return true +} + +// HasFileLines determines if all locations in this profile have +// symbolized file and line number information. +func (p *Profile) HasFileLines() bool { + for _, l := range p.Location { + if l.Mapping != nil && (!l.Mapping.HasFilenames || !l.Mapping.HasLineNumbers) { + return false + } + } + return true +} + +// Unsymbolizable returns true if a mapping points to a binary for which +// locations can't be symbolized in principle, at least now. Examples are +// "[vdso]", [vsyscall]" and some others, see the code. +func (m *Mapping) Unsymbolizable() bool { + name := filepath.Base(m.File) + return strings.HasPrefix(name, "[") || strings.HasPrefix(name, "linux-vdso") || strings.HasPrefix(m.File, "/dev/dri/") +} + +// Copy makes a fully independent copy of a profile. +func (p *Profile) Copy() *Profile { + pp := &Profile{} + if err := unmarshal(serialize(p), pp); err != nil { + panic(err) + } + if err := pp.postDecode(); err != nil { + panic(err) + } + + return pp +} diff --git a/vendor/github.com/google/pprof/profile/proto.go b/vendor/github.com/google/pprof/profile/proto.go new file mode 100644 index 00000000000..e7df33ac2b8 --- /dev/null +++ b/vendor/github.com/google/pprof/profile/proto.go @@ -0,0 +1,367 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This file is a simple protocol buffer encoder and decoder. +// The format is described at +// https://developers.google.com/protocol-buffers/docs/encoding +// +// A protocol message must implement the message interface: +// decoder() []decoder +// encode(*buffer) +// +// The decode method returns a slice indexed by field number that gives the +// function to decode that field. +// The encode method encodes its receiver into the given buffer. +// +// The two methods are simple enough to be implemented by hand rather than +// by using a protocol compiler. +// +// See profile.go for examples of messages implementing this interface. +// +// There is no support for groups, message sets, or "has" bits. + +package profile + +import "errors" + +type buffer struct { + field int // field tag + typ int // proto wire type code for field + u64 uint64 + data []byte + tmp [16]byte +} + +type decoder func(*buffer, message) error + +type message interface { + decoder() []decoder + encode(*buffer) +} + +func marshal(m message) []byte { + var b buffer + m.encode(&b) + return b.data +} + +func encodeVarint(b *buffer, x uint64) { + for x >= 128 { + b.data = append(b.data, byte(x)|0x80) + x >>= 7 + } + b.data = append(b.data, byte(x)) +} + +func encodeLength(b *buffer, tag int, len int) { + encodeVarint(b, uint64(tag)<<3|2) + encodeVarint(b, uint64(len)) +} + +func encodeUint64(b *buffer, tag int, x uint64) { + // append varint to b.data + encodeVarint(b, uint64(tag)<<3) + encodeVarint(b, x) +} + +func encodeUint64s(b *buffer, tag int, x []uint64) { + if len(x) > 2 { + // Use packed encoding + n1 := len(b.data) + for _, u := range x { + encodeVarint(b, u) + } + n2 := len(b.data) + encodeLength(b, tag, n2-n1) + n3 := len(b.data) + copy(b.tmp[:], b.data[n2:n3]) + copy(b.data[n1+(n3-n2):], b.data[n1:n2]) + copy(b.data[n1:], b.tmp[:n3-n2]) + return + } + for _, u := range x { + encodeUint64(b, tag, u) + } +} + +func encodeUint64Opt(b *buffer, tag int, x uint64) { + if x == 0 { + return + } + encodeUint64(b, tag, x) +} + +func encodeInt64(b *buffer, tag int, x int64) { + u := uint64(x) + encodeUint64(b, tag, u) +} + +func encodeInt64s(b *buffer, tag int, x []int64) { + if len(x) > 2 { + // Use packed encoding + n1 := len(b.data) + for _, u := range x { + encodeVarint(b, uint64(u)) + } + n2 := len(b.data) + encodeLength(b, tag, n2-n1) + n3 := len(b.data) + copy(b.tmp[:], b.data[n2:n3]) + copy(b.data[n1+(n3-n2):], b.data[n1:n2]) + copy(b.data[n1:], b.tmp[:n3-n2]) + return + } + for _, u := range x { + encodeInt64(b, tag, u) + } +} + +func encodeInt64Opt(b *buffer, tag int, x int64) { + if x == 0 { + return + } + encodeInt64(b, tag, x) +} + +func encodeString(b *buffer, tag int, x string) { + encodeLength(b, tag, len(x)) + b.data = append(b.data, x...) +} + +func encodeStrings(b *buffer, tag int, x []string) { + for _, s := range x { + encodeString(b, tag, s) + } +} + +func encodeBool(b *buffer, tag int, x bool) { + if x { + encodeUint64(b, tag, 1) + } else { + encodeUint64(b, tag, 0) + } +} + +func encodeBoolOpt(b *buffer, tag int, x bool) { + if x { + encodeBool(b, tag, x) + } +} + +func encodeMessage(b *buffer, tag int, m message) { + n1 := len(b.data) + m.encode(b) + n2 := len(b.data) + encodeLength(b, tag, n2-n1) + n3 := len(b.data) + copy(b.tmp[:], b.data[n2:n3]) + copy(b.data[n1+(n3-n2):], b.data[n1:n2]) + copy(b.data[n1:], b.tmp[:n3-n2]) +} + +func unmarshal(data []byte, m message) (err error) { + b := buffer{data: data, typ: 2} + return decodeMessage(&b, m) +} + +func le64(p []byte) uint64 { + return uint64(p[0]) | uint64(p[1])<<8 | uint64(p[2])<<16 | uint64(p[3])<<24 | uint64(p[4])<<32 | uint64(p[5])<<40 | uint64(p[6])<<48 | uint64(p[7])<<56 +} + +func le32(p []byte) uint32 { + return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24 +} + +func decodeVarint(data []byte) (uint64, []byte, error) { + var u uint64 + for i := 0; ; i++ { + if i >= 10 || i >= len(data) { + return 0, nil, errors.New("bad varint") + } + u |= uint64(data[i]&0x7F) << uint(7*i) + if data[i]&0x80 == 0 { + return u, data[i+1:], nil + } + } +} + +func decodeField(b *buffer, data []byte) ([]byte, error) { + x, data, err := decodeVarint(data) + if err != nil { + return nil, err + } + b.field = int(x >> 3) + b.typ = int(x & 7) + b.data = nil + b.u64 = 0 + switch b.typ { + case 0: + b.u64, data, err = decodeVarint(data) + if err != nil { + return nil, err + } + case 1: + if len(data) < 8 { + return nil, errors.New("not enough data") + } + b.u64 = le64(data[:8]) + data = data[8:] + case 2: + var n uint64 + n, data, err = decodeVarint(data) + if err != nil { + return nil, err + } + if n > uint64(len(data)) { + return nil, errors.New("too much data") + } + b.data = data[:n] + data = data[n:] + case 5: + if len(data) < 4 { + return nil, errors.New("not enough data") + } + b.u64 = uint64(le32(data[:4])) + data = data[4:] + default: + return nil, errors.New("unknown wire type: " + string(b.typ)) + } + + return data, nil +} + +func checkType(b *buffer, typ int) error { + if b.typ != typ { + return errors.New("type mismatch") + } + return nil +} + +func decodeMessage(b *buffer, m message) error { + if err := checkType(b, 2); err != nil { + return err + } + dec := m.decoder() + data := b.data + for len(data) > 0 { + // pull varint field# + type + var err error + data, err = decodeField(b, data) + if err != nil { + return err + } + if b.field >= len(dec) || dec[b.field] == nil { + continue + } + if err := dec[b.field](b, m); err != nil { + return err + } + } + return nil +} + +func decodeInt64(b *buffer, x *int64) error { + if err := checkType(b, 0); err != nil { + return err + } + *x = int64(b.u64) + return nil +} + +func decodeInt64s(b *buffer, x *[]int64) error { + if b.typ == 2 { + // Packed encoding + data := b.data + tmp := make([]int64, 0, len(data)) // Maximally sized + for len(data) > 0 { + var u uint64 + var err error + + if u, data, err = decodeVarint(data); err != nil { + return err + } + tmp = append(tmp, int64(u)) + } + *x = append(*x, tmp...) + return nil + } + var i int64 + if err := decodeInt64(b, &i); err != nil { + return err + } + *x = append(*x, i) + return nil +} + +func decodeUint64(b *buffer, x *uint64) error { + if err := checkType(b, 0); err != nil { + return err + } + *x = b.u64 + return nil +} + +func decodeUint64s(b *buffer, x *[]uint64) error { + if b.typ == 2 { + data := b.data + // Packed encoding + tmp := make([]uint64, 0, len(data)) // Maximally sized + for len(data) > 0 { + var u uint64 + var err error + + if u, data, err = decodeVarint(data); err != nil { + return err + } + tmp = append(tmp, u) + } + *x = append(*x, tmp...) + return nil + } + var u uint64 + if err := decodeUint64(b, &u); err != nil { + return err + } + *x = append(*x, u) + return nil +} + +func decodeString(b *buffer, x *string) error { + if err := checkType(b, 2); err != nil { + return err + } + *x = string(b.data) + return nil +} + +func decodeStrings(b *buffer, x *[]string) error { + var s string + if err := decodeString(b, &s); err != nil { + return err + } + *x = append(*x, s) + return nil +} + +func decodeBool(b *buffer, x *bool) error { + if err := checkType(b, 0); err != nil { + return err + } + if int64(b.u64) == 0 { + *x = false + } else { + *x = true + } + return nil +} diff --git a/vendor/github.com/google/pprof/profile/prune.go b/vendor/github.com/google/pprof/profile/prune.go new file mode 100644 index 00000000000..02d21a81846 --- /dev/null +++ b/vendor/github.com/google/pprof/profile/prune.go @@ -0,0 +1,178 @@ +// Copyright 2014 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Implements methods to remove frames from profiles. + +package profile + +import ( + "fmt" + "regexp" + "strings" +) + +var ( + reservedNames = []string{"(anonymous namespace)", "operator()"} + bracketRx = func() *regexp.Regexp { + var quotedNames []string + for _, name := range append(reservedNames, "(") { + quotedNames = append(quotedNames, regexp.QuoteMeta(name)) + } + return regexp.MustCompile(strings.Join(quotedNames, "|")) + }() +) + +// simplifyFunc does some primitive simplification of function names. +func simplifyFunc(f string) string { + // Account for leading '.' on the PPC ELF v1 ABI. + funcName := strings.TrimPrefix(f, ".") + // Account for unsimplified names -- try to remove the argument list by trimming + // starting from the first '(', but skipping reserved names that have '('. + for _, ind := range bracketRx.FindAllStringSubmatchIndex(funcName, -1) { + foundReserved := false + for _, res := range reservedNames { + if funcName[ind[0]:ind[1]] == res { + foundReserved = true + break + } + } + if !foundReserved { + funcName = funcName[:ind[0]] + break + } + } + return funcName +} + +// Prune removes all nodes beneath a node matching dropRx, and not +// matching keepRx. If the root node of a Sample matches, the sample +// will have an empty stack. +func (p *Profile) Prune(dropRx, keepRx *regexp.Regexp) { + prune := make(map[uint64]bool) + pruneBeneath := make(map[uint64]bool) + + for _, loc := range p.Location { + var i int + for i = len(loc.Line) - 1; i >= 0; i-- { + if fn := loc.Line[i].Function; fn != nil && fn.Name != "" { + funcName := simplifyFunc(fn.Name) + if dropRx.MatchString(funcName) { + if keepRx == nil || !keepRx.MatchString(funcName) { + break + } + } + } + } + + if i >= 0 { + // Found matching entry to prune. + pruneBeneath[loc.ID] = true + + // Remove the matching location. + if i == len(loc.Line)-1 { + // Matched the top entry: prune the whole location. + prune[loc.ID] = true + } else { + loc.Line = loc.Line[i+1:] + } + } + } + + // Prune locs from each Sample + for _, sample := range p.Sample { + // Scan from the root to the leaves to find the prune location. + // Do not prune frames before the first user frame, to avoid + // pruning everything. + foundUser := false + for i := len(sample.Location) - 1; i >= 0; i-- { + id := sample.Location[i].ID + if !prune[id] && !pruneBeneath[id] { + foundUser = true + continue + } + if !foundUser { + continue + } + if prune[id] { + sample.Location = sample.Location[i+1:] + break + } + if pruneBeneath[id] { + sample.Location = sample.Location[i:] + break + } + } + } +} + +// RemoveUninteresting prunes and elides profiles using built-in +// tables of uninteresting function names. +func (p *Profile) RemoveUninteresting() error { + var keep, drop *regexp.Regexp + var err error + + if p.DropFrames != "" { + if drop, err = regexp.Compile("^(" + p.DropFrames + ")$"); err != nil { + return fmt.Errorf("failed to compile regexp %s: %v", p.DropFrames, err) + } + if p.KeepFrames != "" { + if keep, err = regexp.Compile("^(" + p.KeepFrames + ")$"); err != nil { + return fmt.Errorf("failed to compile regexp %s: %v", p.KeepFrames, err) + } + } + p.Prune(drop, keep) + } + return nil +} + +// PruneFrom removes all nodes beneath the lowest node matching dropRx, not including itself. +// +// Please see the example below to understand this method as well as +// the difference from Prune method. +// +// A sample contains Location of [A,B,C,B,D] where D is the top frame and there's no inline. +// +// PruneFrom(A) returns [A,B,C,B,D] because there's no node beneath A. +// Prune(A, nil) returns [B,C,B,D] by removing A itself. +// +// PruneFrom(B) returns [B,C,B,D] by removing all nodes beneath the first B when scanning from the bottom. +// Prune(B, nil) returns [D] because a matching node is found by scanning from the root. +func (p *Profile) PruneFrom(dropRx *regexp.Regexp) { + pruneBeneath := make(map[uint64]bool) + + for _, loc := range p.Location { + for i := 0; i < len(loc.Line); i++ { + if fn := loc.Line[i].Function; fn != nil && fn.Name != "" { + funcName := simplifyFunc(fn.Name) + if dropRx.MatchString(funcName) { + // Found matching entry to prune. + pruneBeneath[loc.ID] = true + loc.Line = loc.Line[i:] + break + } + } + } + } + + // Prune locs from each Sample + for _, sample := range p.Sample { + // Scan from the bottom leaf to the root to find the prune location. + for i, loc := range sample.Location { + if pruneBeneath[loc.ID] { + sample.Location = sample.Location[i:] + break + } + } + } +} diff --git a/vendor/vendor.json b/vendor/vendor.json index d6240d041d3..42618f662c7 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -44,6 +44,12 @@ "revision": "e6890e6c30ebf9ce517c96ca1b6ba8ebb2a4d2cc", "revisionTime": "2019-09-09T20:46:26Z" }, + { + "checksumSHA1": "R2m2GM40MMllg36k9ZK31fWodxM=", + "path": "github.com/OneOfOne/xxhash", + "revision": "8f0be54a8d5ccf68817143d8c996147ec5cbd795", + "revisionTime": "2019-11-05T18:42:16Z" + }, { "checksumSHA1": "QfQ5j32qXVWguN/pF1sG9LBje+w=", "origin": "github.com/elastic/beats/vendor/github.com/Shopify/sarama", @@ -1982,6 +1988,12 @@ "revision": "8859ead59b4531961fbc9f0da4db0183df815d20", "revisionTime": "2019-11-28T22:04:33Z" }, + { + "checksumSHA1": "qa49Pn3pSb7pJIAVbQX95qjNilw=", + "path": "github.com/google/pprof/profile", + "revision": "27840fff0d09770c422884093a210ac5ce453ea6", + "revisionTime": "2019-11-05T19:32:34Z" + }, { "checksumSHA1": "c0Z2sKLKi+IKRVzq0IzNvqvfCrQ=", "path": "github.com/google/shlex",