Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into update-go-1.21
Browse files Browse the repository at this point in the history
kruskall authored Sep 25, 2023
2 parents 2e4dc5c + 3e8adc2 commit 712d901
Showing 19 changed files with 67 additions and 193 deletions.
2 changes: 1 addition & 1 deletion .ci/jobs/apm-server-package-mbp.yml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
discover-pr-origin: merge-current
discover-tags: false
disable-pr-notifications: true
head-filter-regex: '(main|7\.17|8\.\d+)'
head-filter-regex: '(main|7\.17|8\.9|8\.1\d+)'
notification-context: 'apm-server-package'
repo: apm-server
repo-owner: elastic
2 changes: 1 addition & 1 deletion .ci/jobs/defaults.yml
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
##### GLOBAL METADATA

- meta:
cluster: apm-ci
cluster: beats-ci

##### JOB DEFAULTS

4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -50,7 +50,9 @@ jobs:
with:
go-version-file: go.mod
cache: true
- run: go test -v ./...
- env:
CGO_ENABLED: "0"
run: go test -v ./...

system-test:
runs-on: ubuntu-latest
4 changes: 2 additions & 2 deletions NOTICE.txt
Original file line number Diff line number Diff line change
@@ -573,11 +573,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/apm-data@v0.1.1

--------------------------------------------------------------------------------
Dependency : github.com/elastic/beats/v7
Version: v7.0.0-alpha2.0.20230914074205-73774d544927
Version: v7.0.0-alpha2.0.20230920140255-24c3388ed6d8
Licence type (autodetected): Elastic
--------------------------------------------------------------------------------

Contents of probable licence file $GOMODCACHE/github.com/elastic/beats/v7@v7.0.0-alpha2.0.20230914074205-73774d544927/LICENSE.txt:
Contents of probable licence file $GOMODCACHE/github.com/elastic/beats/v7@v7.0.0-alpha2.0.20230920140255-24c3388ed6d8/LICENSE.txt:

Source code in this repository is variously licensed under the Apache License
Version 2.0, an Apache compatible license, or the Elastic License. Outside of
16 changes: 16 additions & 0 deletions changelogs/8.10.asciidoc
Original file line number Diff line number Diff line change
@@ -3,8 +3,24 @@

https://github.com/elastic/apm-server/compare/8.9\...8.10[View commits]

* <<release-notes-8.10.2>>
* <<release-notes-8.10.1>>
* <<release-notes-8.10.0>>

[float]
[[release-notes-8.10.2]]
=== APM version 8.10.2

No significant changes.

[float]
[[release-notes-8.10.1]]
=== APM version 8.10.1

[float]
==== Bug fixes
Fix tail-based sampling discarding low throughput and low sample rate traces {pull}11642[11642]

[float]
[[release-notes-8.10.0]]
=== APM version 8.10.0
37 changes: 3 additions & 34 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ x-logging: &default-logging
max-size: "1g"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0-f9ab12e0-SNAPSHOT
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0-abc4d077-SNAPSHOT
ports:
- 9200:9200
healthcheck:
@@ -41,7 +41,7 @@ services:
logging: *default-logging

kibana:
image: docker.elastic.co/kibana/kibana:8.11.0-f9ab12e0-SNAPSHOT
image: docker.elastic.co/kibana/kibana:8.11.0-abc4d077-SNAPSHOT
ports:
- 5601:5601
healthcheck:
@@ -52,52 +52,21 @@ services:
ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]'
ELASTICSEARCH_USERNAME: "${KIBANA_ES_USER:-kibana_system_user}"
ELASTICSEARCH_PASSWORD: "${KIBANA_ES_PASS:-changeme}"
XPACK_FLEET_AGENTS_FLEET_SERVER_HOSTS: '["https://fleet-server:8220"]'
XPACK_FLEET_AGENTS_ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]'
depends_on:
elasticsearch: { condition: service_healthy }
volumes:
- "./testing/docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml"
logging: *default-logging

fleet-server:
image: docker.elastic.co/beats/elastic-agent:8.11.0-f9ab12e0-SNAPSHOT
ports:
- 8220:8220
healthcheck:
test: ["CMD-SHELL", "curl -s -k https://localhost:8220/api/status | grep -q 'HEALTHY'"]
retries: 300
interval: 1s
environment:
FLEET_SERVER_ENABLE: "1"
FLEET_SERVER_POLICY_ID: "fleet-server-apm"
FLEET_SERVER_ELASTICSEARCH_HOST: http://elasticsearch:9200
FLEET_SERVER_ELASTICSEARCH_USERNAME: "${ES_SUPERUSER_USER:-admin}"
FLEET_SERVER_ELASTICSEARCH_PASSWORD: "${ES_SUPERUSER_PASS:-changeme}"
FLEET_SERVER_CERT: /etc/pki/tls/certs/fleet-server.pem
FLEET_SERVER_CERT_KEY: /etc/pki/tls/private/fleet-server-key.pem
FLEET_URL: https://fleet-server:8220
KIBANA_FLEET_SETUP: "true"
KIBANA_FLEET_HOST: "http://kibana:5601"
KIBANA_FLEET_USERNAME: "${ES_SUPERUSER_USER:-admin}"
KIBANA_FLEET_PASSWORD: "${ES_SUPERUSER_PASS:-changeme}"
depends_on:
elasticsearch: { condition: service_healthy }
kibana: { condition: service_healthy }
volumes:
- "./testing/docker/fleet-server/certificate.pem:/etc/pki/tls/certs/fleet-server.pem"
- "./testing/docker/fleet-server/key.pem:/etc/pki/tls/private/fleet-server-key.pem"
logging: *default-logging

