grafana / faro-web-sdk

The Grafana Faro Web SDK, part of the Grafana Faro project, is a highly configurable web SDK for real user monitoring (RUM) that instruments browser frontend applications to capture observability signals. Frontend telemetry can then be correlated with backend and infrastructure data for full-stack observability.
https://grafana.com/oss/faro/
Apache License 2.0
688 stars 62 forks source link

Failed to start the demo #522

Closed wilfriedroset closed 3 months ago

wilfriedroset commented 3 months ago

Description

Using v1.4.2 (commit 2a3f66ca914dd4ffa1a15a0c1091268adacb01f5) I failed to start the demo

Steps to reproduce

  1. git clone https://github.com/grafana/faro-web-sdk
  2. cd faro-web-sdk
  3. docker-compose --profile demo up -d

Expected behavior

Actual behavior

The build fails.

Environment

Demo

❯ docker-compose --profile demo up -d
[+] Building 305.3s (39/43)                                                                                                                                                              docker-container:default
 => [demo internal] booting buildkit                                                                                                                                                                         7.9s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                                                           6.4s
 => => creating container buildx_buildkit_default                                                                                                                                                            1.6s
 => [demo internal] load build definition from Dockerfile                                                                                                                                                    0.1s
 => => transferring dockerfile: 5.33kB                                                                                                                                                                       0.0s
 => [demo internal] load metadata for docker.io/library/node:18-alpine                                                                                                                                       1.3s
 => [demo internal] load .dockerignore                                                                                                                                                                       0.0s
 => => transferring context: 386B                                                                                                                                                                            0.0s
 => [demo  1/38] FROM docker.io/library/node:18-alpine@sha256:ca9f6cb0466f9638e59e0c249d335a07c867cd50c429b5c7830dda1bed584649                                                                               5.5s
 => => resolve docker.io/library/node:18-alpine@sha256:ca9f6cb0466f9638e59e0c249d335a07c867cd50c429b5c7830dda1bed584649                                                                                      0.0s
 => => sha256:f3748d9674b0ca905fe23e1cb4ad0e49d6a605dbbfb9d0cf485f300a03f1eeff 450B / 450B                                                                                                                   0.2s
 => => sha256:e7ced292c644a1f7bc776dcc401164b67c9224f8592cc83b8c42e237668a0c7f 40.25MB / 40.25MB                                                                                                             1.9s
 => => sha256:b32c0114bba5af3e85af37dbc23b1e026850aba590099b81bf75946327b3a9e8 2.34MB / 2.34MB                                                                                                               1.7s
 => => sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 3.41MB / 3.41MB                                                                                                               1.7s
 => => extracting sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8                                                                                                                    0.2s
 => => extracting sha256:e7ced292c644a1f7bc776dcc401164b67c9224f8592cc83b8c42e237668a0c7f                                                                                                                    3.1s
 => => extracting sha256:b32c0114bba5af3e85af37dbc23b1e026850aba590099b81bf75946327b3a9e8                                                                                                                    0.2s
 => => extracting sha256:f3748d9674b0ca905fe23e1cb4ad0e49d6a605dbbfb9d0cf485f300a03f1eeff                                                                                                                    0.0s
 => [demo internal] load build context                                                                                                                                                                       1.4s
 => => transferring context: 8.13MB                                                                                                                                                                          1.3s
 => [demo  2/38] RUN apk add --update --no-cache python3 make build-base && ln -sf python3 /usr/bin/python                                                                                                   7.1s
 => [demo  3/38] RUN python3 -m venv /opt/venv                                                                                                                                                               6.7s
 => [demo  4/38] RUN python3 -m ensurepip                                                                                                                                                                    3.1s
 => [demo  5/38] RUN pip3 install --no-cache --upgrade pip setuptools                                                                                                                                        2.9s
 => [demo  6/38] WORKDIR /usr/app                                                                                                                                                                            0.0s
 => [demo  7/38] RUN echo "export {};" >> index.ts                                                                                                                                                           0.1s
 => [demo  8/38] COPY .env      lerna.json      package.json      rollup.config.base.js      tsconfig.base.json      tsconfig.base.cjs.json      tsconfig.base.esm.json      tsconfig.base.spec.json      y  0.1s
 => [demo  9/38] COPY demo/package.json      demo/index.html      demo/                                                                                                                                      0.0s
 => [demo 10/38] RUN mkdir -p demo/src/client demo/src/server                                                                                                                                                0.1s
 => [demo 11/38] RUN cp index.ts demo/src/client/index.tsx                                                                                                                                                   0.1s
 => [demo 12/38] RUN cp index.ts demo/src/server                                                                                                                                                             0.1s
 => [demo 13/38] RUN touch index.scss demo/src/client                                                                                                                                                        0.1s
 => [demo 14/38] COPY packages/core/package.json      packages/core/rollup.config.js      packages/core/tsconfig.cjs.json      packages/core/tsconfig.esm.json      packages/core/tsconfig.spec.json      p  0.1s
 => [demo 15/38] COPY packages/core/bin/genVersion.js      packages/core/bin/                                                                                                                                0.0s
 => [demo 16/38] RUN mkdir packages/core/src                                                                                                                                                                 0.1s
 => [demo 17/38] RUN cp index.ts packages/core/src                                                                                                                                                           0.1s
 => [demo 18/38] COPY packages/react/package.json      packages/react/rollup.config.js      packages/react/tsconfig.cjs.json      packages/react/tsconfig.esm.json      packages/react/tsconfig.spec.json    0.0s
 => [demo 19/38] RUN mkdir packages/react/src                                                                                                                                                                0.1s
 => [demo 20/38] RUN cp index.ts packages/react/src                                                                                                                                                          0.1s
 => [demo 21/38] COPY packages/web-sdk/package.json      packages/web-sdk/rollup.config.js      packages/web-sdk/tsconfig.cjs.json      packages/web-sdk/tsconfig.esm.json      packages/web-sdk/tsconfig.s  0.0s
 => [demo 22/38] RUN mkdir packages/web-sdk/src                                                                                                                                                              0.1s
 => [demo 23/38] RUN cp index.ts packages/web-sdk/src                                                                                                                                                        0.1s
 => [demo 24/38] COPY packages/web-tracing/package.json      packages/web-tracing/rollup.config.js      packages/web-tracing/tsconfig.cjs.json      packages/web-tracing/tsconfig.esm.json      packages/we  0.0s
 => [demo 25/38] RUN mkdir packages/web-tracing/src                                                                                                                                                          0.1s
 => [demo 26/38] RUN cp index.ts packages/web-tracing/src                                                                                                                                                    0.1s
 => [demo 27/38] COPY experimental/instrumentation-fetch/package.json      experimental/instrumentation-fetch/rollup.config.js      experimental/instrumentation-fetch/tsconfig.cjs.json      experimental/  0.1s
 => [demo 28/38] RUN mkdir experimental/instrumentation-fetch/src                                                                                                                                            0.2s
 => [demo 29/38] RUN cp index.ts experimental/instrumentation-fetch/src                                                                                                                                      0.2s
 => [demo 30/38] COPY experimental/instrumentation-xhr/package.json      experimental/instrumentation-xhr/rollup.config.js      experimental/instrumentation-xhr/tsconfig.cjs.json      experimental/instru  0.1s
 => [demo 31/38] RUN mkdir experimental/instrumentation-xhr/src                                                                                                                                              0.2s
 => [demo 32/38] RUN cp index.ts experimental/instrumentation-xhr/src                                                                                                                                        0.1s
 => [demo 33/38] RUN rm index.ts                                                                                                                                                                             0.1s
 => ERROR [demo 34/38] RUN SKIP_GEN_VERSION=1 yarn install --pure-lockfile                                                                                                                                 267.1s
