From 5e05c3ba719f6f636738a12ee4fada6b9f9a22ef Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 24 Sep 2020 15:25:19 +0800 Subject: [PATCH] Add transaction.experience.longtask metrics fields (#4230) Update the schema and fields for RUM to report metrics about longtasks per transaction. --- ...blishIntegrationTransactions.approved.json | 5 +++ changelogs/head.asciidoc | 1 + .../intake-api/generated/rum_v3_events.ndjson | 2 +- docs/fields.asciidoc | 33 ++++++++++++++ docs/spec/rum_experience.json | 23 ---------- docs/spec/transactions/rum_experience.json | 45 +++++++++++++++++++ docs/spec/transactions/rum_v3_experience.json | 45 +++++++++++++++++++ .../spec/transactions/rum_v3_transaction.json | 2 +- docs/spec/transactions/transaction.json | 2 +- include/fields.go | 2 +- model/experience.go | 23 ++++++++++ model/experience_test.go | 11 +++++ model/modeldecoder/experience.go | 10 ++++- model/modeldecoder/field/rum_v3_mapping.go | 15 ++++++- model/modeldecoder/generator/generator.go | 35 +++++++-------- model/modeldecoder/rumv3/decoder.go | 15 ++++++- model/modeldecoder/rumv3/model.go | 9 ++++ model/modeldecoder/rumv3/model_generated.go | 41 ++++++++++++++++- model/modeldecoder/rumv3/transaction_test.go | 15 ++++--- model/modeldecoder/transaction.go | 2 +- model/modeldecoder/transaction_test.go | 10 +++++ model/modeldecoder/v2/decoder.go | 14 +++++- model/modeldecoder/v2/model.go | 9 ++++ model/modeldecoder/v2/model_generated.go | 41 ++++++++++++++++- model/modeldecoder/v2/transaction_test.go | 17 ++++--- model/transaction/_meta/fields.yml | 18 ++++++++ .../generated/schema/rum_v3_transaction.go | 22 +++++++++ .../generated/schema/transaction.go | 22 +++++++++ .../package_tests/transaction_attrs_test.go | 3 ++ ...ntakeIntegrationTransactions.approved.json | 5 +++ .../testIntakeRUMV3Events.approved.json | 5 +++ testdata/intake-v2/transactions.ndjson | 2 +- testdata/intake-v3/rum_events.ndjson | 2 +- 33 files changed, 435 insertions(+), 71 deletions(-) delete mode 100644 docs/spec/rum_experience.json create mode 100644 docs/spec/transactions/rum_experience.json create mode 100644 docs/spec/transactions/rum_v3_experience.json diff --git a/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json index df9b4454daa..25f5af42bf6 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json @@ -470,6 +470,11 @@ "experience": { "cls": 1, "fid": 2, + "longtask": { + "count": 3, + "max": 1, + "sum": 2.5 + }, "tbt": 3.4 }, "id": "cdef4340a8e0df19", diff --git a/changelogs/head.asciidoc b/changelogs/head.asciidoc index a803c3d9b7b..5a00b5fcd5d 100644 --- a/changelogs/head.asciidoc +++ b/changelogs/head.asciidoc @@ -35,3 +35,4 @@ https://github.com/elastic/apm-server/compare/7.9\...master[View commits] * Set event.outcome for transactions and spans based on http.status_code {pull}4165[4165] * Add mapping for `system.process.cgroup.*` metrics {pull}4176[4176] * Use transaction.sample_rate to calculate transaction metrics {pull}4212[4212] +* Add longtask metric fields to transaction.experience {pull}4230[4230] diff --git a/docs/data/intake-api/generated/rum_v3_events.ndjson b/docs/data/intake-api/generated/rum_v3_events.ndjson index 88bcbe51df8..11bea20ca14 100644 --- a/docs/data/intake-api/generated/rum_v3_events.ndjson +++ b/docs/data/intake-api/generated/rum_v3_events.ndjson @@ -1,3 +1,3 @@ {"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"}}} -{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} +{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}} {"me": {"y": {"t": "Processing","su": "subtype"},"sa": {"ysc": {"v": 1},"yss": {"v": 124}},"g": {"tag1": "value1"}}} diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index ab32416d1e7..d435683315c 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -1767,6 +1767,39 @@ type: scaled_float -- +[float] +=== longtask + +Longtask duration/count metrics + + +*`transaction.experience.longtask.count`*:: ++ +-- +The total number of of longtasks + +type: long + +-- + +*`transaction.experience.longtask.sum`*:: ++ +-- +The sum of longtask durations + +type: scaled_float + +-- + +*`transaction.experience.longtask.max`*:: ++ +-- +The max longtask duration + +type: scaled_float + +-- + *`transaction.span_count.dropped`*:: + diff --git a/docs/spec/rum_experience.json b/docs/spec/rum_experience.json deleted file mode 100644 index 2296ace7591..00000000000 --- a/docs/spec/rum_experience.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$id": "docs/spec/rum_experience.json", - "title": "RUM Experience Metrics", - "description": "Metrics for measuring real user (browser) experience", - "type": ["object", "null"], - "properties": { - "cls": { - "type": ["number", "null"], - "description": "The Cumulative Layout Shift metric", - "minimum": 0 - }, - "tbt": { - "type": ["number", "null"], - "description": "The Total Blocking Time metric", - "minimum": 0 - }, - "fid": { - "type": ["number", "null"], - "description": "The First Input Delay metric", - "minimum": 0 - } - } -} diff --git a/docs/spec/transactions/rum_experience.json b/docs/spec/transactions/rum_experience.json new file mode 100644 index 00000000000..3b4342cf6f7 --- /dev/null +++ b/docs/spec/transactions/rum_experience.json @@ -0,0 +1,45 @@ +{ + "$id": "docs/spec/rum_experience.json", + "title": "RUM Experience Metrics", + "description": "Metrics for measuring real user (browser) experience", + "type": ["object", "null"], + "properties": { + "cls": { + "type": ["number", "null"], + "description": "The Cumulative Layout Shift metric", + "minimum": 0 + }, + "tbt": { + "type": ["number", "null"], + "description": "The Total Blocking Time metric", + "minimum": 0 + }, + "fid": { + "type": ["number", "null"], + "description": "The First Input Delay metric", + "minimum": 0 + }, + "longtask": { + "type": ["object", "null"], + "description": "Longtask duration/count metrics", + "properties": { + "count": { + "type": ["integer"], + "description": "The total number of of longtasks", + "minimum": 0 + }, + "sum": { + "type": ["number"], + "description": "The sum of longtask durations", + "minimum": 0 + }, + "max": { + "type": ["number"], + "description": "The max longtask duration", + "minimum": 0 + } + }, + "required": ["count", "sum", "max"] + } + } +} diff --git a/docs/spec/transactions/rum_v3_experience.json b/docs/spec/transactions/rum_v3_experience.json new file mode 100644 index 00000000000..ca316f5ac39 --- /dev/null +++ b/docs/spec/transactions/rum_v3_experience.json @@ -0,0 +1,45 @@ +{ + "$id": "docs/spec/rum_experience.json", + "title": "RUM Experience Metrics", + "description": "Metrics for measuring real user (browser) experience", + "type": ["object", "null"], + "properties": { + "cls": { + "type": ["number", "null"], + "description": "The Cumulative Layout Shift metric", + "minimum": 0 + }, + "tbt": { + "type": ["number", "null"], + "description": "The Total Blocking Time metric", + "minimum": 0 + }, + "fid": { + "type": ["number", "null"], + "description": "The First Input Delay metric", + "minimum": 0 + }, + "lt": { + "type": ["object", "null"], + "description": "Longtask duration/count metrics", + "properties": { + "count": { + "type": ["integer"], + "description": "The total number of of longtasks", + "minimum": 0 + }, + "sum": { + "type": ["number"], + "description": "The sum of longtask durations", + "minimum": 0 + }, + "max": { + "type": ["number"], + "description": "The max longtask duration", + "minimum": 0 + } + }, + "required": ["count", "sum", "max"] + } + } +} diff --git a/docs/spec/transactions/rum_v3_transaction.json b/docs/spec/transactions/rum_v3_transaction.json index 7dc2830f52e..ff5f1d13575 100644 --- a/docs/spec/transactions/rum_v3_transaction.json +++ b/docs/spec/transactions/rum_v3_transaction.json @@ -103,7 +103,7 @@ "description": "Transactions that are 'sampled' will include all available information. Transactions that are not sampled will not have 'spans' or 'context'. Defaults to true." }, "exp": { - "$ref": "../rum_experience.json" + "$ref": "rum_v3_experience.json" } }, "required": [ diff --git a/docs/spec/transactions/transaction.json b/docs/spec/transactions/transaction.json index c481133d682..f4176c9c6e1 100644 --- a/docs/spec/transactions/transaction.json +++ b/docs/spec/transactions/transaction.json @@ -75,7 +75,7 @@ "description": "Transactions that are 'sampled' will include all available information. Transactions that are not sampled will not have 'spans' or 'context'. Defaults to true." }, "experience": { - "$ref": "../rum_experience.json" + "$ref": "rum_experience.json" } }, "required": ["id", "trace_id", "span_count", "duration", "type"] diff --git a/include/fields.go b/include/fields.go index fe4c636aee2..02a9083877a 100644 --- a/include/fields.go +++ b/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetBuildFieldsFieldsYml returns asset data. // This is the base64 encoded gzipped contents of build/fields/fields.yml. func AssetBuildFieldsFieldsYml() string { - return "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" + return "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" } diff --git a/model/experience.go b/model/experience.go index 7dda281ed9c..1b0b94e436a 100644 --- a/model/experience.go +++ b/model/experience.go @@ -34,6 +34,22 @@ type UserExperience struct { // TotalBlockingTime holds the Total Blocking Time (TBT) metric value, // or a negative value if TBT is unknown. See https://web.dev/tbt/ TotalBlockingTime float64 + + // Longtask holds longtask metrics. If Longtask.Count is negative, + // then Longtask is considered unset. See https://www.w3.org/TR/longtasks/ + Longtask LongtaskMetrics +} + +// LongtaskMetrics holds metrics related to RUM longtasks. +type LongtaskMetrics struct { + // Count holds the number of longtasks, or a negative value if unknown. + Count int + + // Sum holds the sum of longtask durations. + Sum float64 + + // Max holds the maximum longtask duration. + Max float64 } func (u *UserExperience) Fields() common.MapStr { @@ -50,5 +66,12 @@ func (u *UserExperience) Fields() common.MapStr { if u.TotalBlockingTime >= 0 { fields.set("tbt", u.TotalBlockingTime) } + if u.Longtask.Count >= 0 { + fields.set("longtask", common.MapStr{ + "count": u.Longtask.Count, + "sum": u.Longtask.Sum, + "max": u.Longtask.Max, + }) + } return common.MapStr(fields) } diff --git a/model/experience_test.go b/model/experience_test.go index 108a48447e0..e2f40f99e21 100644 --- a/model/experience_test.go +++ b/model/experience_test.go @@ -37,6 +37,7 @@ func TestUserExperienceFields(t *testing.T) { CumulativeLayoutShift: -1, FirstInputDelay: -1, TotalBlockingTime: -1, + Longtask: LongtaskMetrics{Count: -1}, }, Expected: nil, }, { @@ -44,11 +45,21 @@ func TestUserExperienceFields(t *testing.T) { CumulativeLayoutShift: 1, FirstInputDelay: 2.3, TotalBlockingTime: 4.56, + Longtask: LongtaskMetrics{ + Count: 3, + Sum: 2, + Max: 1, + }, }, Expected: common.MapStr{ "cls": 1.0, "fid": 2.3, "tbt": 4.56, + "longtask": common.MapStr{ + "count": 3, + "sum": 2.0, + "max": 1.0, + }, }, }} for _, test := range tests { diff --git a/model/modeldecoder/experience.go b/model/modeldecoder/experience.go index 073554adea5..f4297fdb9bb 100644 --- a/model/modeldecoder/experience.go +++ b/model/modeldecoder/experience.go @@ -19,9 +19,10 @@ package modeldecoder import ( "github.com/elastic/apm-server/model" + "github.com/elastic/apm-server/model/modeldecoder/field" ) -func decodeUserExperience(input map[string]interface{}, out *model.UserExperience) { +func decodeUserExperience(input map[string]interface{}, fieldName field.MapperFunc, out *model.UserExperience) { if input == nil { return } @@ -35,4 +36,11 @@ func decodeUserExperience(input map[string]interface{}, out *model.UserExperienc if !decodeFloat64(input, "tbt", &out.TotalBlockingTime) { out.TotalBlockingTime = -1 } + + out.Longtask.Count = -1 + if input := getObject(input, fieldName("longtask")); input != nil { + decodeInt(input, "count", &out.Longtask.Count) + decodeFloat64(input, "sum", &out.Longtask.Sum) + decodeFloat64(input, "max", &out.Longtask.Max) + } } diff --git a/model/modeldecoder/field/rum_v3_mapping.go b/model/modeldecoder/field/rum_v3_mapping.go index be143c2233f..9ffccd5585e 100644 --- a/model/modeldecoder/field/rum_v3_mapping.go +++ b/model/modeldecoder/field/rum_v3_mapping.go @@ -70,6 +70,7 @@ var rumV3Mapping = map[string]string{ "loadEventStart": "es", "log": "log", "logger_name": "ln", + "longtask": "lt", "marks": "k", "message": "mg", "metadata": "m", @@ -135,14 +136,24 @@ func init() { } } -func Mapper(shortFieldNames bool) func(string) string { +// MapperFunc is the type of a function that maps from one field +// name to another. +type MapperFunc func(string) string + +// Mapper returns a MapperFunc that maps from long to short names +// if shortFieldNames is true, and otherwise returns the identity +// function. +func Mapper(shortFieldNames bool) MapperFunc { if shortFieldNames { return rumV3Mapper } return identityMapper } -func InverseMapper(shortFieldNames bool) func(string) string { +// InverseMapper returns a MapperFunc that maps from short to long +// names if shortFieldNames is true, and otherwise returns the identity +// function. +func InverseMapper(shortFieldNames bool) MapperFunc { if shortFieldNames { return rumV3InverseMapper } diff --git a/model/modeldecoder/generator/generator.go b/model/modeldecoder/generator/generator.go index 35927bd93ad..25c5ac04a72 100644 --- a/model/modeldecoder/generator/generator.go +++ b/model/modeldecoder/generator/generator.go @@ -468,34 +468,18 @@ if val.%s.Val != "" && !%s.MatchString(val.%s.Val){ return fmt.Errorf("unhandled tag rule '%s' for '%s'", rule, flattenedName) } } - case g.nullableInt: + case g.nullableInt, g.nullableFloat64: for _, rule := range sortedRules { val := parts[rule] switch rule { case ruleRequired: ruleNullableRequired(&g.buf, f.name, flattenedName) - case ruleMax: + case ruleMin, ruleMax: fmt.Fprintf(&g.buf, ` -if val.%s.Val > %s{ +if val.%s.Val %s %s { return fmt.Errorf("validation rule '%s(%s)' violated for '%s'") } -`[1:], f.name, val, rule, val, flattenedName) - default: - return fmt.Errorf("unhandled tag rule '%s' for '%s'", rule, flattenedName) - } - } - case g.nullableFloat64: - for _, rule := range sortedRules { - val := parts[rule] - switch rule { - case ruleRequired: - ruleNullableRequired(&g.buf, f.name, flattenedName) - case ruleMin: - fmt.Fprintf(&g.buf, ` -if val.%s.Val < %s{ - return fmt.Errorf("validation rule '%s(%s)' violated for '%s'") -} -`[1:], f.name, val, rule, val, flattenedName) +`[1:], f.name, ruleMinMaxOperator(rule), val, rule, val, flattenedName) default: return fmt.Errorf("unhandled tag rule '%s' for '%s'", rule, flattenedName) } @@ -700,3 +684,14 @@ func validationTag(structTag reflect.StructTag) (map[string]string, error) { } return m, nil } + +func ruleMinMaxOperator(rule string) string { + switch rule { + case ruleMin: + return "<" + case ruleMax: + return ">" + default: + panic("unexpected rule: " + rule) + } +} diff --git a/model/modeldecoder/rumv3/decoder.go b/model/modeldecoder/rumv3/decoder.go index 41a11f42a47..ad6481e475b 100644 --- a/model/modeldecoder/rumv3/decoder.go +++ b/model/modeldecoder/rumv3/decoder.go @@ -292,17 +292,28 @@ func mapToTransactionModel(t *transaction, metadata *model.Metadata, reqTime tim out.Type = t.Type.Val } if t.UserExperience.IsSet() { - out.UserExperience = &model.UserExperience{} + out.UserExperience = &model.UserExperience{ + CumulativeLayoutShift: -1, + FirstInputDelay: -1, + TotalBlockingTime: -1, + Longtask: model.LongtaskMetrics{Count: -1}, + } if t.UserExperience.CumulativeLayoutShift.IsSet() { out.UserExperience.CumulativeLayoutShift = t.UserExperience.CumulativeLayoutShift.Val } if t.UserExperience.FirstInputDelay.IsSet() { out.UserExperience.FirstInputDelay = t.UserExperience.FirstInputDelay.Val - } if t.UserExperience.TotalBlockingTime.IsSet() { out.UserExperience.TotalBlockingTime = t.UserExperience.TotalBlockingTime.Val } + if t.UserExperience.Longtask.IsSet() { + out.UserExperience.Longtask = model.LongtaskMetrics{ + Count: t.UserExperience.Longtask.Count.Val, + Sum: t.UserExperience.Longtask.Sum.Val, + Max: t.UserExperience.Longtask.Max.Val, + } + } } if t.Context.IsSet() { if t.Context.Page.IsSet() { diff --git a/model/modeldecoder/rumv3/model.go b/model/modeldecoder/rumv3/model.go index 00b3db9472e..817b533e6ae 100644 --- a/model/modeldecoder/rumv3/model.go +++ b/model/modeldecoder/rumv3/model.go @@ -195,6 +195,15 @@ type transactionUserExperience struct { // TotalBlockingTime holds the Total Blocking Time (TBT) metric value, // or a negative value if TBT is unknown. See https://web.dev/tbt/ TotalBlockingTime nullable.Float64 `json:"tbt" validate:"min=0"` + + // Longtask holds longtask duration/count metrics. + Longtask longtaskMetrics `json:"lt"` +} + +type longtaskMetrics struct { + Count nullable.Int `json:"count" validate:"required,min=0"` + Sum nullable.Float64 `json:"sum" validate:"required,min=0"` + Max nullable.Float64 `json:"max" validate:"required,min=0"` } type user struct { diff --git a/model/modeldecoder/rumv3/model_generated.go b/model/modeldecoder/rumv3/model_generated.go index dba3d78f043..0251c14b3f5 100644 --- a/model/modeldecoder/rumv3/model_generated.go +++ b/model/modeldecoder/rumv3/model_generated.go @@ -715,13 +715,14 @@ func (val *transactionSpanCount) validate() error { } func (val *transactionUserExperience) IsSet() bool { - return val.CumulativeLayoutShift.IsSet() || val.FirstInputDelay.IsSet() || val.TotalBlockingTime.IsSet() + return val.CumulativeLayoutShift.IsSet() || val.FirstInputDelay.IsSet() || val.TotalBlockingTime.IsSet() || val.Longtask.IsSet() } func (val *transactionUserExperience) Reset() { val.CumulativeLayoutShift.Reset() val.FirstInputDelay.Reset() val.TotalBlockingTime.Reset() + val.Longtask.Reset() } func (val *transactionUserExperience) validate() error { @@ -737,5 +738,43 @@ func (val *transactionUserExperience) validate() error { if val.TotalBlockingTime.Val < 0 { return fmt.Errorf("validation rule 'min(0)' violated for 'x.exp.tbt'") } + if err := val.Longtask.validate(); err != nil { + return err + } + return nil +} + +func (val *longtaskMetrics) IsSet() bool { + return val.Count.IsSet() || val.Sum.IsSet() || val.Max.IsSet() +} + +func (val *longtaskMetrics) Reset() { + val.Count.Reset() + val.Sum.Reset() + val.Max.Reset() +} + +func (val *longtaskMetrics) validate() error { + if !val.IsSet() { + return nil + } + if val.Count.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'x.exp.lt.count'") + } + if !val.Count.IsSet() { + return fmt.Errorf("'x.exp.lt.count' required") + } + if val.Sum.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'x.exp.lt.sum'") + } + if !val.Sum.IsSet() { + return fmt.Errorf("'x.exp.lt.sum' required") + } + if val.Max.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'x.exp.lt.max'") + } + if !val.Max.IsSet() { + return fmt.Errorf("'x.exp.lt.max' required") + } return nil } diff --git a/model/modeldecoder/rumv3/transaction_test.go b/model/modeldecoder/rumv3/transaction_test.go index 0ea98924540..2be6d73f5cb 100644 --- a/model/modeldecoder/rumv3/transaction_test.go +++ b/model/modeldecoder/rumv3/transaction_test.go @@ -318,12 +318,15 @@ func TestTransactionValidationRules(t *testing.T) { // iterate through struct, remove every key one by one // and test that validation behaves as expected requiredKeys := map[string]interface{}{"d": nil, - "id": nil, - "yc": nil, - "yc.sd": nil, - "tid": nil, - "t": nil, - "c.q.mt": nil, + "id": nil, + "yc": nil, + "yc.sd": nil, + "tid": nil, + "t": nil, + "c.q.mt": nil, + "exp.lt.count": nil, + "exp.lt.sum": nil, + "exp.lt.max": nil, } modeldecodertest.SetZeroStructValue(&event, func(key string) { err := event.validate() diff --git a/model/modeldecoder/transaction.go b/model/modeldecoder/transaction.go index 1b187a40ac4..209e1134dbb 100644 --- a/model/modeldecoder/transaction.go +++ b/model/modeldecoder/transaction.go @@ -192,7 +192,7 @@ func decodeTransaction(input Input, schema *jsonschema.Schema) (*model.Transacti if obj := getObject(raw, fieldName("experience")); obj != nil { var experience model.UserExperience - decodeUserExperience(obj, &experience) + decodeUserExperience(obj, fieldName, &experience) e.UserExperience = &experience } diff --git a/model/modeldecoder/transaction_test.go b/model/modeldecoder/transaction_test.go index 4de041d66e7..75c6a05996f 100644 --- a/model/modeldecoder/transaction_test.go +++ b/model/modeldecoder/transaction_test.go @@ -347,6 +347,11 @@ func TestTransactionEventDecode(t *testing.T) { "cls": 1.0, "fid": 2.3, "ignored": 4, + "longtask": map[string]interface{}{ + "count": 3.0, + "sum": 2.0, + "max": 1.0, + }, }, }, e: &model.Transaction{ @@ -378,6 +383,11 @@ func TestTransactionEventDecode(t *testing.T) { CumulativeLayoutShift: 1, FirstInputDelay: 2.3, TotalBlockingTime: -1, // undefined + Longtask: model.LongtaskMetrics{ + Count: 3, + Sum: 2, + Max: 1, + }, }, }, }, diff --git a/model/modeldecoder/v2/decoder.go b/model/modeldecoder/v2/decoder.go index ed6448587ef..f772aa26f13 100644 --- a/model/modeldecoder/v2/decoder.go +++ b/model/modeldecoder/v2/decoder.go @@ -430,7 +430,12 @@ func mapToTransactionModel(t *transaction, metadata *model.Metadata, reqTime tim out.Type = t.Type.Val } if t.UserExperience.IsSet() { - out.UserExperience = &model.UserExperience{} + out.UserExperience = &model.UserExperience{ + CumulativeLayoutShift: -1, + FirstInputDelay: -1, + TotalBlockingTime: -1, + Longtask: model.LongtaskMetrics{Count: -1}, + } if t.UserExperience.CumulativeLayoutShift.IsSet() { out.UserExperience.CumulativeLayoutShift = t.UserExperience.CumulativeLayoutShift.Val } @@ -441,6 +446,13 @@ func mapToTransactionModel(t *transaction, metadata *model.Metadata, reqTime tim if t.UserExperience.TotalBlockingTime.IsSet() { out.UserExperience.TotalBlockingTime = t.UserExperience.TotalBlockingTime.Val } + if t.UserExperience.Longtask.IsSet() { + out.UserExperience.Longtask = model.LongtaskMetrics{ + Count: t.UserExperience.Longtask.Count.Val, + Sum: t.UserExperience.Longtask.Sum.Val, + Max: t.UserExperience.Longtask.Max.Val, + } + } } if t.Context.IsSet() { if t.Context.Page.IsSet() { diff --git a/model/modeldecoder/v2/model.go b/model/modeldecoder/v2/model.go index a061a1e8b08..f3707584c33 100644 --- a/model/modeldecoder/v2/model.go +++ b/model/modeldecoder/v2/model.go @@ -317,6 +317,15 @@ type transactionUserExperience struct { // TotalBlockingTime holds the Total Blocking Time (TBT) metric value, // or a negative value if TBT is unknown. See https://web.dev/tbt/ TotalBlockingTime nullable.Float64 `json:"tbt" validate:"min=0"` + + // Longtask holds longtask duration/count metrics. + Longtask longtaskMetrics `json:"longtask"` +} + +type longtaskMetrics struct { + Count nullable.Int `json:"count" validate:"required,min=0"` + Sum nullable.Float64 `json:"sum" validate:"required,min=0"` + Max nullable.Float64 `json:"max" validate:"required,min=0"` } type user struct { diff --git a/model/modeldecoder/v2/model_generated.go b/model/modeldecoder/v2/model_generated.go index 151bbacea90..e61ce4f22c2 100644 --- a/model/modeldecoder/v2/model_generated.go +++ b/model/modeldecoder/v2/model_generated.go @@ -1209,13 +1209,14 @@ func (val *transactionSpanCount) validate() error { } func (val *transactionUserExperience) IsSet() bool { - return val.CumulativeLayoutShift.IsSet() || val.FirstInputDelay.IsSet() || val.TotalBlockingTime.IsSet() + return val.CumulativeLayoutShift.IsSet() || val.FirstInputDelay.IsSet() || val.TotalBlockingTime.IsSet() || val.Longtask.IsSet() } func (val *transactionUserExperience) Reset() { val.CumulativeLayoutShift.Reset() val.FirstInputDelay.Reset() val.TotalBlockingTime.Reset() + val.Longtask.Reset() } func (val *transactionUserExperience) validate() error { @@ -1231,5 +1232,43 @@ func (val *transactionUserExperience) validate() error { if val.TotalBlockingTime.Val < 0 { return fmt.Errorf("validation rule 'min(0)' violated for 'transaction.experience.tbt'") } + if err := val.Longtask.validate(); err != nil { + return err + } + return nil +} + +func (val *longtaskMetrics) IsSet() bool { + return val.Count.IsSet() || val.Sum.IsSet() || val.Max.IsSet() +} + +func (val *longtaskMetrics) Reset() { + val.Count.Reset() + val.Sum.Reset() + val.Max.Reset() +} + +func (val *longtaskMetrics) validate() error { + if !val.IsSet() { + return nil + } + if val.Count.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'transaction.experience.longtask.count'") + } + if !val.Count.IsSet() { + return fmt.Errorf("'transaction.experience.longtask.count' required") + } + if val.Sum.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'transaction.experience.longtask.sum'") + } + if !val.Sum.IsSet() { + return fmt.Errorf("'transaction.experience.longtask.sum' required") + } + if val.Max.Val < 0 { + return fmt.Errorf("validation rule 'min(0)' violated for 'transaction.experience.longtask.max'") + } + if !val.Max.IsSet() { + return fmt.Errorf("'transaction.experience.longtask.max' required") + } return nil } diff --git a/model/modeldecoder/v2/transaction_test.go b/model/modeldecoder/v2/transaction_test.go index 2c83307fa2a..778f8cf4cd9 100644 --- a/model/modeldecoder/v2/transaction_test.go +++ b/model/modeldecoder/v2/transaction_test.go @@ -364,13 +364,16 @@ func TestTransactionValidationRules(t *testing.T) { // iterate through struct, remove every key one by one // and test that validation behaves as expected requiredKeys := map[string]interface{}{ - "duration": nil, - "id": nil, - "span_count": nil, - "span_count.started": nil, - "trace_id": nil, - "type": nil, - "context.request.method": nil, + "duration": nil, + "id": nil, + "span_count": nil, + "span_count.started": nil, + "trace_id": nil, + "type": nil, + "context.request.method": nil, + "experience.longtask.count": nil, + "experience.longtask.sum": nil, + "experience.longtask.max": nil, } modeldecodertest.SetZeroStructValue(&event, func(key string) { err := event.validate() diff --git a/model/transaction/_meta/fields.yml b/model/transaction/_meta/fields.yml index 65c160fa7be..ea5aed0f653 100644 --- a/model/transaction/_meta/fields.yml +++ b/model/transaction/_meta/fields.yml @@ -50,6 +50,24 @@ scaling_factor: 1000000 description: The Total Blocking Time metric + - name: longtask + type: group + description: Longtask duration/count metrics + fields: + - name: count + type: long + description: The total number of of longtasks + + - name: sum + type: scaled_float + scaling_factor: 1000000 + description: The sum of longtask durations + + - name: max + type: scaled_float + scaling_factor: 1000000 + description: The max longtask duration + - name: span_count type: group fields: diff --git a/model/transaction/generated/schema/rum_v3_transaction.go b/model/transaction/generated/schema/rum_v3_transaction.go index 5a54f37f4fe..34ac81df05c 100644 --- a/model/transaction/generated/schema/rum_v3_transaction.go +++ b/model/transaction/generated/schema/rum_v3_transaction.go @@ -1013,6 +1013,28 @@ const RUMV3Schema = `{ "type": ["number", "null"], "description": "The First Input Delay metric", "minimum": 0 + }, + "lt": { + "type": ["object", "null"], + "description": "Longtask duration/count metrics", + "properties": { + "count": { + "type": ["integer"], + "description": "The total number of of longtasks", + "minimum": 0 + }, + "sum": { + "type": ["number"], + "description": "The sum of longtask durations", + "minimum": 0 + }, + "max": { + "type": ["number"], + "description": "The max longtask duration", + "minimum": 0 + } + }, + "required": ["count", "sum", "max"] } } } diff --git a/model/transaction/generated/schema/transaction.go b/model/transaction/generated/schema/transaction.go index dbb0969a86d..85655233759 100644 --- a/model/transaction/generated/schema/transaction.go +++ b/model/transaction/generated/schema/transaction.go @@ -513,6 +513,28 @@ const ModelSchema = `{ "type": ["number", "null"], "description": "The First Input Delay metric", "minimum": 0 + }, + "longtask": { + "type": ["object", "null"], + "description": "Longtask duration/count metrics", + "properties": { + "count": { + "type": ["integer"], + "description": "The total number of of longtasks", + "minimum": 0 + }, + "sum": { + "type": ["number"], + "description": "The sum of longtask durations", + "minimum": 0 + }, + "max": { + "type": ["number"], + "description": "The max longtask duration", + "minimum": 0 + } + }, + "required": ["count", "sum", "max"] } } } diff --git a/processor/stream/package_tests/transaction_attrs_test.go b/processor/stream/package_tests/transaction_attrs_test.go index 13581aef9ce..66a3d867db0 100644 --- a/processor/stream/package_tests/transaction_attrs_test.go +++ b/processor/stream/package_tests/transaction_attrs_test.go @@ -102,6 +102,9 @@ func transactionRequiredKeys() *tests.Set { "transaction.type", "transaction.context.request.method", "transaction.context.request.url", + "transaction.experience.longtask.count", + "transaction.experience.longtask.sum", + "transaction.experience.longtask.max", ) } diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json index d6daabe4465..ce452ca053b 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json @@ -434,6 +434,11 @@ "experience": { "cls": 1, "fid": 2, + "longtask": { + "count": 3, + "max": 1, + "sum": 2.5 + }, "tbt": 3.4 }, "id": "cdef4340a8e0df19", diff --git a/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json b/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json index 25fc7bfa09f..719b7584cbf 100644 --- a/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json @@ -81,6 +81,11 @@ "experience": { "cls": 1, "fid": 2, + "longtask": { + "count": 3, + "max": 1, + "sum": 2.5 + }, "tbt": 3.4 }, "id": "ec2e280be8345240", diff --git a/testdata/intake-v2/transactions.ndjson b/testdata/intake-v2/transactions.ndjson index e2d5942a3c6..c363958f516 100644 --- a/testdata/intake-v2/transactions.ndjson +++ b/testdata/intake-v2/transactions.ndjson @@ -1,5 +1,5 @@ {"metadata": {"service": {"name": "1234_service-12a3","node": {"configured_name": "node-123"},"version": "5.1.3","environment": "staging","language": {"name": "ecmascript","version": "8"},"runtime": {"name": "node","version": "8.0.0"},"framework": {"name": "Express","version": "1.2.3"},"agent": {"name": "elastic-node","version": "3.14.0"}},"user": {"id": "123user", "username": "bar", "email": "bar@user.com"}, "labels": {"tag0": null, "tag1": "one", "tag2": 2}, "process": {"pid": 1234,"ppid": 6789,"title": "node","argv": ["node","server.js"]},"system": {"hostname": "prod1.example.com","architecture": "x64","platform": "darwin", "container": {"id": "container-id"}, "kubernetes": {"namespace": "namespace1", "pod": {"uid": "pod-uid", "name": "pod-name"}, "node": {"name": "node-name"}}},"cloud":{"account":{"id":"account_id","name":"account_name"},"availability_zone":"cloud_availability_zone","instance":{"id":"instance_id","name":"instance_name"},"machine":{"type":"machine_type"},"project":{"id":"project_id","name":"project_name"},"provider":"cloud_provider","region":"cloud_region"}}} {"transaction": { "id": "945254c567a5417e", "trace_id": "0123456789abcdef0123456789abcdef", "parent_id": "abcdefabcdef01234567", "type": "request", "duration": 32.592981, "span_count": { "started": 43 }}} {"transaction": {"id": "4340a8e0df1906ecbfa9", "trace_id": "0acd456789abcdef0123456789abcdef", "name": "GET /api/types","type": "request","duration": 32.592981,"outcome":"success", "result": "success", "timestamp": 1496170407154000, "sampled": true, "span_count": {"started": 17},"context": {"service": {"runtime": {"version": "7.0"}},"page":{"referer":"http://localhost:8000/test/e2e/","url":"http://localhost:8000/test/e2e/general-usecase/"}, "request": {"socket": {"remote_address": "12.53.12.1","encrypted": true},"http_version": "1.1","method": "POST","url": {"protocol": "https:","full": "https://www.example.com/p/a/t/h?query=string#hash","hostname": "www.example.com","port": "8080","pathname": "/p/a/t/h","search": "?query=string","hash": "#hash","raw": "/p/a/t/h?query=string#hash"},"headers": {"user-agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36","Mozilla Chrome Edge"],"content-type": "text/html","cookie": "c1=v1, c2=v2","some-other-header": "foo","array": ["foo","bar","baz"]},"cookies": {"c1": "v1","c2": "v2"},"env": {"SERVER_SOFTWARE": "nginx","GATEWAY_INTERFACE": "CGI/1.1"},"body": {"str": "hello world","additional": { "foo": {},"bar": 123,"req": "additional information"}}},"response": {"status_code": 200,"headers": {"content-type": "application/json"},"headers_sent": true,"finished": true,"transfer_size":25.8,"encoded_body_size":26.90,"decoded_body_size":29.90}, "user": {"id": "99","username": "foo"},"tags": {"organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8", "tag2": 12, "tag3": 12.45, "tag4": false, "tag5": null },"custom": {"my_key": 1,"some_other_value": "foo bar","and_objects": {"foo": ["bar","baz"]},"(": "not a valid regex and that is fine"}}}} -{"transaction": { "id": "cdef4340a8e0df19", "trace_id": "0acd456789abcdef0123456789abcdef", "type": "request", "duration": 13.980558, "timestamp": 1532976822281000, "sampled": null, "span_count": { "dropped": 55, "started": 436 }, "marks": {"navigationTiming": {"appBeforeBootstrap": 608.9300000000001,"navigationStart": -21},"another_mark": {"some_long": 10,"some_float": 10.0}, "performance": {}}, "context": { "request": { "socket": { "remote_address": "192.0.1", "encrypted": null }, "method": "POST", "headers": { "user-agent": null, "content-type": null, "cookie": null }, "url": { "protocol": null, "full": null, "hostname": null, "port": null, "pathname": null, "search": null, "hash": null, "raw": null } }, "response": { "headers": { "content-type": null } }, "service": {"environment":"testing","name": "service1","node": {"configured_name": "node-ABC"}, "language": {"version": "2.5", "name": "ruby"}, "agent": {"version": "2.2", "name": "elastic-ruby", "ephemeral_id": "justanid"}, "framework": {"version": "5.0", "name": "Rails"}, "version": "2", "runtime": {"version": "2.5", "name": "cruby"}}},"experience":{"cls":1,"fid":2.0,"tbt":3.4}}} +{"transaction": { "id": "cdef4340a8e0df19", "trace_id": "0acd456789abcdef0123456789abcdef", "type": "request", "duration": 13.980558, "timestamp": 1532976822281000, "sampled": null, "span_count": { "dropped": 55, "started": 436 }, "marks": {"navigationTiming": {"appBeforeBootstrap": 608.9300000000001,"navigationStart": -21},"another_mark": {"some_long": 10,"some_float": 10.0}, "performance": {}}, "context": { "request": { "socket": { "remote_address": "192.0.1", "encrypted": null }, "method": "POST", "headers": { "user-agent": null, "content-type": null, "cookie": null }, "url": { "protocol": null, "full": null, "hostname": null, "port": null, "pathname": null, "search": null, "hash": null, "raw": null } }, "response": { "headers": { "content-type": null } }, "service": {"environment":"testing","name": "service1","node": {"configured_name": "node-ABC"}, "language": {"version": "2.5", "name": "ruby"}, "agent": {"version": "2.2", "name": "elastic-ruby", "ephemeral_id": "justanid"}, "framework": {"version": "5.0", "name": "Rails"}, "version": "2", "runtime": {"version": "2.5", "name": "cruby"}}},"experience":{"cls":1,"fid":2.0,"tbt":3.4,"longtask":{"count":3,"sum":2.5,"max":1}}}} {"transaction": { "id": "00xxxxFFaaaa1234", "trace_id": "0123456789abcdef0123456789abcdef", "name": "amqp receive", "parent_id": "abcdefabcdef01234567", "type": "messaging", "duration": 3, "span_count": { "started": 1 }, "context": {"message": {"queue": { "name": "new_users"}, "age":{ "ms": 1577958057123}, "headers": {"user_id": "1ax3", "involved_services": ["user", "auth"]}, "body": "user created"}}}} diff --git a/testdata/intake-v3/rum_events.ndjson b/testdata/intake-v3/rum_events.ndjson index 88bcbe51df8..11bea20ca14 100644 --- a/testdata/intake-v3/rum_events.ndjson +++ b/testdata/intake-v3/rum_events.ndjson @@ -1,3 +1,3 @@ {"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"}}} -{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} +{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}} {"me": {"y": {"t": "Processing","su": "subtype"},"sa": {"ysc": {"v": 1},"yss": {"v": 124}},"g": {"tag1": "value1"}}}