From 319e008cfc14e420d5aa8658c7e0612988a75cef Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Thu, 23 Nov 2023 14:53:47 +0800 Subject: [PATCH] systemtest: approve fields instead of _source --- .../data_stream/error_logs/fields/fields.yml | 34 +- .../apm_data_stream_migration.yml | 42 - .../apm/data_stream/traces/fields/fields.yml | 71 +- systemtest/agentconfig_test.go | 2 +- systemtest/aggregation_test.go | 30 +- .../TestApprovedMetrics.approved.json | 40 +- .../TestCompressedSpans.approved.json | 6 + .../approvals/TestDropUnsampled.approved.json | 9 + .../approvals/TestErrorIngest.approved.json | 9 + ...tPipelineDataStreamMigration.approved.json | 921 ------------------ .../approvals/TestIntake/Errors.approved.json | 431 ++++---- .../TestIntake/ErrorsTxID.approved.json | 286 +++--- .../approvals/TestIntake/Events.approved.json | 486 ++++----- .../TestIntake/Metricsets.approved.json | 40 +- .../TestIntake/MinimalEvents.approved.json | 12 +- .../approvals/TestIntake/Spans.approved.json | 367 ++++--- .../TestIntake/Transactions.approved.json | 191 ++-- .../TransactionsHugeTraces.approved.json | 143 +-- .../TestIntake/UnknownSpanType.approved.json | 214 ++-- .../TestIntakeLog/with_faas.approved.json | 3 + .../with_flat_ecs_fields.approved.json | 3 + .../with_nested_ecs_fields.approved.json | 3 + ...fields_overrides_flat_fields.approved.json | 3 + .../with_timestamp.approved.json | 3 + .../with_timestamp_as_str.approved.json | 3 + .../without_timestamp.approved.json | 3 + .../TestJaeger/batch_0.approved.json | 12 + .../TestJaeger/batch_1.approved.json | 12 +- .../TestNoMatchingSourcemap.approved.json | 61 +- .../TestOTLPGRPCLogsClientIP.approved.json | 5 +- ...estOTLPGRPCMetrics_histogram.approved.json | 26 +- .../TestOTLPGRPCMetrics_summary.approved.json | 10 +- .../TestOTLPGRPCTraces.approved.json | 15 +- .../standalone.approved.json | 430 ++++---- .../standalone.approved.json | 430 ++++---- .../TestRUMRoutingIntegration.approved.json | 125 ++- .../TestRUMSpanSourcemapping.approved.json | 149 +-- .../TestRUMXForwardedFor.approved.json | 6 + ...erviceDestinationAggregation.approved.json | 9 - ...ransactionMetricsAggregation.approved.json | 234 ++--- .../TestTransactionAggregation.approved.json | 321 +++--- ...ansactionAggregationShutdown.approved.json | 117 +-- ...tionDroppedSpansStatsMetrics.approved.json | 18 - ...DroppedSpansStatsTransaction.approved.json | 8 +- systemtest/errors_test.go | 34 +- systemtest/huge_traces_test.go | 21 +- systemtest/ingest_test.go | 37 - systemtest/intake_log_test.go | 2 +- systemtest/intake_test.go | 5 +- systemtest/jaeger_test.go | 2 +- systemtest/metrics_test.go | 2 +- systemtest/otlp_test.go | 12 +- systemtest/rum_test.go | 6 +- systemtest/sampling_test.go | 2 +- systemtest/sourcemap_test.go | 6 +- 55 files changed, 2597 insertions(+), 2875 deletions(-) delete mode 100644 apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml delete mode 100644 systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json diff --git a/apmpackage/apm/data_stream/error_logs/fields/fields.yml b/apmpackage/apm/data_stream/error_logs/fields/fields.yml index c24ddc4e677..7d09a162531 100644 --- a/apmpackage/apm/data_stream/error_logs/fields/fields.yml +++ b/apmpackage/apm/data_stream/error_logs/fields/fields.yml @@ -6,6 +6,12 @@ - name: error.culprit type: keyword description: Function call which was the primary perpetrator of this event. +- name: error.custom + type: flattened + description: Custom error context. +- name: error.exception.attributes + type: flattened + description: Arbitrary attributes associated with the exception. - name: error.exception.code type: keyword description: The error code set when the error happened, e.g. database error code. @@ -18,6 +24,10 @@ - name: error.exception.module type: keyword description: The module namespace of the original error. +- name: error.exception.stacktrace + type: flattened + description: | + Stacktrace identifying the instrumented source code corresponding to the error. - name: error.exception.type type: keyword description: The type of the original error, e.g. the Java exception class name. @@ -42,8 +52,24 @@ type: keyword description: | A parametrized message. E.g. 'Could not connect to %s'. The property message is still required, and should be equal to the param_message, but with placeholders replaced. In some situations the param_message is used to group errors together. +- name: error.log.stacktrace + type: flattened + description: | + Stacktrace identifying the instrumented source code corresponding to the error. +- name: http.request.body + type: flattened + description: | + The original body of the monitored HTTP request. +- name: http.request.env + type: flattened + description: | + The CGI-like environment variables of the monitored HTTP request. +- name: http.request.cookies + type: flattened + description: | + The cookies of the monitored HTTP request. - name: http.request.headers - type: object + type: flattened description: | The canonical headers of the monitored HTTP request. - name: http.response.finished @@ -51,9 +77,13 @@ description: | Used by the Node agent to indicate when in the response life cycle an error has occurred. - name: http.response.headers - type: object + type: flattened description: | The canonical headers of the monitored HTTP response. +- name: http.response.headers_sent + type: boolean + description: | + Used by the Node agent to indicate whether HTTP response headers were sent. - name: kubernetes.namespace type: keyword description: | diff --git a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml b/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml deleted file mode 100644 index ce9480e5fbc..00000000000 --- a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -description: | - Pipeline for migrating APM events from indices to data streams. - This pipeline is not used directly by apmserver; it is installed - for manually migrating legacy indices to data streams. -processors: - - pipeline: - name: observer_version - - pipeline: - name: observer_ids - - pipeline: - name: remove_ecs_version - - pipeline: - name: process_ppid - - script: - if: ctx.processor?.event == 'span' || ctx.processor?.event == 'transaction' - source: | - ctx.data_stream = ["type": "traces", "dataset": "apm", "namespace": "migrated"] - - script: - if: ctx.processor?.event == 'error' - source: | - ctx.data_stream = ["type": "logs", "dataset": "apm.error", "namespace": "migrated"] - - script: - if: ctx.processor?.event == 'metric' - source: | - String dataset; - if (ctx["metricset.name"] != "app") { - dataset = "apm.internal"; - } else { - String serviceName = ctx.service.name; - serviceName = serviceName.toLowerCase(); - serviceName = /[\\\/*?"<>| ,#:-]/.matcher(serviceName).replaceAll('_'); - dataset = "apm.app." + serviceName; - } - ctx.data_stream = ["type": "metrics", "dataset": dataset, "namespace": "migrated"]; - - set: - if: ctx.data_stream != null - field: _index - value: "{{data_stream.type}}-{{data_stream.dataset}}-{{data_stream.namespace}}" - - remove: - field: timeseries # remove timeseries.instance - ignore_missing: true diff --git a/apmpackage/apm/data_stream/traces/fields/fields.yml b/apmpackage/apm/data_stream/traces/fields/fields.yml index 94ec29db330..01a2033c81d 100644 --- a/apmpackage/apm/data_stream/traces/fields/fields.yml +++ b/apmpackage/apm/data_stream/traces/fields/fields.yml @@ -56,8 +56,20 @@ type: keyword description: | The lambda function version. +- name: http.request.body + type: flattened + description: | + The original body of the monitored HTTP request. +- name: http.request.env + type: flattened + description: | + The CGI-like environment variables of the monitored HTTP request. +- name: http.request.cookies + type: flattened + description: | + The cookies of the monitored HTTP request. - name: http.request.headers - type: object + type: flattened description: | The canonical headers of the monitored HTTP request. - name: http.response.finished @@ -65,9 +77,14 @@ description: | Used by the Node agent to indicate when in the response life cycle an error has occurred. - name: http.response.headers - type: object + type: flattened description: | The canonical headers of the monitored HTTP response. +- name: http.response.headers_sent + type: boolean + index: false + description: | + Used by the Node agent to indicate whether HTTP response headers were sent. - name: http.response.transfer_size type: long unit: byte @@ -221,10 +238,26 @@ type: long description: | Sum of the durations of the compressed spans, in microseconds. +- name: span.db.instance + type: keyword + description: | + Database instance. - name: span.db.link type: keyword description: | Database link. +- name: span.db.type + type: keyword + description: | + Database type. +- name: span.db.user.name + type: keyword + description: | + Database username. +- name: span.db.statement + type: keyword + description: | + Database statement. - name: span.db.rows_affected type: long description: | @@ -245,6 +278,18 @@ type: long description: | Duration of the span, in microseconds. +- name: span.message.body + type: keyword + description: The message body + index: false +- name: span.message.routing_key + type: keyword + description: The message routing key + index: false +- name: span.message.headers + type: flattened + description: The message headers + index: false - name: span.message.age.ms type: long description: | @@ -257,6 +302,10 @@ type: keyword description: | Generic designation of a span in the scope of a transaction. +- name: span.stacktrace + type: flattened + description: | + Stacktrace identifying the instrumented source code corresponding to the span. - name: span.subtype type: keyword description: | @@ -279,6 +328,9 @@ type: long description: | Timestamp of the event in microseconds since Unix epoch. +- name: transaction.custom + type: flattened + description: Custom transaction context. - name: transaction.duration.us type: long description: | @@ -306,6 +358,18 @@ description: | A user-defined mapping of groups of marks in milliseconds. dynamic: true +- name: transaction.message.body + type: keyword + description: The message body + index: false +- name: transaction.message.routing_key + type: keyword + description: The message routing key + index: false +- name: transaction.message.headers + type: flattened + description: The message headers + index: false - name: transaction.message.age.ms type: long description: | @@ -332,6 +396,9 @@ - name: transaction.span_count.dropped type: long description: The total amount of dropped spans for this transaction. +- name: transaction.span_count.started + type: long + description: The total amount of started spans for this transaction. - name: transaction.type type: keyword description: | diff --git a/systemtest/agentconfig_test.go b/systemtest/agentconfig_test.go index 62c8758a6cd..8cd2a8683a7 100644 --- a/systemtest/agentconfig_test.go +++ b/systemtest/agentconfig_test.go @@ -139,7 +139,7 @@ func TestAgentConfig(t *testing.T) { require.Len(t, result.Hits.Hits, 2) etag := gjson.GetBytes(result.Hits.Hits[0].RawSource, "labels.etag") assert.Equal(t, etag1, strconv.Quote(etag.String())) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, "@timestamp", "labels.etag") + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, "@timestamp", "labels.etag") } func queryAgentConfig(t testing.TB, serverURL, serviceName, serviceEnvironment, etag string) (map[string]string, *http.Response, map[string]interface{}) { diff --git a/systemtest/aggregation_test.go b/systemtest/aggregation_test.go index 53e50f88f8c..58658ab22ef 100644 --- a/systemtest/aggregation_test.go +++ b/systemtest/aggregation_test.go @@ -78,7 +78,7 @@ func TestTransactionAggregation(t *testing.T) { result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 9, "metrics-apm.transaction*", espoll.ExistsQuery{Field: "transaction.duration.histogram"}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) // Make sure the _doc_count field is added such that aggregations return // the appropriate per-bucket doc_count values. @@ -140,7 +140,7 @@ func TestTransactionAggregationShutdown(t *testing.T) { result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 3, "metrics-apm.transaction*", espoll.ExistsQuery{Field: "transaction.duration.histogram"}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) } func TestServiceDestinationAggregation(t *testing.T) { @@ -176,7 +176,16 @@ func TestServiceDestinationAggregation(t *testing.T) { result := estest.ExpectDocs(t, systemtest.Elasticsearch, "metrics-apm.service_destination*", espoll.ExistsQuery{Field: "span.destination.service.response_time.count"}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) + + // _doc_count is not returned in fields, it is only visible in _source and + // in the results of aggregations. + // + // TODO(axw) we should use an aggregation, and check the resturned doc_counts. + for _, hit := range result.Hits.Hits { + docCount := hit.Source["_doc_count"].(float64) + assert.Equal(t, 5.0, docCount) + } } func TestTransactionAggregationLabels(t *testing.T) { @@ -252,7 +261,16 @@ func TestServiceTransactionMetricsAggregation(t *testing.T) { result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 2, "metrics-apm.service_transaction*", espoll.TermQuery{Field: "metricset.name", Value: "service_transaction"}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) + + // _doc_count is not returned in fields, it is only visible in _source and + // in the results of aggregations. + // + // TODO(axw) we should use an aggregation, and check the resturned doc_counts. + for _, hit := range result.Hits.Hits { + docCount := hit.Source["_doc_count"].(float64) + assert.Equal(t, 2.0, docCount) + } } func TestServiceTransactionMetricsAggregationLabels(t *testing.T) { @@ -371,7 +389,7 @@ func TestServiceSummaryMetricsAggregation(t *testing.T) { result := estest.ExpectDocs(t, systemtest.Elasticsearch, "metrics-apm.service_summary*", espoll.TermQuery{Field: "metricset.name", Value: "service_summary"}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) } func TestServiceSummaryMetricsAggregationOverflow(t *testing.T) { @@ -416,7 +434,7 @@ func TestServiceSummaryMetricsAggregationOverflow(t *testing.T) { espoll.TermQuery{Field: "metricset.name", Value: "service_summary"}, ) // Ignore timestamp because overflow bucket uses time.Now() - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, "@timestamp") + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, "@timestamp") } func TestNonDefaultRollupIntervalHiddenDataStream(t *testing.T) { diff --git a/systemtest/approvals/TestApprovedMetrics.approved.json b/systemtest/approvals/TestApprovedMetrics.approved.json index 72dcebb178d..3ee806a691b 100644 --- a/systemtest/approvals/TestApprovedMetrics.approved.json +++ b/systemtest/approvals/TestApprovedMetrics.approved.json @@ -68,6 +68,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -142,6 +145,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -234,6 +240,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -264,15 +273,19 @@ "labels.tag1": [ "one" ], - "latency_distribution.counts": [ - 1, - 2, - 3 - ], - "latency_distribution.values": [ - 1.1, - 2.2, - 3.3 + "latency_distribution": [ + { + "counts": [ + 1, + 2, + 3 + ], + "values": [ + 1.1, + 2.2, + 3.3 + ] + } ], "metricset.name": [ "app" @@ -312,6 +325,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -407,6 +423,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -502,6 +521,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] } ] diff --git a/systemtest/approvals/TestCompressedSpans.approved.json b/systemtest/approvals/TestCompressedSpans.approved.json index c2a61a5dca2..cec7f4a25f1 100644 --- a/systemtest/approvals/TestCompressedSpans.approved.json +++ b/systemtest/approvals/TestCompressedSpans.approved.json @@ -57,6 +57,9 @@ "process.title": [ "systemtest.test" ], + "process.title.text": [ + "systemtest.test" + ], "processor.event": [ "span" ], @@ -179,6 +182,9 @@ "process.title": [ "systemtest.test" ], + "process.title.text": [ + "systemtest.test" + ], "processor.event": [ "span" ], diff --git a/systemtest/approvals/TestDropUnsampled.approved.json b/systemtest/approvals/TestDropUnsampled.approved.json index fe0113bff34..af28a6a95dd 100644 --- a/systemtest/approvals/TestDropUnsampled.approved.json +++ b/systemtest/approvals/TestDropUnsampled.approved.json @@ -54,6 +54,9 @@ "process.title": [ "systemtest.test" ], + "process.title.text": [ + "systemtest.test" + ], "processor.event": [ "transaction" ], @@ -90,6 +93,9 @@ "transaction.name": [ "sampled" ], + "transaction.name.text": [ + "sampled" + ], "transaction.representative_count": [ 1 ], @@ -185,6 +191,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] diff --git a/systemtest/approvals/TestErrorIngest.approved.json b/systemtest/approvals/TestErrorIngest.approved.json index 1dc1abb0446..3d73033b329 100644 --- a/systemtest/approvals/TestErrorIngest.approved.json +++ b/systemtest/approvals/TestErrorIngest.approved.json @@ -130,6 +130,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "staging" ], @@ -192,6 +198,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] } ] diff --git a/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json b/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json deleted file mode 100644 index 0c6ce518a67..00000000000 --- a/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json +++ /dev/null @@ -1,921 +0,0 @@ -[ - { - "@timestamp": [ - "2022-09-12T03:52:50.939Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm.error" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "logs" - ], - "error.culprit": [ - "once" - ], - "error.exception.handled": [ - false - ], - "error.exception.message": [ - "boom" - ], - "error.exception.module": [ - "errors" - ], - "error.exception.stacktrace.abs_path": [ - "/home/andrew/projects/apmload/main.go", - "/home/andrew/projects/apmload/main.go", - "/home/andrew/go/toolchain/1.18.1/src/runtime/proc.go", - "/home/andrew/go/toolchain/1.18.1/src/runtime/asm_amd64.s" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false, - false, - false - ], - "error.exception.stacktrace.filename": [ - "main.go", - "main.go", - "proc.go", - "asm_amd64.s" - ], - "error.exception.stacktrace.function": [ - "once", - "main", - "main", - "goexit" - ], - "error.exception.stacktrace.library_frame": [ - true, - true - ], - "error.exception.stacktrace.line.number": [ - 53, - 29, - 250, - 1571 - ], - "error.exception.stacktrace.module": [ - "main", - "main", - "runtime", - "runtime" - ], - "error.exception.type": [ - "errorString" - ], - "error.grouping_key": [ - "d9bb6552d94deb040e83062f8fe1e449" - ], - "error.grouping_name": [ - "boom" - ], - "error.id": [ - "b2da5288b2c3d7e79c42a636ca2fd99f" - ], - "event.ingested": [ - "dynamic" - ], - "host.architecture": [ - "amd64" - ], - "host.hostname": [ - "corduroy" - ], - "host.ip": [ - "110.174.44.88" - ], - "host.name": [ - "corduroy" - ], - "host.os.platform": [ - "linux" - ], - "message": [ - "boom" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "parent.id": [ - "7bd04bc3063f9930" - ], - "process.args": [ - "/tmp/go-build1405913256/b001/exe/main" - ], - "process.parent.pid": [ - 4009763 - ], - "process.pid": [ - 4009922 - ], - "process.title": [ - "main" - ], - "processor.event": [ - "error" - ], - "processor.name": [ - "error" - ], - "service.language.name": [ - "go" - ], - "service.language.version": [ - "go1.18.1" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "service.runtime.name": [ - "gc" - ], - "service.runtime.version": [ - "go1.18.1" - ], - "timestamp.us": [ - 1662954770939878 - ], - "trace.id": [ - "5cfc595035477ea235a632fc3e2bb6b1" - ], - "transaction.id": [ - "5cfc595035477ea2" - ], - "transaction.sampled": [ - true - ], - "transaction.type": [ - "type" - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:51.178Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm.app.main" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "metrics" - ], - "event.ingested": [ - "dynamic" - ], - "golang.goroutines": [ - 11 - ], - "golang.heap.allocations.active": [ - 6160384 - ], - "golang.heap.allocations.allocated": [ - 4579688 - ], - "golang.heap.allocations.frees": [ - 39979 - ], - "golang.heap.allocations.idle": [ - 5701632 - ], - "golang.heap.allocations.mallocs": [ - 44520 - ], - "golang.heap.allocations.objects": [ - 4541 - ], - "golang.heap.allocations.total": [ - 8834120 - ], - "golang.heap.gc.cpu_fraction": [ - 0.0003175952 - ], - "golang.heap.gc.next_gc_limit": [ - 8842488 - ], - "golang.heap.gc.total_count": [ - 3 - ], - "golang.heap.gc.total_pause.ns": [ - 178493 - ], - "golang.heap.system.obtained": [ - 11862016 - ], - "golang.heap.system.released": [ - 3989504 - ], - "golang.heap.system.stack": [ - 720896 - ], - "golang.heap.system.total": [ - 20268040 - ], - "host.architecture": [ - "amd64" - ], - "host.hostname": [ - "corduroy" - ], - "host.ip": [ - "110.174.44.88" - ], - "host.name": [ - "corduroy" - ], - "host.os.platform": [ - "linux" - ], - "metricset.name": [ - "app" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "process.args": [ - "/tmp/go-build1405913256/b001/exe/main" - ], - "process.parent.pid": [ - 4009763 - ], - "process.pid": [ - 4009922 - ], - "process.title": [ - "main" - ], - "processor.event": [ - "metric" - ], - "processor.name": [ - "metric" - ], - "service.language.name": [ - "go" - ], - "service.language.version": [ - "go1.18.1" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "service.runtime.name": [ - "gc" - ], - "service.runtime.version": [ - "go1.18.1" - ], - "system.cpu.total.norm.pct": [ - 0.02255639 - ], - "system.memory.actual.free": [ - 33981653000 - ], - "system.memory.total": [ - 46108970000 - ], - "system.process.cpu.total.norm.pct": [ - 0.0025062656 - ], - "system.process.memory.rss.bytes": [ - 15187968 - ], - "system.process.memory.size": [ - 1485594600 - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:00.000Z" - ], - "agent.name": [ - "go" - ], - "data_stream.dataset": [ - "apm.internal" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "metrics" - ], - "event.ingested": [ - "dynamic" - ], - "event.outcome": [ - "failure" - ], - "metricset.name": [ - "service_destination" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "processor.event": [ - "metric" - ], - "processor.name": [ - "metric" - ], - "service.name": [ - "main" - ], - "span.destination.service.resource": [ - "dest_resource" - ], - "span.destination.service.response_time.count": [ - 1 - ], - "span.destination.service.response_time.sum.us": [ - 10220 - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:00.000Z" - ], - "_doc_count": [ - 1 - ], - "agent.name": [ - "go" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm.internal" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "metrics" - ], - "event.ingested": [ - "dynamic" - ], - "event.outcome": [ - "failure" - ], - "host.hostname": [ - "corduroy" - ], - "host.name": [ - "corduroy" - ], - "metricset.name": [ - "transaction" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "processor.event": [ - "metric" - ], - "processor.name": [ - "metric" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "transaction.duration.histogram.counts": [ - 1 - ], - "transaction.duration.histogram.values": [ - 10239 - ], - "transaction.name": [ - "name" - ], - "transaction.root": [ - true - ], - "transaction.type": [ - "type" - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:51.178Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm.internal" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "metrics" - ], - "event.ingested": [ - "dynamic" - ], - "host.architecture": [ - "amd64" - ], - "host.hostname": [ - "corduroy" - ], - "host.ip": [ - "110.174.44.88" - ], - "host.name": [ - "corduroy" - ], - "host.os.platform": [ - "linux" - ], - "metricset.name": [ - "span_breakdown" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "process.args": [ - "/tmp/go-build1405913256/b001/exe/main" - ], - "process.parent.pid": [ - 4009763 - ], - "process.pid": [ - 4009922 - ], - "process.title": [ - "main" - ], - "processor.event": [ - "metric" - ], - "processor.name": [ - "metric" - ], - "service.language.name": [ - "go" - ], - "service.language.version": [ - "go1.18.1" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "service.runtime.name": [ - "gc" - ], - "service.runtime.version": [ - "go1.18.1" - ], - "span.self_time.count": [ - 1 - ], - "span.self_time.sum.us": [ - 15 - ], - "span.type": [ - "app" - ], - "transaction.name": [ - "name" - ], - "transaction.type": [ - "type" - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:51.178Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm.internal" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "metrics" - ], - "event.ingested": [ - "dynamic" - ], - "host.architecture": [ - "amd64" - ], - "host.hostname": [ - "corduroy" - ], - "host.ip": [ - "110.174.44.88" - ], - "host.name": [ - "corduroy" - ], - "host.os.platform": [ - "linux" - ], - "metricset.name": [ - "span_breakdown" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "process.args": [ - "/tmp/go-build1405913256/b001/exe/main" - ], - "process.parent.pid": [ - 4009763 - ], - "process.pid": [ - 4009922 - ], - "process.title": [ - "main" - ], - "processor.event": [ - "metric" - ], - "processor.name": [ - "metric" - ], - "service.language.name": [ - "go" - ], - "service.language.version": [ - "go1.18.1" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "service.runtime.name": [ - "gc" - ], - "service.runtime.version": [ - "go1.18.1" - ], - "span.self_time.count": [ - 1 - ], - "span.self_time.sum.us": [ - 10220 - ], - "span.type": [ - "type" - ], - "transaction.name": [ - "name" - ], - "transaction.type": [ - "type" - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:50.929Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "data_stream.dataset": [ - "apm" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "traces" - ], - "event.outcome": [ - "failure" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "parent.id": [ - "5cfc595035477ea2" - ], - "processor.event": [ - "span" - ], - "processor.name": [ - "transaction" - ], - "service.name": [ - "main" - ], - "span.destination.service.resource": [ - "dest_resource" - ], - "span.destination.service.type": [ - "type" - ], - "span.duration.us": [ - 10220 - ], - "span.id": [ - "7bd04bc3063f9930" - ], - "span.name": [ - "name" - ], - "span.stacktrace.abs_path": [ - "/home/andrew/go/pkg/mod/go.elastic.co/apm/v2@v2.0.0/span.go", - "/home/andrew/projects/apmload/main.go", - "/home/andrew/projects/apmload/main.go", - "/home/andrew/go/toolchain/1.18.1/src/runtime/proc.go", - "/home/andrew/go/toolchain/1.18.1/src/runtime/asm_amd64.s" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false, - false, - false, - false - ], - "span.stacktrace.filename": [ - "span.go", - "main.go", - "main.go", - "proc.go", - "asm_amd64.s" - ], - "span.stacktrace.function": [ - "(*Span).End", - "once", - "main", - "main", - "goexit" - ], - "span.stacktrace.library_frame": [ - true, - true, - true - ], - "span.stacktrace.line.number": [ - 368, - 56, - 29, - 250, - 1571 - ], - "span.stacktrace.module": [ - "go.elastic.co/apm/v2", - "main", - "main", - "runtime", - "runtime" - ], - "span.type": [ - "type" - ], - "timestamp.us": [ - 1662954770929706 - ], - "trace.id": [ - "5cfc595035477ea235a632fc3e2bb6b1" - ], - "transaction.id": [ - "5cfc595035477ea2" - ] - }, - { - "@timestamp": [ - "2022-09-12T03:52:50.929Z" - ], - "agent.name": [ - "go" - ], - "agent.version": [ - "2.0.0" - ], - "container.id": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "data_stream.dataset": [ - "apm" - ], - "data_stream.namespace": [ - "migrated" - ], - "data_stream.type": [ - "traces" - ], - "event.ingested": [ - "dynamic" - ], - "event.outcome": [ - "failure" - ], - "host.architecture": [ - "amd64" - ], - "host.hostname": [ - "corduroy" - ], - "host.ip": [ - "110.174.44.88" - ], - "host.name": [ - "corduroy" - ], - "host.os.platform": [ - "linux" - ], - "observer.hostname": [ - "dynamic" - ], - "observer.name": [ - "instance-0000000000" - ], - "observer.type": [ - "apm-server" - ], - "observer.version": [ - "dynamic" - ], - "process.args": [ - "/tmp/go-build1405913256/b001/exe/main" - ], - "process.parent.pid": [ - 4009763 - ], - "process.pid": [ - 4009922 - ], - "process.title": [ - "main" - ], - "processor.event": [ - "transaction" - ], - "processor.name": [ - "transaction" - ], - "service.language.name": [ - "go" - ], - "service.language.version": [ - "go1.18.1" - ], - "service.name": [ - "main" - ], - "service.node.name": [ - "spawn-6cd7c2e1-43d5-4c89-8480-e178b3bc70d1" - ], - "service.runtime.name": [ - "gc" - ], - "service.runtime.version": [ - "go1.18.1" - ], - "timestamp.us": [ - 1662954770929705 - ], - "trace.id": [ - "5cfc595035477ea235a632fc3e2bb6b1" - ], - "transaction.duration.us": [ - 10236 - ], - "transaction.id": [ - "5cfc595035477ea2" - ], - "transaction.name": [ - "name" - ], - "transaction.sampled": [ - true - ], - "transaction.span_count.dropped": [ - 0 - ], - "transaction.span_count.started": [ - 1 - ], - "transaction.type": [ - "type" - ] - } -] diff --git a/systemtest/approvals/TestIntake/Errors.approved.json b/systemtest/approvals/TestIntake/Errors.approved.json index bee81a8262a..990c967c8c5 100644 --- a/systemtest/approvals/TestIntake/Errors.approved.json +++ b/systemtest/approvals/TestIntake/Errors.approved.json @@ -24,10 +24,7 @@ "client.geo.country_name": [ "United States" ], - "client.geo.location.lat": [ - "dynamic" - ], - "client.geo.location.lon": [ + "client.geo.location": [ "dynamic" ], "client.ip": [ @@ -81,18 +78,22 @@ "error.culprit": [ "my.module.function_name" ], - "error.custom.and_objects.foo": [ - "bar", - "baz" - ], - "error.custom.my_key": [ - 1 - ], - "error.custom.some_other_value": [ - "foo bar" - ], - "error.exception.attributes.foo": [ - "bar" + "error.custom": [ + { + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foo bar" + } + ], + "error.exception.attributes": [ + { + "foo": "bar" + } ], "error.exception.code": [ "42" @@ -109,72 +110,71 @@ "error.exception.module": [ "__builtins__" ], - "error.exception.parent": [ - 1 - ], - "error.exception.stacktrace.abs_path": [ - "/real/file/name.py", - "/Users/watson/code/node_modules/elastic/lib/instrumentation/index.js" - ], - "error.exception.stacktrace.classname": [ - "BaseClass", - "RName" - ], - "error.exception.stacktrace.context.post": [ - "line4", - "line5", - " ins.currentTransaction = prev", - " return result", - "}", - "}", - "", - "Instrumentation.prototype._recoverTransaction = function (trans) {", - " if (this.currentTransaction === trans) return" - ], - "error.exception.stacktrace.context.pre": [ - "line1", - "line2", - " var trans = this.currentTransaction", - "", - " return instrumented", - "", - " function instrumented () {", - " var prev = ins.currentTransaction", - " ins.currentTransaction = trans" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false, - false - ], - "error.exception.stacktrace.filename": [ - "file/name.py", - "lib/instrumentation/index.js" - ], - "error.exception.stacktrace.function": [ - "foo", - "instrumented" - ], - "error.exception.stacktrace.library_frame": [ - true - ], - "error.exception.stacktrace.line.column": [ - 4 - ], - "error.exception.stacktrace.line.context": [ - "line3", - " var result = original.apply(this, arguments)" - ], - "error.exception.stacktrace.line.number": [ - 3, - 102 - ], - "error.exception.stacktrace.module": [ - "App::MyModule" - ], - "error.exception.stacktrace.vars.key": [ - "value", - "value" + "error.exception.stacktrace": [ + { + "classname": "BaseClass", + "exclude_from_grouping": false + }, + { + "abs_path": "/real/file/name.py", + "classname": "RName", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "file/name.py", + "function": "foo", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 3 + }, + "module": "App::MyModule", + "vars": { + "key": "value" + } + }, + { + "abs_path": "/Users/watson/code/node_modules/elastic/lib/instrumentation/index.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result", + "}", + "}", + "", + "Instrumentation.prototype._recoverTransaction = function (trans) {", + " if (this.currentTransaction === trans) return" + ], + "pre": [ + " var trans = this.currentTransaction", + "", + " return instrumented", + "", + " function instrumented () {", + " var prev = ins.currentTransaction", + " ins.currentTransaction = trans" + ] + }, + "exclude_from_grouping": false, + "filename": "lib/instrumentation/index.js", + "function": "instrumented", + "line": { + "context": " var result = original.apply(this, arguments)", + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "error.exception.type": [ "DbError", @@ -203,66 +203,70 @@ "error.log.param_message": [ "My service could not talk to the database named %s" ], - "error.log.stacktrace.abs_path": [ - "/real/file/name.py", - "/Users/watson/code/node_modules/elastic/lib/instrumentation/index.js" - ], - "error.log.stacktrace.classname": [ - "User::Common", - "Webpack::File::Name" - ], - "error.log.stacktrace.context.post": [ - "line4", - "line5", - " ins.currentTransaction = prev", - " return result", - "}", - "}", - "", - "Instrumentation.prototype._recoverTransaction = function (trans) {", - " if (this.currentTransaction === trans) return" - ], - "error.log.stacktrace.context.pre": [ - "line1", - "line2", - " var trans = this.currentTransaction", - "", - " return instrumented", - "", - " function instrumented () {", - " var prev = ins.currentTransaction", - " ins.currentTransaction = trans" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false, - false, - false - ], - "error.log.stacktrace.filename": [ - "/webpack/file/name.py", - "lib/instrumentation/index.js" - ], - "error.log.stacktrace.function": [ - "foo", - "instrumented" - ], - "error.log.stacktrace.line.column": [ - 4 - ], - "error.log.stacktrace.line.context": [ - "line3", - " var result = original.apply(this, arguments)" - ], - "error.log.stacktrace.line.number": [ - 3, - 102 - ], - "error.log.stacktrace.module": [ - "App::MyModule" - ], - "error.log.stacktrace.vars.key": [ - "value", - "value" + "error.log.stacktrace": [ + { + "classname": "User::Common", + "exclude_from_grouping": false + }, + { + "abs_path": "/real/file/name.py", + "classname": "Webpack::File::Name", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "/webpack/file/name.py", + "function": "foo", + "line": { + "column": 4, + "context": "line3", + "number": 3 + }, + "module": "App::MyModule", + "vars": { + "key": "value" + } + }, + { + "abs_path": "/Users/watson/code/node_modules/elastic/lib/instrumentation/index.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result", + "}", + "}", + "", + "Instrumentation.prototype._recoverTransaction = function (trans) {", + " if (this.currentTransaction === trans) return" + ], + "pre": [ + " var trans = this.currentTransaction", + "", + " return instrumented", + "", + " function instrumented () {", + " var prev = ins.currentTransaction", + " ins.currentTransaction = trans" + ] + }, + "exclude_from_grouping": false, + "filename": "lib/instrumentation/index.js", + "function": "instrumented", + "line": { + "context": " var result = original.apply(this, arguments)", + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "host.architecture": [ "x64" @@ -279,37 +283,43 @@ "host.os.platform": [ "darwin" ], - "http.request.body.original": [ - "Hello World" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Array": [ - "foo", - "bar", - "baz" - ], - "http.request.headers.Content-Type": [ - "text/html" - ], - "http.request.headers.Cookie": [ - "c1=v1,c2=v2" - ], - "http.request.headers.Some-Other-Header": [ - "foo" - ], - "http.request.headers.User-Agent": [ - "Mozilla Chrome Edge" + "http.request.body": [ + { + "original": "Hello World" + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Array": [ + "foo", + "bar", + "baz" + ], + "Content-Type": [ + "text/html" + ], + "Cookie": [ + "c1=v1,c2=v2" + ], + "Some-Other-Header": [ + "foo" + ], + "User-Agent": [ + "Mozilla Chrome Edge" + ] + } ], "http.request.method": [ "POST" @@ -320,8 +330,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -372,6 +386,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "staging" ], @@ -414,9 +434,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -438,6 +464,9 @@ "user.name": [ "foo" ], + "user.name.text": [ + "foo" + ], "user_agent.device.name": [ "Other" ], @@ -446,6 +475,9 @@ ], "user_agent.original": [ "Mozilla Chrome Edge" + ], + "user_agent.original.text": [ + "Mozilla Chrome Edge" ] }, { @@ -573,6 +605,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "staging" ], @@ -617,6 +655,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -692,11 +733,11 @@ "error.log.message": [ "no user found" ], - "error.log.stacktrace.classname": [ - "User::Special" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false + "error.log.stacktrace": [ + { + "classname": "User::Special", + "exclude_from_grouping": false + } ], "host.architecture": [ "x64" @@ -750,6 +791,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "staging" ], @@ -794,6 +841,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -863,9 +913,6 @@ "error.grouping_key": [ "c3868d6704b923014eaffea034e70a3d" ], - "error.grouping_name": [ - null - ], "error.id": [ "cdefab0123456780" ], @@ -921,6 +968,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "testing" ], @@ -968,6 +1021,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -1101,6 +1157,12 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], + "processor.event": [ + "error" + ], "service.environment": [ "staging" ], @@ -1163,6 +1225,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] } ] diff --git a/systemtest/approvals/TestIntake/ErrorsTxID.approved.json b/systemtest/approvals/TestIntake/ErrorsTxID.approved.json index 3f2a64b8544..7651b446d30 100644 --- a/systemtest/approvals/TestIntake/ErrorsTxID.approved.json +++ b/systemtest/approvals/TestIntake/ErrorsTxID.approved.json @@ -30,18 +30,22 @@ "error.culprit": [ "opbeans.controllers.DTInterceptor.preHandle(DTInterceptor.java:73)" ], - "error.custom.and_objects.foo": [ - "bar", - "baz" - ], - "error.custom.my_key": [ - 1 - ], - "error.custom.some_other_value": [ - "foobar" - ], - "error.exception.attributes.foo": [ - "bar" + "error.custom": [ + { + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foobar" + } + ], + "error.exception.attributes": [ + { + "foo": "bar" + } ], "error.exception.code": [ "42" @@ -58,51 +62,44 @@ "error.exception.module": [ "org.springframework.http.client" ], - "error.exception.parent": [ - 1 - ], - "error.exception.stacktrace.abs_path": [ - "/tmp/AbstractPlainSocketImpl.java" - ], - "error.exception.stacktrace.context.post": [ - "line4", - "line5" - ], - "error.exception.stacktrace.context.pre": [ - "line1", - "line2" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false - ], - "error.exception.stacktrace.filename": [ - "AbstractPlainSocketImpl.java", - "AbstractClientHttpRequest.java" - ], - "error.exception.stacktrace.function": [ - "connect", - "execute" - ], - "error.exception.stacktrace.library_frame": [ - true - ], - "error.exception.stacktrace.line.column": [ - 4 - ], - "error.exception.stacktrace.line.context": [ - "3" - ], - "error.exception.stacktrace.line.number": [ - 3, - 102 - ], - "error.exception.stacktrace.module": [ - "java.net" - ], - "error.exception.stacktrace.vars.key": [ - "value", - "value" + "error.exception.stacktrace": [ + { + "abs_path": "/tmp/AbstractPlainSocketImpl.java", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "AbstractPlainSocketImpl.java", + "function": "connect", + "library_frame": true, + "line": { + "column": 4, + "context": "3", + "number": 3 + }, + "module": "java.net", + "vars": { + "key": "value" + } + }, + { + "exclude_from_grouping": false, + "filename": "AbstractClientHttpRequest.java", + "function": "execute", + "line": { + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "error.exception.type": [ "java.net.UnknownHostException", @@ -131,52 +128,46 @@ "error.log.param_message": [ "Request method 'POST' /events/:event not supported" ], - "error.log.stacktrace.abs_path": [ - "/tmp/Socket.java", - "/tmp/SimpleBufferingClientHttpRequest.java" - ], - "error.log.stacktrace.classname": [ - "Request::Socket" - ], - "error.log.stacktrace.context.post": [ - "line4", - "line5" - ], - "error.log.stacktrace.context.pre": [ - "line1", - "line2" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false, - false - ], - "error.log.stacktrace.filename": [ - "Socket.java", - "SimpleBufferingClientHttpRequest.java" - ], - "error.log.stacktrace.function": [ - "connect", - "executeInternal" - ], - "error.log.stacktrace.library_frame": [ - true - ], - "error.log.stacktrace.line.column": [ - 4 - ], - "error.log.stacktrace.line.context": [ - "line3" - ], - "error.log.stacktrace.line.number": [ - 3, - 102 - ], - "error.log.stacktrace.module": [ - "java.net" - ], - "error.log.stacktrace.vars.key": [ - "value", - "value" + "error.log.stacktrace": [ + { + "abs_path": "/tmp/Socket.java", + "classname": "Request::Socket", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "Socket.java", + "function": "connect", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 3 + }, + "module": "java.net", + "vars": { + "key": "value" + } + }, + { + "abs_path": "/tmp/SimpleBufferingClientHttpRequest.java", + "exclude_from_grouping": false, + "filename": "SimpleBufferingClientHttpRequest.java", + "function": "executeInternal", + "line": { + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "host.architecture": [ "amd64" @@ -193,36 +184,42 @@ "host.os.platform": [ "Linux" ], - "http.request.body.original": [ - "HelloWorld" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Content-Length": [ - "0" - ], - "http.request.headers.Cookie": [ - "c1=v1", - "c2=v2" - ], - "http.request.headers.Elastic-Apm-Traceparent": [ - "00-8c21b4b556467a0b17ae5da959b5f388-31301f1fb2998121-01" - ], - "http.request.headers.Forwarded": [ - "for=192.168.0.1" - ], - "http.request.headers.Host": [ - "opbeans-java:3000" + "http.request.body": [ + { + "original": "HelloWorld" + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Content-Length": [ + "0" + ], + "Cookie": [ + "c1=v1", + "c2=v2" + ], + "Elastic-Apm-Traceparent": [ + "00-8c21b4b556467a0b17ae5da959b5f388-31301f1fb2998121-01" + ], + "Forwarded": [ + "for=192.168.0.1" + ], + "Host": [ + "opbeans-java:3000" + ] + } ], "http.request.method": [ "POST" @@ -230,8 +227,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -293,6 +294,12 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], + "processor.event": [ + "error" + ], "service.environment": [ "production" ], @@ -347,9 +354,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -370,6 +383,9 @@ ], "user.name": [ "foo" + ], + "user.name.text": [ + "foo" ] } ] diff --git a/systemtest/approvals/TestIntake/Events.approved.json b/systemtest/approvals/TestIntake/Events.approved.json index 31bd6bc8a2c..c4545d82582 100644 --- a/systemtest/approvals/TestIntake/Events.approved.json +++ b/systemtest/approvals/TestIntake/Events.approved.json @@ -33,18 +33,22 @@ "error.culprit": [ "opbeans.controllers.DTInterceptor.preHandle(DTInterceptor.java:73)" ], - "error.custom.and_objects.foo": [ - "bar", - "baz" - ], - "error.custom.my_key": [ - 1 - ], - "error.custom.some_other_value": [ - "foobar" - ], - "error.exception.attributes.foo": [ - "bar" + "error.custom": [ + { + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foobar" + } + ], + "error.exception.attributes": [ + { + "foo": "bar" + } ], "error.exception.code": [ "42" @@ -61,51 +65,44 @@ "error.exception.module": [ "org.springframework.http.client" ], - "error.exception.parent": [ - 1 - ], - "error.exception.stacktrace.abs_path": [ - "/tmp/AbstractPlainSocketImpl.java" - ], - "error.exception.stacktrace.context.post": [ - "line4", - "line5" - ], - "error.exception.stacktrace.context.pre": [ - "line1", - "line2" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false - ], - "error.exception.stacktrace.filename": [ - "AbstractPlainSocketImpl.java", - "AbstractClientHttpRequest.java" - ], - "error.exception.stacktrace.function": [ - "connect", - "execute" - ], - "error.exception.stacktrace.library_frame": [ - true - ], - "error.exception.stacktrace.line.column": [ - 4 - ], - "error.exception.stacktrace.line.context": [ - "3" - ], - "error.exception.stacktrace.line.number": [ - 3, - 102 - ], - "error.exception.stacktrace.module": [ - "java.net" - ], - "error.exception.stacktrace.vars.key": [ - "value", - "value" + "error.exception.stacktrace": [ + { + "abs_path": "/tmp/AbstractPlainSocketImpl.java", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "AbstractPlainSocketImpl.java", + "function": "connect", + "library_frame": true, + "line": { + "column": 4, + "context": "3", + "number": 3 + }, + "module": "java.net", + "vars": { + "key": "value" + } + }, + { + "exclude_from_grouping": false, + "filename": "AbstractClientHttpRequest.java", + "function": "execute", + "line": { + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "error.exception.type": [ "java.net.UnknownHostException", @@ -134,52 +131,46 @@ "error.log.param_message": [ "Request method 'POST' /events/:event not supported" ], - "error.log.stacktrace.abs_path": [ - "/tmp/Socket.java", - "/tmp/SimpleBufferingClientHttpRequest.java" - ], - "error.log.stacktrace.classname": [ - "Request::Socket" - ], - "error.log.stacktrace.context.post": [ - "line4", - "line5" - ], - "error.log.stacktrace.context.pre": [ - "line1", - "line2" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false, - false - ], - "error.log.stacktrace.filename": [ - "Socket.java", - "SimpleBufferingClientHttpRequest.java" - ], - "error.log.stacktrace.function": [ - "connect", - "executeInternal" - ], - "error.log.stacktrace.library_frame": [ - true - ], - "error.log.stacktrace.line.column": [ - 4 - ], - "error.log.stacktrace.line.context": [ - "line3" - ], - "error.log.stacktrace.line.number": [ - 3, - 102 - ], - "error.log.stacktrace.module": [ - "java.net" - ], - "error.log.stacktrace.vars.key": [ - "value", - "value" + "error.log.stacktrace": [ + { + "abs_path": "/tmp/Socket.java", + "classname": "Request::Socket", + "context": { + "post": [ + "line4", + "line5" + ], + "pre": [ + "line1", + "line2" + ] + }, + "exclude_from_grouping": false, + "filename": "Socket.java", + "function": "connect", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 3 + }, + "module": "java.net", + "vars": { + "key": "value" + } + }, + { + "abs_path": "/tmp/SimpleBufferingClientHttpRequest.java", + "exclude_from_grouping": false, + "filename": "SimpleBufferingClientHttpRequest.java", + "function": "executeInternal", + "line": { + "number": 102 + }, + "vars": { + "key": "value" + } + } ], "host.architecture": [ "amd64" @@ -196,36 +187,42 @@ "host.os.platform": [ "Linux" ], - "http.request.body.original": [ - "HelloWorld" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Content-Length": [ - "0" - ], - "http.request.headers.Cookie": [ - "c1=v1", - "c2=v2" - ], - "http.request.headers.Elastic-Apm-Traceparent": [ - "00-8c21b4b556467a0b17ae5da959b5f388-31301f1fb2998121-01" - ], - "http.request.headers.Forwarded": [ - "for=192.168.0.1" - ], - "http.request.headers.Host": [ - "opbeans-java:3000" + "http.request.body": [ + { + "original": "HelloWorld" + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Content-Length": [ + "0" + ], + "Cookie": [ + "c1=v1", + "c2=v2" + ], + "Elastic-Apm-Traceparent": [ + "00-8c21b4b556467a0b17ae5da959b5f388-31301f1fb2998121-01" + ], + "Forwarded": [ + "for=192.168.0.1" + ], + "Host": [ + "opbeans-java:3000" + ] + } ], "http.request.method": [ "POST" @@ -233,8 +230,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -296,6 +297,12 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], + "processor.event": [ + "error" + ], "service.environment": [ "production" ], @@ -356,9 +363,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -379,6 +392,9 @@ ], "user.name": [ "foo" + ], + "user.name.text": [ + "foo" ] }, { @@ -475,6 +491,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "processor.event": [ "metric" ], @@ -585,8 +604,12 @@ "http.response.encoded_body_size": [ 356 ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.status_code": [ 302 @@ -639,6 +662,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "processor.event": [ "span" ], @@ -699,38 +725,30 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "/tmp/AbstractView.java" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false - ], - "span.stacktrace.filename": [ - "DispatcherServlet.java", - "AbstractView.java" - ], - "span.stacktrace.function": [ - "render" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 4 - ], - "span.stacktrace.line.context": [ - "line3" - ], - "span.stacktrace.line.number": [ - 547, - 547 - ], - "span.stacktrace.module": [ - "org.springframework.web.servlet.view" - ], - "span.stacktrace.vars.key": [ - "value" + "span.stacktrace": [ + { + "exclude_from_grouping": false, + "filename": "DispatcherServlet.java", + "line": { + "number": 547 + } + }, + { + "abs_path": "/tmp/AbstractView.java", + "exclude_from_grouping": false, + "filename": "AbstractView.java", + "function": "render", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 547 + }, + "module": "org.springframework.web.servlet.view", + "vars": { + "key": "value" + } + } ], "span.subtype": [ "http" @@ -752,6 +770,9 @@ ], "url.original": [ "http://localhost:8000" + ], + "url.original.text": [ + "http://localhost:8000" ] }, { @@ -779,10 +800,7 @@ "client.geo.country_name": [ "United States" ], - "client.geo.location.lat": [ - "dynamic" - ], - "client.geo.location.lon": [ + "client.geo.location": [ "dynamic" ], "client.ip": [ @@ -821,39 +839,45 @@ "host.os.platform": [ "Linux" ], - "http.request.body.original.additional.bar": [ - 123 - ], - "http.request.body.original.additional.req": [ - "additionalinformation" - ], - "http.request.body.original.string": [ - "helloworld" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Content-Type": [ - "text/html" - ], - "http.request.headers.Cookie": [ - "c1=v1,c2=v2" - ], - "http.request.headers.Elastic-Apm-Traceparent": [ - "00-33a0bd4cceff0370a7c57d807032688e-69feaabc5b88d7e8-01" - ], - "http.request.headers.User-Agent": [ - "Mozilla/5.0(Macintosh;IntelMacOSX10_10_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36", - "MozillaChromeEdge" + "http.request.body": [ + { + "original": { + "additional": { + "bar": 123, + "req": "additionalinformation" + }, + "string": "helloworld" + } + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Content-Type": [ + "text/html" + ], + "Cookie": [ + "c1=v1,c2=v2" + ], + "Elastic-Apm-Traceparent": [ + "00-33a0bd4cceff0370a7c57d807032688e-69feaabc5b88d7e8-01" + ], + "User-Agent": [ + "Mozilla/5.0(Macintosh;IntelMacOSX10_10_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36", + "MozillaChromeEdge" + ] + } ], "http.request.method": [ "POST" @@ -867,8 +891,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -930,6 +958,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "processor.event": [ "transaction" ], @@ -975,18 +1006,18 @@ "trace.id": [ "0acd456789abcdef0123456789abcdef" ], - "transaction.custom.(": [ - "notavalidregexandthatisfine" - ], - "transaction.custom.and_objects.foo": [ - "bar", - "baz" - ], - "transaction.custom.my_key": [ - 1 - ], - "transaction.custom.some_other_value": [ - "foobar" + "transaction.custom": [ + { + "(": "notavalidregexandthatisfine", + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foobar" + } ], "transaction.duration.us": [ 32592 @@ -997,6 +1028,9 @@ "transaction.name": [ "ResourceHttpRequestHandler" ], + "transaction.name.text": [ + "ResourceHttpRequestHandler" + ], "transaction.representative_count": [ 1 ], @@ -1024,9 +1058,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -1048,6 +1088,9 @@ "user.name": [ "foo" ], + "user.name.text": [ + "foo" + ], "user_agent.device.name": [ "Other" ], @@ -1057,6 +1100,9 @@ "user_agent.original": [ "Mozilla/5.0(Macintosh;IntelMacOSX10_10_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36, MozillaChromeEdge" ], + "user_agent.original.text": [ + "Mozilla/5.0(Macintosh;IntelMacOSX10_10_5)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36, MozillaChromeEdge" + ], "user_agent.version": [ "51.0.2704.103" ] diff --git a/systemtest/approvals/TestIntake/Metricsets.approved.json b/systemtest/approvals/TestIntake/Metricsets.approved.json index 72dcebb178d..3ee806a691b 100644 --- a/systemtest/approvals/TestIntake/Metricsets.approved.json +++ b/systemtest/approvals/TestIntake/Metricsets.approved.json @@ -68,6 +68,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -142,6 +145,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -234,6 +240,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -264,15 +273,19 @@ "labels.tag1": [ "one" ], - "latency_distribution.counts": [ - 1, - 2, - 3 - ], - "latency_distribution.values": [ - 1.1, - 2.2, - 3.3 + "latency_distribution": [ + { + "counts": [ + 1, + 2, + 3 + ], + "values": [ + 1.1, + 2.2, + 3.3 + ] + } ], "metricset.name": [ "app" @@ -312,6 +325,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -407,6 +423,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] }, { @@ -502,6 +521,9 @@ ], "user.name": [ "logged-in-user" + ], + "user.name.text": [ + "logged-in-user" ] } ] diff --git a/systemtest/approvals/TestIntake/MinimalEvents.approved.json b/systemtest/approvals/TestIntake/MinimalEvents.approved.json index 70a7695b075..0fde9e28423 100644 --- a/systemtest/approvals/TestIntake/MinimalEvents.approved.json +++ b/systemtest/approvals/TestIntake/MinimalEvents.approved.json @@ -45,6 +45,9 @@ "observer.version": [ "dynamic" ], + "processor.event": [ + "error" + ], "service.name": [ "1234_service-12a3" ], @@ -98,6 +101,9 @@ "observer.version": [ "dynamic" ], + "processor.event": [ + "error" + ], "service.name": [ "1234_service-12a3" ], @@ -130,9 +136,6 @@ "error.grouping_key": [ "fa405fa2bd848dab17207e7b544d9ad4" ], - "error.grouping_name": [ - null - ], "error.id": [ "abcdef0123456791" ], @@ -148,6 +151,9 @@ "observer.version": [ "dynamic" ], + "processor.event": [ + "error" + ], "service.name": [ "1234_service-12a3" ], diff --git a/systemtest/approvals/TestIntake/Spans.approved.json b/systemtest/approvals/TestIntake/Spans.approved.json index 06d27a814ac..368417a5185 100644 --- a/systemtest/approvals/TestIntake/Spans.approved.json +++ b/systemtest/approvals/TestIntake/Spans.approved.json @@ -64,7 +64,7 @@ "0:0::0:1" ], "destination.ip": [ - "0:0::0:1" + "::1" ], "destination.port": [ 5432 @@ -145,6 +145,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -223,54 +226,54 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "net.js" - ], - "span.stacktrace.classname": [ - "Core.js" - ], - "span.stacktrace.context.post": [ - " ins.currentTransaction = prev", - "}", - " ins.currentTransaction = prev", - " return result" - ], - "span.stacktrace.context.pre": [ - " var trans = this.currentTransaction", - "" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false, - false - ], - "span.stacktrace.filename": [ - "net.js", - "file2.js", - "net.js" - ], - "span.stacktrace.function": [ - "onread" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 4 - ], - "span.stacktrace.line.context": [ - "line3" - ], - "span.stacktrace.line.number": [ - 547, - 12, - 547 - ], - "span.stacktrace.module": [ - "some module" - ], - "span.stacktrace.vars.key": [ - "value" + "span.stacktrace": [ + { + "classname": "Core.js", + "exclude_from_grouping": false, + "filename": "net.js", + "line": { + "number": 547 + } + }, + { + "context": { + "post": [ + " ins.currentTransaction = prev", + "}" + ] + }, + "exclude_from_grouping": false, + "filename": "file2.js", + "line": { + "number": 12 + } + }, + { + "abs_path": "net.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result" + ], + "pre": [ + " var trans = this.currentTransaction", + "" + ] + }, + "exclude_from_grouping": false, + "filename": "net.js", + "function": "onread", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 547 + }, + "module": "some module", + "vars": { + "key": "value" + } + } ], "span.subtype": [ "postgresql" @@ -290,6 +293,9 @@ "url.original": [ "http://localhost:8000" ], + "url.original.text": [ + "http://localhost:8000" + ], "user.domain": [ "ldap://abc" ], @@ -301,6 +307,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -419,6 +428,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -493,6 +505,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -620,6 +635,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -691,6 +709,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -809,6 +830,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -877,6 +901,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -998,6 +1025,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -1081,6 +1111,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -1148,7 +1181,7 @@ "0:0::0:1" ], "destination.ip": [ - "0:0::0:1" + "::1" ], "destination.port": [ 5432 @@ -1229,6 +1262,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -1307,54 +1343,54 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "net.js" - ], - "span.stacktrace.classname": [ - "Core.js" - ], - "span.stacktrace.context.post": [ - " ins.currentTransaction = prev", - "}", - " ins.currentTransaction = prev", - " return result" - ], - "span.stacktrace.context.pre": [ - " var trans = this.currentTransaction", - "" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false, - false - ], - "span.stacktrace.filename": [ - "net.js", - "file2.js", - "net.js" - ], - "span.stacktrace.function": [ - "onread" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 4 - ], - "span.stacktrace.line.context": [ - "line3" - ], - "span.stacktrace.line.number": [ - 547, - 12, - 547 - ], - "span.stacktrace.module": [ - "some module" - ], - "span.stacktrace.vars.key": [ - "value" + "span.stacktrace": [ + { + "classname": "Core.js", + "exclude_from_grouping": false, + "filename": "net.js", + "line": { + "number": 547 + } + }, + { + "context": { + "post": [ + " ins.currentTransaction = prev", + "}" + ] + }, + "exclude_from_grouping": false, + "filename": "file2.js", + "line": { + "number": 12 + } + }, + { + "abs_path": "net.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result" + ], + "pre": [ + " var trans = this.currentTransaction", + "" + ] + }, + "exclude_from_grouping": false, + "filename": "net.js", + "function": "onread", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 547 + }, + "module": "some module", + "vars": { + "key": "value" + } + } ], "span.subtype": [ "postgresql" @@ -1374,6 +1410,9 @@ "url.original": [ "http://localhost:8000" ], + "url.original.text": [ + "http://localhost:8000" + ], "user.domain": [ "ldap://abc" ], @@ -1385,6 +1424,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -1449,7 +1491,7 @@ "0:0::0:1" ], "destination.ip": [ - "0:0::0:1" + "::1" ], "event.outcome": [ "unknown" @@ -1509,6 +1551,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -1592,6 +1637,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -1716,6 +1764,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -1790,6 +1841,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -1854,7 +1908,7 @@ "0:0::0:1" ], "destination.ip": [ - "0:0::0:1" + "::1" ], "destination.port": [ 8080 @@ -1920,6 +1974,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -2009,6 +2066,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] }, { @@ -2076,7 +2136,7 @@ "0:0::0:1" ], "destination.ip": [ - "0:0::0:1" + "::1" ], "destination.port": [ 5432 @@ -2160,6 +2220,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -2235,54 +2298,54 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "net.js" - ], - "span.stacktrace.classname": [ - "Core.js" - ], - "span.stacktrace.context.post": [ - " ins.currentTransaction = prev", - "}", - " ins.currentTransaction = prev", - " return result" - ], - "span.stacktrace.context.pre": [ - " var trans = this.currentTransaction", - "" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false, - false - ], - "span.stacktrace.filename": [ - "net.js", - "file2.js", - "net.js" - ], - "span.stacktrace.function": [ - "onread" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 4 - ], - "span.stacktrace.line.context": [ - "line3" - ], - "span.stacktrace.line.number": [ - 547, - 12, - 547 - ], - "span.stacktrace.module": [ - "some module" - ], - "span.stacktrace.vars.key": [ - "value" + "span.stacktrace": [ + { + "classname": "Core.js", + "exclude_from_grouping": false, + "filename": "net.js", + "line": { + "number": 547 + } + }, + { + "context": { + "post": [ + " ins.currentTransaction = prev", + "}" + ] + }, + "exclude_from_grouping": false, + "filename": "file2.js", + "line": { + "number": 12 + } + }, + { + "abs_path": "net.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result" + ], + "pre": [ + " var trans = this.currentTransaction", + "" + ] + }, + "exclude_from_grouping": false, + "filename": "net.js", + "function": "onread", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 547 + }, + "module": "some module", + "vars": { + "key": "value" + } + } ], "span.subtype": [ "postgresql" @@ -2302,6 +2365,9 @@ "url.original": [ "http://localhost:8000" ], + "url.original.text": [ + "http://localhost:8000" + ], "user.domain": [ "ldap://abc" ], @@ -2313,6 +2379,9 @@ ], "user.name": [ "john" + ], + "user.name.text": [ + "john" ] } ] diff --git a/systemtest/approvals/TestIntake/Transactions.approved.json b/systemtest/approvals/TestIntake/Transactions.approved.json index b3d8f8979a9..1b75080858b 100644 --- a/systemtest/approvals/TestIntake/Transactions.approved.json +++ b/systemtest/approvals/TestIntake/Transactions.approved.json @@ -118,6 +118,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -178,12 +181,16 @@ "transaction.message.body": [ "user created" ], - "transaction.message.headers.Involved_services": [ - "user", - "auth" - ], - "transaction.message.headers.User_id": [ - "1ax3" + "transaction.message.headers": [ + { + "Involved_services": [ + "user", + "auth" + ], + "User_id": [ + "1ax3" + ] + } ], "transaction.message.queue.name": [ "new_users" @@ -194,6 +201,9 @@ "transaction.name": [ "amqp receive" ], + "transaction.name.text": [ + "amqp receive" + ], "transaction.representative_count": [ 1 ], @@ -214,6 +224,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -335,6 +348,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -403,6 +419,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -427,10 +446,7 @@ "client.geo.country_name": [ "United States" ], - "client.geo.location.lat": [ - "dynamic" - ], - "client.geo.location.lon": [ + "client.geo.location": [ "dynamic" ], "client.ip": [ @@ -502,44 +518,50 @@ "host.os.platform": [ "darwin" ], - "http.request.body.original.additional.bar": [ - 123 - ], - "http.request.body.original.additional.req": [ - "additional information" - ], - "http.request.body.original.str": [ - "hello world" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Array": [ - "foo", - "bar", - "baz" - ], - "http.request.headers.Content-Type": [ - "text/html" - ], - "http.request.headers.Cookie": [ - "c1=v1, c2=v2" - ], - "http.request.headers.Some-Other-Header": [ - "foo" - ], - "http.request.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" + "http.request.body": [ + { + "original": { + "additional": { + "bar": 123, + "req": "additional information" + }, + "str": "hello world" + } + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Array": [ + "foo", + "bar", + "baz" + ], + "Content-Type": [ + "text/html" + ], + "Cookie": [ + "c1=v1, c2=v2" + ], + "Some-Other-Header": [ + "foo" + ], + "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" + ] + } ], "http.request.method": [ "POST" @@ -556,8 +578,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -620,6 +646,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -665,18 +694,18 @@ "trace.id": [ "0acd456789abcdef0123456789abcdef" ], - "transaction.custom.(": [ - "not a valid regex and that is fine" - ], - "transaction.custom.and_objects.foo": [ - "bar", - "baz" - ], - "transaction.custom.my_key": [ - 1 - ], - "transaction.custom.some_other_value": [ - "foo bar" + "transaction.custom": [ + { + "(": "not a valid regex and that is fine", + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foo bar" + } ], "transaction.duration.us": [ 32592 @@ -687,6 +716,9 @@ "transaction.name": [ "GET /api/types" ], + "transaction.name.text": [ + "GET /api/types" + ], "transaction.representative_count": [ 1 ], @@ -711,9 +743,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -735,6 +773,9 @@ "user.name": [ "foo" ], + "user.name.text": [ + "foo" + ], "user_agent.device.name": [ "Mac" ], @@ -744,12 +785,21 @@ "user_agent.original": [ "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" ], + "user_agent.original.text": [ + "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" + ], "user_agent.os.full": [ "Mac OS X 10.10.5" ], + "user_agent.os.full.text": [ + "Mac OS X 10.10.5" + ], "user_agent.os.name": [ "Mac OS X" ], + "user_agent.os.name.text": [ + "Mac OS X" + ], "user_agent.os.version": [ "10.10.5" ], @@ -879,6 +929,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -952,7 +1005,7 @@ 10 ], "transaction.marks.navigationTiming.appBeforeBootstrap": [ - 608.9300000000001 + 608.93 ], "transaction.marks.navigationTiming.navigationStart": [ -21 @@ -980,6 +1033,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] }, { @@ -1128,6 +1184,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -1188,6 +1247,9 @@ "transaction.name": [ "july-2021-delete-after-july-31" ], + "transaction.name.text": [ + "july-2021-delete-after-july-31" + ], "transaction.representative_count": [ 1 ], @@ -1211,6 +1273,9 @@ ], "user.name": [ "bar" + ], + "user.name.text": [ + "bar" ] } ] diff --git a/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json b/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json index bc49817bc58..28d9ca972a2 100644 --- a/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json +++ b/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json @@ -21,10 +21,7 @@ "client.geo.country_name": [ "United States" ], - "client.geo.location.lat": [ - "dynamic" - ], - "client.geo.location.lon": [ + "client.geo.location": [ "dynamic" ], "client.ip": [ @@ -96,44 +93,50 @@ "host.os.platform": [ "darwin" ], - "http.request.body.original.additional.bar": [ - 123 - ], - "http.request.body.original.additional.req": [ - "additional information" - ], - "http.request.body.original.str": [ - "hello world" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Array": [ - "foo", - "bar", - "baz" - ], - "http.request.headers.Content-Type": [ - "text/html" - ], - "http.request.headers.Cookie": [ - "c1=v1, c2=v2" - ], - "http.request.headers.Some-Other-Header": [ - "foo" - ], - "http.request.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" + "http.request.body": [ + { + "original": { + "additional": { + "bar": 123, + "req": "additional information" + }, + "str": "hello world" + } + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Array": [ + "foo", + "bar", + "baz" + ], + "Content-Type": [ + "text/html" + ], + "Cookie": [ + "c1=v1, c2=v2" + ], + "Some-Other-Header": [ + "foo" + ], + "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" + ] + } ], "http.request.method": [ "POST" @@ -150,8 +153,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -214,6 +221,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -259,18 +269,18 @@ "trace.id": [ "646df3b8b5279e982cc12a2f1ac004f3" ], - "transaction.custom.(": [ - "not a valid regex and that is fine" - ], - "transaction.custom.and_objects.foo": [ - "bar", - "baz" - ], - "transaction.custom.my_key": [ - 1 - ], - "transaction.custom.some_other_value": [ - "foo bar" + "transaction.custom": [ + { + "(": "not a valid regex and that is fine", + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foo bar" + } ], "transaction.duration.us": [ 32592 @@ -281,6 +291,9 @@ "transaction.name": [ "GET /api/types" ], + "transaction.name.text": [ + "GET /api/types" + ], "transaction.representative_count": [ 1 ], @@ -308,9 +321,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -332,6 +351,9 @@ "user.name": [ "foo" ], + "user.name.text": [ + "foo" + ], "user_agent.device.name": [ "Mac" ], @@ -341,12 +363,21 @@ "user_agent.original": [ "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" ], + "user_agent.original.text": [ + "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" + ], "user_agent.os.full": [ "Mac OS X 10.10.5" ], + "user_agent.os.full.text": [ + "Mac OS X 10.10.5" + ], "user_agent.os.name": [ "Mac OS X" ], + "user_agent.os.name.text": [ + "Mac OS X" + ], "user_agent.os.version": [ "10.10.5" ], diff --git a/systemtest/approvals/TestIntake/UnknownSpanType.approved.json b/systemtest/approvals/TestIntake/UnknownSpanType.approved.json index 5fdc295800b..dfa4b1b56f6 100644 --- a/systemtest/approvals/TestIntake/UnknownSpanType.approved.json +++ b/systemtest/approvals/TestIntake/UnknownSpanType.approved.json @@ -79,6 +79,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "span" ], @@ -136,47 +139,41 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "net.js" - ], - "span.stacktrace.context.post": [ - " ins.currentTransaction = prev", - " return result", - "}" - ], - "span.stacktrace.context.pre": [ - " var trans = this.currentTransaction", - "" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false - ], - "span.stacktrace.filename": [ - "net.js", - "my2file.js" - ], - "span.stacktrace.function": [ - "onread" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 4 - ], - "span.stacktrace.line.context": [ - "line3" - ], - "span.stacktrace.line.number": [ - 547, - 10 - ], - "span.stacktrace.module": [ - "some module" - ], - "span.stacktrace.vars.key": [ - "value" + "span.stacktrace": [ + { + "abs_path": "net.js", + "context": { + "post": [ + " ins.currentTransaction = prev", + " return result", + "}" + ], + "pre": [ + " var trans = this.currentTransaction", + "" + ] + }, + "exclude_from_grouping": false, + "filename": "net.js", + "function": "onread", + "library_frame": true, + "line": { + "column": 4, + "context": "line3", + "number": 547 + }, + "module": "some module", + "vars": { + "key": "value" + } + }, + { + "exclude_from_grouping": false, + "filename": "my2file.js", + "line": { + "number": 10 + } + } ], "span.sync": [ false @@ -196,6 +193,9 @@ "url.original": [ "http://localhost:8000" ], + "url.original.text": [ + "http://localhost:8000" + ], "user.email": [ "foo@bar.com" ], @@ -204,6 +204,9 @@ ], "user.name": [ "foo" + ], + "user.name.text": [ + "foo" ] }, { @@ -240,43 +243,49 @@ "host.os.platform": [ "darwin" ], - "http.request.body.original.additional.bar": [ - 123 - ], - "http.request.body.original.additional.req": [ - "additional information" - ], - "http.request.body.original.str": [ - "hello world" - ], - "http.request.cookies.c1": [ - "v1" - ], - "http.request.cookies.c2": [ - "v2" - ], - "http.request.env.GATEWAY_INTERFACE": [ - "CGI/1.1" - ], - "http.request.env.SERVER_SOFTWARE": [ - "nginx" - ], - "http.request.headers.Array": [ - "foo", - "bar", - "baz" - ], - "http.request.headers.Content-Type": [ - "text/html" - ], - "http.request.headers.Cookie": [ - "c1=v1,c2=v2" - ], - "http.request.headers.Some-Other-Header": [ - "foo" - ], - "http.request.headers.User-Agent": [ - "Mozilla Chrome Edge" + "http.request.body": [ + { + "original": { + "additional": { + "bar": 123, + "req": "additional information" + }, + "str": "hello world" + } + } + ], + "http.request.cookies": [ + { + "c1": "v1", + "c2": "v2" + } + ], + "http.request.env": [ + { + "GATEWAY_INTERFACE": "CGI/1.1", + "SERVER_SOFTWARE": "nginx" + } + ], + "http.request.headers": [ + { + "Array": [ + "foo", + "bar", + "baz" + ], + "Content-Type": [ + "text/html" + ], + "Cookie": [ + "c1=v1,c2=v2" + ], + "Some-Other-Header": [ + "foo" + ], + "User-Agent": [ + "Mozilla Chrome Edge" + ] + } ], "http.request.method": [ "POST" @@ -287,8 +296,12 @@ "http.response.finished": [ true ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.headers_sent": [ true @@ -339,6 +352,9 @@ "process.title": [ "node" ], + "process.title.text": [ + "node" + ], "processor.event": [ "transaction" ], @@ -378,18 +394,18 @@ "trace.id": [ "945254c567a5417eaaaaaaaaaaaaaaaa" ], - "transaction.custom.(": [ - "not a valid regex and that is fine" - ], - "transaction.custom.and_objects.foo": [ - "bar", - "baz" - ], - "transaction.custom.my_key": [ - 1 - ], - "transaction.custom.some_other_value": [ - "foo bar" + "transaction.custom": [ + { + "(": "not a valid regex and that is fine", + "and_objects": { + "foo": [ + "bar", + "baz" + ] + }, + "my_key": 1, + "some_other_value": "foo bar" + } ], "transaction.duration.us": [ 32592 @@ -404,7 +420,7 @@ 10 ], "transaction.marks.navigationTiming.appBeforeBootstrap": [ - 608.9300000000001 + 608.93 ], "transaction.marks.navigationTiming.navigationStart": [ -21 @@ -412,6 +428,9 @@ "transaction.name": [ "GET /api/types" ], + "transaction.name.text": [ + "GET /api/types" + ], "transaction.representative_count": [ 1 ], @@ -439,9 +458,15 @@ "url.full": [ "https://www.example.com/p/a/t/h?query=string#hash" ], + "url.full.text": [ + "https://www.example.com/p/a/t/h?query=string#hash" + ], "url.original": [ "/p/a/t/h?query=string#hash" ], + "url.original.text": [ + "/p/a/t/h?query=string#hash" + ], "url.path": [ "/p/a/t/h" ], @@ -468,6 +493,9 @@ ], "user_agent.original": [ "Mozilla Chrome Edge" + ], + "user_agent.original.text": [ + "Mozilla Chrome Edge" ] } ] diff --git a/systemtest/approvals/TestIntakeLog/with_faas.approved.json b/systemtest/approvals/TestIntakeLog/with_faas.approved.json index edd942b570b..f4027880df6 100644 --- a/systemtest/approvals/TestIntakeLog/with_faas.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_faas.approved.json @@ -99,6 +99,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "production" ], diff --git a/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json index ea07cc73739..b7af03e4488 100644 --- a/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json @@ -132,6 +132,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "prod" ], diff --git a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json index 47363918e7e..58e95a53a41 100644 --- a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json @@ -132,6 +132,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "prod" ], diff --git a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json index 44309ccf2cf..14f97043e1e 100644 --- a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json @@ -132,6 +132,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "prod" ], diff --git a/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json b/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json index b0f460713a0..39869bafc29 100644 --- a/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json @@ -90,6 +90,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "production" ], diff --git a/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json b/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json index cc43dcf8496..bc0c05fa3e6 100644 --- a/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json @@ -90,6 +90,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "production" ], diff --git a/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json b/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json index 31323451c7c..8620e852b9b 100644 --- a/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json +++ b/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json @@ -90,6 +90,9 @@ "process.title": [ "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" ], + "process.title.text": [ + "/usr/lib/jvm/java-10-openjdk-amd64/bin/java" + ], "service.environment": [ "production" ], diff --git a/systemtest/approvals/TestJaeger/batch_0.approved.json b/systemtest/approvals/TestJaeger/batch_0.approved.json index 0d8554ea355..6d2e8adb656 100644 --- a/systemtest/approvals/TestJaeger/batch_0.approved.json +++ b/systemtest/approvals/TestJaeger/batch_0.approved.json @@ -57,6 +57,9 @@ "parent.id": [ "7be2fd98d0973be3" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -143,6 +146,9 @@ "parent.id": [ "7be2fd98d0973be3" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -229,6 +235,9 @@ "parent.id": [ "7be2fd98d0973be3" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -561,6 +570,9 @@ "transaction.name": [ "Driver::findNearest" ], + "transaction.name.text": [ + "Driver::findNearest" + ], "transaction.sampled": [ true ], diff --git a/systemtest/approvals/TestJaeger/batch_1.approved.json b/systemtest/approvals/TestJaeger/batch_1.approved.json index 2693e072664..d765ad08e9d 100644 --- a/systemtest/approvals/TestJaeger/batch_1.approved.json +++ b/systemtest/approvals/TestJaeger/batch_1.approved.json @@ -60,6 +60,9 @@ "parent.id": [ "333295bfb438ea03" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -137,6 +140,9 @@ "parent.id": [ "614811d6c498bfb0" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -214,6 +220,9 @@ "parent.id": [ "0242ee3774d9eab1" ], + "processor.event": [ + "error" + ], "service.language.name": [ "Go" ], @@ -279,9 +288,6 @@ "observer.version": [ "dynamic" ], - "parent.id": [ - "7be2fd98d0973be3" - ], "service.language.name": [ "Go" ], diff --git a/systemtest/approvals/TestNoMatchingSourcemap.approved.json b/systemtest/approvals/TestNoMatchingSourcemap.approved.json index 11b965c625f..0c0caf5703f 100644 --- a/systemtest/approvals/TestNoMatchingSourcemap.approved.json +++ b/systemtest/approvals/TestNoMatchingSourcemap.approved.json @@ -60,36 +60,34 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false - ], - "span.stacktrace.filename": [ - "test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map" - ], - "span.stacktrace.function": [ - "\u003canonymous\u003e", - "\u003canonymous\u003e" - ], - "span.stacktrace.library_frame": [ - true - ], - "span.stacktrace.line.column": [ - 18, - 18 - ], - "span.stacktrace.line.number": [ - 1, - 1 - ], - "span.stacktrace.sourcemap.error": [ - "unable to find sourcemap.url for service.name=apm-agent-js service.version=1.0.0 bundle.path=http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", - "unable to find sourcemap.url for service.name=apm-agent-js service.version=1.0.0 bundle.path=http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map" + "span.stacktrace": [ + { + "abs_path": "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "exclude_from_grouping": false, + "filename": "test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "line": { + "column": 18, + "number": 1 + }, + "sourcemap": { + "error": "unable to find sourcemap.url for service.name=apm-agent-js service.version=1.0.0 bundle.path=http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map" + } + }, + { + "abs_path": "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "exclude_from_grouping": false, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "library_frame": true, + "line": { + "column": 18, + "number": 1 + }, + "sourcemap": { + "error": "unable to find sourcemap.url for service.name=apm-agent-js service.version=1.0.0 bundle.path=http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map" + } + } ], "span.type": [ "transaction" @@ -105,6 +103,9 @@ ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/span" + ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/span" ] } ] diff --git a/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json b/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json index 449682bf74a..b89526debf6 100644 --- a/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json +++ b/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json @@ -18,10 +18,7 @@ "client.geo.country_name": [ "Germany" ], - "client.geo.location.lat": [ - "dynamic" - ], - "client.geo.location.lon": [ + "client.geo.location": [ "dynamic" ], "client.ip": [ diff --git a/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json b/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json index 74cf58d1099..ff53d2e172b 100644 --- a/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json +++ b/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json @@ -18,17 +18,21 @@ "data_stream.type": [ "metrics" ], - "histogram.counts": [ - 1, - 1, - 1, - 1 - ], - "histogram.values": [ - 0.5, - 550, - 5500, - 10000 + "histogram": [ + { + "counts": [ + 1, + 1, + 1, + 1 + ], + "values": [ + 0.5, + 550, + 5500, + 10000 + ] + } ], "metricset.name": [ "app" diff --git a/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json b/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json index 5abae2bcf16..4ad1b9142cd 100644 --- a/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json +++ b/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json @@ -39,11 +39,11 @@ "service.name": [ "unknown" ], - "summary.sum": [ - 123.456 - ], - "summary.value_count": [ - 10 + "summary": [ + { + "sum": 123.456, + "value_count": 10 + } ] } ] diff --git a/systemtest/approvals/TestOTLPGRPCTraces.approved.json b/systemtest/approvals/TestOTLPGRPCTraces.approved.json index 7d2ee387197..dee4990f459 100644 --- a/systemtest/approvals/TestOTLPGRPCTraces.approved.json +++ b/systemtest/approvals/TestOTLPGRPCTraces.approved.json @@ -39,6 +39,9 @@ "error.stack_trace": [ "not an actual real stack trace" ], + "error.stack_trace.text": [ + "not an actual real stack trace" + ], "labels.resource_attribute_array": [ "a", "b" @@ -58,7 +61,7 @@ ], "numeric_labels.resource_attribute_float_array": [ 123456.789, - 987654321.1234568 + 987654321.123457 ], "numeric_labels.resource_attribute_int": [ 123456 @@ -75,6 +78,9 @@ "parent.id": [ "b3ee9be3b687a611" ], + "processor.event": [ + "error" + ], "service.framework.name": [ "systemtest" ], @@ -144,7 +150,7 @@ ], "numeric_labels.resource_attribute_float_array": [ 123456.789, - 987654321.1234568 + 987654321.123457 ], "numeric_labels.resource_attribute_int": [ 123456 @@ -220,7 +226,7 @@ ], "numeric_labels.resource_attribute_float_array": [ 123456.789, - 987654321.1234568 + 987654321.123457 ], "numeric_labels.resource_attribute_int": [ 123456 @@ -264,6 +270,9 @@ "transaction.name": [ "operation_name" ], + "transaction.name.text": [ + "operation_name" + ], "transaction.representative_count": [ 1 ], diff --git a/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json b/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json index d4de0426b34..45f2b2242f9 100644 --- a/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json +++ b/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json @@ -27,151 +27,191 @@ "error.exception.message": [ "Uncaught Error: timeout test error" ], - "error.exception.stacktrace.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.context.post": [ - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "", - "", - " \t// __webpack_public_path__", - " \t__webpack_require__.p = \"\";", - "", - " \t// Load entry module and return exports", - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "", - "", - "", - "", - "/** WEBPACK FOOTER **", - " ** webpack/bootstrap 6002740481c9666b0d38", - " \t\t\treturn installedModules[moduleId].exports;", - "", - " \t\t// Create a new module (and put it into the cache)", - " \t\tvar module = installedModules[moduleId] = {", - " \t\t\texports: {}," - ], - "error.exception.stacktrace.context.pre": [ - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function", - "", - " \t// expose the modules object (__webpack_modules__)", - " \t__webpack_require__.m = modules;", - "", - " \t// expose the module cache", - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function", - "", - " \t// __webpack_public_path__", - " \t__webpack_require__.p = \"\";", - "", - " \t// Load entry module and return exports", - "", - " \t// The require function", - " \tfunction __webpack_require__(moduleId) {", - "", - " \t\t// Check if module is in cache" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false, - false, - false, - false - ], - "error.exception.stacktrace.filename": [ - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38" - ], - "error.exception.stacktrace.function": [ - "__webpack_require__", - "\u003cunknown\u003e", - "\u003cunknown\u003e", - "moduleId", - "\u003canonymous\u003e" - ], - "error.exception.stacktrace.line.column": [ - 0, - 0, - 0, - 0, - 0 - ], - "error.exception.stacktrace.line.context": [ - " \tfunction __webpack_require__(moduleId) {", - " \t__webpack_require__.c = installedModules;", - " \tfunction __webpack_require__(moduleId) {", - " \treturn __webpack_require__(0);", - " \t\tif(installedModules[moduleId])" - ], - "error.exception.stacktrace.line.number": [ - 5, - 33, - 5, - 39, - 8 - ], - "error.exception.stacktrace.original.abs_path": [ - "http://localhost:8000/test/../test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/./e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.original.colno": [ - 18, - 181, - 15, - 199, - 33 - ], - "error.exception.stacktrace.original.filename": [ - "test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.original.function": [ - "\u003canonymous\u003e", - "invokeTask", - "runTask", - "invoke", - "timer" - ], - "error.exception.stacktrace.original.library_frame": [ - true - ], - "error.exception.stacktrace.original.lineno": [ - 1, - 1, - 1, - 1, - 1 - ], - "error.exception.stacktrace.sourcemap.updated": [ - true, - true, - true, - true, - true + "error.exception.stacktrace": [ + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "__webpack_require__", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/../test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "library_frame": true, + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t// __webpack_public_path__", + " \t__webpack_require__.p = \"\";", + "", + " \t// Load entry module and return exports" + ], + "pre": [ + "", + " \t// expose the modules object (__webpack_modules__)", + " \t__webpack_require__.m = modules;", + "", + " \t// expose the module cache" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003cunknown\u003e", + "line": { + "column": 0, + "context": " \t__webpack_require__.c = installedModules;", + "number": 33 + }, + "original": { + "abs_path": "http://localhost:8000/test/./e2e/general-usecase/bundle.js.map", + "colno": 181, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "invokeTask", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003cunknown\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 15, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "runTask", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + "", + "", + "/** WEBPACK FOOTER **", + " ** webpack/bootstrap 6002740481c9666b0d38" + ], + "pre": [ + "", + " \t// __webpack_public_path__", + " \t__webpack_require__.p = \"\";", + "", + " \t// Load entry module and return exports" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "moduleId", + "line": { + "column": 0, + "context": " \treturn __webpack_require__(0);", + "number": 39 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 199, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "invoke", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + " \t\t\treturn installedModules[moduleId].exports;", + "", + " \t\t// Create a new module (and put it into the cache)", + " \t\tvar module = installedModules[moduleId] = {", + " \t\t\texports: {}," + ], + "pre": [ + "", + " \t// The require function", + " \tfunction __webpack_require__(moduleId) {", + "", + " \t\t// Check if module is in cache" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003canonymous\u003e", + "line": { + "column": 0, + "context": " \t\tif(installedModules[moduleId])", + "number": 8 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 33, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "timer", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + } ], "error.exception.type": [ "Error" @@ -188,57 +228,43 @@ "error.log.message": [ "Uncaught Error: log timeout test error" ], - "error.log.stacktrace.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.context.post": [ - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "" - ], - "error.log.stacktrace.context.pre": [ - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false - ], - "error.log.stacktrace.filename": [ - "webpack:///webpack/bootstrap 6002740481c9666b0d38" - ], - "error.log.stacktrace.function": [ - "\u003canonymous\u003e" - ], - "error.log.stacktrace.line.column": [ - 0 - ], - "error.log.stacktrace.line.context": [ - " \tfunction __webpack_require__(moduleId) {" - ], - "error.log.stacktrace.line.number": [ - 5 - ], - "error.log.stacktrace.original.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.original.colno": [ - 18 - ], - "error.log.stacktrace.original.filename": [ - "~/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.original.function": [ - "\u003canonymous\u003e" - ], - "error.log.stacktrace.original.lineno": [ - 1 - ], - "error.log.stacktrace.sourcemap.updated": [ - true + "error.log.stacktrace": [ + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003canonymous\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + } ], "http.request.referrer": [ "http://localhost:8000/test/e2e/" @@ -255,6 +281,9 @@ "observer.version": [ "dynamic" ], + "processor.event": [ + "error" + ], "service.name": [ "apm-agent-js" ], @@ -276,9 +305,15 @@ "url.full": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.full.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.path": [ "/test/e2e/general-usecase/" ], @@ -297,6 +332,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] diff --git a/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json b/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json index d4de0426b34..45f2b2242f9 100644 --- a/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json +++ b/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json @@ -27,151 +27,191 @@ "error.exception.message": [ "Uncaught Error: timeout test error" ], - "error.exception.stacktrace.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.context.post": [ - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "", - "", - " \t// __webpack_public_path__", - " \t__webpack_require__.p = \"\";", - "", - " \t// Load entry module and return exports", - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "", - "", - "", - "", - "/** WEBPACK FOOTER **", - " ** webpack/bootstrap 6002740481c9666b0d38", - " \t\t\treturn installedModules[moduleId].exports;", - "", - " \t\t// Create a new module (and put it into the cache)", - " \t\tvar module = installedModules[moduleId] = {", - " \t\t\texports: {}," - ], - "error.exception.stacktrace.context.pre": [ - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function", - "", - " \t// expose the modules object (__webpack_modules__)", - " \t__webpack_require__.m = modules;", - "", - " \t// expose the module cache", - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function", - "", - " \t// __webpack_public_path__", - " \t__webpack_require__.p = \"\";", - "", - " \t// Load entry module and return exports", - "", - " \t// The require function", - " \tfunction __webpack_require__(moduleId) {", - "", - " \t\t// Check if module is in cache" - ], - "error.exception.stacktrace.exclude_from_grouping": [ - false, - false, - false, - false, - false - ], - "error.exception.stacktrace.filename": [ - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38" - ], - "error.exception.stacktrace.function": [ - "__webpack_require__", - "\u003cunknown\u003e", - "\u003cunknown\u003e", - "moduleId", - "\u003canonymous\u003e" - ], - "error.exception.stacktrace.line.column": [ - 0, - 0, - 0, - 0, - 0 - ], - "error.exception.stacktrace.line.context": [ - " \tfunction __webpack_require__(moduleId) {", - " \t__webpack_require__.c = installedModules;", - " \tfunction __webpack_require__(moduleId) {", - " \treturn __webpack_require__(0);", - " \t\tif(installedModules[moduleId])" - ], - "error.exception.stacktrace.line.number": [ - 5, - 33, - 5, - 39, - 8 - ], - "error.exception.stacktrace.original.abs_path": [ - "http://localhost:8000/test/../test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/./e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.original.colno": [ - 18, - 181, - 15, - 199, - 33 - ], - "error.exception.stacktrace.original.filename": [ - "test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map" - ], - "error.exception.stacktrace.original.function": [ - "\u003canonymous\u003e", - "invokeTask", - "runTask", - "invoke", - "timer" - ], - "error.exception.stacktrace.original.library_frame": [ - true - ], - "error.exception.stacktrace.original.lineno": [ - 1, - 1, - 1, - 1, - 1 - ], - "error.exception.stacktrace.sourcemap.updated": [ - true, - true, - true, - true, - true + "error.exception.stacktrace": [ + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "__webpack_require__", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/../test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "library_frame": true, + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t// __webpack_public_path__", + " \t__webpack_require__.p = \"\";", + "", + " \t// Load entry module and return exports" + ], + "pre": [ + "", + " \t// expose the modules object (__webpack_modules__)", + " \t__webpack_require__.m = modules;", + "", + " \t// expose the module cache" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003cunknown\u003e", + "line": { + "column": 0, + "context": " \t__webpack_require__.c = installedModules;", + "number": 33 + }, + "original": { + "abs_path": "http://localhost:8000/test/./e2e/general-usecase/bundle.js.map", + "colno": 181, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "invokeTask", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003cunknown\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 15, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "runTask", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + "", + "", + "/** WEBPACK FOOTER **", + " ** webpack/bootstrap 6002740481c9666b0d38" + ], + "pre": [ + "", + " \t// __webpack_public_path__", + " \t__webpack_require__.p = \"\";", + "", + " \t// Load entry module and return exports" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "moduleId", + "line": { + "column": 0, + "context": " \treturn __webpack_require__(0);", + "number": 39 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 199, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "invoke", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + " \t\t\treturn installedModules[moduleId].exports;", + "", + " \t\t// Create a new module (and put it into the cache)", + " \t\tvar module = installedModules[moduleId] = {", + " \t\t\texports: {}," + ], + "pre": [ + "", + " \t// The require function", + " \tfunction __webpack_require__(moduleId) {", + "", + " \t\t// Check if module is in cache" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003canonymous\u003e", + "line": { + "column": 0, + "context": " \t\tif(installedModules[moduleId])", + "number": 8 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 33, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "timer", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + } ], "error.exception.type": [ "Error" @@ -188,57 +228,43 @@ "error.log.message": [ "Uncaught Error: log timeout test error" ], - "error.log.stacktrace.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.context.post": [ - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "" - ], - "error.log.stacktrace.context.pre": [ - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function" - ], - "error.log.stacktrace.exclude_from_grouping": [ - false - ], - "error.log.stacktrace.filename": [ - "webpack:///webpack/bootstrap 6002740481c9666b0d38" - ], - "error.log.stacktrace.function": [ - "\u003canonymous\u003e" - ], - "error.log.stacktrace.line.column": [ - 0 - ], - "error.log.stacktrace.line.context": [ - " \tfunction __webpack_require__(moduleId) {" - ], - "error.log.stacktrace.line.number": [ - 5 - ], - "error.log.stacktrace.original.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.original.colno": [ - 18 - ], - "error.log.stacktrace.original.filename": [ - "~/test/e2e/general-usecase/bundle.js.map" - ], - "error.log.stacktrace.original.function": [ - "\u003canonymous\u003e" - ], - "error.log.stacktrace.original.lineno": [ - 1 - ], - "error.log.stacktrace.sourcemap.updated": [ - true + "error.log.stacktrace": [ + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003canonymous\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + } ], "http.request.referrer": [ "http://localhost:8000/test/e2e/" @@ -255,6 +281,9 @@ "observer.version": [ "dynamic" ], + "processor.event": [ + "error" + ], "service.name": [ "apm-agent-js" ], @@ -276,9 +305,15 @@ "url.full": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.full.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.path": [ "/test/e2e/general-usecase/" ], @@ -297,6 +332,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] diff --git a/systemtest/approvals/TestRUMRoutingIntegration.approved.json b/systemtest/approvals/TestRUMRoutingIntegration.approved.json index 2ec9f4c3bd2..a7c1345c3e0 100644 --- a/systemtest/approvals/TestRUMRoutingIntegration.approved.json +++ b/systemtest/approvals/TestRUMRoutingIntegration.approved.json @@ -9,7 +9,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -107,6 +107,9 @@ ], "url.original": [ "http://localhost:8003/data" + ], + "url.original.text": [ + "http://localhost:8003/data" ] }, { @@ -119,7 +122,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -217,6 +220,9 @@ ], "url.original": [ "http://localhost:8000/test/e2e/common/data.json?test=hamid" + ], + "url.original.text": [ + "http://localhost:8000/test/e2e/common/data.json?test=hamid" ] }, { @@ -229,7 +235,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -309,7 +315,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -410,6 +416,9 @@ ], "url.original": [ "http://localhost:8003/fetch" + ], + "url.original.text": [ + "http://localhost:8003/fetch" ] }, { @@ -422,7 +431,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -505,7 +514,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -562,33 +571,33 @@ "span.name": [ "Fire \"DOMContentLoaded\" event" ], - "span.stacktrace.abs_path": [ - "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", - "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false - ], - "span.stacktrace.filename": [ - "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", - "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret" - ], - "span.stacktrace.function": [ - "generateError", - "\u003canonymous\u003e" - ], - "span.stacktrace.line.column": [ - 9, - 3 - ], - "span.stacktrace.line.number": [ - 7662, - 7666 - ], - "span.stacktrace.sourcemap.error": [ - "unable to find sourcemap.url for service.name=apm-a-rum-test-e2e-general-usecase service.version=0.0.1 bundle.path=http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js", - "unable to find sourcemap.url for service.name=apm-a-rum-test-e2e-general-usecase service.version=0.0.1 bundle.path=http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js" + "span.stacktrace": [ + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", + "exclude_from_grouping": false, + "filename": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", + "function": "generateError", + "line": { + "column": 9, + "number": 7662 + }, + "sourcemap": { + "error": "unable to find sourcemap.url for service.name=apm-a-rum-test-e2e-general-usecase service.version=0.0.1 bundle.path=http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js" + } + }, + { + "abs_path": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", + "exclude_from_grouping": false, + "filename": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret", + "function": "\u003canonymous\u003e", + "line": { + "column": 3, + "number": 7666 + }, + "sourcemap": { + "error": "unable to find sourcemap.url for service.name=apm-a-rum-test-e2e-general-usecase service.version=0.0.1 bundle.path=http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js" + } + } ], "span.subtype": [ "browser-timing" @@ -616,7 +625,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -714,6 +723,9 @@ ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED" + ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED" ] }, { @@ -726,7 +738,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -809,7 +821,7 @@ "agent.version": [ "4.8.1" ], - "client": [ + "client.ip": [ "dynamic" ], "data_stream.dataset": [ @@ -824,8 +836,12 @@ "event.outcome": [ "success" ], - "http.request.headers.Accept": [ - "application/json" + "http.request.headers": [ + { + "Accept": [ + "application/json" + ] + } ], "http.request.method": [ "GET" @@ -839,8 +855,12 @@ "http.response.encoded_body_size": [ 690 ], - "http.response.headers.Content-Type": [ - "application/json" + "http.response.headers": [ + { + "Content-Type": [ + "application/json" + ] + } ], "http.response.status_code": [ 200 @@ -911,8 +931,10 @@ "trace.id": [ "286ac3ad697892c406528f13c82e0ce1" ], - "transaction.custom.testContext": [ - "testContext" + "transaction.custom": [ + { + "testContext": "testContext" + } ], "transaction.duration.us": [ 295000 @@ -951,10 +973,10 @@ 120 ], "transaction.marks.agent.firstContentfulPaint": [ - 70.82500003930181 + 70.825 ], "transaction.marks.agent.largestContentfulPaint": [ - 131.03000004775822 + 131.03 ], "transaction.marks.agent.timeToFirstByte": [ 5 @@ -1007,6 +1029,9 @@ "transaction.name": [ "general-usecase-initial-p-load" ], + "transaction.name.text": [ + "general-usecase-initial-p-load" + ], "transaction.representative_count": [ 1 ], @@ -1028,9 +1053,15 @@ "url.full": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.full.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/" ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/" + ], "url.path": [ "/test/e2e/general-usecase/" ], @@ -1049,6 +1080,9 @@ "user.name": [ "un" ], + "user.name.text": [ + "un" + ], "user_agent.device.name": [ "Other" ], @@ -1058,6 +1092,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] diff --git a/systemtest/approvals/TestRUMSpanSourcemapping.approved.json b/systemtest/approvals/TestRUMSpanSourcemapping.approved.json index 438d18df969..d24f9c48dd5 100644 --- a/systemtest/approvals/TestRUMSpanSourcemapping.approved.json +++ b/systemtest/approvals/TestRUMSpanSourcemapping.approved.json @@ -60,79 +60,79 @@ "span.representative_count": [ 1 ], - "span.stacktrace.abs_path": [ - "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "span.stacktrace.context.post": [ - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "", - "", - " \t\t// Check if module is in cache", - " \t\tif(installedModules[moduleId])", - " \t\t\treturn installedModules[moduleId].exports;", - "" - ], - "span.stacktrace.context.pre": [ - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function", - " \t// The module cache", - " \tvar installedModules = {};", - "", - " \t// The require function" - ], - "span.stacktrace.exclude_from_grouping": [ - false, - false - ], - "span.stacktrace.filename": [ - "webpack:///webpack/bootstrap 6002740481c9666b0d38", - "webpack:///webpack/bootstrap 6002740481c9666b0d38" - ], - "span.stacktrace.function": [ - "\u003cunknown\u003e", - "\u003canonymous\u003e" - ], - "span.stacktrace.line.column": [ - 0, - 0 - ], - "span.stacktrace.line.context": [ - " \tfunction __webpack_require__(moduleId) {", - " \tfunction __webpack_require__(moduleId) {" - ], - "span.stacktrace.line.number": [ - 5, - 5 - ], - "span.stacktrace.original.abs_path": [ - "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", - "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map" - ], - "span.stacktrace.original.colno": [ - 18, - 18 - ], - "span.stacktrace.original.filename": [ - "test/e2e/general-usecase/bundle.js.map", - "~/test/e2e/general-usecase/bundle.js.map" - ], - "span.stacktrace.original.function": [ - "\u003canonymous\u003e", - "\u003canonymous\u003e" - ], - "span.stacktrace.original.lineno": [ - 1, - 1 - ], - "span.stacktrace.sourcemap.updated": [ - true, - true + "span.stacktrace": [ + { + "abs_path": "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003cunknown\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://subdomain1.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + }, + { + "abs_path": "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "context": { + "post": [ + "", + " \t\t// Check if module is in cache", + " \t\tif(installedModules[moduleId])", + " \t\t\treturn installedModules[moduleId].exports;", + "" + ], + "pre": [ + " \t// The module cache", + " \tvar installedModules = {};", + "", + " \t// The require function" + ] + }, + "exclude_from_grouping": false, + "filename": "webpack:///webpack/bootstrap 6002740481c9666b0d38", + "function": "\u003canonymous\u003e", + "line": { + "column": 0, + "context": " \tfunction __webpack_require__(moduleId) {", + "number": 5 + }, + "original": { + "abs_path": "http://subdomain2.localhost:8000/test/e2e/general-usecase/bundle.js.map", + "colno": 18, + "filename": "~/test/e2e/general-usecase/bundle.js.map", + "function": "\u003canonymous\u003e", + "lineno": 1 + }, + "sourcemap": { + "updated": true + } + } ], "span.type": [ "transaction" @@ -148,6 +148,9 @@ ], "url.original": [ "http://localhost:8000/test/e2e/general-usecase/span" + ], + "url.original.text": [ + "http://localhost:8000/test/e2e/general-usecase/span" ] } ] diff --git a/systemtest/approvals/TestRUMXForwardedFor.approved.json b/systemtest/approvals/TestRUMXForwardedFor.approved.json index 66d57daeb70..3ed284fcf21 100644 --- a/systemtest/approvals/TestRUMXForwardedFor.approved.json +++ b/systemtest/approvals/TestRUMXForwardedFor.approved.json @@ -93,6 +93,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] @@ -200,6 +203,9 @@ "user_agent.original": [ "Go-http-client/1.1" ], + "user_agent.original.text": [ + "Go-http-client/1.1" + ], "user_agent.version": [ "1.1" ] diff --git a/systemtest/approvals/TestServiceDestinationAggregation.approved.json b/systemtest/approvals/TestServiceDestinationAggregation.approved.json index ed680d8cf51..1ba70139ede 100644 --- a/systemtest/approvals/TestServiceDestinationAggregation.approved.json +++ b/systemtest/approvals/TestServiceDestinationAggregation.approved.json @@ -3,9 +3,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], @@ -74,9 +71,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], @@ -145,9 +139,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], diff --git a/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json b/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json index 2716d3f2322..70c5980a6c8 100644 --- a/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json +++ b/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json @@ -3,9 +3,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -18,11 +15,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "10m" @@ -48,17 +45,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type1" @@ -68,9 +69,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -83,11 +81,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "1m" @@ -113,17 +111,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type1" @@ -133,9 +135,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -148,11 +147,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "60m" @@ -178,17 +177,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type1" @@ -198,9 +201,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -213,11 +213,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "10m" @@ -243,17 +243,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type2" @@ -263,9 +267,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -278,11 +279,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "1m" @@ -308,17 +309,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type2" @@ -328,9 +333,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "go" ], @@ -343,11 +345,11 @@ "data_stream.type": [ "metrics" ], - "event.success_count.sum": [ - 2 - ], - "event.success_count.value_count": [ - 2 + "event.success_count": [ + { + "sum": 2, + "value_count": 2 + } ], "metricset.interval": [ "60m" @@ -373,17 +375,21 @@ "service.name": [ "systemtest" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 2007038 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 2007038, + "value_count": 2 + } ], "transaction.type": [ "type2" diff --git a/systemtest/approvals/TestTransactionAggregation.approved.json b/systemtest/approvals/TestTransactionAggregation.approved.json index 51b4348104a..1f1c147f6f8 100644 --- a/systemtest/approvals/TestTransactionAggregation.approved.json +++ b/systemtest/approvals/TestTransactionAggregation.approved.json @@ -3,9 +3,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], @@ -21,11 +18,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 5 - ], - "event.success_count.value_count": [ - 5 + "event.success_count": [ + { + "sum": 5, + "value_count": 5 + } ], "host.hostname": [ "beowulf" @@ -72,17 +69,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 5 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 5017595 - ], - "transaction.duration.summary.value_count": [ - 5 + "transaction.duration.histogram": [ + { + "counts": [ + 5 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 5017595, + "value_count": 5 + } ], "transaction.name": [ "abc" @@ -98,9 +99,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], @@ -116,11 +114,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 5 - ], - "event.success_count.value_count": [ - 5 + "event.success_count": [ + { + "sum": 5, + "value_count": 5 + } ], "host.hostname": [ "beowulf" @@ -167,17 +165,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 5 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 5017595 - ], - "transaction.duration.summary.value_count": [ - 5 + "transaction.duration.histogram": [ + { + "counts": [ + 5 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 5017595, + "value_count": 5 + } ], "transaction.name": [ "abc" @@ -193,9 +195,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 5 - ], "agent.name": [ "go" ], @@ -211,11 +210,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 5 - ], - "event.success_count.value_count": [ - 5 + "event.success_count": [ + { + "sum": 5, + "value_count": 5 + } ], "host.hostname": [ "beowulf" @@ -262,17 +261,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 5 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 5017595 - ], - "transaction.duration.summary.value_count": [ - 5 + "transaction.duration.histogram": [ + { + "counts": [ + 5 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 5017595, + "value_count": 5 + } ], "transaction.name": [ "abc" @@ -288,9 +291,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 10 - ], "agent.name": [ "go" ], @@ -306,11 +306,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 10 - ], - "event.success_count.value_count": [ - 10 + "event.success_count": [ + { + "sum": 10, + "value_count": 10 + } ], "host.hostname": [ "beowulf" @@ -357,17 +357,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 10 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 10035190 - ], - "transaction.duration.summary.value_count": [ - 10 + "transaction.duration.histogram": [ + { + "counts": [ + 10 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 10035190, + "value_count": 10 + } ], "transaction.name": [ "def" @@ -383,9 +387,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 10 - ], "agent.name": [ "go" ], @@ -401,11 +402,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 10 - ], - "event.success_count.value_count": [ - 10 + "event.success_count": [ + { + "sum": 10, + "value_count": 10 + } ], "host.hostname": [ "beowulf" @@ -452,17 +453,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 10 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 10035190 - ], - "transaction.duration.summary.value_count": [ - 10 + "transaction.duration.histogram": [ + { + "counts": [ + 10 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 10035190, + "value_count": 10 + } ], "transaction.name": [ "def" @@ -478,9 +483,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 10 - ], "agent.name": [ "go" ], @@ -496,11 +498,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 10 - ], - "event.success_count.value_count": [ - 10 + "event.success_count": [ + { + "sum": 10, + "value_count": 10 + } ], "host.hostname": [ "beowulf" @@ -547,17 +549,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 10 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 10035190 - ], - "transaction.duration.summary.value_count": [ - 10 + "transaction.duration.histogram": [ + { + "counts": [ + 10 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 10035190, + "value_count": 10 + } ], "transaction.name": [ "def" @@ -573,9 +579,6 @@ "@timestamp": [ "2021-09-15T20:10:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "elastic-node" ], @@ -687,17 +690,21 @@ "service.version": [ "5.1.3" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 38911 - ], - "transaction.duration.summary.sum": [ - 77822 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 38911 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 77822, + "value_count": 2 + } ], "transaction.name": [ "faas" @@ -716,9 +723,6 @@ "@timestamp": [ "2021-09-15T20:11:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "elastic-node" ], @@ -830,17 +834,21 @@ "service.version": [ "5.1.3" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 38911 - ], - "transaction.duration.summary.sum": [ - 77822 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 38911 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 77822, + "value_count": 2 + } ], "transaction.name": [ "faas" @@ -859,9 +867,6 @@ "@timestamp": [ "2021-09-15T20:00:00.000Z" ], - "_doc_count": [ - 2 - ], "agent.name": [ "elastic-node" ], @@ -973,17 +978,21 @@ "service.version": [ "5.1.3" ], - "transaction.duration.histogram.counts": [ - 2 - ], - "transaction.duration.histogram.values": [ - 38911 - ], - "transaction.duration.summary.sum": [ - 77822 - ], - "transaction.duration.summary.value_count": [ - 2 + "transaction.duration.histogram": [ + { + "counts": [ + 2 + ], + "values": [ + 38911 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 77822, + "value_count": 2 + } ], "transaction.name": [ "faas" diff --git a/systemtest/approvals/TestTransactionAggregationShutdown.approved.json b/systemtest/approvals/TestTransactionAggregationShutdown.approved.json index c3bd3a66cdd..667edb05506 100644 --- a/systemtest/approvals/TestTransactionAggregationShutdown.approved.json +++ b/systemtest/approvals/TestTransactionAggregationShutdown.approved.json @@ -3,9 +3,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 1 - ], "agent.name": [ "go" ], @@ -21,11 +18,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 1 - ], - "event.success_count.value_count": [ - 1 + "event.success_count": [ + { + "sum": 1, + "value_count": 1 + } ], "host.hostname": [ "beowulf" @@ -72,17 +69,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 1 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 1003519 - ], - "transaction.duration.summary.value_count": [ - 1 + "transaction.duration.histogram": [ + { + "counts": [ + 1 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 1003519, + "value_count": 1 + } ], "transaction.name": [ "name" @@ -98,9 +99,6 @@ "@timestamp": [ "2006-01-02T15:04:00.000Z" ], - "_doc_count": [ - 1 - ], "agent.name": [ "go" ], @@ -116,11 +114,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 1 - ], - "event.success_count.value_count": [ - 1 + "event.success_count": [ + { + "sum": 1, + "value_count": 1 + } ], "host.hostname": [ "beowulf" @@ -167,17 +165,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 1 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 1003519 - ], - "transaction.duration.summary.value_count": [ - 1 + "transaction.duration.histogram": [ + { + "counts": [ + 1 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 1003519, + "value_count": 1 + } ], "transaction.name": [ "name" @@ -193,9 +195,6 @@ "@timestamp": [ "2006-01-02T15:00:00.000Z" ], - "_doc_count": [ - 1 - ], "agent.name": [ "go" ], @@ -211,11 +210,11 @@ "event.outcome": [ "success" ], - "event.success_count.sum": [ - 1 - ], - "event.success_count.value_count": [ - 1 + "event.success_count": [ + { + "sum": 1, + "value_count": 1 + } ], "host.hostname": [ "beowulf" @@ -262,17 +261,21 @@ "service.runtime.version": [ "2.0" ], - "transaction.duration.histogram.counts": [ - 1 - ], - "transaction.duration.histogram.values": [ - 1003519 - ], - "transaction.duration.summary.sum": [ - 1003519 - ], - "transaction.duration.summary.value_count": [ - 1 + "transaction.duration.histogram": [ + { + "counts": [ + 1 + ], + "values": [ + 1003519 + ] + } + ], + "transaction.duration.summary": [ + { + "sum": 1003519, + "value_count": 1 + } ], "transaction.name": [ "name" diff --git a/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json b/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json index 0c77b7aff92..95e8c64c6d3 100644 --- a/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json +++ b/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json @@ -3,9 +3,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 4 - ], "agent.name": [ "go" ], @@ -62,9 +59,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 4 - ], "agent.name": [ "go" ], @@ -121,9 +115,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 4 - ], "agent.name": [ "go" ], @@ -180,9 +171,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 50 - ], "agent.name": [ "go" ], @@ -239,9 +227,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 50 - ], "agent.name": [ "go" ], @@ -298,9 +283,6 @@ "@timestamp": [ "dynamic" ], - "_doc_count": [ - 50 - ], "agent.name": [ "go" ], diff --git a/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json b/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json index fd535b2b413..951a0cb2591 100644 --- a/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json +++ b/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json @@ -54,6 +54,9 @@ "process.title": [ "systemtest.test" ], + "process.title.text": [ + "systemtest.test" + ], "processor.event": [ "transaction" ], @@ -78,7 +81,7 @@ "span.id": [ "dynamic" ], - "timestamp": [ + "timestamp.us": [ "dynamic" ], "trace.id": [ @@ -93,6 +96,9 @@ "transaction.name": [ "huge-traces" ], + "transaction.name.text": [ + "huge-traces" + ], "transaction.representative_count": [ 1 ], diff --git a/systemtest/errors_test.go b/systemtest/errors_test.go index 71069ce9688..53aafb8d7ca 100644 --- a/systemtest/errors_test.go +++ b/systemtest/errors_test.go @@ -19,6 +19,8 @@ package systemtest_test import ( "bytes" + "errors" + "fmt" "net/http" "os" "testing" @@ -51,5 +53,35 @@ func TestErrorIngest(t *testing.T) { result := estest.ExpectDocs(t, systemtest.Elasticsearch, "logs-apm.error*", espoll.ExistsQuery{ Field: "transaction.name", }) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) +} + +// TestErrorExceptionCause tests hierarchical exception causes, +// which must be obtained from _source due to how the exception +// tree is structured as an array of objects. +func TestErrorExceptionCause(t *testing.T) { + systemtest.CleanupElasticsearch(t) + srv := apmservertest.NewServerTB(t) + + tracer := srv.Tracer() + tracer.NewError(fmt.Errorf( + "parent: %w %w", + fmt.Errorf("child1: %w", errors.New("grandchild")), + errors.New("child2"), + )).Send() + tracer.Flush(nil) + + result := estest.ExpectDocs(t, systemtest.Elasticsearch, "logs-apm.error*", nil) + errorObj := result.Hits.Hits[0].Source["error"].(map[string]any) + exceptions := errorObj["exception"].([]any) + + require.Len(t, exceptions, 4) + assert.Equal(t, "parent: child1: grandchild child2", exceptions[0].(map[string]any)["message"]) + assert.Equal(t, "child1: grandchild", exceptions[1].(map[string]any)["message"]) + assert.Equal(t, "grandchild", exceptions[2].(map[string]any)["message"]) + assert.Equal(t, "child2", exceptions[3].(map[string]any)["message"]) + assert.NotContains(t, exceptions[0], "parent") + assert.NotContains(t, exceptions[1], "parent") + assert.NotContains(t, exceptions[2], "parent") + assert.Equal(t, float64(0), exceptions[3].(map[string]any)["parent"]) } diff --git a/systemtest/huge_traces_test.go b/systemtest/huge_traces_test.go index 771784b208e..b618c6b1dff 100644 --- a/systemtest/huge_traces_test.go +++ b/systemtest/huge_traces_test.go @@ -76,13 +76,26 @@ func TestTransactionDroppedSpansStats(t *testing.T) { metricsResult := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 6, "metrics-apm.service_destination*", espoll.TermQuery{Field: "metricset.name", Value: "service_destination"}, ) - approvaltest.ApproveEvents(t, t.Name()+"Metrics", metricsResult.Hits.Hits, "@timestamp") + approvaltest.ApproveFields(t, t.Name()+"Metrics", metricsResult.Hits.Hits, "@timestamp") + + // _doc_count is not returned in fields, it is only visible in _source and + // in the results of aggregations. + // + // TODO(axw) we should use a terms aggregation on `service.target.type`, + // and check that the returned doc_counts are expected. This would require + // more changes to apm-tools to specify aggregations in Expect(Min)Docs. + docCounts := make(map[string]float64) + for _, hit := range metricsResult.Hits.Hits { + serviceTargetType := hit.Fields["service.target.type"][0].(string) + docCounts[serviceTargetType] = hit.Source["_doc_count"].(float64) + } + assert.Equal(t, map[string]float64{"elasticsearch": 4, "redis": 50}, docCounts) txResult := estest.ExpectDocs(t, systemtest.Elasticsearch, "traces-apm-*", espoll.TermQuery{Field: "transaction.id", Value: tx.TraceContext().Span.String()}, ) - approvaltest.ApproveEvents(t, t.Name()+"Transaction", txResult.Hits.Hits, - "@timestamp", "timestamp", "trace.id", "transaction.id", "span.id", + approvaltest.ApproveFields(t, t.Name()+"Transaction", txResult.Hits.Hits, + "@timestamp", "timestamp.us", "trace.id", "transaction.id", "span.id", ) } @@ -150,5 +163,5 @@ func TestCompressedSpans(t *testing.T) { spanResults := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 2, "traces-apm-*", espoll.TermQuery{Field: "span.type", Value: "db"}, ) - approvaltest.ApproveEvents(t, t.Name(), spanResults.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), spanResults.Hits.Hits) } diff --git a/systemtest/ingest_test.go b/systemtest/ingest_test.go index d1b3337fc4a..c1bd709dd6e 100644 --- a/systemtest/ingest_test.go +++ b/systemtest/ingest_test.go @@ -18,14 +18,11 @@ package systemtest_test import ( - "bytes" "context" "encoding/json" - "fmt" "io" "net/http" "net/url" - "os" "strings" "testing" @@ -36,7 +33,6 @@ import ( "github.com/elastic/apm-server/systemtest" "github.com/elastic/apm-server/systemtest/apmservertest" "github.com/elastic/apm-server/systemtest/estest" - "github.com/elastic/apm-tools/pkg/approvaltest" "github.com/elastic/apm-tools/pkg/espoll" "github.com/elastic/go-elasticsearch/v8/esapi" ) @@ -181,39 +177,6 @@ func TestIngestPipelineEventDuration(t *testing.T) { } } -func TestIngestPipelineDataStreamMigration(t *testing.T) { - systemtest.CleanupElasticsearch(t) - - var testdata struct { - Hits struct { - Hits []struct { - Source json.RawMessage `json:"_source"` - } `json:"hits` - } `json:"hits` - } - - data, err := os.ReadFile("../testdata/ingest/7_17_docs.json") - require.NoError(t, err) - err = json.Unmarshal(data, &testdata) - require.NoError(t, err) - - // Index documents using the data stream migration ingest pipeline. - pipeline := fmt.Sprintf("traces-apm-%s-apm_data_stream_migration", systemtest.IntegrationPackage.Version) - for _, doc := range testdata.Hits.Hits { - _, err := systemtest.Elasticsearch.Do(context.Background(), esapi.IndexRequest{ - Index: "traces-apm-foo", // should not be created; ingest pipeline should take over - Pipeline: pipeline, - Body: bytes.NewReader(doc.Source), - }, nil) - require.NoError(t, err) - } - - result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, - len(testdata.Hits.Hits), "traces-apm*,logs-apm*,metrics-apm*", nil, - ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) -} - func TestIngestPipelineEventSuccessCount(t *testing.T) { type test struct { source string diff --git a/systemtest/intake_log_test.go b/systemtest/intake_log_test.go index 53e29ad8c3e..a597f1ef03b 100644 --- a/systemtest/intake_log_test.go +++ b/systemtest/intake_log_test.go @@ -91,7 +91,7 @@ func TestIntakeLog(t *testing.T) { fmt.Sprintf("logs-apm.app.%s-*", test.ServiceName), espoll.MatchPhraseQuery{Field: "message", Value: test.Message}, ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, test.DynamicFields...) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, test.DynamicFields...) }) } } diff --git a/systemtest/intake_test.go b/systemtest/intake_test.go index 18aecb116be..8f271800688 100644 --- a/systemtest/intake_test.go +++ b/systemtest/intake_test.go @@ -64,12 +64,11 @@ func TestIntake(t *testing.T) { ) tc.dynamicFields = append(tc.dynamicFields, "client.geo.city_name", - "client.geo.location.lat", - "client.geo.location.lon", + "client.geo.location", "client.geo.region_iso_code", "client.geo.region_name", ) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, tc.dynamicFields...) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, tc.dynamicFields...) }) } diff --git a/systemtest/jaeger_test.go b/systemtest/jaeger_test.go index 94d4d6616a9..059fd3ccdfe 100644 --- a/systemtest/jaeger_test.go +++ b/systemtest/jaeger_test.go @@ -52,7 +52,7 @@ func TestJaeger(t *testing.T) { t.Run(name, func(t *testing.T) { systemtest.CleanupElasticsearch(t) hits := sendJaegerBatch(t, srv, "../testdata/jaeger/"+name+".json", grpc.WithInsecure()) - approvaltest.ApproveEvents(t, t.Name(), hits) + approvaltest.ApproveFields(t, t.Name(), hits) }) } diff --git a/systemtest/metrics_test.go b/systemtest/metrics_test.go index d67acb685c9..67b466e747b 100644 --- a/systemtest/metrics_test.go +++ b/systemtest/metrics_test.go @@ -68,7 +68,7 @@ func TestApprovedMetrics(t *testing.T) { espoll.TermQuery{Field: "metricset.name", Value: "transaction"}, }, }) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) // Check dynamic mapping of histograms. mappings := getFieldMappings(t, indices, []string{"latency_distribution"}) diff --git a/systemtest/otlp_test.go b/systemtest/otlp_test.go index 6a692eba1ed..71033c7c802 100644 --- a/systemtest/otlp_test.go +++ b/systemtest/otlp_test.go @@ -114,7 +114,7 @@ func TestOTLPGRPCTraces(t *testing.T) { indices := "traces-apm*,logs-apm*" result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, 3, indices, nil) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, "error.id") + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, "error.id") } func TestOTLPGRPCTraceSpanLinks(t *testing.T) { @@ -212,13 +212,13 @@ func TestOTLPGRPCMetrics(t *testing.T) { metricsClient.Export(context.Background(), pmetricotlp.NewExportRequestFromMetrics(metrics)) result := estest.ExpectDocs(t, systemtest.Elasticsearch, "metrics-apm.app.*", espoll.ExistsQuery{Field: "counter"}) - approvaltest.ApproveEvents(t, t.Name()+"_counter", result.Hits.Hits, "@timestamp") + approvaltest.ApproveFields(t, t.Name()+"_counter", result.Hits.Hits, "@timestamp") result = estest.ExpectDocs(t, systemtest.Elasticsearch, "metrics-apm.app.*", espoll.ExistsQuery{Field: "summary"}) - approvaltest.ApproveEvents(t, t.Name()+"_summary", result.Hits.Hits, "@timestamp") + approvaltest.ApproveFields(t, t.Name()+"_summary", result.Hits.Hits, "@timestamp") result = estest.ExpectDocs(t, systemtest.Elasticsearch, "metrics-apm.app.*", espoll.ExistsQuery{Field: "histogram"}) - approvaltest.ApproveEvents(t, t.Name()+"_histogram", result.Hits.Hits, "@timestamp") + approvaltest.ApproveFields(t, t.Name()+"_histogram", result.Hits.Hits, "@timestamp") // Make sure we report monitoring for the metrics consumer. Metric values are unit tested. doc := getBeatsMonitoringStats(t, srv, nil) @@ -242,7 +242,7 @@ func TestOTLPGRPCLogs(t *testing.T) { require.NoError(t, err) result := estest.ExpectDocs(t, systemtest.Elasticsearch, "logs-apm*", nil) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits) } func TestOTLPGRPCAuth(t *testing.T) { @@ -478,7 +478,7 @@ func TestOTLPGRPCLogsClientIP(t *testing.T) { require.NoError(t, err) result := estest.ExpectDocs(t, systemtest.Elasticsearch, "logs-apm*", nil) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, "client.geo.location.lat", "client.geo.location.lon") + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, "client.geo.location") } func newMobileLogs(body interface{}) plog.Logs { diff --git a/systemtest/rum_test.go b/systemtest/rum_test.go index 3e0a4633c49..d082d0b12b2 100644 --- a/systemtest/rum_test.go +++ b/systemtest/rum_test.go @@ -70,7 +70,7 @@ func TestRUMXForwardedFor(t *testing.T) { Field: "processor.event", Values: []interface{}{"transaction", "metric"}, }) - approvaltest.ApproveEvents( + approvaltest.ApproveFields( t, t.Name(), result.Hits.Hits, // RUM timestamps are set by the server based on the time the payload is received. "@timestamp", "timestamp.us", @@ -218,8 +218,8 @@ func TestRUMRoutingIntegration(t *testing.T) { defer resp.Body.Close() } result := estest.ExpectSourcemapError(t, systemtest.Elasticsearch, "traces-apm.rum*", retry, nil, false) - approvaltest.ApproveEvents( + approvaltest.ApproveFields( t, t.Name(), result.Hits.Hits, "@timestamp", "timestamp.us", - "source.port", "source.ip", "client", + "source.port", "source.ip", "client.ip", ) } diff --git a/systemtest/sampling_test.go b/systemtest/sampling_test.go index 6ac2521d8a3..f7cd9d37dde 100644 --- a/systemtest/sampling_test.go +++ b/systemtest/sampling_test.go @@ -74,7 +74,7 @@ func TestDropUnsampled(t *testing.T) { Value: "TestDropUnsampled", }) assert.Len(t, result.Hits.Hits, 2) - approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, + approvaltest.ApproveFields(t, t.Name(), result.Hits.Hits, // RUM timestamps are set by the server based on the time the payload is received. "@timestamp", "timestamp.us", // RUM events have the source port recorded, and in the tests it will be dynamic diff --git a/systemtest/sourcemap_test.go b/systemtest/sourcemap_test.go index 5de283be3bd..27194b45e32 100644 --- a/systemtest/sourcemap_test.go +++ b/systemtest/sourcemap_test.go @@ -44,7 +44,7 @@ func TestRUMErrorSourcemapping(t *testing.T) { systemtest.SendRUMEventsPayload(t, serverURL, "../testdata/intake-v2/errors_rum.ndjson") } result := estest.ExpectSourcemapError(t, systemtest.Elasticsearch, "logs-apm.error-*", retry, nil, true) - approvaltest.ApproveEvents( + approvaltest.ApproveFields( t, t.Name(), result.Hits.Hits, // RUM timestamps are set by the server based on the time the payload is received. "@timestamp", "timestamp.us", @@ -96,7 +96,7 @@ func TestRUMSpanSourcemapping(t *testing.T) { Value: "span", }, true) - approvaltest.ApproveEvents( + approvaltest.ApproveFields( t, t.Name(), result.Hits.Hits, // RUM timestamps are set by the server based on the time the payload is received. "@timestamp", "timestamp.us", @@ -129,7 +129,7 @@ func TestNoMatchingSourcemap(t *testing.T) { Value: "span", }, false) - approvaltest.ApproveEvents( + approvaltest.ApproveFields( t, t.Name(), result.Hits.Hits, // RUM timestamps are set by the server based on the time the payload is received. "@timestamp", "timestamp.us",