------
 > [demo 34/38] RUN SKIP_GEN_VERSION=1 yarn install --pure-lockfile:
0.427 yarn install v1.22.19
0.739 [1/4] Resolving packages...
2.387 [2/4] Fetching packages...
156.4 [3/4] Linking dependencies...
156.4 warning " > ts-node@10.9.2" has unmet peer dependency "@types/node@*".
156.4 warning " > @grafana/faro-react@1.4.2" has unmet peer dependency "react@^16.8.0 || ^17.0.0 || ^18.0.0".
156.4 warning " > @grafana/faro-react@1.4.2" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0".
156.4 warning " > @grafana/faro-react@1.4.2" has unmet peer dependency "react-router-dom@^4.0.0 || ^5.0.0 || ^6.0.0".
156.4 warning "workspace-aggregator-62b59ed0-dc93-42da-8d13-c72a5dec81b0 > @grafana/faro-demo > bootstrap@5.3.2" has unmet peer dependency "@popperjs/core@^2.11.8".
208.9 [4/4] Building fresh packages...
245.6 $ yarn build
246.0 yarn run v1.22.19
246.1 $ lerna run build
249.1 lerna notice cli v7.3.1
249.4
249.4  >  Lerna (powered by Nx)   Running target build for 7 projects:
249.4
249.4     - @grafana/faro-demo
249.4     - @grafana/faro-instrumentation-fetch
249.4     - @grafana/faro-instrumentation-xhr
249.4     - @grafana/faro-core
249.4     - @grafana/faro-react
249.4     - @grafana/faro-web-sdk
249.4     - @grafana/faro-web-tracing
249.4
249.4
259.8
259.8 > @grafana/faro-core:build
259.8
$ run-s build:*
$ node bin/genVersion.js
259.8 Skipping generating version file due to "SKIP_GEN_VERSION" environment variable
$ run-p build:compile:*
$ tsc --build tsconfig.esm.json
$ tsc --build tsconfig.cjs.json
$ run-s build:compile:bundle:*
$ rollup -c ./rollup.config.js
259.8
259.8 ./src/index.ts → ./dist/bundle/faro-core.iife.js...
259.8 (!) Generated an empty chunk
259.8 "index"
259.8 created ./dist/bundle/faro-core.iife.js in 3.9s
$ rimraf dist/bundle/dist
------
failed to solve: process "/bin/sh -c SKIP_GEN_VERSION=1 yarn install --pure-lockfile" did not complete successfully: exit code: 137