metricbeat:
image: docker.elastic.co/beats/metricbeat:8.11.0-f9ab12e0-SNAPSHOT
image: docker.elastic.co/beats/metricbeat:8.11.0-abc4d077-SNAPSHOT
environment:
ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]'
ELASTICSEARCH_USERNAME: "${KIBANA_ES_USER:-admin}"
ELASTICSEARCH_PASSWORD: "${KIBANA_ES_PASS:-changeme}"
depends_on:
elasticsearch: { condition: service_healthy }
fleet-server: { condition: service_healthy }
volumes:
- "./testing/docker/metricbeat/elasticsearch-xpack.yml://usr/share/metricbeat/modules.d/elasticsearch-xpack.yml"
- "./testing/docker/metricbeat/apm-server.yml://usr/share/metricbeat/modules.d/apm-server.yml"
11 changes: 11 additions & 0 deletions docs/common-problems.asciidoc
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ This section describes common problems you might encounter when using a Fleet-ma
* <<common-ssl-problems>>
* <<io-timeout>>
* <<field-limit-exceeded-legacy>>
* <<tail-based-sampling-memory-disk-io>>

[float]
[[no-data-indexed]]
@@ -187,3 +188,13 @@ In the agent logs, you won't see a sign of failures as the APM server asynchrono
----
{\"type\":\"illegal_argument_exception\",\"reason\":\"Limit of total fields [1000] in [INDEX_NAME] has been exceeded\"}
----

[[tail-based-sampling-memory-disk-io]]
[float]
=== Tail-based sampling causing high system memory usage and high disk IO

Tail-based sampling requires minimal memory to run, and there should not be a noticeable increase in RSS memory usage.
However, since tail-based sampling writes data to disk,
it is possible to see a significant increase in OS page cache memory usage due to disk IO.
If you see a drop in throughput and excessive disk activity after enabling tail-based sampling,
please ensure that there is enough memory headroom in the system for OS page cache to perform disk IO efficiently.
3 changes: 3 additions & 0 deletions docs/configure/sampling.asciidoc
Original file line number Diff line number Diff line change
@@ -65,6 +65,9 @@ This final policy is used to catch remaining trace events that don't match a str
[id="sampling-tail-storage_limit-{input-type}"]
== Storage limit
The amount of storage space allocated for trace events matching tail sampling policies. Caution: Setting this limit higher than the allowed space may cause APM Server to become unhealthy.

If the configured storage limit is insufficient, it logs "configured storage limit reached". The event will bypass sampling and will always be indexed when storage limit is reached.

Default: `3GB`. (text)

|====
17 changes: 17 additions & 0 deletions docs/otel-limitations.asciidoc
Original file line number Diff line number Diff line change
@@ -37,3 +37,20 @@ The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/
was deprecated in 7.13 and replaced by the native support of the OpenTelemetry Line Protocol in
Elastic {observability} (OTLP). To learn more, see
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticexporter#migration[migration].

[float]
[[open-telemetry-tbs]]
==== OpenTelemetry's tail-based sampling

Tail-based sampling allows to make sampling decisions after all spans of a trace have been completed.
This allows for more powerful and informed sampling rules.

When using OpenTelemetry with Elastic APM, there are two different implementations available for tail-based sampling:

* Tail-based sampling using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector
* Native <<tail-based-sampling,tail-based sampling in the Elastic APM backend>>

Using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector comes with an important limitation. Elastic's APM backend calculates span and transaction metrics based on the incoming span events.
These metrics are accurate for 100% sampling scenarios. In scenarios with probabilistic sampling, Elastic's APM backend is being informed about the sampling rate of spans and can extrapolate throughput metrics based on the incoming, partial data. However, with tail-based sampling there's no clear probability for sampling decisions as the rules can be more complex and the OpenTelemetry Collector does not provide sampling probability information to the Elastic backend that could be used for extrapolation of data. Therefore, there's no way for Elastic APM to properly extrapolate throughput and count metrics that are derived from span events that have been tail-based sampled in the OpenTelemetry Collector. In these scenarios, derived throughput and count metrics are likely to be inaccurate.

Therefore, we recommend using Elastic's native tail-based smapling when integrating with OpenTelemetry.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ require (
github.com/dustin/go-humanize v1.0.1
github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6
github.com/elastic/apm-data v0.1.1-0.20230908092227-4426f61e0c5c
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230914074205-73774d544927
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230920140255-24c3388ed6d8
github.com/elastic/elastic-agent-client/v7 v7.3.0
github.com/elastic/elastic-agent-libs v0.3.13
github.com/elastic/elastic-agent-system-metrics v0.6.1
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -175,8 +175,8 @@ github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6 h1:Js+C3HE
github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6/go.mod h1:ba3gaJCuhxXN/O5AuiI56xxd6DukQdVOK0NfpzBntNo=
github.com/elastic/apm-data v0.1.1-0.20230908092227-4426f61e0c5c h1:THld+d7v6wEwM1v+gzI9j0kktOI/tZHRWJVIVUGHctc=
github.com/elastic/apm-data v0.1.1-0.20230908092227-4426f61e0c5c/go.mod h1:lMTMoCWNadiDJih/tLechuMTtumEeedtKJlBOYAv030=
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230914074205-73774d544927 h1:F+/umUQuKumD8hRLbxQrlCHMMm24bRdYq5mkG1ukENw=
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230914074205-73774d544927/go.mod h1:6VoNnMqI4R6FUggDK0bGPNnL3zdk4/rW5CUSLZBqnls=
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230920140255-24c3388ed6d8 h1:B09aM9DyjovwqXH7f2wIBXIWWJ9CR74T8+L+HCbzpik=
github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230920140255-24c3388ed6d8/go.mod h1:6VoNnMqI4R6FUggDK0bGPNnL3zdk4/rW5CUSLZBqnls=
github.com/elastic/elastic-agent-autodiscover v0.6.2 h1:7P3cbMBWXjbzA80rxitQjc+PiWyZ4I4F4LqrCYgYlNc=
github.com/elastic/elastic-agent-autodiscover v0.6.2/go.mod h1:yXYKFAG+Py+TcE4CCR8EAbJiYb+6Dz9sCDoWgOveqtU=
github.com/elastic/elastic-agent-client/v7 v7.3.0 h1:LugKtBXK7bp4SFL/uQqGU/f4Ppx12Jk5a36voGabLa0=
17 changes: 3 additions & 14 deletions systemtest/containers.go
Original file line number Diff line number Diff line change
@@ -41,7 +41,6 @@ import (
"github.com/docker/go-connections/nat"
"github.com/testcontainers/testcontainers-go"
"github.com/testcontainers/testcontainers-go/wait"
"golang.org/x/sync/errgroup"
)

const (
@@ -69,22 +68,19 @@ func init() {
func StartStackContainers() error {
cmd := exec.Command(
"docker-compose", "-f", "../docker-compose.yml",
"up", "-d", "elasticsearch", "kibana", "fleet-server",
"up", "-d", "elasticsearch", "kibana",
)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
return err
}

// Wait for up to 5 minutes for Kibana and Fleet Server to become healthy,
// Wait for up to 5 minutes for Kibana to become healthy,
// which implies Elasticsearch is healthy too.
ctx, cancel := context.WithTimeout(context.Background(), startContainersTimeout)
defer cancel()
g, ctx := errgroup.WithContext(ctx)
g.Go(func() error { return waitContainerHealthy(ctx, "kibana") })
g.Go(func() error { return waitContainerHealthy(ctx, "fleet-server") })
return g.Wait()
return waitContainerHealthy(ctx, "kibana")
}

func waitContainerHealthy(ctx context.Context, serviceName string) error {
@@ -212,18 +208,11 @@ func NewUnstartedElasticAgentContainer(opts ContainerConfig) (*ElasticAgentConta
}
vcsRef := agentImageDetails.Config.Labels["org.label-schema.vcs-ref"]

containerCACertPath := "/etc/pki/tls/certs/fleet-ca.pem"
hostCACertPath := filepath.Join(systemtestDir, "../testing/docker/fleet-server/certificate.pem") // self-signed
req := testcontainers.ContainerRequest{
Name: opts.Name,
Image: agentImage,
AutoRemove: true,
Networks: networks,
Mounts: testcontainers.Mounts(testcontainers.BindMount(hostCACertPath, testcontainers.ContainerMountTarget(containerCACertPath))),
Env: map[string]string{
"FLEET_URL": "https://fleet-server:8220",
"FLEET_CA": containerCACertPath,
},
SkipReaper: true, // we use our own reaping logic
}
return &ElasticAgentContainer{
2 changes: 1 addition & 1 deletion testdata/intake-v3/rum_events.ndjson
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
{"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"},"n":{"c":{"t":"5G"}}}}
{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "<anonymous>","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}}
{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "<anonymous>","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}}
Loading

0 comments on commit 712d901

Please sign in to comment.