From e339a9972af90346b5acef18a8d9c44f3cb1c66b Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 21 Nov 2019 11:24:59 +0800 Subject: [PATCH 01/14] vendor: add github.com/google/pprof/profile --- NOTICE.txt | 9 + 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 | 6 + 12 files changed, 4473 insertions(+) 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 8fefdeaf543..1077825e68e 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1004,6 +1004,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 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 e300438ddd6..a3ffdf4823d 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1975,6 +1975,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", From 39378ef3451109042db0fd422f7e79ad2dfdbe2e Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 21 Nov 2019 12:07:14 +0800 Subject: [PATCH 02/14] vendor: add github.com/OneOfOne/xxhash Already being used by Beats. --- NOTICE.txt | 9 + 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/vendor.json | 6 + 9 files changed, 1054 insertions(+) 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 diff --git a/NOTICE.txt b/NOTICE.txt index 1077825e68e..8b0ecd7db19 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -2465,6 +2465,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/vendor/github.com/OneOfOne/xxhash/LICENSE b/vendor/github.com/OneOfOne/xxhash/LICENSE new file mode 100644 index 00000000000..9e30b4f342e --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/LICENSE @@ -0,0 +1,187 @@ + 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. diff --git a/vendor/github.com/OneOfOne/xxhash/README.md b/vendor/github.com/OneOfOne/xxhash/README.md new file mode 100644 index 00000000000..23174eb567b --- /dev/null +++ b/vendor/github.com/OneOfOne/xxhash/README.md @@ -0,0 +1,75 @@ +# xxhash [![GoDoc](https://godoc.org/github.com/OneOfOne/xxhash?status.svg)](https://godoc.org/github.com/OneOfOne/xxhash) [![Build Status](https://travis-ci.org/OneOfOne/xxhash.svg?branch=master)](https://travis-ci.org/OneOfOne/xxhash) [![Coverage](https://gocover.io/_badge/github.com/OneOfOne/xxhash)](https://gocover.io/github.com/OneOfOne/xxhash) + +This is a native Go implementation of the excellent [xxhash](https://github.com/Cyan4973/xxHash)* algorithm, an extremely fast non-cryptographic Hash algorithm, working at speeds close to RAM limits. + +* The C implementation is ([Copyright](https://github.com/Cyan4973/xxHash/blob/master/LICENSE) (c) 2012-2014, Yann Collet) + +## Install + + go get github.com/OneOfOne/xxhash + +## Features + +* On Go 1.7+ the pure go version is faster than CGO for all inputs. +* Supports ChecksumString{32,64} xxhash{32,64}.WriteString, which uses no copies when it can, falls back to copy on appengine. +* The native version falls back to a less optimized version on appengine due to the lack of unsafe. +* Almost as fast as the mostly pure assembly version written by the brilliant [cespare](https://github.com/cespare/xxhash), while also supporting seeds. +* To manually toggle the appengine version build with `-tags safe`. + +## Benchmark + +### Core i7-4790 @ 3.60GHz, Linux 4.12.6-1-ARCH (64bit), Go tip (+ff90f4af66 2017-08-19) + +```bash +➤ go test -bench '64' -count 5 -tags cespare | benchstat /dev/stdin +name time/op + +# https://github.com/cespare/xxhash +XXSum64Cespare/Func-8 160ns ± 2% +XXSum64Cespare/Struct-8 173ns ± 1% +XXSum64ShortCespare/Func-8 6.78ns ± 1% +XXSum64ShortCespare/Struct-8 19.6ns ± 2% + +# this package (default mode, using unsafe) +XXSum64/Func-8 170ns ± 1% +XXSum64/Struct-8 182ns ± 1% +XXSum64Short/Func-8 13.5ns ± 3% +XXSum64Short/Struct-8 20.4ns ± 0% + +# this package (appengine, *not* using unsafe) +XXSum64/Func-8 241ns ± 5% +XXSum64/Struct-8 243ns ± 6% +XXSum64Short/Func-8 15.2ns ± 2% +XXSum64Short/Struct-8 23.7ns ± 5% + +CRC64ISO-8 1.23µs ± 1% +CRC64ISOString-8 2.71µs ± 4% +CRC64ISOShort-8 22.2ns ± 3% + +Fnv64-8 2.34µs ± 1% +Fnv64Short-8 74.7ns ± 8% +# +``` + +## Usage + +```go + h := xxhash.New64() + // r, err := os.Open("......") + // defer f.Close() + r := strings.NewReader(F) + io.Copy(h, r) + fmt.Println("xxhash.Backend:", xxhash.Backend) + fmt.Println("File checksum:", h.Sum64()) +``` + +[playground](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/vendor.json b/vendor/vendor.json index a3ffdf4823d..9789251ae32 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", From ed96095c52519a69692190185c35c89d0c78e362 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 21 Nov 2019 11:34:47 +0800 Subject: [PATCH 03/14] model/profile: add profile data model --- docs/fields.asciidoc | 176 +++++++++++++++++++++++++++++++++ include/fields.go | 2 +- model/profile/_meta/fields.yml | 113 +++++++++++++++++++++ model/profile/profile.go | 129 ++++++++++++++++++++++++ model/profile/profile_test.go | 132 +++++++++++++++++++++++++ 5 files changed, 551 insertions(+), 1 deletion(-) create mode 100644 model/profile/_meta/fields.yml create mode 100644 model/profile/profile.go create mode 100644 model/profile/profile_test.go diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index ab305bf495d..efede826b06 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -14,6 +14,7 @@ grouped in the following categories: * <> * <> +* <> * <> * <> * <> @@ -1107,6 +1108,181 @@ type: keyword -- +[[exported-fields-apm-profile]] +== APM Profile fields + +Profiling-specific data for APM. + + + +*`profile.id`*:: ++ +-- +The unique ID of the profile. + + +type: keyword + +-- + + +*`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 span, 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/include/fields.go b/include/fields.go index 30b605e5958..90103bb95f4 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 "eJzs/f13GzeyJ4z/nr8CX83ZlZ2lqBfLju09d+9XYzmJzvhF11JuZubmHhHsBklE3UAHQItmnvP8789BFd76hRQpiY4zq9k9N1azGygUCkBVoepTfyE/n3z6cPbhh/8fOZVESENYzg0xM67JhBeM5FyxzBSLAeGGzKkmUyaYooblZLwgZsbI2zcXpFLyV5aZwTd/IWOqWU6kgOc3TGkuBTkcHg0Pht/8hZwXjGpGbrjmhsyMqfTr/f0pN7N6PMxkuc8Kqg3P9lmmiZFE19Mp04ZkMyqmDB7ZZiecFbkefvPNHrlmi9eEZfobQgw3BXttX/iGkJzpTPHKcCngEfnefUPc16+/IWSPCFqy12T3/294ybShZbX7DSGEFOyGFa9JJhWDvxX7reaK5a+JUTU+MouKvSY5Nfhno7/dU2rYvm2TzGdMAJvYDROGSMWnXFj2Db+B7wi5tLzmGl7Kw3fss1E0s2yeKFnGFga2Y57RolgQxSrFNBOGiyl05FqM3fVOmJa1yljo/2ySfIC/kRnVREhPbUECewYoGje0qBkQHYipZFUXthvXrOtswpU28H2LLMUyxm8iVRWvWMFFpOuT4znOF5lIRWhRYAt6iPPEPtOyspO+e3Rw+GLv4Pne0bPLg5evD56/fnY8fPn82T93k2ku6JgVuneCcTbl2EoxPMB/XuHza7aYS5X3TPSbWhtZ2hf2kScV5UqHMbyhgowZqe2SMJLQPCclM5RwMZGqpLYR+9yNiVzMZF3ksAwzKQzlggim7dQhOSC+9n8nRYFzoAlVjGgjLaOo9pQGAt56Bo1ymV0zNSJU5GR0/VKPHDtanHTf0aoqeEZxlBMp98ZUuZ+YuHltF3xeZ/bnhL8l05pO2QoGG/bZ9HDxe6lIIaeODyAOri03+Y4b+JN90/08ILIyvOS/B7GzYnLD2dwuCS4IhbftA6YCU2x32qg6M7VlWyGnmsy5mcnaECqi1DdoGBBpZky53YNkOLOZFBk1TCSCb6QloiSUzOqSij3FaE7HBSO6LkuqFkQmCy5dhWVdGF4VYeyasM9c2xU/Y4vYYTnmguWECyOJFOHt9or4kRWFJD9LVeTJFBk6XbUAUkHnUyEVu6JjecNek8ODo+PuzL3j2tjxuO90kHRDp4TRbOZH2Vys/7UT5WdnQHaYuDna+e90qdIpEygpblc/CQ+mStbVa3LUI0eXM4Zfhllyq8jtrZTQsZ1k3AUnZm4Xj90/jT3fJl72xcLynNpFWBR22Q1Izgz+Qyoix5qpGzs9KK7SitlM2pmSihh6zTQpGdW1YqV9wTUbXmsvTk24yIo6Z+SvjNptAMaqSUkXhBZaElUL+7XrV+khHGgw0OG3bqiuST2ze+SYxe0YJNvST3mhvewhk1QthF0nEhlkaUvG59f7fMZUunnPaFUxK4F2sLBSw1BhY7cMEE4aJ1IaIY2dcz/Y1+QMu8usIiAnOGhYt3YhDiJ9QysKxCkiY0bNMFm/J+fvQSVxB2dzQG7GaVXt26HwjA1JlI10880l86yDXRf0DMInKC1cE3u8EjNTsp7OyG81q237eqENKzUp+DUjf6OTazogn1jOUT4qJTOmNRdTPynudV1nM7tJv5NTbaieERwHuQB2O5bhQgQhRxYGbSWuDlbNWMkULa6433XcemafDRN53Is6q3rpum6vpbe+D8Jzu0QmnCkUH64dI5/wCexAsE3pp0GuvU5jTzJVgnbgFTiaKant4a8NVXY9jWtDRjjdPB/BfNiZcMxINo2X9Hjy/OBg0mBEe/hhO7vX0H8S/Der3mw+7nDcWhFFwYbv5nCujxkBMeb50uHljeHZ/7uNATqtBdZXuiN0ZlATim/hdohH0JTfMFBbqHCf4dvu5xkrqkld2EVkF7UbYWjYzCX53i1owoU2VGROjWntR9p2DJuSFRJ3nJJ4nLKKKupUEDd8TQRjOdof8xnPZt2uwsrOZGk7s+p1Mu6ziVV8/c4DQ8UtyT+SE8MEKdjEEFZWZtGdyomUjVm0E7WNWbxcVCumz+92tgOiDV1oQou5/U/grVUF9cyLJk6r08bxW3uaDyNrRNizA1fjuyjirosxi6/AEcYnjYmPM9YWgMbklzSbWZOgy+K0Hc9nZ2xugdX/6czYJrNbNL0YHgwP9lR2lKoxuqHD1EYKWcpakws4Em7RZ04EofETPEXIk5OLp7gwnXbiCMukEAwMxjNhmBLMkHMljcxk4Sh9cnb+lChZg7lYKTbhn5kmtcgZHuRWWVKysI3Z3U0qUkrFiGBmLtU1kZU1I6WyCo+38diMFhP7ASX2vCsYoXnJBdfGrswbr1zZtnJZoiZGDXFmKw6iLKUYkKxgVBWLwP0JKLmBWlnwbAGK5YxZ1RcGOFz7wBR1OQ4KzaqjspDh1G5MhTsSsB1rh8oMlCtHUWeanL4RHgeBd7PoGnpycvHhKamh8WIRTxyNynNgPa6Js8a4E9E7fH744lVjwFJNqeC/w/Y47B4jD6YmfEz6ga47tP0gpZWLd+/eJOsiK3hLv38Tn6xQ8E/cl3YBeBmh2gkFN9zKJ4qjZ51bFpa8iQwmLCruik2pykGhs/qaFHqQvI/K3JijB4xLaxFOCjknimXW1mmYk5dvzl2reFpEMju02Qf29YQyWBSaiaDG23cu/vGBVDS7ZuaJfjqEXtACrdyy7nSFnh6rbjU69faHAjcW05YOpyF7LhlFhaZAzJBcyJIFnbXWqPsbpkqy491XUu1Ea1exid9BHCmiNUCNy8H97GwznNkxC7YJ2GYJA9xSsWSJqZ/m2EVKP1qZToh8B/ZEqXVtGeJajUYRF5a8X2uBEwA2Elo93rnY01jkr5Cm06RVdnC+9mCVea9O8AVhe/u+n+C9g8WD6hPNc6JZSYXhGezH7LNxmhb7jDr0ABUbv0p10LeMJDfcDpf/zqLBawfKFBjBmpuauuk4m5CFrFXoY0KLwguf36XtDjeVajGwr3pFQRteFIQJa/I5uUWXoVUmcqaNFQ/LUsuwCS+KsMnQqlKyUpwaViw2MHZonium9bbsHJB2tGydbLkOnU4StplyzKe1rHWxQGmGb8K+Prds0bJk4ColBdfgSzo7HxDqzz6pCLWb/WeipZWTISH/iJx1qhP48qK2PGNE0bmnycv9aOgejJBlTc1PWMM4KnZ5jb48PK5GQ16NLCmjIZI1GpCcVUzkTvVGvVmKSASY2W7GomYz/L/uUKV6+JWeq5HG8cIwfYsKnMwHekKanzUI+av9Ab0g4SLCrRM3Tbidddn38rhBGArbFpRzt69i+8NGn1Mmhxk3i6stGdJvrG7bOzvvrS7NaNElRwrDBRNmWzR9SIz60FmHvg9SmRk5KZniGe0hshZGLa64lleZzLfCOuyCnF18JLaLDoVvTpaSta3ZdCT1TugbKmje5RRsWbcbnVMmryrJw3nRdKJLMeWmzvEMLaiBPzoU7P4/ZKeQYuc12fvu2fDF4fHLZwcDslNQs/OaHD8fPj94/urwJfl/dztEbnGf2v1JM7Xnz8jkJ9TCPXsGxPkKUDOSEzJVVNQFVdws0sNuQTJ76IIqmBxqb/xZFjwxKOFcoZaTMbuLO4V4Ukip3GEwAM/DjEd1M54aSF5BqtlCc/sPfxOQ+WWtExI+SJPcdsI9B0f7vIRDa8qkH23XXzGW2kixl2eduVFsyqXY5kr7BD2sWmh7//FmGV1bWmqOpt6V9h81G7Mmo3h1Cw3hhaZwnp0HxcnviHBYpJKFTkvv8PBXcGfnN8f2wdn5zYuoELZ0oJJmW+DN+5M3y6gmDd+wGbb50rusl/Dm0pp8aLmcnduOnB6P8RsfTi6DUUyesOF06LwutEiNd4IWoHfINK4AwlpJ7EBraIKbTkxJIWlOxrSgIoOlO+GKza0ZAna3krVd0S2O20FXUpnNlE6v5GijeL8mmnLDtv9n4Qfamxvoe41Rn+PXd9Lujpp0dOZkHaVz+XycuzlYJvx2d9KGKZZf9emVD3e8WYNjxqczpk3SqecR9j2AgVQVyz3Juh57dTTM//fxLgSPqaQ5Zx9OpCI7EymHU9Dth5ksd6yFv5P83b6iwagTd/WSM8NUCUdxpVjGtbV/wLdB0SKFC0uItqnHBc+IricT/jm0CO88mRlTvd7fx1fwDWv3PB2SS7WwkmokGvOfuT368HgdL4jmZVUsiKHXcVbRgi2oNuD/x5ATNJaFNAQMsTkrChj75bvTeEm6k8lhfb3TPUsjMxoiYWR1BdP/BSSCTSZ2Ad8w26vTadwcPmGX706fDvDW41rIufCeqwZZxLF+4F2EwKKKRrF37cER2RWedr+hWcvHyCGQnj+32IDILJOYOBHryQ48b4hNrZkabldiUosMnclSoYvWdo53OSUD14WcLNsxqCDvTk/OIWQAR3wamkpFZbc7OlZSXmxpcFb9J9CB11mGXQImdVH0aJIPSsSuJrYb6BaUfnpDeUHHRVfBPCnGTBnylgttmJv2Br3gj/zDhAJ6375U4CC3Fj/SjaGYuHghHJ+/5gXP3X5VUGO1gh7hQTq3KD3pTGBnXSJmVM+2ZkEjp2AvsP3YfTKTSjGrjjaClSboQIZNQxAqpFikoY+oWCWi8pNmLhBjBKPgOTp+4Q87ulEIkMukmOBc0aLRJxW5PSbihQfxAa19QrWVeJyPLdusbotWsJOAhi5VWzJiL2ZWS0VvBASvcdElJNl3KOw7jVtQWWOX4RLUP1h+B4px7ATFI/jKoSkCF3sTRUNwawzbw8sMjHnxajhEvpClYXoT8p4ZxTMMn9FpeA4V5O2bIwzOsRIyYSabMQ3OmKR1wo12kZGRSCtdzYDeRmQm1yHso0mCa1fVwoVcKlZKE4JEiKyN5jlLempThjRR4mIC/YD8pIv4qXMkNWOPsdHYEAQ/us69qWSb5TqS6hi2yXVXBm7O7e3Mu5eRQdgXBH2mFw48D4G8bpUtSM4nE6ZSQxfcZRzCV+1ZZZfnnmGCCkOYuOFKirLpa4mydfLzReic5wN/mQHyTz5++oGc5RhqCxfenQXfVexevHjx3XffvXz58tWr1p0NqgG84GZx9Xu81Xporp4k/RDbj+UKXqWBTMNSiYuosznUeo9RbfYOW54vFx+1PXE483FxZ6d+9wJa/SJsE8r3Do+eHT9/8d3LVwd0nOVsctBP8RaP7EBzGsHYpTrx08HDbiDeg1H03u8DSUzeSjaao2HJcl43jdhKyRuer3Wpeu+7IVhrvsOhX5xpWgmd6wGhv9eKDcg0qwZhIUtFcj7lhhYyY1R0T7q57rhr2nckDzYo50u+43JLj2Pc6B33/ZHceLgiNCm82Aw/cYEhnayfJBGhYhmfcO9KDlRgdIVzDzhnpJykjSQpZEwz3++MFVWiQMJ5hU7M0LR2J6FYWAYZHiyEdQ6oreh4TgmOg+d5cw3zkk63uqekawM6CzeoSNCcajKueWHscd5DmqHTLVEWJcvRRadNApK8ttW9J/ltKzLc2pstdOqSxRr9bnE24pjjHVHYTVBkt7WdYOukpIJOwW0Fse2ens5Ognl1yTaSBEGlG8lp6/GKrSR5dXWwHGrPydtw6YqXAvvN/LKeNpP4uNsi43D3cZFxX2PoViPybK34rajGYkrqA8VvhWYhjusxfusxfuvri99KF4u/5nM54W0efqkgrnR7eozkeozkehiSHiO51ufZYyTXYyTXnymSKznE/mzhXA3SyXZiunhle0tP+lsCmVgjgqlS/IYaRk7f//NpXwwTrBqwDb6qMC6IG0r8JW6k4EWJvDGSjBfAiVMG4AAPP8JtBGZtoLZ9ueispbL8R4do5R2N8jFO6zFO6zFO6zFO6zFO6zFO6zFO6zFO6zFO6zFOa604rVw0YFxOP1zAnytucL5v3NrYQ/X0wwX5rWaKMw1zRYWeswQp0v7uArWc559xCH4JMAERY8W3tbBmml2tkkyZQZQEbNY1+mSUCw1hD6/h/dFTB9q28J2krcO+7GEGUKAifJ5rEbsNl1Aaj3iqAZrTw+MgDXh/PWeK+SiD3O0tXGM7XSrx09HTTe6YGiN+8NvP3RNBqFJ04ZmBXHbfo3JDrTYDZBDtED0UM7USyZL32KsunSbR8hiB/f+aLRzL4s2PnxucAs08DGjjYmu8IG/fXESYpk8IT4JtzegNQxifdLMo43DwR9+5IHP71ds3F675tt/MTrMVP/DVofWJKFnwS/Ny0r7nxZycGFJywcu6HLiHoV0/qLLWpoHYOLK9jCxxEArYGYY9e732MCAlrUKT1LaWzSBewnjUYKpJJbXmYzyRc0DboGJh/8s9wAsuXH+D1U8o1SRDBLXGjWhLIodZQbd294kxfBR9SmFC/C11jhLDAWgPPSEIWtPZ684+9JKexHFuxTADapPdEe3sFjCxWxyMYhCl9/7ipxUTufbaCURdwYblWZI26MfesTIOD4b+//dyYZve9sum6WglLglfapFOKoRw0U2gOkqyGcXD7M2Hk/dv7YIYM8ss+31xw/JBujnt7moyQnUibjEmuQmXwgP9WbVGV9KyGOzLuBigEViXQ3IW9ipr8Tn7sN2mB9MdAfSQv3Yd2ZOHAQ52Z1rm8/lwifPAz4wx6xhKy9xrlvcQ4wGezxvQpOzODeMFBvROgt01x9YYz2bpxs4msC81buy5zqjKWT4k/2RK+pg6K8q+fbcGEv6NI9Owi57b2H453WJc4+UsxjTecYsB0WzQPWM0Z+pqUngw4i2srxM4s+WEHJGCGcMU7JLYM4GeG4HJFULnxeDH1+TkZEAu3wzIp9MB+XQyICenA/LmdEBOP3ZE1v25Rz6dxn82bz23ZsDZGbJDQ49zashRrflUJAjrSk4VLVECAyp8w5MDahmGaSQNQfxTxWNkB24Oumuyvzg6PDxsjFtWPbdhDz54xCa0OoHtzKlRGFfJ0G93zQW4fVGBbei0JEBopz43wP41nncR+AyvQ7EZ1JGBMwDHnba5lEf/8dPbT/9o8CjsjF9MY5ATj2LnDgw0TW7VDxp7+DaPRjgTW6SlR1+4PW7laAgp9irFhQGI2GxGoYiC0uTJmBVyTp4dQRSXpYAcHr14OkjEX+rGF3E7D0YSog0yndHKLiuqGTk8gFNkCn38cnp6+jRq4n+l2TXRBdUzZ/T9VkuIxgktu6aG5JKO9YBkVClOp8yZDxrV1IInsVwTxvK0hUyKG6bcrdYvZkB+UfjVLwJEEN2uRQ9M7YpjNkzzH36J83hx89Vc3AShCMzfpjCETsDKi84FN8CIWtsR0e5G4RqagVXonFNANOyFoadBZI2ux0d2nIdDxxUQjUGD55FC3IPcmvQGbGxjZ4AiIiQxivICAG2Z4rJf9+1n+uO1GW5/j9dmG12bRfn5MjaCM5VWKxUnJydN5dibq1f3CX456XjpioKcnVs1jkF60Cj1boxabgb/48h7+5zs8MmEZ3UBTqRaswEZs4zWOtxE3FDFmVl4+ygV1JIabe1C25Qja0jeYl2nSF8Sru4JNVhxQxJwjCbMGUWNFaqMcBM8Wgg7lLPP9uvSSknaNKoE+BH8zqi2mr2RocWIHYuaitVvJ7KbahkMnLb3pPnssD3BoAx/CVvA99UfI/fh49tPnz5+alC3xbWxmy6O4OMnGa2g9tDAMdrqpCB/zcMLIHpj6ldyRyBFsQC/qwZw3uR2oYHWC69livkqZUCfiJVrJkhb+5pgXSoiAd7n724EGkS0+ofKGcCFiik3/ieyQgdssbBNaCnDueIMNlwdT4fkROSQwp1JEW1Xx9Xm2l9+V+Fd+taUc3tCZy8Nvt9QdCVr3AJhmblVt0DvmaF7qb/aZ/o5h/T68PW3VTboKU93v9ovSek+OMcCf+1gNDFySEYs00P30givwT0ZcRMExQi2nlobrJcCV6JFBx2bkJ9nTOCcwQRioZigr3GR84xpsrfn/KTuDgNKbRlJdMGnM1P05akno4HvXXFDS1rB7BZt7TflULhp/qsl1cfXZTNW0hb/SaOCV4/oHA4Phgep5CglG0mlb8OD1cWsYlJnBpVP/H0QNKhRfBfg2gh8/Anx2kvUH/A9dxNUVQyygwqGqAiWzX4jgJvqjNpTKNR7+iZdW9xoVkyioU0Ftr7BTd2WoqKBmej3ad0oIIEr3XAPmbzaE0PRQ0FaJG85GaFQXu9gvb+q0bA2NLu+strFNk9Y6IVAL+FKBkZpBagq4OqOfW7B9X0h5TNwfJBWHnLZ7lTrBlwA+5yxKoatJsv3V3pDhwUV0+GHuijOJdwSvPWvp+v6plXE4u3NmkXqcE31JYp7QP7+XPFCehMCc8oVzxrrM2wDJ1D3sFklwy7Z9jmZ1IWD5McZrh0ay7x59ryL9RlhM/c164y/TKEm3GCB9SOmsY1Y6k5OkkG49nxT1JdOI1AdzGPNOASZWNPDubrRyAgx0q5Nfy0N9lgaBTzA/M2ewiBjZuZW9aahAoDTMZIqeNiZq6mBxe+yQmo7thM/E7ezG/MSXJNYXafGzK0CWsSKC/BnWkEQCOpndPKaazbW4GtwPZWWyPKSlRLiSJiGig6uuTxhfBS4m7oQTCHICY9FDt3LOqPCDh1KHG6Cd7NG1tWdVW9sPejb3p3fzI12ToOQV4QYAGmgQVLCF649ucbZixrdjAoywhd83YxR9ASHibBrfQQM2aN5PhqQkRP5PRB5Bo8mvGB7qDXnI7yN8XcSocVQWS8JA0HogqoAaehDyak1U3sV1doycw8DfZpHtCN9G9Px1lk+2EOb+UGxmPHpzBVQ6d8DYYf01ktrVqJ9LH29ltbkoECMBn5ONRPaXRjFnDAayAx0xZa9Rkp9aZufqbKLGwpbTmqA3QrqppxY9XNA5swejgJTayAYitCmg8kqc5k9Y+Dmwl1EhngpV4K2wvLZtWbowMpo3Z+mBjMNEAZxa1iuhz2cuXvmdKAsuY0Lg3AFrBvVExM5SNL5fWSRHajfRHOs/x0AqUKV3Fokuf0DV9WpiLgDBLc/rOVrz/Xa/kMqYocHtgbo/LjTyhumYJu1lmZQIbymk0iYFZ6fucjlXOO5T85Ou/Nw/OL4ZZP5uKxvWWB5NJib/HU7DDbSQVHrrzluDwQowx1oV4zChuELOGKlqwVa+p1C3G6FosVk90luz9TMZSbF0umhcFDyyKSo1yb15IbjrKfSeQgaae/TZ4KUUpuklNHARcaZuYxVyt0FyJj1mIW4n/o/szToolGrO6NFBpAYLs2pgOgPVBRSj4i7SHdhgSjioc3GuQ3TAp/6GsVKG6/ysJzwViFNT0kpBY9lvEjSxO4umG5+xuyfHoLMSHLNWEXqCncK+ChdXE2uQmFHoLTJR3te4YrLaDFIZzZeQfYEGefUUM1uSzq7f0A+dtOKihLNWvbgsYcr2BIROajASCdnNVhFWSqvGGFKpN2Jk/2jkNOBs3IKOX06SDu3K8LPFKoDiwjBkazCTJZJxnK76ihMpWKZLEvYiaHkqZAm+FSgeasiNPoGgyZEaJUyr5NKq5hiMZFFIeeoIFCSS8RiFJ1mejxgFc1mbJjwIkxvrdbJle9JKmx9yUVVmyv/o6BCujAsr3TWJn2B6ve8KHjvO3i1AzJy2Cs4p67rht5A4A4qdNuUJNx9kOt2JePfzBoHirnbLxOvmxpBdX07jN8+oHeBjjE3p7yT/MHEOhFDyw6KSGrnjGgfDyhv9jj0z61mc5Om89sTBG6rXGnwFjbXFrMufqR6Rp5UTM1opaFAOBTOnnAxZQoCPZ7CtROdu/PJSDsBFG9EwgByVkoBRUkZGsbg8uNm0ZM668EN+/518tc3p1/Mn3R2akcTkJ8Su6VFc2/t6Gu+lgDd2bLyAVVLzSm8HOjq8HOna7fR7Bp7JcpsPEjtHmc/djZ/4khfYRK0zC54OoptjrShhlmDixZUlaOvU5MHIpsexHSb39rZir0kMderSmaDduH0FNCEQMHRdVVJZbSfI8sT0MWhaVRdinoKm5P0ilBoNt5RUVeb2h3oeESfwOkEW8LTgbfusOVRKxajoXNGHyAY8fb9ZUdfg+teJ90G3z/ROXhNg5UiJwBhooIo/+Q0jBUb2RJt3SoRcDHM8MDJZXaVYHzmXFsxzcGAxgQy0JsZVdmM5XG1WIWEhxrwihnF2Y1X2kdXODejLisvWEUOX5GDl6+PXrw+PEBkzjdvv3998D//cnh0/L8vWFbbAeBfxMysbYOWq8Jnh0P36uGB+0fcFqQqia5BQ5nU1szQRlYVy/0H+F+tsn87PBja/3dIcm3+7Wh4ODwaHunK/Nvh0bMmWoKsjdXVtrl3ui6WbZ9nqYISvVLWWsvQkxl3Et084BstJ3XWfW3f6BHEF93W6Fg4AgkZTSgvasV6N8TQ4lob4/obYmh3/Y2x7iqmW8bP3b0It+B984ZuAAAawX3PB+xcLLSzMrpeg3dymljJpV32srljxat3b9r4xdqDo0S0nJg59cV5+8O8UbJwH71YaCjAPjOmyp8i6jbUc6/HDpbPNexirO3xG4vX2/89uWZKsGJA3vNMSdv/nhvinl/ceyd1zu23T7vziF83plFxfX2lk7112W47KSTtvSf7xPU1gRbglFFcKo5ROu3xa0ci0bIASdNJBO9PmjljH4YM5rZzTaDOP2OqjU4aaL8SUpVrSOLSQex+ACcv/53l0OwtAxoEPzx4rMIgDuySPDw4aB8RgLTPBWLduATkhaxh6TVNZScIIFGYVaATgnTT32GbmFOsIKaZ3QREHAZyzV3u06LwdcZbxo9mv9WJ6fRwAEEXrmGPNblUgWWBBv8qhDgg/d6lAEa17rgtB+C1odfNTCj2mWaGSJUz5fLZnIaT+C+d97JIwKKixyVYuB1m3bAEfe1BIH4wCB/vpkIHzeVDs8z5T41c6V76OWQ8eR9cbDHNjEpC7vAtby97bzBNIn6skEK8wtA5T+rKWwPJFUiYCLjccr1y5othCM21SUNFnGC6iQn+SG33197sRLezh/GMmWUz4LyOCjkdavh96H8fZjK356pTV/3jGNfHkRcG6+r7eA+8qHBdNPgep6OhHHuIqrgyz04vng6bmoX7IpcMtUQn1VC0Q85F6BGDuUq6IDFKK3pNZYUXT8uHC5GMrQF3j4HvmjJt6FrwYKv9H+hcudUD4q7eUh9IQ3G6sWwPXvQlThC7TrdYX2I30eqTBPEA29wckl0QceOwMxy9gjK5u3c0N630QjGaL5wk5WxC68J4QY+u4eSUxAXohQOLdsy5TtfKSdT/Qqc+RBay7ahd/lLA1ffZqet8522tZMX2T0ptmMppuZMk7NDxWLEbvI33r19c7jzFYEry44+vyzJuJpwW/q29g+evDw52nra20W6QygMZdwzFBTRe51WoMXwnjOUclV56I6H0SoAdx/m2HwKaiLXDgWpP84Q7R4ALQPne/70i/uQEvmoHK0CyW8chA3EgmoztLty8uXLxFPZXuMjzUQC2bYf27IdniQq5826Tp1rLDOcOtHywCnHbHYQQDf83Ffm+5R0vGjFpzlk/cKlblZJ5neGZDF2eeduYvI+eif/6/uz9f7t3IfDNteiK9+inQ/zYGVfekunCrlOIzbfTal9vjcdLTdhiQrjOZpWA4GLoHtvg7jtIDOIl2glAqt3IfNNNdAdnMwiH8xCnUuNdklE0u/bWnNZ9Xuve683NSAb2Qzsgg7aPdamMmOvN71s0rlk9YBOmUmMUH9cGvVolMxSzpSHEop/N+FvAmoBmnCMTry/rCg6rUWm7Grm7QavcWAVmBKMYJQ5SvPDEu2y7qE1UXeyrA6K51WZdc6DOiki31+0sGe3LPADJ3NK5hgicS2qdBII6tn8LwDkgc22LyoDWFaJjwy7qUO87NO7PZMn2aeF5Fy52LFHdcO4HoxXWT+ikQ1blFP4AEby1zPRzxUuqFg5IzB7qP5ydPl05r7uHBweHLdjrsEdum8LUi9JLXXcuZ1TPhmX+fEv0vT99jl10O9UzerilXi9+PDlc0e3R8xfb6/jo+YsVXT93wLZb6fr54VFP11xsL1rqzLYdzTwfto4biwj/9upUe60cPX/x7OWzFob19qh9b4lNloclUWaGFnEEtDeeevfgxfFBi8x7HsE9J3A4Oilc6/AJb1toXwib0PHGWlghEcHvxoNwkWlSPMkOy3zWcXuzlnOxNec2qum2g12IaFG9mO7dPbCiZlu3/9/XRQHtp0rSqoN2fxnjNP99Q2dij1JqG7FSD8VWEp3uoygWRLGC3VArgNYShxheSKkDTWvH/tmTsHv44lmrwoqhasrM1RaZegk9IFutZakXZcHFtf5iKRvASwgAeGLZMrDrAIxJR8nTzgwHyy/ARW4VTgdsbauv/AT6iop3BEmKz5OLljKDa2e5SpPUZEATEE32H9yfKyz2H5hM88AyqtQiLZpLY0CEL1yR1gemXtNserkxSCPWumiY/iF1XvFwyWtYNoPIlHixZSk7O09SBDAcUO3purJ2Sr5JetjXU97nqy/t8xWW9fnKSvp89eV8tomg9FjK5+6lfL7GMj5fQQmfrjnuz6/wYPkJdhngxJOUx557LnjH5SvbV7xO5Yco20GQ65wr/7r48F81KPyXRoLvBCM7+fzR/31LSu4M44pBPKNExsto+J0WU6m4mZUhJZMrd4edXHewIsedymX0lqUE9KkZ8/kF70+fD8DP8hTkvFLM7dZDcpLnnoxJuJ3AOviuifGCFHLOVEa1NzCbxOFmbAnEqyQAy8LYEc0qqqiRATCbakQtqhSnhpEnWtBrvFkfEIyPmdFnV88PjzbB5P7SHrEv7wz7Y/xgX9IFFtaT1I0c9x/93yuvGH399cYVIwajFXZFVLXBfGos5B8Wz9s3F5hA/K1fBL2X3dzMeq7koFMZ68A3ESx8MjqYmmDQ9GZRp/nTdqzA0ZAw7VqcUZXPqWIDcsOVqWnh6/zrATmFgtBJsXUEX/pbPYYqaxBskbONyiirbMYNy5L4ywet29AK7Gv019EIPr98cfWi6bN4LM76WJx1c5LWteQei7M+WnSPxVm/RHFWe35uiZLdH13bfs+EQz5NgI2IFiFeb+4DR0eeshFo03b9OoRkb4rA0e/O4FuspIcZjzORUM9JAzxOdOCjT7+hxZwutKuHNIDQVRf3GixdV+UCorBdkjgTN1xJUbZyDPz8AZ53rcA2qX3S0GjMqMECC20u3K3wLmhAvOovGredgrk/uqns73Nb8vlhpWwmEJ4olYlEJpL4k+CffUS72yQhKem3mhZwIRnaTIx6j0sEMcYOsz7AuUCBKheODpDHOct4DihtVncFMYobO0CUtiZe6uGElrzYVmjMxwuC7ZMn/lZAsXxGzYDkbMypGJCJYmys8wGZY1pI94IH3+zQXRfbqofY0XlxJprXth4C0cPL9augNLM8eC9/pTesPYIkt+ULjAF7C2SDzaXo3IX5dyg/Hh4PD/YOD4/2HFBOm/otKjRL+J/ejrthLGP439vUejfUl6LY9+fk3upGUg9IPa6FqVfJOlVz3pH1XojP7RG/rowcHgwPj4dNMN9tBUpfupzw1vb7vVTkTSHrPGT3aVQ1kwQ4d/LjrTLAeY/M0bBkOa/LEaQ93JQpejvkMie6bjDWG8iBmAwHrrdG9bRwVocW+87sVtnFas2Ql2UhCBehPpHTOkJgtq+EmU7bs6Pnze4fy+c+ls99LJ/7Vd6UPJbPfSyf+69cPndmTOPG+MfLy3P4e/kNwvf+Hi4EMdmPQjLe0MNck1GtipFPi2OYc2ySUVsiVRErQkI9jPXvjv0HY5kvhhD2t9kJ7hNt00+bzE1DCltkEui1zd6XL79bTqILgt3SGr50Bi1Oxkoqf2RFIclcqiLvp3YLvLyUhhbNIM02R59YYmGxYyXAHvX88PhZP4NLZmZyW+fIboOl2FUr1RiFHBPQAYF5zNLMeiPDrTBCbnoo/SG5YA6STGZ16cO0Q9u+ZPHOmc+btnbC2zcXfaWhmBmQCuCYq9r0skmxCVNqa1HKn1zzET8k5VxnNu3eo1/v748LOU1rOe23aHe1+r70OneVStZc6CmRX3alr6Jz+VL39H7pte6ovdtid0RrQ02t161XsxG2QpOn2FH/ncHxQfOidbtOAqBrmdflEJwAMbpymp7o79yfK0ICTju39SFRvZDTqd1ySpbNqOC6dHoGPAxoOkncMkBfxQgBALsJV0a3Rgl0unPtBuBXSGH1Sceh/xRYrmGcIOZB6AgRIHyb4LNNoRG+HTUG4r9KEe06WBqtEQppYBAsT9v/NiDbjWtDFHVuC4+88O3IFflAf8bbNxfN4uXraEMgcFvQMHc/elAdy8hwd+kmaxk8lu5iMXkPkYZLx9CUAnC12m4YAdLCHh2hRZd4GupfTyWLEB7QCDqRUtzfXDItdndNAH2VgkUXk0fMqGqTzmeQJiv3AdEDUkoDGlOKJ/K0A4/dQDScUyVGAzJiStn/cPg/0aqhRQ/ORixGkyzmafu8fpB5vWxBU2FHhAsN4GCC0KoqHFT4MGAS1boGMU9RONJWsJQH3n9gPQanAIUeBlhLAYEGfKn+Xue9VNMhK6g2PEPEu+FYSqONotXwr/5fDWYh/tMQ0nuSwqwr69VhfdhlHLKttOCIQkKbKxuRiDtcRDh8YVeTuAXulSyZ9nFytHQoW3Q8tKXggQaXZNI7aHbYGNtwaPaD3qyxML3DX+kN7WVMLXpqU2yPL647ByAwk3mHFbfMr10NPQPZDmalX64mxWu3tHkMS9oGHwaFMnkjTKwroa+rghsMCzSkBjj54AypqGrUCjjD+1hFY62ukWvWuwOQeenNLRUJ2LwrRtqRLtdKirHYglh0gx10BuRh+UKbM3rDAp4O4IRhZmrmi41hkhTeWDCRSbh6lIoINod9QRPFSnmTLgJJsoJRAXhXTZLvCwFKtHQIn/ZYGzNfvzPOk7+ZS6ur3h0JFMKC4Crj/SJolCHUFQ7CNZYeAsu4R/jHVZ9Yd9aeO2oDVkcTSo+nagWEhNqju+Qm3ZFuOHXNDD2Ej2aMfPr+jSbPj4+O7VQ+O3xxPOwZ2nBCM4DqH27DxthNRuhh3HyHHd2qfZEQxneSQo3FUVkZssMa9KOfU+GPvIDgdhCatN8ePesKx9GzlTza8vnk0a3YZ7M3plCLa11mtcYBQv1d31g8ZuODT3VrmpdgQ959illskmvyknwbmfO/gqY6bO49ETMRitnC/s4+V4iYBJ5/tyU76QmCAj0fvjrsyZV+9ryPrQ2suc14e+uKaQMf3r5i+gD2HK6e5XHcMFJTJSaZtDuOOw1wqQXuB6B+g9QqsWZFh3i3MqeyF4hvJekBG9AbOTRWf2nCA9rTYBU8YBsocS1MwN49IUz4NuNtvwZhaIJkhlbXEgJAE18iAYlR+wdOfkJFZ959fdQQ9IeAcKnL6UPy6JbMLg8n10xHwbCPsqyFL1YFiAhQ/wlVRxpzXwgqZQksnUsn0Q1vjnvjTskrvvVW8Y02UF6AgN4gfSRa2dtaLidoySBMP0AOpL06P0ylpJGZLJpVjqgac6Oo4ongIMawg0yEUpIadeQSEKYdVN8AFFJaaCi8XyzQEIgv6+tFlbhkePbbwJ5cbCzl9YCYudXllCNmnhYzspZHrDCVQH7dMJEnhZgAGQJoiXgJ9hTKAz5CRJCFJbWfM23I2TlCRegBAZjwAUnanHPlkTG/wvsfysuGaPW49tfBHV7q1t9Fvz7680HjhtsemJGxtOsG4j6g7l5jnx05dF740sHYJ7U/w3Nft2dARn6xup9QVeFxJnRd9pxIL1rl3HAHMYurrYWY7J5gvASUaEV3sIAcED84cnaO6ahOmpJK56kPzS+/mFTR3P+iB44SI2WxR6dCamNPPkNFTlWelt8LzU4KOU8n4x2jSiB+ODXh/m3Kzawew82bFRCoyrYfmLfH8z17yPQofa9nH/+X/nD84/96/8Pz9//Yfzk7U38//y07/ud//H7wb42pCKKxBW/Hzqlv3J/+frs2ik4mPBv+Ij4l1buidf36F0F+Ccz5hXxLuBjLWuS/CEK+JbI2yV9QaVjQAv+yEhT/qgUI7i/iF/HzjIm0zZJWVVLMGzYdPLycMZNUZnH1hQfhQEr8HGmbYeeyzexqAmlVdvA3nM2HSMOSjj1rpCIVU7xkhikkpEH0ejRFQhoU2P+CyuM6S1sOnQ53uh4y4HZDbiZSzanKWX51nxyJs3MfGRihmN1yTX5y/rJKyc89padeHQ0Ph4fDppeWU0Gv0Jza0gZzdvLhhJz73eEDWm5P/Mqdz+dDS8NQquk+HsxQKXPf7yd7SFz3wfDzzJRFghN94fYROK98ZRD/lXb7Dy2gvADsYKDxfGDm+0LOsVoa/MuFBYV2Czn1FwK1iwvqG1OH4S8ajN527B0qR+OFK6QBhfmlP311zLTz51Kb2h8gNORnPuENsrEY9gaHcN+B6xq505Hrvu05dOMvPceu/zHqZ+4A7j94j5o34V5qtrDX7777zlsX8cyE2yPCPg/hRBuQAiTqV5pZTTJcEQcN9+vT3EIQXoji91Rvg4UXAEChgywnmxhq7RCUTCPWOSN/w37SZUhCDYzA4YIu7OZU59WAmKwaEF7dvNjjWVkNCDPZ8OnXx3mTtRi/pfSJMzx0Pl6cAVRngYfoPE1z8GL9znJxaHl3jBxMrKRKs2xAKl4CQ78+dlqiE9eAK8agUt/Ax/TZKpgKET7vwuFXLOO08BI8CBiAmK7XMakRJDsEkeTMsMwMfPt4I42BJbe2uNc835xyZXdXhJDXTQi/kMgSrro9OgU2SkXGMMXQDbUF6y/FhE9rFY85SVQt1mdAqDiVVBdromV4X5UekDkbg/bDrfnOhVE1pCEhu7gU+5WC8UK7PpHSK5RRZfzGy43QUrlmU5KSHuFup5Bak76mLVdPzt871uhh4szxopF6cyiCrC9x5vgKXNA4egXFwi8t4DqOUwe50D7MCGVDR+15Bb9hFNEt5eoKkPfu3vW3mtXYMHl7+Q7AVqTAQkPO8HOVFhPNPTQTYIEUA9cf1MjJmdUHPD8gMubtm4sNPFCPACGPACGbk/QIELI+zx4BQh4BQv7UACFtfJBw+jadIXfz0CQemJXNbwfQ4v3Jm2XdfykHxO6bGATZZUGi43sHMLyIZWrwZiO92glfNi5yZqyoJnWRJlBHq2ISQ7mCbhb0JYqBUawAtSMsaUGkmlLBf3dlBVLng5BpXCcEOTGWs9ztPBi1hXQVbGIIKyuz6HEvX4Er7uKHxkQ8Qmb0Uv0ImfEImXE/iv+vhcxw9ea2ROrlzFe/M0t2+BaJ+ujgoEGfZorTYrvXDN4r4zpziuFtVSceKljZYYO0OIM+Kau5giOltNM9UbJsOnCVQ/JKcHrD9UVsaVExPezL0vAXTGoU3WwjfwpCykau4T8V/AdOJPiHLAoGiR3o57D/ir6KnrAZ32aDpY2YhYdk6n9Cw+sJ3MWipMK0tMne9fswqfR+UpINMcbER50CvvVOw/bzW6KK0na8g4gJxbMZChR4hhoQAyHUJ5NlRYXXLqy6BAZPQxhbcT9pmJEO1SmtygUBWFQpKqbg5pvwwrhSoZgK75UpiACH+6cm0EAgI45nk6SwPwBao6kWki+jQqfyEdSaeBo1RCkcHRexUv5qdPyPF6HCi4uM7ReddhH+9aEM/pQa7Z9cnf0T67J/IkX2T6zFfvUqbBpl4FO23C53njxaubnF82r53gbnkza0wDwkvFDyvXr6zpJa7h5Lvqcp/9kghGGigCWLWfPf01YhhjQ07QjBNt3dTmwLqg5CgnqWHED3g3F/uIKmOPKNEdyzGcuudb2tJfTGNe/1xDjVbqrgaL9hKuTGdWN1Xo6fHb3K6auXr56xZ8cHr15l3+Uvaf48G7/KXh03zZmk8y2N6LTpYYegrqawBso/VkyE6H8lp4qWYGcUVExrO3YjybjmRU40t1/sK1ZwOi7YPptMeMbjZR+JV61NFQzZeaUzubWifWcih6kRUzKT83TAkB0XZtRVDYEicODWH5BpIce06PAFH/cN5F71wy/t+oQQvF76mpwreMaE3prX9R0272AaYrmJlDLFIHEwbwKaEUp0wN1yPIV7G9diqhUrWZKL89O/E9/dO2ubQtR6aLKSWvNxwWJcn67yzxDT55rU+0+7FuVJRbMZCw0fDQ++lJLgd7Kkiyg5snn+b69W5jk1syT+388b7whUWo601mofRH//DSsKqvancv9weHg0fNVEHdq8JuntyYCeba1Spe3N9Ojo2eEXVEQ8Vc1eUmyZo+Grbxrusozphk11njxabZmvpW74Lvrt6oyKaFtHkEIXItFoD5NyfHOE5/uJxLqA6EaKOJh7I999BWCFE2OPCEMX2td9xq4IN5oVE0JF4LcdVcUxyAigHGEX9bHSYKcgufH+cz3dZLoORNPd8heUogsX6gtMomoKQWDpte57uiBj5rwXOLxKSavCQJQPB9TPhPGdvcr9uUd0wLDcI3tF+Kc9kcIfhwdD+/8OmxHA7DPLamOP3i2x4mSsZVEb1qhp7LkSe+/fUsZc7PuxpcXOHuvP/yvXn9/mpbDbU51XIyzFC1kya+XYfRCVdNRaAwao5iUvqOqqC23xrKZreQc3OuHOouaTotkm+wvTjXWFgFyaGNnkbHUriutmJ284AXpwd1rIO1Wn74c4+ZVDwLJk7Nrh9RHSPPa1oe0A8M2U7RmLZfg9w6HRHsVo9+jg8MXewfO9o2eXBy9fHzx//ex4+PL5s382I6XMTDGarwfZvBGHLqFhcnZ6+wQ5GraKOgHE9DoUsfe9pq4NetC2dwLopJW9YKcVng8Qwga3hhC4QXWYeEySeEMFOlTGLCazvw5NJuEhhJKxknMNd4Ie+ccR4U9HCBi2uqOrdVNA/ozo4jI/JL6+H9BGEPtzqa65mF4FmPOtSQ7zfSWQ6t4J4dXaFrX7M1myfWptvW9StMsYaO707E/Jo5V6dkjQ0wwqPYZyvg4cxCrMFb+RMK1UyVrkVk/mDDD7/MCooUHc4OoUXoDQoJ5y9NrOBRekpGJBqoJmCNNHIR7Z44JdpiS4phHcDW538Q6pHODlGGSqe/2UFgV24aszSRfbCDq1rqTI49bi0JUEGTkuDiOy44k1PTLFTLgKthyKUWhMDxJ4qrF3EMwAWNdfog6c02gQhcBnVg1IVnBAnvCvUpGHZJs0odHDFhJAK8hhiGfnXtU3MlLPq1EEczAza5AA0xwcO8Z/nZ0To/gNp0WxGBAhSUmNAddGdDZwA51RxfIBGS9CEkja1Ws6HA+zYT7a5KKxWmNB9cf/nRQBUPLsXOMcS5EAM6Z3ed18kov1skncez04E054HKB9yGfIpBAu8yWW+nUR+YpNKeLyaKat0awHyfuAGUDGPOTmWRMQUyMzqfKkGLFU5PLNuWsVo+NixgvSljF+E7UpB6lILv7xwaUFPtFP3Y/eVn5zntCCcKgIKxqSOds9OXc9wjo2+OGnr5lTLTR1jcOu4PI1CM1M7eN+MTOMqZLshPZ2sJ74JJh6KRWiRbj2hbXgZ2f6+/DkLkKH30pcjdQMNzbd6iIdh9uQLhodYIhjnQClxGwSrFDwqwcCBN8CrnQP1trTWGRtrF4Qm7SrF6dxD2O+URKCgLzB5vf9EELpawd+YXcDmttdvqTC8Mwna7tQUPY5m1ExZW4/i14KHw1qJLnhdrj8d5YEOAiSMQXOmQi0ESFWfR8TWhR+rwLeQjyqYVOpHPKMA1jRhhcFYULXyoWtLoFKsAyb8MTFnBS/LhabOExwJ9+WQoZhRIjGgxMTjg7E7PMbTDnm01rWuligNKfJQYTMLVt0sOcgaInabXxAqK+cgtU2oHKdtHIyJOQfkbOudmFaVAFXlaLzmNaOcj8augcOgrGpSAp7MkRAnLzGjCb09Yzs+QNVO1xBmtGA5MweWYCI6Gs6S5HEFFu1o6UFUj1cO4ZtmSLo4k4cghkt4KIvOtxobaSQpay1D8EAvsfHgUB/u+0S6k8uPjx1RT2KRXTga8JoNougCcjKM0CCYN2EocPnhy9etcfcCIj50jEwDfJ+kHJaMPLuXTOT4aFxYv4KADFQoT9C7Lg4POlQgnlfvtXhy+bFZ1/1o4epmoLUYPtNx8NjNtxjNtzmJD1mw63Ps8dsuMdsuO1nw90xGW23m43WScR6g26BVqQuOTu/AUzhs/ObF1EhbOlAXyyJrS+DTlAzvIehvntpTT9nDIFPP1XeEczqw8llsIkdGCZ32lJcs5JUit9Qw8jp+3+moCDNtQIWViFpTsa0oCKD1ZqAB0hFlKztIm4x2Y6zC57yELjNkQEAePL1suB+wEPnDnHoLjpc6zLldgybzS5SHNuXibjdgzRcUl9tt3amNStmfDpj2iSdeh5h3wMYSFWxPJBcj73SGaa8Ua8GHTChOWcFTqQiOxMph1PQ4IeZLHesHb+T/N3OFG3gwOfMMFXCgVsplnFtrRwXHQF2J2Bygo+6Hhc8I7qeTPjn0CK8A9FJr/f38RV8w1o3T4fkEp2IRqLJ/pmXAShuvMDQuQUx9DrOqsP0hxIBc0kKOmaFRpNYSAM+dIQZs2O/fHeqQ4znTiaH9XVf/bPAjIZIGFldwfR/AYlgkwnDGqhGVk5zcXP4hF2+O306wNsXwNvy/qkGWcSxfuBdgMAiVw8hed3d53SEp91vaNbyMXIIpOfPLTYgMsskJk7EerIDzxti81iU+X4JQo9FmR+LMvfOyWNR5seizI9FmVcWZXbA5fBecs3pH92S/Ophz9uXZib9TSrIR7W6fQx9z6mhjrg51SSTRQFFQW5JcJ1wkbuKUl46AfUVxTJUT/R92zd9Dtn6dzqsmrGSKVpsEcz7re8j3Z6k8wZ58p/wCdj+7DPXRj/tILTkDnWxWBC8ftOEZkpqTRSD6CuHjT9yDcLq8+UcuprJS3o8eX5wMGl6N7axnHa7W7Ov2loLgbfdSHGo8uhYgvn5leI62XPkBENBhMyZc7M1hhxvm0K4EggM6HN5w5HmGes+ad/TLFJiHO5NSa+ZJtzE5Ip094waqpXTBL0RF4ZgHaltBlTYBWN1cp7VBVVAb2iSYR2qWLKj6RF0V6AcIz8Ew8sr7SA4U7DuBhlQiks22N4saOl44zLMpbuQHdnv3JZud3j403LfYbx25S1/9h17zsYTdkDZi+z41XdH+Zi9mhwcfndMD188+248fnl0/N3kNnjmh5HI9Aj2whYRIdzu1AMK0QA+SKQ0rEw4KyFsJiBbF3KO059za7aP6xTF2pe1QK6qGkJUwsFjuaqbxzMa8j5yQBsq7NfgIYorRATndLN6HvhXqIYRvE0rYDZXkT+p61gFz7lmam1YLJYQTcW/Mmp0XyNoceVsQuvCQPGBKoSthVftREZIaBdjBXBPwuE8OXFlPXLVqOS5lwJaBiGS+VZrXQZpokEkoMvWPpNIgplL3IsaaFj+Y78reo3V/gbL1MhUJQphlgAYMUTMkolUbJBMgh962BbjvcHYKzahUXecBMp8AJhvbT1Zam3JCQldiWoRIHy6PTgD3DtNQXUyOIRikFSztFJLWMmuSm9oF0oyulvIjFUGBxd6Q4qBxV65ckQyB3XiI/Z0sygjVkaa1lzPwqzFRQlL2p4XWLYxHvXunJPakkpSTdeVhHJ8EUx7T2/YEmLzrV2oKTVxg/HS85Ts4a4QeOwGVVKB4VWa9agJvr+9A/e/VvqMTgIuH/QGFCN/sf3WWP8Y+KCNzgn4MJEaKy1oh/bosw09IZzQiWLuR5J08tZP0NkEG4lovhAr1KSuvUKXbL0BN3zU2FX7CkqnvzemY3sAP7v/6XP5mxMSAswatkV3VuIeDJjl8ppQeyQhaA4zRIpi0bYtbmKXYXfvKRA0PBqm+OQYh9Yws+KTFVYWvnV7VGJSBp26K5n9pkrYbCkJP7wl8DC9dtq4VPwXDI9zgX6P4XGP4XGP4XErwuNwnbhpSsu0dHj4xWLkfJ3Jxxi5xxi5xxi5xxi5xxi5xxi5pTFyWG3szxYj56gm24yRc0f7LbFhtHABVXHVyhA21hsflqRKEaMoGEBi+tXHyy1lx/Ce/PgK4+XWV+q+YNBcj8z/4UFzqar5GDT3GDT3GDT3GDT3GDT3GDT3GDT3GDT3GDT3GDS3VtAcADMhX91lzmV8suIy53u8e7FyUlCt+WSRVnWlBVP2n1kmEfHDnruuL2LoZylk6V0tAYV6xsh7bhQjJ5eX//PN38hE0ZJh3XD3aiOQDnAPpIJxNglxvSNUZcBJ4cqpzM6GdG2enV4MyIcfvv/ZVVv2l/OUkEyWpd0jHL3o9sdBDA3NDM+G3wIZHijINZnRytTu1t4q7k5L8jAPoQQ0ssNZcDu8rGhmdp42u2HZDERt+K03XOLoAz6R7xCvTK65ACsAFB2azew+DnbeeEG8+8nALaIXP+hrAJOUZbKsCq4xaGYqaeHpYyIHryHJmbAr1JqleGW483SDa7Qwq19gK3UcDl2Gy+pJrQDcxU0J/x3dnV6CGhogzjT8HmYjhPgxa3VC2BpMlz0bQ2eutWZRZeIVXhcMkWMEEdQKDqj2ekCY1Y7BB0AN4WJqjT/DSyy7rJhRUleodhYJuXQ6xQF6SJTW8n9/dvnprVtfTcsFxXlrR7EVaY62KbLTCyTIo+fePxxWk4fCSbeDMMj31Cj+mVxiO2EGnWs3wWIbkie+ur1+vb9PjaHZ9bC0bQJKNFKi9y9PDg6OD/ZDB0/bXMMX+vj1hVSCEKixPu8iu9It9cvzDne1Pt4BphET2fbgCBkJfZBaFX9SDm7UQuBxODe+xJIO22KTrzjP/as6jPfB+eqJ0fuXh8evXq1a1/b3JWzb4spuRNr+SVm3XBlYws8/ZrWvzd3Gib+lBb8+dzdqI/Ba0cx7r7wqnzxarsufxsht30h/IgAVtFj8zkjFFBhnAsLTlKynM1l724ySkmdKhrSVpGwLKOPWQBGM3HA2H8bqvEHtdNOUEE4SHZ4oZgdvNNmLNwYe3m/Oxv53H580UVKYPSbyVsDhnh3ObzVTnGlS0jyMI1p4Y5pdp1/q9aviWOq3uPEuzzjBjqPxfYJPkFwdx+YsNXSpRmRCF9SL6NLEyCmzSjJ4fkOT0e2DTgDP8BkVeYGTl0TzGqb23JUbSzjZ8YkejyevjibPnn/33fjZcU5f0GcZe3X0Kj9gB+z4u2cv2uwNWIp/DJND9y1W++feoe5vbUKgAdgFJaO6Vu7eDSzNkC1jbeHQJJa0cvwFA9phN3TYd3AwOXjxHaUHY/rq4Gj8XbIr1KpId4SfPr27ZTf46dM7b2P6eG1dV3ARibUYbJcG3A2Qy0ML+4lGvFb3ZgBjnTEyVowisK+cCysSkuhsxqwl46+uKmpm7ntJNik/tV336KmLlnTuFFXEilk78/l86KKEh5ncaSYPAKY0hu9T4GdJF3g4OYjJs3M72n3LQstX9L0Wi1gwjravVPAKBhIToDy5dncwSVABhjdPpb86HbmwSheZ2RGa5hAafAUebrF4ClxguYrmvkQZbNfcbk6+87jDS8WnXNDCr4bAlloVrdD0VhNcY+AzIDpP7IGGCYgDqKEmjd0K1QL0hRmst+b3rcYLRsGbVTHFZU7KWhtoZMxckUWW99yT4T0XvDxmZKcS052YhGY/3xnaZ90ZqtwJmLhOpmW83X94yHSpTBKBbplCJ8aVFB79ZZTIv5HVTos5o7+MMFmseYfoiW65ardYBvNsgtcwdlsCPxkv7TJzvjJAY7X6dFhEiyRGGcvLhnFxQUZWxmx7owGZz+BExEXoMrk0ABQLbVQNh5xd1Ag365WQZoB2GkrQo/I1V+Xr4+Nn+5iG8O+//VsjLeEvRlYNjvpFsr0DsZQ5pKnF9QgiogOIeRhtN7QpyeEUIfS5lIIbqbiY4kpxOOF52DTHzC5JN5kDTIaiOp0emgGsfSGnLuDOfmpXPRQg+rWGmAk3IYheTeG8aV9Gh9kMTtXwWWiWgkY8pzoQOmich72ZyHeaWNvakp8bc15RrZOZfPgiV9h8S/tuFR3Zcq2yZt/JHuQYtNMiZwshWWkoUIeO4+Nn3eobx88aRAFg/DYPU+jACXEILgV68RccW+8YUn1zpyVsnT3+32GPZ5/xsIsndNoLJACi4hNOdyHtt7BCEwcGlqBPaPc58lienkJ/49qEtwZJZzhYPM5DixgxIggrKxPpAdLxzZH7upW91kg3JWNm5oyJhlPAzCXqdK2D7I8OA7Nb8GMM2NcTA4bGzbaE4AJaX74nwmmz0zp30Ts2et2rnyG9S86tpt39GN1GHqPb7hTdtuXAqxS3ItFRUgoaThB9e+mTSx8a105X7VbeDFF0qN5i/dsbGnR+Z483U1i/T8py0huM+WeQ8ZOGmdgnnGl3ovrwHFJKrAmBrlSee3PSO2xCBSCncMNprRM/arnBhf2/bGDiHxmT+CcKR/xXj0T8EwQh/tHxh4+hh7eGHn51UYdfa8ChfeuKTr1LLDmSSXy6xsGMbfjjOYLHyZL5ItW+EmNQCRxxlzO28BWqZ3JO7AYj4PrQ31oC5kgmSyiv523ciiprLdaBVG9fbnCWsoAe9QVWsuutPSX8fOZRFb5ASd6UoMi6DlEXdEIVbxC1ZYfmT8JN6E0TeCUKV08i/e+8KOj+8+EBeYJs/N/kzflPjqXk4wU5PLo6RG3+Pc3sg78/JSdVVbCf2fhv3Oy/OHg+PBwePg/byZO//Xj5/t0Av/mBZdfyKXFQMPuHR8MD8l6OecH2D5+/PTx+6fi0/+LgeNiseyv1cEJLXmzLzfTxgmD75Ik3AhTLZ9QMSM7GnIoBmSjGxjofkDkXuZzrpx0G4psdurd3F/CxYoomkZVeGQKVGEymGYsCoCApeQmIAk7ne/krvWHtEVwzJdgXGwP2FsjGe2I699tRm/Lj4fHwYO/w8GgP6urxrE39NvFD+vnv7zkT7i9j+N/b1HoV6UtR7Ptzcp8xYaQekHpcC1OvknWq5rwj670AUtsjfl0ZOTwYHrZ3lO2S+p/dXXfJ0WB3wW/2bCevyRhTE6jIZlLhn3sYpv9N0CX+iu80evs/0Ogb7452kf1jiA53AfXeOALlsnBVJWGAYLv1QkIBvTOpTbKE+ljSoOVH974fuht1o+UxBP/zkv0eAZCwYVrwcANWUTN77RwLrZdLPlUU+zOqZs3WcSyNZuX4V5Z5JRf/uLp1JP8nnGKBszCPoE5PawXsdEBbPePrMK07tgDEus6woNHe2eg23Dt1K1sHQC2IGBt62MB1Z/ySIwAmh+LO+K21GJxQZ4Ws8yi/b+yf3pcDuHfUQUz3MP+9+xXV1KzxqSY0z33cI+CJXcELV75JX1tbqlTCG6OGD4aVklYiopUcYxTwl73Pq+Uj1QLdJ3adOfAoGDGu+57OeUmnrKdrWvI9Os7yw6NnvTtM7P3MtkDOToPpjXzyU+Fk8y/kxIoJghkDKHBYJQFkgxk6DCwBJt8iZ70vr5SzpA9PYATvXt1NGFB4f+Oe1lg6rb7WXT9JbyXNZlywqwTccnVn7oNh8sG6fbl9nRfcLK7W2E1Xf7Vur07G1524zvpatx9Exlmrj8arve37/SiX2TXIqtuQTv3fPcsLfwMg0zY8pfvNrms9k8pc4bHwmkxoARHX/hTH/vbCZrTktA1kkR5ru/lJYxPxYLeRu/3MShjW/0kv05Z0ZXeczXuDnS5ZUBv22vpyvU7v3p27RSV/IZcfTz9axWZOjCQlrewmq9m/d2hpaBlktaZBlu/nJOzpSMLQS649z6Pc/oh/9TRyJiYylVZ3LABIst9rEgG1z3vF050bb99cpHmZPKCLskwPF2UxdO9h/ip1qaFCir34ZcvjKkOU43JJXz41Dbeob2IsZcGoWJO9k8gR8L7Hae/2K/VwXPOi22V3RsPpvXP48vTw4NXOeuR8vCDQQ+qc7SfEWvC962AVLdooZrLZ+sT4XvBeRSyCBF7XY0BbAmg3J4d/S5/1tBt/D8peU3OLjZJUClfvqvGjW3fWBtGrZa7N8Urm/dvORos54UAlc3RH9nZV9+zhd+3pXObkp7PTbkf2/+qKZg83qNhit7MWfv8DdOZ9WN3O3Hb57b035uTnq5JWFRdT9+7Ot2uuooRid5CUtOqSDJcvsN6/ProT2vqJVwwgjzUzDzvFsd0lE52zqpALiLt+0I5ju0s6BkT7SV08+JCThpd0fYsedNeOm8USNlf67t8vtusOGLeXx9PlPDzoadf9GM+VYNT2nQOxbbLRIcA+r6t2uh6G7DPLakPHxSrV042YVmUc7Q9MQKmpk/P3/SP2gTUOu0OSG6q4rLX9IoFFWDF8qbqeqRXOnXP/lbs3WNJkmgWwQZtp1FDDE2VoWW08UbXuzFMSCG3/B7DGr8nheuJ66Snxvh10mnLhk0AzKXJNNBcZIz8J/pmwSmaz1nh8jlrfSJZ0fhID739SBV4ohLwyUFqpyF2gv2toIWjJs6gnkR5NujeIc/lKXs6ZS/RzGZnJdu7qgCCeCiYG7AzjZ/KGqbnihrVMr56cmbvSZJsY+KTeBXpB96jWrBwXLu+ih9qQxOBTnTNZ3pLBsMGwWvGVdxvYrOVUbzE7IXwTjifJBEsWzC0i0Jc4ABQlWQPr0BFzLO4sjX25FMicZiLFWgSlCQ13pWhlZgJS1k1HWJvCVrLcXYgkJ6EVVzMFomwjkjhcFUHgSEWnjHiqMTluNaXB0Ddm+Ta+0Z7VvK678zoypmpHRPgcZJ/+CAGtXPuzae0paWdv9oy4z7vRcHzOZN6YomU61sp5TYaKTW460hWDTeeW0Zwp3UNvx2whhAmrDeXNuV5zJBkVUgBqvOvSj8cl2LGc/Hh5ed4JhEpmRldS6M6Jd+vUpGp/rVPU+KSVloqxcjxQihUaw1gMNxBHPlLZmIjl8xBvOwUAS3QJ63rEVtL2k44umQ+WOIwCA4ztHCrbkPksZkJ6cknBJ4xki6yAyGymlMQwbplltVIs33A8PWK1TKqWC9Vtc7C+SPk5aWxraNF/s5S61A6vqKJlQ1ldacS3fm7PYetnndGC5VeTQtKUM/axtf0nNDNSvSaHWP6tve/CDPTPy0o2npBJAeXxwMNgWVenpSlC+pFVWg3mv7pxkFAtAjNI2hfnTRyTNY+MJVReNEoeD2+xHe5vVJ+VJdp8RPQUGoUKsBiS1bfjLl0XS8+/u5C4pAjbfWlj4oYrKZr6yF3o81OWNNjjBhfNbbh3L+/M84q5XkXsLQTb/7kQ75JRwcV0Uhe98y+SeiBrM7agYlr3eV2WjbbnmO4M9o46RSvGYapoCQHEnkYMG++joCu6dyaiJcDr0BGUgFoY3rPG/2BWOrL+CO4t6XoZlOlXw7Im4OkXZlpv5z3YTXezetrjuO990GUT0YmcnQ47fWjwHdzzQvWyg7NFFSO7ru1dzL90qXoQf5gGJMY7zyXtCGk8mTGTExILdUWF9kV/2WfTHV4SVHNHJv4NXwYUQF9b1CVBZsyrw26f39UxkXc6JLvOJtkdkN0xza6tIIj8VzneBTzmp3dVQyBn5mrVGWeZ0XvGtX5YMe4fMJ7avsKnrq4olBprYIG54Wey8nW0uZgW8eBDPvzw9pLsA5b1/mue7z7t2W/yWjWhhJdtNynJa5744PftZUfbeovLoi57P2hTs6xrsswx3dN/d02yYnK11nG1Yv5agEfJrFkpddx2JbiFdJmJJJvxIgcYGFeV+l+UxYDclsv5ZvLWYjHUMXRJjzHgJjStQ+xN92S4Jz+bZlNFH+jAWXO33Owe5c4b6Guym4+HldRmqpj+rRiCU9VupoaVVUENGzJl99LdjGYz5jbVnr1F1+OtjOwkYK3reryX8xue6gq2D4cvH8cwaNbffvplFr+VkIdb9ctltHfFL1vvy1Z7/1pfsdKXrQvAB/06NDFQxc5OG1imxEhX1CBeLiI8qSZGtu9aqWpfsX4tg0HSei9zY9LrnW8AHtBF86Gdl+KU+PjGH+KHuSMprJqxkilaXD2EmfDWt2YnNqnmTf2OEKIbbqOxEzqy2fz7PJHW16tTcyKUCdbLd2GvJTN0CaZJOInaZJKAdGIa1fqbdkpaq2XGiirJ6odIFChmGVoMffi6LWLhze+2Y/LBF6vzTyUBN7eL2Qahk6vm8G/tz5eQ2RciGoqPjN1Fvl5nf9hWYOMt/CJfr3uyN3Sy+cqtQ6pkVwbXcAJ9gSGFeNo1R5QS1Yy2fTiafOTtGiStFRC/yaXHR3hCC4wS6r/66ExvimJ//4OkgYkvk0D7qOSAnskyqXKWk5gcvXLmUlbdXxPoC6p5QCIfVlVZnzBCzgygbnnoF22baRyAGrNO4+AVoXhj4U7EeAucQp6sNWxedQbN17RXzs5bo6XGDVKn+GIbECMb0YB4IMUM8gvIIE/eaICyrCU/H0NajOd2v6YhW2nrw3udDi2AgGZDd9q6IH7KwwDcQeRu2dtuC7vdZHs7SxhcMWWZHgJZWFtRdUYuYMVYjcIOIjhpbrGQqJqm4tMPD7CK76tMc0ceVdO6xIjdxu/vERp6wgvELTUSgi2tma6Z0BywvxqZQrfMRGM2etTJlrm+aleqS3AJew5HG9C7e9c1Eho0PQxRHWJ2tTdN70IVbBn3m+mLJlOwybWVbwfDvaH5tPSUL7g2rOXaucOYTlxBBs9nhDEMjZPezLUNDu3+SJRbiGqDTpycvwfm9+bzrW/C34mW2HcEf1lGw1VJf03Kz4Srt4VZs7P39vsQ0ehCaxwTgvx0RXs9X+idhn/pHZ9wUTdmUJzCSDKiVbmHBI3aEfL6nkLeq3b1j2op5R55LRWjQkLFSS5aqtCSvaPHYt+QiLNOPZ47kpCif25MxVtA9rwLAcH1U/Do9+v3ENyS1dGjUnYUyuVsjHVj3CiQILygDIpMR6f0BbvMouIZAO7JMThNcg+65+9zNfn73vdSzaltyP6LuIuev+99YrTYOzt3kYX2+YQWhYaSW1joaMpvmIgwMsbDPypWSsOakKq3shodVF8Rq6PH7F+N1S1wx9W+rxbm41IW3gPxMYF6DM09COTjUsHpPxGW7MYthMONt6H1IQzTZPcHRDG8D3rhzm079bIgjiUBHJsGb1zIiZlT5S8XKBZg5oKM2YwWE1yelpMDwqZDl+fhBWwfQQDKMRfrWhgbHMHL1Io+tMyVo1wGvtkiqa3vbUbV0t5vhXhrg7y1yEL80hZVTU/AMpo8ck2zheV7dGI1Z1JkTAkPDtkEUb3/5dtylbEPoPUWukkv3mt7l9H3YeFSh9BKPfH+np8VIZO9Dp7l7p3lHL/F8XNfKMjWtDpAyJ4BbRADumowyRbvdu2dewxWLEfq7BlCMzf14YaAeKv3H8c6iK99w0ohdR9mYIiBu8mI7oS82zOYzWJ+1xuNAw69zwQtxSjtGUIDaPdhRtCBx73PWG6D5m1oy+xzxRQvmTC0mQDfSJXqS0ZqEHWS59zdaaUtoksXCth5AMip86VGYIU9yEaL8Aon5+/JW/eo0Qk83AshAYglIZXDYehDU/Atk03y+k9tuxmtDBTIHS+glAnoZ6EcH6TgCud2xxQ6p7jRJDnNqfUbZf9vFlDg4uCO1zunm/FAwJuNfK1ZXVSKr5M95Ohaek3zfS0wMNkalS66au4qKFWKl1QtSMVUxYyiRjo3S8x66lAGs8rF9OqaLdYgb1U4tWvpb2Czpb4VzJm08lZriIf0nfbQwz5nrNo4TLp92davrTh7rVhAvfC56E7kykv+dnrsJrdSl15s8MTSzGCyaRAnMqNVxQTLXRq6XaJjqtOvhv1klUzrZg4VWWZPkX4B66U2VAlFAlwvy2iQeV3ciznYQoxICU7eBhlLum/5e2/rPKz93sZcLfTe9npSjtdk6RnmGEuVlKH1kwsXd7SezgwUn8ZrPRc2jGnUWJ20585Ddm87NlgnydnTUPA9ep1dv17p2mytwIXifeRBsxumuFnE3P5MqnzJ/MM+o67uE4Vj++y4xlXEe+6kYm19AdIwOcWiuZOuXouQkH21iqg73aKfYMPMADxloIG8tbvV7hsowSyksRajYBlcifwPvdu+SQ/YOhVTZuFbIVwTbXiBJcK5srsgFJQPlZ3ZbzUt/D14Y4QDKDEKydhVQTM2kwUkvCsGf+ZdCnyNd81NTX0mVqtVS5GvLoqVnoD1mhg5heUbICO1t6udDrYD92OoT7633Mr0Tj/WlXvJ4SWU+K5zxr05/wk4ULJSqgWpcaQhYawF1bvMFm9CTDoNtE/b06lzYG11b4SfjWKh2EJmtPDatBvRkvCscKpW9UoHx1KxHGVV3ena8g3QjLuuiPY6MdLQYiikKodV1lXNlkAP+HLDFVNZMx/8FvXRfWBlS06ATkhO1VWi4vt7dETcCiUee/BLkiKV3HvTYV26luJNqe0pkwrwDnPCDVFUTFkzxwCE6MDK+uHBwf/ouKBQCO84S/hxZ6KcYG8yV50paoVQ+KkZL0xjfKsmxrbraOmmVtLM1D3dbnLAQgtxFbMcZsEa/H1HaXwSk5RZn2+pk3K2bOy3bOuOPtuLJ5ILbGRIziBIPKNFVhcUIpWphvAokLCPF0PyUZB3XNSfrVhlUmiujY6JxKHNVqdVUdtms5mTyXE9mTClobmPF3+3jQFmsa4hXCslzr5uG+eCYolAN3X205/ReTJw38OJ0T7+pN+zhu5D2/ioI/DNkK5NJd59nYh81cJxHMCqDDt+stG39swVuOjJtnkHwVx381wlm0s30Fu20FWb6BpwSQ+7kT70VtrdTNts66yJNSbvPXwTHTh2ljgk2Vl29IV/VYpN+OfXZOe/gP3/vbPWlGr++za3G4idgS33hqt0Z0znbEYbAwn4FloPu909PH2fmIbsIHLBDLngvzMsQE9Lq7ZbKeghWWZZXXGMIoHcTvfOk08n758OU4ddpeSEg6WcuOzOw8M2jOiEF1xM+x13K3BQXWv9wrUFZ9ptqXSu8mWSUYc09li06+xrK5NL2stxiYT0ZsLeKiCEnAQ5CDuPG0w+IFCiVnjg1L48XXBbd2FcNxnhBonodx3kh7DlubF5wkO+d+Vl0+4/XPbhq9CikNkVOsP/RCN2BCP5oPbEQyQcK4Yq0wsqg4Puz9LaZMjdjWuLkuyVKz/iQVACBxsNnotas3+FGYe6wbVSTJhi4UIDl473X2iy1xz3UiSTe6FRn/r4tSSlf9AGo+6hxshuVk5Hmeo7826blodMn/spnIABMUNWdill1wi5FP29gPMDCbkGrK/C2ka9BE7cXdAGZN5NesKlE3hIl4xgCY28aBd02Q6NFxiWCf5y3+lmpBZc9JP5YKswpdH25m2LpWR2FQj7659N3OkfIOgbSzTdiizfVWjXoGYTcb2HXLYoSWwZDIQuadW0Zi6Sx41+ww8wVE2YUDybAeSZmaWFMq/5mAqKUoqdXGGyWBLSHTofpmT0+raT38ldY8hT9BrViEq8g/OlH7m1r1OytRzz9n2XD6SGYIHAsgZcSx9RfUFJ91sRjo7lqUXjWuQFSARrAuvfxTx957HgG8H9duQAdsFvmL90AjPIRaZDxIppLgaEqErXAT5pLoGKis2s+RvO5ogC6OXSuTZi2Q3AI77yiFGvyc5/2m9sV3rnoXC0urrvA0CyJAmNFRVEY+wP1WTGPhMm7HaUd8PJNozY3UwJXYoJCBR2wQAT3LM+a7B9aj0MkZcpvMs1F4A85hKZuZl5KuvxHiSqhdir6NOE0SByF0CODfy1bR9cl7X37mXfdBCtHlit+jiZaGY6K7YJCBjK7njwn4WPbIABbmp1rI3muDJMYtucuatNpRci64xsswqUDlNfN+JdQO7mVBOsIGWX90JkMyWFrHWxALCGxpM+zo/vr/8uU6iuH+4gO/UBXLbZxlHRxEpMTozLxg/NgJD400ZhnA+O2PtQKKb3XA63aTdwyZA3pJ/rlBvrrALFdF3cE/L9EktJ1IXpwSkdYhWGtGKGnU77cA/BtvL09T4aS6quu762jSv19kQp3zKwk2ZRhKRYAkgC3AMDccjoouDLGQ3vDb/duELkncpDdMfbs/9VVFy1nZCbH3y5klW1JJTwNqGOd2Xx6sm151Ch0WvQFOvhN/9fAAAA//8qL/Ic" } diff --git a/model/profile/_meta/fields.yml b/model/profile/_meta/fields.yml new file mode 100644 index 00000000000..962c15f9fa4 --- /dev/null +++ b/model/profile/_meta/fields.yml @@ -0,0 +1,113 @@ +- 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 span, 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..ff6180d0b52 --- /dev/null +++ b/model/profile/profile_test.go @@ -0,0 +1,132 @@ +// 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]) +} From 6d69a1132a57845376f2f8e4b1eac8a0aabe9c9e Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 21 Nov 2019 11:35:35 +0800 Subject: [PATCH 04/14] config: config for profiling the server --- _meta/beat.yml | 14 ++++++++++ apm-server.docker.yml | 14 ++++++++++ apm-server.yml | 14 ++++++++++ beater/config/config.go | 58 ++++++++++++++++++++++++++++++++++++++--- 4 files changed, 96 insertions(+), 4 deletions(-) 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/config/config.go b/beater/config/config.go index 2d06cc16655..b02561f88a1 100644 --- a/beater/config/config.go +++ b/beater/config/config.go @@ -36,6 +36,10 @@ const ( DefaultPort = "8200" msgInvalidConfigAgentCfg = "invalid value for `apm-server.agent.config.cache.expiration`, only accepting full seconds" + + defaultCPUProfilingInterval = 1 * time.Minute + defaultCPUProfilingDuration = 10 * time.Second + defaultHeapProfilingInterval = 1 * time.Minute ) var ( @@ -84,10 +88,40 @@ type Cache struct { // 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"` + Enabled *bool `config:"enabled"` + Environment *string `config:"environment"` + Hosts urls `config:"hosts" validate:"nonzero"` + Profiling ProfilingConfig `config:"profiling"` + SecretToken string `config:"secret_token"` +} + +// 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 +} + +// 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 } // NewConfig creates a Config struct based on the default config and the given input params @@ -123,6 +157,22 @@ func NewConfig(version string, ucfg *common.Config, outputESCfg *common.Config) return nil, err } + if c.SelfInstrumentation.IsEnabled() { + if c.SelfInstrumentation.Profiling.CPU.IsEnabled() { + if c.SelfInstrumentation.Profiling.CPU.Interval <= 0 { + c.SelfInstrumentation.Profiling.CPU.Interval = defaultCPUProfilingInterval + } + if c.SelfInstrumentation.Profiling.CPU.Duration <= 0 { + c.SelfInstrumentation.Profiling.CPU.Duration = defaultCPUProfilingDuration + } + } + if c.SelfInstrumentation.Profiling.Heap.IsEnabled() { + if c.SelfInstrumentation.Profiling.Heap.Interval <= 0 { + c.SelfInstrumentation.Profiling.Heap.Interval = defaultHeapProfilingInterval + } + } + } + return c, nil } From db3cbf4614ad6109b82706b1ccd985ed124a653e Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 21 Nov 2019 11:37:10 +0800 Subject: [PATCH 05/14] beater: add profiling endpoint --- beater/api/mux.go | 18 ++ beater/api/profile/handler.go | 265 ++++++++++++++++++++++++++ beater/api/profile/handler_test.go | 287 +++++++++++++++++++++++++++++ beater/beater.go | 14 ++ changelogs/head.asciidoc | 1 + model/profile/_meta/fields.yml | 5 + model/profile/profile.go | 9 + model/profile/profile_test.go | 9 + 8 files changed, 608 insertions(+) create mode 100644 beater/api/profile/handler.go create mode 100644 beater/api/profile/handler_test.go 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..0c1902fdfe8 --- /dev/null +++ b/beater/api/profile/handler.go @@ -0,0 +1,265 @@ +// 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" +) + +// 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, like user-agent and 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 = 10 * 1024 * 1024 // 10 MiB ought to be enough for anybody + 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 := &limitedReader{r: part, n: 10 * 1024 /* 10 KiB ought to be enough for anybody */} + raw, err := decoder.DecodeJSONData(r) + if err != nil { + if err, ok := r.err.(requestError); ok { + return nil, 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 := &limitedReader{r: part, n: totalLimitRemaining} + profile, err := pprof_profile.Parse(r) + if err != nil { + if err, ok := r.err.(requestError); ok { + return nil, 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 +} + +// 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 +} + +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 = int(l.n) + l.n = 0 + l.err = requestError{ + id: request.IDResponseErrorsRequestTooLarge, + err: errors.New("too large"), + } + return n, l.err +} + +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/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/model/profile/_meta/fields.yml b/model/profile/_meta/fields.yml index 962c15f9fa4..e25f969edd5 100644 --- a/model/profile/_meta/fields.yml +++ b/model/profile/_meta/fields.yml @@ -7,6 +7,11 @@ dynamic: false fields: + - name: id + type: keyword + description: > + The unique ID of the profile. + - name: cpu type: group fields: diff --git a/model/profile/profile.go b/model/profile/profile.go index 81d9cea5fa7..46dfe5c42df 100644 --- a/model/profile/profile.go +++ b/model/profile/profile.go @@ -56,9 +56,18 @@ func (pp PprofProfile) Transform(tctx *transform.Context) []beat.Event { valueFieldNames[i] = sampleType.Type + "." + sampleUnit } + // Generate a unique ID for all samples in the profile. + var profileID string + if idBytes, err := common.RandomBytes(8); err == nil { + profileID = fmt.Sprintf("%x", idBytes) + } + samples := make([]beat.Event, len(pp.Profile.Sample)) for i, sample := range pp.Profile.Sample { profileFields := common.MapStr{} + if profileID != "" { + profileFields["id"] = profileID + } if pp.Profile.DurationNanos > 0 { profileFields["duration"] = pp.Profile.DurationNanos } diff --git a/model/profile/profile_test.go b/model/profile/profile_test.go index ff6180d0b52..5f9939453c2 100644 --- a/model/profile/profile_test.go +++ b/model/profile/profile_test.go @@ -94,6 +94,15 @@ func TestPprofProfileTransform(t *testing.T) { output := pp.Transform(tctx) require.Len(t, output, 2) assert.Equal(t, output[0], output[1]) + + // Each profile is assigned a random ID; all samples within a + // document share the same random ID, which is checked by the + // equality assertion above. + profileField, ok := output[0].Fields["profile"].(common.MapStr) + require.True(t, ok) + assert.NotEmpty(t, profileField["id"]) + delete(profileField, "id") + assert.Equal(t, beat.Event{ Timestamp: timestamp, Fields: common.MapStr{ From 73b79a024a657f9babbe46371c6eb45135091d6b Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 16:25:31 +0800 Subject: [PATCH 06/14] model: fix fields --- model/profile/_meta/fields.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/profile/_meta/fields.yml b/model/profile/_meta/fields.yml index e25f969edd5..c921a4ad833 100644 --- a/model/profile/_meta/fields.yml +++ b/model/profile/_meta/fields.yml @@ -70,7 +70,7 @@ type: long count: 1 description: > - Duration of the span, in microseconds. + Duration of the profile, in microseconds. - name: top type: group From f08c60caae1076e6d87b5ef1fb598b489b0f36d7 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 16:25:59 +0800 Subject: [PATCH 07/14] beater/api/profile: address review comments --- beater/api/profile/handler.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/beater/api/profile/handler.go b/beater/api/profile/handler.go index 0c1902fdfe8..84dec351102 100644 --- a/beater/api/profile/handler.go +++ b/beater/api/profile/handler.go @@ -50,6 +50,9 @@ const ( 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. @@ -80,7 +83,7 @@ func Handler( } } - // Extract metadata from the request, like user-agent and remote address. + // Extract metadata from the request, such as the remote address. reqMeta, err := dec(c.Request) if err != nil { return nil, requestError{ @@ -94,7 +97,7 @@ func Handler( Config: transformConfig, } - var totalLimitRemaining int64 = 10 * 1024 * 1024 // 10 MiB ought to be enough for anybody + var totalLimitRemaining int64 = profileContentLengthLimit var profiles []*pprof_profile.Profile mr, err := c.Request.MultipartReader() if err != nil { @@ -116,7 +119,7 @@ func Handler( err: errors.Wrap(err, "invalid metadata"), } } - r := &limitedReader{r: part, n: 10 * 1024 /* 10 KiB ought to be enough for anybody */} + r := &limitedReader{r: part, n: metadataContentLengthLimit} raw, err := decoder.DecodeJSONData(r) if err != nil { if err, ok := r.err.(requestError); ok { From 5a528a2be0e87a576a709e27613b8b3cbc88421e Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 17:33:03 +0800 Subject: [PATCH 08/14] beater/config: split InstrumentationConfig out --- beater/config/config.go | 64 +--------------------- beater/config/instrumentation.go | 93 ++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 62 deletions(-) create mode 100644 beater/config/instrumentation.go diff --git a/beater/config/config.go b/beater/config/config.go index b02561f88a1..de9df386bf3 100644 --- a/beater/config/config.go +++ b/beater/config/config.go @@ -36,10 +36,6 @@ const ( DefaultPort = "8200" msgInvalidConfigAgentCfg = "invalid value for `apm-server.agent.config.cache.expiration`, only accepting full seconds" - - defaultCPUProfilingInterval = 1 * time.Minute - defaultCPUProfilingDuration = 10 * time.Second - defaultHeapProfilingInterval = 1 * time.Minute ) var ( @@ -86,44 +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"` - Profiling ProfilingConfig `config:"profiling"` - SecretToken string `config:"secret_token"` -} - -// 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 -} - -// 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 -} - // 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) @@ -157,20 +115,8 @@ func NewConfig(version string, ucfg *common.Config, outputESCfg *common.Config) return nil, err } - if c.SelfInstrumentation.IsEnabled() { - if c.SelfInstrumentation.Profiling.CPU.IsEnabled() { - if c.SelfInstrumentation.Profiling.CPU.Interval <= 0 { - c.SelfInstrumentation.Profiling.CPU.Interval = defaultCPUProfilingInterval - } - if c.SelfInstrumentation.Profiling.CPU.Duration <= 0 { - c.SelfInstrumentation.Profiling.CPU.Duration = defaultCPUProfilingDuration - } - } - if c.SelfInstrumentation.Profiling.Heap.IsEnabled() { - if c.SelfInstrumentation.Profiling.Heap.Interval <= 0 { - c.SelfInstrumentation.Profiling.Heap.Interval = defaultHeapProfilingInterval - } - } + if err := c.SelfInstrumentation.setup(logger); err != nil { + return nil, err } return c, nil @@ -181,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..c81fbaca593 --- /dev/null +++ b/beater/config/instrumentation.go @@ -0,0 +1,93 @@ +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 +} From ff03e9b8bf01f38c09f0dac92866093508431e19 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 17:59:20 +0800 Subject: [PATCH 09/14] decoder: add LimitedReader --- decoder/limited_reader.go | 60 ++++++++++++++++++++++++++++++++++ decoder/limited_reader_test.go | 53 ++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 decoder/limited_reader.go create mode 100644 decoder/limited_reader_test.go 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) +} From 13710a2ebcd14ffedc4b9944c41f5bab50fa77b6 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 17:59:29 +0800 Subject: [PATCH 10/14] beater/api/profile: use decoder.LimitedReader --- beater/api/profile/handler.go | 54 +++++++++-------------------------- 1 file changed, 13 insertions(+), 41 deletions(-) diff --git a/beater/api/profile/handler.go b/beater/api/profile/handler.go index 84dec351102..6fed36d1580 100644 --- a/beater/api/profile/handler.go +++ b/beater/api/profile/handler.go @@ -119,11 +119,14 @@ func Handler( err: errors.Wrap(err, "invalid metadata"), } } - r := &limitedReader{r: part, n: metadataContentLengthLimit} + r := &decoder.LimitedReader{R: part, N: metadataContentLengthLimit} raw, err := decoder.DecodeJSONData(r) if err != nil { - if err, ok := r.err.(requestError); ok { - return nil, err + if r.N < 0 { + return nil, requestError{ + id: request.IDResponseErrorsRequestTooLarge, + err: err, + } } return nil, requestError{ id: request.IDResponseErrorsDecode, @@ -155,11 +158,14 @@ func Handler( err: errors.Wrap(err, "invalid profile"), } } - r := &limitedReader{r: part, n: totalLimitRemaining} + r := &decoder.LimitedReader{R: part, N: totalLimitRemaining} profile, err := pprof_profile.Parse(r) if err != nil { - if err, ok := r.err.(requestError); ok { - return nil, err + if r.N < 0 { + return nil, requestError{ + id: request.IDResponseErrorsRequestTooLarge, + err: err, + } } return nil, requestError{ id: request.IDResponseErrorsDecode, @@ -167,7 +173,7 @@ func Handler( } } profiles = append(profiles, profile) - totalLimitRemaining = r.n + totalLimitRemaining = r.N } } @@ -220,40 +226,6 @@ func validateContentType(header http.Header, contentType string) error { return nil } -// 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 -} - -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 = int(l.n) - l.n = 0 - l.err = requestError{ - id: request.IDResponseErrorsRequestTooLarge, - err: errors.New("too large"), - } - return n, l.err -} - type result struct { Accepted int `json:"accepted"` } From 2c6b960da0e340a503268ad2f88eec06620e3e92 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Fri, 22 Nov 2019 19:09:40 +0800 Subject: [PATCH 11/14] Add integration test --- beater/config/instrumentation.go | 17 + beater/integration_test.go | 85 +- beater/server_test.go | 13 + ...IntegrationProfileCPUProfile.approved.json | 9500 ++++++++++++++ ...ionProfileCPUProfileMetadata.approved.json | 10382 ++++++++++++++++ ...ntegrationProfileHeapProfile.approved.json | 4330 +++++++ docs/fields.asciidoc | 2 +- include/fields.go | 2 +- testdata/profile/cpu.pprof | Bin 0 -> 14209 bytes testdata/profile/heap.pprof | Bin 0 -> 8478 bytes testdata/profile/metadata.json | 1 + 11 files changed, 24323 insertions(+), 9 deletions(-) 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 testdata/profile/cpu.pprof create mode 100644 testdata/profile/heap.pprof create mode 100644 testdata/profile/metadata.json diff --git a/beater/config/instrumentation.go b/beater/config/instrumentation.go index c81fbaca593..930f2641af2 100644 --- a/beater/config/instrumentation.go +++ b/beater/config/instrumentation.go @@ -1,3 +1,20 @@ +// 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 ( 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..33cc1a6068c --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json @@ -0,0 +1,9500 @@ +{ + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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, + "id": "d58847c89c275eba", + "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..d2aaca06d87 --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json @@ -0,0 +1,10382 @@ +{ + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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, + "id": "eacc1e6ace9a75be", + "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..4ffff6a6bf4 --- /dev/null +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json @@ -0,0 +1,4330 @@ +{ + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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, + "id": "60991a59361853df", + "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/docs/fields.asciidoc b/docs/fields.asciidoc index efede826b06..8c58bd8e92f 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -1194,7 +1194,7 @@ type: long *`profile.duration`*:: + -- -Duration of the span, in microseconds. +Duration of the profile, in microseconds. type: long diff --git a/include/fields.go b/include/fields.go index 90103bb95f4..9a7c3abcd6c 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/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 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 Date: Wed, 27 Nov 2019 11:28:07 +0800 Subject: [PATCH 12/14] idxmgmt: add "profile" event index --- idxmgmt/ilm/policy.go | 3 ++- idxmgmt/indices.go | 2 +- idxmgmt/indices_test.go | 2 ++ idxmgmt/manager_test.go | 34 +++++++++++++++++----------------- 4 files changed, 22 insertions(+), 19 deletions(-) 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, }, } From caf9c15337bed67b2444d39fcf641436e09f2885 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Wed, 27 Nov 2019 13:35:42 +0800 Subject: [PATCH 13/14] model/profile: remove profile.id Not needed for now, and will get in the way of storage optimisations (aggregating multiple profiles) later. --- ...IntegrationProfileCPUProfile.approved.json | 98 ------------------- ...ionProfileCPUProfileMetadata.approved.json | 98 ------------------- ...ntegrationProfileHeapProfile.approved.json | 42 -------- docs/fields.asciidoc | 10 -- include/fields.go | 2 +- model/profile/_meta/fields.yml | 6 -- model/profile/profile.go | 9 -- model/profile/profile_test.go | 8 -- 8 files changed, 1 insertion(+), 272 deletions(-) diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json index 33cc1a6068c..2697113271c 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfile.approved.json @@ -26,7 +26,6 @@ "profile": { "cpu.ns": 30000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 3, "stack": [ { @@ -166,7 +165,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 2, "stack": [ { @@ -252,7 +250,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -410,7 +407,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -496,7 +492,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -564,7 +559,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -668,7 +662,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -766,7 +759,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -858,7 +850,6 @@ "profile": { "cpu.ns": 40000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 4, "stack": [ { @@ -968,7 +959,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 2, "stack": [ { @@ -1096,7 +1086,6 @@ "profile": { "cpu.ns": 110000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 11, "stack": [ { @@ -1158,7 +1147,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1232,7 +1220,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1342,7 +1329,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1482,7 +1468,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1550,7 +1535,6 @@ "profile": { "cpu.ns": 150000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 15, "stack": [ { @@ -1672,7 +1656,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1782,7 +1765,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1880,7 +1862,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -1978,7 +1959,6 @@ "profile": { "cpu.ns": 190000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 19, "stack": [ { @@ -2106,7 +2086,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2168,7 +2147,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2260,7 +2238,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2328,7 +2305,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2402,7 +2378,6 @@ "profile": { "cpu.ns": 140000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 14, "stack": [ { @@ -2536,7 +2511,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2622,7 +2596,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2684,7 +2657,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2734,7 +2706,6 @@ "profile": { "cpu.ns": 50000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 5, "stack": [ { @@ -2820,7 +2791,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -2948,7 +2918,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3064,7 +3033,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3180,7 +3148,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3260,7 +3227,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3382,7 +3348,6 @@ "profile": { "cpu.ns": 30000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 3, "stack": [ { @@ -3450,7 +3415,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3536,7 +3500,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3610,7 +3573,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3738,7 +3700,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -3914,7 +3875,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4000,7 +3960,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4104,7 +4063,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4274,7 +4232,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4336,7 +4293,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4470,7 +4426,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 2, "stack": [ { @@ -4592,7 +4547,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4660,7 +4614,6 @@ "profile": { "cpu.ns": 40000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 4, "stack": [ { @@ -4752,7 +4705,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4808,7 +4760,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4888,7 +4839,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -4950,7 +4900,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5084,7 +5033,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5146,7 +5094,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5196,7 +5143,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5282,7 +5228,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5398,7 +5343,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5496,7 +5440,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5576,7 +5519,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5686,7 +5628,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5796,7 +5737,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -5882,7 +5822,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6010,7 +5949,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6102,7 +6040,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6200,7 +6137,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6292,7 +6228,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6372,7 +6307,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6434,7 +6368,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6550,7 +6483,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6690,7 +6622,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6842,7 +6773,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6934,7 +6864,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -6996,7 +6925,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7094,7 +7022,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7252,7 +7179,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7392,7 +7318,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7520,7 +7445,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7588,7 +7512,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7662,7 +7585,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 2, "stack": [ { @@ -7772,7 +7694,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7816,7 +7737,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7872,7 +7792,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -7946,7 +7865,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8026,7 +7944,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8106,7 +8023,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8198,7 +8114,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8314,7 +8229,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8388,7 +8302,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8468,7 +8381,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8590,7 +8502,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8664,7 +8575,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8780,7 +8690,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8878,7 +8787,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -8976,7 +8884,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -9032,7 +8939,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -9142,7 +9048,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -9222,7 +9127,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -9278,7 +9182,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { @@ -9418,7 +9321,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "d58847c89c275eba", "samples.count": 1, "stack": [ { diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json index d2aaca06d87..0f74cb178e4 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileCPUProfileMetadata.approved.json @@ -32,7 +32,6 @@ "profile": { "cpu.ns": 30000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 3, "stack": [ { @@ -181,7 +180,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 2, "stack": [ { @@ -276,7 +274,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -443,7 +440,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -538,7 +534,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -615,7 +610,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -728,7 +722,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -835,7 +828,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -936,7 +928,6 @@ "profile": { "cpu.ns": 40000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 4, "stack": [ { @@ -1055,7 +1046,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 2, "stack": [ { @@ -1192,7 +1182,6 @@ "profile": { "cpu.ns": 110000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 11, "stack": [ { @@ -1263,7 +1252,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -1346,7 +1334,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -1465,7 +1452,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -1614,7 +1600,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -1691,7 +1676,6 @@ "profile": { "cpu.ns": 150000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 15, "stack": [ { @@ -1822,7 +1806,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -1941,7 +1924,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2048,7 +2030,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2155,7 +2136,6 @@ "profile": { "cpu.ns": 190000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 19, "stack": [ { @@ -2292,7 +2272,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2363,7 +2342,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2464,7 +2442,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2541,7 +2518,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2624,7 +2600,6 @@ "profile": { "cpu.ns": 140000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 14, "stack": [ { @@ -2767,7 +2742,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2862,7 +2836,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2933,7 +2906,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -2992,7 +2964,6 @@ "profile": { "cpu.ns": 50000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 5, "stack": [ { @@ -3087,7 +3058,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3224,7 +3194,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3349,7 +3318,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3474,7 +3442,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3563,7 +3530,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3694,7 +3660,6 @@ "profile": { "cpu.ns": 30000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 3, "stack": [ { @@ -3771,7 +3736,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3866,7 +3830,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -3949,7 +3912,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4086,7 +4048,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4271,7 +4232,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4366,7 +4326,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4479,7 +4438,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4658,7 +4616,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4729,7 +4686,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -4872,7 +4828,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 2, "stack": [ { @@ -5003,7 +4958,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5080,7 +5034,6 @@ "profile": { "cpu.ns": 40000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 4, "stack": [ { @@ -5181,7 +5134,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5246,7 +5198,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5335,7 +5286,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5406,7 +5356,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5549,7 +5498,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5620,7 +5568,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5679,7 +5626,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5774,7 +5720,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -5899,7 +5844,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6006,7 +5950,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6095,7 +6038,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6214,7 +6156,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6333,7 +6274,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6428,7 +6368,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6565,7 +6504,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6666,7 +6604,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6773,7 +6710,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6874,7 +6810,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -6963,7 +6898,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7034,7 +6968,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7159,7 +7092,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7308,7 +7240,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7469,7 +7400,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7570,7 +7500,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7641,7 +7570,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7748,7 +7676,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -7915,7 +7842,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8064,7 +7990,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8201,7 +8126,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8278,7 +8202,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8361,7 +8284,6 @@ "profile": { "cpu.ns": 20000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 2, "stack": [ { @@ -8480,7 +8402,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8533,7 +8454,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8598,7 +8518,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8681,7 +8600,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8770,7 +8688,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8859,7 +8776,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -8960,7 +8876,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9085,7 +9000,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9168,7 +9082,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9257,7 +9170,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9388,7 +9300,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9471,7 +9382,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9596,7 +9506,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9703,7 +9612,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9810,7 +9718,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9875,7 +9782,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -9994,7 +9900,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -10083,7 +9988,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -10148,7 +10052,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { @@ -10297,7 +10200,6 @@ "profile": { "cpu.ns": 10000000, "duration": 5100778105, - "id": "eacc1e6ace9a75be", "samples.count": 1, "stack": [ { diff --git a/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json index 4ffff6a6bf4..ad353e65a70 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationProfileHeapProfile.approved.json @@ -26,7 +26,6 @@ "profile": { "alloc_objects.count": 65536, "alloc_space.bytes": 524292, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -101,7 +100,6 @@ "profile": { "alloc_objects.count": 16384, "alloc_space.bytes": 524304, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -218,7 +216,6 @@ "profile": { "alloc_objects.count": 2979, "alloc_space.bytes": 524376, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -323,7 +320,6 @@ "profile": { "alloc_objects.count": 4096, "alloc_space.bytes": 524352, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -428,7 +424,6 @@ "profile": { "alloc_objects.count": 16384, "alloc_space.bytes": 524304, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -479,7 +474,6 @@ "profile": { "alloc_objects.count": 10923, "alloc_space.bytes": 524312, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -578,7 +572,6 @@ "profile": { "alloc_objects.count": 5461, "alloc_space.bytes": 524336, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -629,7 +622,6 @@ "profile": { "alloc_objects.count": 2, "alloc_space.bytes": 666237, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -704,7 +696,6 @@ "profile": { "alloc_objects.count": 1, "alloc_space.bytes": 924248, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -773,7 +764,6 @@ "profile": { "alloc_objects.count": 2, "alloc_space.bytes": 695248, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -896,7 +886,6 @@ "profile": { "alloc_objects.count": 4096, "alloc_space.bytes": 524352, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -983,7 +972,6 @@ "profile": { "alloc_objects.count": 16384, "alloc_space.bytes": 524304, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1100,7 +1088,6 @@ "profile": { "alloc_objects.count": 10923, "alloc_space.bytes": 524312, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1187,7 +1174,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1262,7 +1248,6 @@ "profile": { "alloc_objects.count": 2, "alloc_space.bytes": 2425393, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1313,7 +1298,6 @@ "profile": { "alloc_objects.count": 2, "alloc_space.bytes": 2000678, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1364,7 +1348,6 @@ "profile": { "alloc_objects.count": 5, "alloc_space.bytes": 579337, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1445,7 +1428,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1496,7 +1478,6 @@ "profile": { "alloc_objects.count": 16, "alloc_space.bytes": 540842, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1715,7 +1696,6 @@ "profile": { "alloc_objects.count": 128, "alloc_space.bytes": 526338, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1772,7 +1752,6 @@ "profile": { "alloc_objects.count": 5461, "alloc_space.bytes": 524336, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1841,7 +1820,6 @@ "profile": { "alloc_objects.count": 4, "alloc_space.bytes": 1390497, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -1982,7 +1960,6 @@ "profile": { "alloc_objects.count": 128, "alloc_space.bytes": 526338, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2039,7 +2016,6 @@ "profile": { "alloc_objects.count": 32768, "alloc_space.bytes": 524296, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2174,7 +2150,6 @@ "profile": { "alloc_objects.count": 8192, "alloc_space.bytes": 524320, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2219,7 +2194,6 @@ "profile": { "alloc_objects.count": 5461, "alloc_space.bytes": 524336, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2288,7 +2262,6 @@ "profile": { "alloc_objects.count": 33, "alloc_space.bytes": 1647743, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2363,7 +2336,6 @@ "profile": { "alloc_objects.count": 5461, "alloc_space.bytes": 524336, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2522,7 +2494,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2687,7 +2658,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -2900,7 +2870,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3023,7 +2992,6 @@ "profile": { "alloc_objects.count": 13, "alloc_space.bytes": 545034, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3116,7 +3084,6 @@ "profile": { "alloc_objects.count": 1820, "alloc_space.bytes": 524432, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3257,7 +3224,6 @@ "profile": { "alloc_objects.count": 2521, "alloc_space.bytes": 524392, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3386,7 +3352,6 @@ "profile": { "alloc_objects.count": 819, "alloc_space.bytes": 524608, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3497,7 +3462,6 @@ "profile": { "alloc_objects.count": 16, "alloc_space.bytes": 540842, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3698,7 +3662,6 @@ "profile": { "alloc_objects.count": 4, "alloc_space.bytes": 1390497, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3821,7 +3784,6 @@ "profile": { "alloc_objects.count": 1638, "alloc_space.bytes": 524448, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -3944,7 +3906,6 @@ "profile": { "alloc_objects.count": 21, "alloc_space.bytes": 2317349, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -4031,7 +3992,6 @@ "profile": { "alloc_objects.count": 16, "alloc_space.bytes": 1738012, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ @@ -4118,7 +4078,6 @@ "profile": { "alloc_objects.count": 64, "alloc_space.bytes": 528394, - "id": "60991a59361853df", "inuse_objects.count": 64, "inuse_space.bytes": 528394, "stack": [ @@ -4229,7 +4188,6 @@ "profile": { "alloc_objects.count": 1024, "alloc_space.bytes": 524544, - "id": "60991a59361853df", "inuse_objects.count": 0, "inuse_space.bytes": 0, "stack": [ diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index 8c58bd8e92f..31e151b5e26 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -1115,16 +1115,6 @@ Profiling-specific data for APM. -*`profile.id`*:: -+ --- -The unique ID of the profile. - - -type: keyword - --- - *`profile.cpu.ns`*:: + diff --git a/include/fields.go b/include/fields.go index 9a7c3abcd6c..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 index c921a4ad833..444a631f912 100644 --- a/model/profile/_meta/fields.yml +++ b/model/profile/_meta/fields.yml @@ -6,12 +6,6 @@ type: group dynamic: false fields: - - - name: id - type: keyword - description: > - The unique ID of the profile. - - name: cpu type: group fields: diff --git a/model/profile/profile.go b/model/profile/profile.go index 46dfe5c42df..81d9cea5fa7 100644 --- a/model/profile/profile.go +++ b/model/profile/profile.go @@ -56,18 +56,9 @@ func (pp PprofProfile) Transform(tctx *transform.Context) []beat.Event { valueFieldNames[i] = sampleType.Type + "." + sampleUnit } - // Generate a unique ID for all samples in the profile. - var profileID string - if idBytes, err := common.RandomBytes(8); err == nil { - profileID = fmt.Sprintf("%x", idBytes) - } - samples := make([]beat.Event, len(pp.Profile.Sample)) for i, sample := range pp.Profile.Sample { profileFields := common.MapStr{} - if profileID != "" { - profileFields["id"] = profileID - } if pp.Profile.DurationNanos > 0 { profileFields["duration"] = pp.Profile.DurationNanos } diff --git a/model/profile/profile_test.go b/model/profile/profile_test.go index 5f9939453c2..20aa77d524c 100644 --- a/model/profile/profile_test.go +++ b/model/profile/profile_test.go @@ -95,14 +95,6 @@ func TestPprofProfileTransform(t *testing.T) { require.Len(t, output, 2) assert.Equal(t, output[0], output[1]) - // Each profile is assigned a random ID; all samples within a - // document share the same random ID, which is checked by the - // equality assertion above. - profileField, ok := output[0].Fields["profile"].(common.MapStr) - require.True(t, ok) - assert.NotEmpty(t, profileField["id"]) - delete(profileField, "id") - assert.Equal(t, beat.Event{ Timestamp: timestamp, Fields: common.MapStr{ From c600819d5fe9e2b5531a7ec426bc6a13e56886e2 Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Wed, 27 Nov 2019 11:30:45 +0800 Subject: [PATCH 14/14] tests/system: add system tests for profiling --- 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 +-- 4 files changed, 100 insertions(+), 4 deletions(-) diff --git a/tests/system/apmserver.py b/tests/system/apmserver.py index 1f82387bb78..d7d9286b82c 100644 --- a/tests/system/apmserver.py +++ b/tests/system/apmserver.py @@ -37,6 +37,7 @@ def setUpClass(cls): cls.index_span = "apm-{}-span".format(cls.apm_version) cls.index_metric = "apm-{}-metric".format(cls.apm_version) cls.index_smap = "apm-{}-sourcemap".format(cls.apm_version) + cls.index_profile = "apm-{}-profile".format(cls.apm_version) cls.index_acm = ".apm-agent-configuration" cls.indices = [cls.index_onboarding, cls.index_error, cls.index_transaction, cls.index_span, cls.index_metric, cls.index_smap] diff --git a/tests/system/config/apm-server.yml.j2 b/tests/system/config/apm-server.yml.j2 index 0c93099877b..0a8781cecd7 100644 --- a/tests/system/config/apm-server.yml.j2 +++ b/tests/system/config/apm-server.yml.j2 @@ -73,6 +73,25 @@ apm-server: register.ingest.pipeline.overwrite: {{ register_pipeline_overwrite }} {% endif %} + {% if instrumentation_enabled %} + instrumentation.enabled: {{ instrumentation_enabled }} + {% endif %} + {% if profiling_cpu_enabled %} + instrumentation.profiling.cpu.enabled: {{ profiling_cpu_enabled }} + {% endif %} + {% if profiling_cpu_interval %} + instrumentation.profiling.cpu.interval: {{ profiling_cpu_interval }} + {% endif %} + {% if profiling_cpu_duration %} + instrumentation.profiling.cpu.duration: {{ profiling_cpu_duration }} + {% endif %} + {% if profiling_heap_enabled %} + instrumentation.profiling.heap.enabled: {{ profiling_heap_enabled }} + {% endif %} + {% if profiling_heap_interval %} + instrumentation.profiling.heap.interval: {{ profiling_heap_interval }} + {% endif %} + {% if mode %} mode: {{ mode }} {% endif %} diff --git a/tests/system/test_integration.py b/tests/system/test_integration.py index 86bc094e200..c89a619c794 100644 --- a/tests/system/test_integration.py +++ b/tests/system/test_integration.py @@ -629,6 +629,80 @@ def test_metric_doc(self): assert expected_type == actual_type, "want: {}, got: {}".format(expected_type, actual_type) +class ProfileIntegrationTest(ElasticTest): + def metric_fields(self): + metric_fields = set() + rs = self.es.search(index=self.index_profile) + for hit in rs["hits"]["hits"]: + profile = hit["_source"]["profile"] + metric_fields.update((k for (k, v) in profile.items() if type(v) is int)) + return metric_fields + + def wait_for_profile(self): + def cond(): + self.es.indices.refresh(index=self.index_profile) + response = self.es.count(index=self.index_profile, body={"query": {"term": {"processor.name": "profile"}}}) + return response['count'] != 0 + self.wait_until(cond, max_timeout=10) + + +class CPUProfileIntegrationTest(ProfileIntegrationTest): + config_overrides = { + "instrumentation_enabled": "true", + "profiling_cpu_enabled": "true", + "profiling_cpu_interval": "1s", + "profiling_cpu_duration": "5s", + } + + @unittest.skipUnless(INTEGRATION_TESTS, "integration test") + def test_self_profiling(self): + """CPU profiling enabled""" + + import requests + + def create_load(): + payload_path = self.get_payload_path("transactions_spans.ndjson") + with open(payload_path) as f: + requests.post(self.intake_url, data=f, headers={'content-type': 'application/x-ndjson'}) + + # Wait for profiling to begin, and then start sending data + # to the server to create some CPU load. + from datetime import datetime, timedelta + time.sleep(1) + start = datetime.now() + while datetime.now()-start < timedelta(seconds=5): + create_load() + self.wait_for_profile() + + expected_metric_fields = set([u"cpu.ns", u"samples.count", u"duration"]) + metric_fields = self.metric_fields() + self.assertEqual(metric_fields, expected_metric_fields) + + +class HeapProfileIntegrationTest(ProfileIntegrationTest): + config_overrides = { + "instrumentation_enabled": "true", + "profiling_heap_enabled": "true", + "profiling_heap_interval": "1s", + } + + @unittest.skipUnless(INTEGRATION_TESTS, "integration test") + def test_self_profiling(self): + """Heap profiling enabled""" + + time.sleep(1) + self.wait_for_profile() + + expected_metric_fields = set([ + u"alloc_objects.count", + u"inuse_objects.count", + u"alloc_space.bytes", + u"inuse_space.bytes", + ]) + metric_fields = self.metric_fields() + self.assertEqual(metric_fields, expected_metric_fields) + + class ExperimentalBaseTest(ElasticTest): def check_experimental_key_indexed(self, experimental): self.wait_until(lambda: self.log_contains("Registered Ingest Pipelines successfully"), max_timeout=10) diff --git a/tests/system/test_setup_index_management.py b/tests/system/test_setup_index_management.py index 6b0a1852d2c..76771ee7c45 100644 --- a/tests/system/test_setup_index_management.py +++ b/tests/system/test_setup_index_management.py @@ -8,13 +8,15 @@ INTEGRATION_TESTS = os.environ.get('INTEGRATION_TESTS', False) +EVENT_NAMES = ('error', 'span', 'transaction', 'metric', 'profile') + class IdxMgmt(object): def __init__(self, client, index): self._client = client self._index = index - self._event_indices = ["{}-{}".format(self._index, e) for e in ['error', 'span', 'transaction', 'metric']] + self._event_indices = ["{}-{}".format(self._index, e) for e in EVENT_NAMES] self.default_policy = "apm-rollover-30-days" def indices(self): @@ -40,7 +42,7 @@ def assert_template(self, loaded=1): s, i, l = 'settings', 'index', 'lifecycle' assert l not in resp[self._index][s][i] - def assert_event_template(self, loaded=4, with_ilm=True): + def assert_event_template(self, loaded=len(EVENT_NAMES), with_ilm=True): resp = self._client.indices.get_template(name=self._index + '*', ignore=[404]) if self._index in resp: @@ -60,7 +62,7 @@ def assert_event_template(self, loaded=4, with_ilm=True): assert t[l]['name'] is not None, t[l] assert t[l]['rollover_alias'] == idx, t[l] - def assert_alias(self, loaded=4): + def assert_alias(self, loaded=len(EVENT_NAMES)): resp = self._client.transport.perform_request('GET', '/_alias/' + self._index + '*') if loaded == 0: return self.assert_empty(resp) @@ -321,7 +323,7 @@ def test_ilm_loaded(self): max_timeout=5) self.idxmgmt.assert_event_template(with_ilm=True) - self.idxmgmt.assert_alias(loaded=4) + self.idxmgmt.assert_alias() self.idxmgmt.assert_default_policy(loaded=True) # check out configured policy in apm-server.yml.j2