Context

I'm using podman instead of docker.

❯ podman version
Client:       Podman Engine
Version:      4.9.3
API Version:  4.9.3
Go Version:   go1.21.7
Git Commit:   8d2b55ddde1bc81f43d018dfc1ac027c06b26a7f
Built:        Tue Feb 13 20:55:17 2024
OS/Arch:      darwin/amd64

Server:       Podman Engine
Version:      4.8.3
API Version:  4.8.3
Go Version:   go1.21.5
Built:        Wed Jan  3 15:11:40 2024
OS/Arch:      linux/amd64
❯ podman images
REPOSITORY                      TAG              IMAGE ID      CREATED        SIZE
docker.io/grafana/agent         main             6165fb417321  12 hours ago   534 MB
docker.io/moby/buildkit         buildx-stable-1  7ce1dc411542  9 days ago     199 MB
docker.io/grafana/loki          latest           3dcd4af7ce25  2 weeks ago    75.3 MB
docker.io/library/postgres      latest           b9390dd1ea18  3 weeks ago    439 MB
docker.io/library/node          18-alpine        24d8fcd7167f  4 weeks ago    134 MB
docker.io/library/debian        bullseye         52d6bfa40b9a  4 weeks ago    130 MB
docker.io/library/debian        bookworm         52f537fe0336  4 weeks ago    121 MB
docker.io/grafana/grafana       latest           2fec87cd4362  7 weeks ago    414 MB
docker.io/library/debian        12               a6916e41aa87  2 months ago   121 MB
docker.io/grafana/tempo         2.0.0            256805151cf5  13 months ago  87.5 MB
docker.io/cortexproject/cortex  v1.14.1          6b872f47efce  15 months ago  60.3 MB
wilfriedroset commented 3 months ago

Turns out podman was not configured to use enough memory even when there is some available.

codecapitano commented 3 months ago

Thank you for the update and for updating the issue as well 🙏

Cheers, Marco