17a39ab8db
Because it takes us at best several seconds to request information from a homeserver and then server-side render the page, the browser has to wait for the response before it can even try loading the necessary assets. With this change that facilitates early hints, the browser can preload all of the assets necessary before we are done generating the response and will be ready to go by the time we're all done on the server. Fix https://github.com/matrix-org/matrix-public-archive/issues/32 Part of https://github.com/matrix-org/matrix-public-archive/issues/132 See https://developers.cloudflare.com/cache/about/early-hints/ for information on enabling in Cloudflare |
||
---|---|---|
.. | ||
child-process-runner | ||
hydrogen-render | ||
lib | ||
routes | ||
tracing | ||
README.md | ||
server.js | ||
start-dev.js |
README.md
Tracing
Run the app with the OpenTelemetry tracing.
npm run start -- --tracing
# or
npm run start-dev -- --tracing
Manually:
node --require './server/tracing.js' server/server.js
Traces are made up of many spans. Each span defines a traceId
which it is associated with.
Viewing traces in Jaeger
- Dashboard where users can see visualisations -> http://localhost:16686
via https://www.jaegertracing.io/docs/1.35/getting-started/
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 5775:5775/udp \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:1.35
Port | Protocol | Component | Function |
---|---|---|---|
6831 | UDP | agent | accept jaeger.thrift over Thrift-compact protocol (used by most SDKs) |
6832 | UDP | agent | accept jaeger.thrift over Thrift-binary protocol (used by Node.js SDK) |
5775 | UDP | agent | (deprecated) accept zipkin.thrift over compact Thrift protocol (used by legacy clients only) |
5778 | HTTP | agent | serve configs (sampling, etc.) |
16686 | HTTP | query | serve frontend |
4317 | HTTP | collector | accept OpenTelemetry Protocol (OTLP) over gRPC, if enabled |
4318 | HTTP | collector | accept OpenTelemetry Protocol (OTLP) over HTTP, if enabled |
14268 | HTTP | collector | accept jaeger.thrift directly from clients |
14250 | HTTP | collector | accept model.proto |
9411 | HTTP | collector | Zipkin compatible endpoint (optional) |
With Service Performance Monitoring (SPM)