diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0bed1d18..c703a18c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,7 @@ jobs: app: - elixir/alpine-release - elixir/phoenix - - elixir/phoenix-collector + - elixir/phoenix-opentelemetry - elixir/phoenix-oban - elixir/plug - elixir/plug-ecto @@ -66,6 +66,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -83,8 +90,8 @@ jobs: fail-fast: false matrix: app: - - java/spring-native-collector - - java/spring-agent-collector + - java/spring-native-opentelemetry + - java/spring-agent-opentelemetry steps: - name: Checkout uses: actions/checkout@v4 @@ -95,6 +102,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -115,9 +129,9 @@ jobs: - go/beego - go/beego-mod-otel - go/go-gin-mysql - - go/go-gin-mysql-collector + - go/go-gin-mysql-opentelemetry - go/gorilla-mux-mysql-redis-mongo - - go/gorilla-mux-mysql-redis-mongo-collector + - go/gorilla-mux-mysql-redis-mongo-opentelemetry steps: - name: Checkout uses: actions/checkout@v4 @@ -128,6 +142,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -146,7 +167,7 @@ jobs: matrix: app: - javascript/react - - javascript/react-vite-collector + - javascript/react-vite-opentelemetry - javascript/ember - javascript/vanilla - javascript/vue-3 @@ -160,6 +181,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -191,7 +219,7 @@ jobs: - nodejs/express-bullmq - nodejs/express-mongoose - nodejs/express-postgres - - nodejs/express-postgres-collector + - nodejs/express-postgres-opentelemetry - nodejs/express-redis - nodejs/express-redis-alpine - nodejs/express-yoga @@ -206,7 +234,7 @@ jobs: - nodejs/nextjs-13-app - nodejs/nextjs-14-app - nodejs/nextjs-14-pages - - nodejs/nextjs-15-app-collector + - nodejs/nextjs-15-app-opentelemetry - nodejs/remix - nodejs/restify steps: @@ -219,6 +247,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -252,7 +287,7 @@ jobs: - ruby/rails7-sidekiq - ruby/rails8-delayed-job - ruby/rails8-sidekiq - - ruby/rails8-sidekiq-collector + - ruby/rails8-sidekiq-opentelemetry - ruby/sinatra-redis - ruby/sinatra-alpine - ruby/sinatra-puma @@ -268,6 +303,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -294,7 +336,7 @@ jobs: matrix: app: - python/django5-celery - - python/django5-celery-collector + - python/django5-celery-opentelemetry - python/django4-celery - python/flask - python/fastapi @@ -309,6 +351,13 @@ jobs: path: support/processmon/processmon key: ${{ env.CACHE_VERSION }}-processmon + - name: Update Docker Compose + run: | + mkdir -p ~/.docker/cli-plugins + curl -fsSL https://github.com/docker/compose/releases/download/v5.1.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose + chmod +x ~/.docker/cli-plugins/docker-compose + docker compose version + - name: Setup environment run: | echo APPSIGNAL_PUSH_API_KEY=not-a-real-api-key > appsignal_key.env @@ -326,9 +375,9 @@ jobs: fail-fast: false matrix: app: - - php/symfony-collector - - php/laravel-collector - - php/vanilla-collector + - php/symfony-opentelemetry + - php/laravel-opentelemetry + - php/vanilla-opentelemetry steps: - name: Checkout uses: actions/checkout@v4 diff --git a/README.md b/README.md index 248a92217..7507efa45 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ To start a test setup: rake app=elixir/alpine-release app:up rake app=elixir/phoenix app:up rake app=elixir/phoenix-ash app:up -rake app=elixir/phoenix-collector app:up rake app=elixir/phoenix-oban app:up +rake app=elixir/phoenix-opentelemetry app:up rake app=elixir/plug app:up rake app=elixir/plug-ecto app:up rake app=elixir/plug-oban app:up @@ -35,15 +35,15 @@ rake app=elixir/single-task app:up rake app=go/beego app:up rake app=go/beego-mod-otel app:up rake app=go/go-gin-mysql app:up -rake app=go/go-gin-mysql-collector app:up +rake app=go/go-gin-mysql-opentelemetry app:up rake app=go/gorilla-mux-mysql-redis-mongo app:up -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:up -rake app=java/spring-agent-collector app:up -rake app=java/spring-native-collector app:up +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:up +rake app=java/spring-agent-opentelemetry app:up +rake app=java/spring-native-opentelemetry app:up rake app=javascript/Dockerfile app:up rake app=javascript/ember app:up rake app=javascript/react app:up -rake app=javascript/react-vite-collector app:up +rake app=javascript/react-vite-opentelemetry app:up rake app=javascript/typescript-angular app:up rake app=javascript/vanilla app:up rake app=javascript/vue-3 app:up @@ -53,33 +53,36 @@ rake app=nodejs/express-bullmq app:up rake app=nodejs/express-elasticsearch app:up rake app=nodejs/express-mongoose app:up rake app=nodejs/express-postgres app:up -rake app=nodejs/express-postgres-collector app:up +rake app=nodejs/express-postgres-opentelemetry app:up rake app=nodejs/express-rabbitmq app:up rake app=nodejs/express-redis app:up rake app=nodejs/express-redis-alpine app:up rake app=nodejs/express-yoga app:up rake app=nodejs/fastify app:up -rake app=nodejs/koa-microservices app:up -rake app=nodejs/koa-mongo app:up -rake app=nodejs/koa-mysql app:up +rake app=nodejs/koa-2-microservices app:up +rake app=nodejs/koa-2-mongo app:up +rake app=nodejs/koa-2-mysql app:up +rake app=nodejs/koa-3-mysql app:up rake app=nodejs/nestjs app:up rake app=nodejs/nestjs-10 app:up rake app=nodejs/nestjs-prisma app:up rake app=nodejs/nextjs-13-app app:up rake app=nodejs/nextjs-14-app app:up rake app=nodejs/nextjs-14-pages app:up -rake app=nodejs/nextjs-15-app-collector app:up +rake app=nodejs/nextjs-15-app-opentelemetry app:up rake app=nodejs/remix app:up rake app=nodejs/restify app:up -rake app=php/laravel-collector app:up -rake app=php/symfony-collector app:up -rake app=php/vanilla-collector app:up +rake app=php/laravel app:up +rake app=php/laravel-opentelemetry app:up +rake app=php/symfony app:up +rake app=php/symfony-opentelemetry app:up +rake app=php/vanilla app:up +rake app=php/vanilla-opentelemetry app:up rake app=python/django4-asgi app:up rake app=python/django4-celery app:up rake app=python/django4-wsgi app:up rake app=python/django5-celery app:up -rake app=python/django5-celery-collector app:up -rake app=python/django5-celery-integration-collector app:up +rake app=python/django5-celery-opentelemetry app:up rake app=python/fastapi app:up rake app=python/fastapi-databases app:up rake app=python/flask app:up @@ -104,8 +107,9 @@ rake app=ruby/rails7-sequel app:up rake app=ruby/rails7-sidekiq app:up rake app=ruby/rails7-solid-cache app:up rake app=ruby/rails7-solid-queue app:up +rake app=ruby/rails8-delayed-job app:up rake app=ruby/rails8-sidekiq app:up -rake app=ruby/rails8-sidekiq-collector app:up +rake app=ruby/rails8-sidekiq-opentelemetry app:up rake app=ruby/shoryuken app:up rake app=ruby/sinatra-alpine app:up rake app=ruby/sinatra-gvltools app:up @@ -129,51 +133,50 @@ page and follows a random link every 5 seconds): rake app=elixir/alpine-release app:bot rake app=elixir/phoenix app:bot rake app=elixir/phoenix-ash app:bot -rake app=elixir/phoenix-collector app:bot rake app=elixir/phoenix-oban app:bot +rake app=elixir/phoenix-opentelemetry app:bot rake app=elixir/plug app:bot rake app=elixir/plug-ecto app:bot rake app=elixir/plug-oban app:bot rake app=go/beego app:bot rake app=go/beego-mod-otel app:bot rake app=go/go-gin-mysql app:bot -rake app=go/go-gin-mysql-collector app:bot +rake app=go/go-gin-mysql-opentelemetry app:bot rake app=go/gorilla-mux-mysql-redis-mongo app:bot -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:bot -rake app=java/spring-agent-collector app:bot -rake app=java/spring-native-collector app:bot +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:bot +rake app=java/spring-agent-opentelemetry app:bot +rake app=java/spring-native-opentelemetry app:bot rake app=nodejs/express-apollo app:bot rake app=nodejs/express-bullmq app:bot rake app=nodejs/express-elasticsearch app:bot rake app=nodejs/express-mongoose app:bot rake app=nodejs/express-postgres app:bot -rake app=nodejs/express-postgres-collector app:bot +rake app=nodejs/express-postgres-opentelemetry app:bot rake app=nodejs/express-rabbitmq app:bot rake app=nodejs/express-redis app:bot rake app=nodejs/express-redis-alpine app:bot rake app=nodejs/express-yoga app:bot rake app=nodejs/fastify app:bot -rake app=nodejs/koa-microservices app:bot -rake app=nodejs/koa-mongo app:bot -rake app=nodejs/koa-mysql app:bot +rake app=nodejs/koa-2-microservices app:bot +rake app=nodejs/koa-2-mongo app:bot +rake app=nodejs/koa-2-mysql app:bot rake app=nodejs/nestjs app:bot rake app=nodejs/nestjs-10 app:bot rake app=nodejs/nestjs-prisma app:bot rake app=nodejs/nextjs-13-app app:bot rake app=nodejs/nextjs-14-app app:bot rake app=nodejs/nextjs-14-pages app:bot -rake app=nodejs/nextjs-15-app-collector app:bot +rake app=nodejs/nextjs-15-app-opentelemetry app:bot rake app=nodejs/remix app:bot rake app=nodejs/restify app:bot -rake app=php/laravel-collector app:bot -rake app=php/symfony-collector app:bot -rake app=php/vanilla-collector app:bot +rake app=php/laravel-opentelemetry app:bot +rake app=php/symfony-opentelemetry app:bot +rake app=php/vanilla-opentelemetry app:bot rake app=python/django4-asgi app:bot rake app=python/django4-celery app:bot rake app=python/django4-wsgi app:bot rake app=python/django5-celery app:bot -rake app=python/django5-celery-collector app:bot -rake app=python/django5-celery-integration-collector app:bot +rake app=python/django5-celery-opentelemetry app:bot rake app=python/fastapi app:bot rake app=python/fastapi-databases app:bot rake app=python/flask app:bot @@ -198,7 +201,7 @@ rake app=ruby/rails7-sidekiq app:bot rake app=ruby/rails7-solid-cache app:bot rake app=ruby/rails7-solid-queue app:bot rake app=ruby/rails8-sidekiq app:bot -rake app=ruby/rails8-sidekiq-collector app:bot +rake app=ruby/rails8-sidekiq-opentelemetry app:bot rake app=ruby/sinatra-alpine app:bot rake app=ruby/sinatra-gvltools app:bot rake app=ruby/sinatra-puma app:bot @@ -207,14 +210,55 @@ rake app=ruby/webmachine1 app:bot rake app=ruby/webmachine2 app:bot ``` +Each test setup can be run in one or more "modes", selected with the `mode=` +parameter. A mode is defined by a `docker-compose..yml` file in the setup +directory. When no `mode=` is given, the setup runs in its default mode (its +plain `docker-compose.yml`), or in `agent` mode when it has no default. + +Most setups run their integration in "agent mode". Some also support "collector +mode", in which the integration sends data to AppSignal through a local +AppSignal collector over OpenTelemetry. Pass `mode=collector` to any command. +The setups that support collector mode: + +``` +rake app=python/django4-asgi mode=collector app:up +rake app=python/django4-celery mode=collector app:up +rake app=python/django4-wsgi mode=collector app:up +rake app=python/django5-celery mode=collector app:up +rake app=python/fastapi mode=collector app:up +rake app=python/fastapi-databases mode=collector app:up +rake app=python/flask mode=collector app:up +rake app=python/flask-pika mode=collector app:up +rake app=python/flask-sqlalchemy mode=collector app:up +rake app=python/starlette mode=collector app:up +rake app=ruby/grape mode=collector app:up +rake app=ruby/hanami2-postgres mode=collector app:up +rake app=ruby/rack mode=collector app:up +rake app=ruby/rails6-mysql mode=collector app:up +rake app=ruby/rails6-shakapacker mode=collector app:up +rake app=ruby/rails6-shoryuken mode=collector app:up +rake app=ruby/rails7-delayed-job mode=collector app:up +rake app=ruby/rails7-goodjob mode=collector app:up +rake app=ruby/rails7-postgres mode=collector app:up +rake app=ruby/rails7-sequel mode=collector app:up +rake app=ruby/rails7-solid-cache mode=collector app:up +rake app=ruby/rails7-solid-queue mode=collector app:up +rake app=ruby/rails8-delayed-job mode=collector app:up +rake app=ruby/rails8-sidekiq mode=collector app:up +rake app=ruby/sinatra-alpine mode=collector app:up +rake app=ruby/sinatra-gvltools mode=collector app:up +rake app=ruby/webmachine1 mode=collector app:up +rake app=ruby/webmachine2 mode=collector app:up +``` + To restart the app container after making changes to an integration: ``` rake app=elixir/alpine-release app:restart rake app=elixir/phoenix app:restart rake app=elixir/phoenix-ash app:restart -rake app=elixir/phoenix-collector app:restart rake app=elixir/phoenix-oban app:restart +rake app=elixir/phoenix-opentelemetry app:restart rake app=elixir/plug app:restart rake app=elixir/plug-ecto app:restart rake app=elixir/plug-oban app:restart @@ -222,15 +266,15 @@ rake app=elixir/single-task app:restart rake app=go/beego app:restart rake app=go/beego-mod-otel app:restart rake app=go/go-gin-mysql app:restart -rake app=go/go-gin-mysql-collector app:restart +rake app=go/go-gin-mysql-opentelemetry app:restart rake app=go/gorilla-mux-mysql-redis-mongo app:restart -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:restart -rake app=java/spring-agent-collector app:restart -rake app=java/spring-native-collector app:restart +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:restart +rake app=java/spring-agent-opentelemetry app:restart +rake app=java/spring-native-opentelemetry app:restart rake app=javascript/Dockerfile app:restart rake app=javascript/ember app:restart rake app=javascript/react app:restart -rake app=javascript/react-vite-collector app:restart +rake app=javascript/react-vite-opentelemetry app:restart rake app=javascript/typescript-angular app:restart rake app=javascript/vanilla app:restart rake app=javascript/vue-3 app:restart @@ -240,33 +284,36 @@ rake app=nodejs/express-bullmq app:restart rake app=nodejs/express-elasticsearch app:restart rake app=nodejs/express-mongoose app:restart rake app=nodejs/express-postgres app:restart -rake app=nodejs/express-postgres-collector app:restart +rake app=nodejs/express-postgres-opentelemetry app:restart rake app=nodejs/express-rabbitmq app:restart rake app=nodejs/express-redis app:restart rake app=nodejs/express-redis-alpine app:restart rake app=nodejs/express-yoga app:restart rake app=nodejs/fastify app:restart -rake app=nodejs/koa-microservices app:restart -rake app=nodejs/koa-mongo app:restart -rake app=nodejs/koa-mysql app:restart +rake app=nodejs/koa-2-microservices app:restart +rake app=nodejs/koa-2-mongo app:restart +rake app=nodejs/koa-2-mysql app:restart +rake app=nodejs/koa-3-mysql app:restart rake app=nodejs/nestjs app:restart rake app=nodejs/nestjs-10 app:restart rake app=nodejs/nestjs-prisma app:restart rake app=nodejs/nextjs-13-app app:restart rake app=nodejs/nextjs-14-app app:restart rake app=nodejs/nextjs-14-pages app:restart -rake app=nodejs/nextjs-15-app-collector app:restart +rake app=nodejs/nextjs-15-app-opentelemetry app:restart rake app=nodejs/remix app:restart rake app=nodejs/restify app:restart -rake app=php/laravel-collector app:restart -rake app=php/symfony-collector app:restart -rake app=php/vanilla-collector app:restart +rake app=php/laravel app:restart +rake app=php/laravel-opentelemetry app:restart +rake app=php/symfony app:restart +rake app=php/symfony-opentelemetry app:restart +rake app=php/vanilla app:restart +rake app=php/vanilla-opentelemetry app:restart rake app=python/django4-asgi app:restart rake app=python/django4-celery app:restart rake app=python/django4-wsgi app:restart rake app=python/django5-celery app:restart -rake app=python/django5-celery-collector app:restart -rake app=python/django5-celery-integration-collector app:restart +rake app=python/django5-celery-opentelemetry app:restart rake app=python/fastapi app:restart rake app=python/fastapi-databases app:restart rake app=python/flask app:restart @@ -291,8 +338,9 @@ rake app=ruby/rails7-sequel app:restart rake app=ruby/rails7-sidekiq app:restart rake app=ruby/rails7-solid-cache app:restart rake app=ruby/rails7-solid-queue app:restart +rake app=ruby/rails8-delayed-job app:restart rake app=ruby/rails8-sidekiq app:restart -rake app=ruby/rails8-sidekiq-collector app:restart +rake app=ruby/rails8-sidekiq-opentelemetry app:restart rake app=ruby/shoryuken app:restart rake app=ruby/sinatra-alpine app:restart rake app=ruby/sinatra-gvltools app:restart @@ -311,8 +359,8 @@ To run bash: rake app=elixir/alpine-release app:bash rake app=elixir/phoenix app:bash rake app=elixir/phoenix-ash app:bash -rake app=elixir/phoenix-collector app:bash rake app=elixir/phoenix-oban app:bash +rake app=elixir/phoenix-opentelemetry app:bash rake app=elixir/plug app:bash rake app=elixir/plug-ecto app:bash rake app=elixir/plug-oban app:bash @@ -320,15 +368,15 @@ rake app=elixir/single-task app:bash rake app=go/beego app:bash rake app=go/beego-mod-otel app:bash rake app=go/go-gin-mysql app:bash -rake app=go/go-gin-mysql-collector app:bash +rake app=go/go-gin-mysql-opentelemetry app:bash rake app=go/gorilla-mux-mysql-redis-mongo app:bash -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:bash -rake app=java/spring-agent-collector app:bash -rake app=java/spring-native-collector app:bash +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:bash +rake app=java/spring-agent-opentelemetry app:bash +rake app=java/spring-native-opentelemetry app:bash rake app=javascript/Dockerfile app:bash rake app=javascript/ember app:bash rake app=javascript/react app:bash -rake app=javascript/react-vite-collector app:bash +rake app=javascript/react-vite-opentelemetry app:bash rake app=javascript/typescript-angular app:bash rake app=javascript/vanilla app:bash rake app=javascript/vue-3 app:bash @@ -338,33 +386,36 @@ rake app=nodejs/express-bullmq app:bash rake app=nodejs/express-elasticsearch app:bash rake app=nodejs/express-mongoose app:bash rake app=nodejs/express-postgres app:bash -rake app=nodejs/express-postgres-collector app:bash +rake app=nodejs/express-postgres-opentelemetry app:bash rake app=nodejs/express-rabbitmq app:bash rake app=nodejs/express-redis app:bash rake app=nodejs/express-redis-alpine app:bash rake app=nodejs/express-yoga app:bash rake app=nodejs/fastify app:bash -rake app=nodejs/koa-microservices app:bash -rake app=nodejs/koa-mongo app:bash -rake app=nodejs/koa-mysql app:bash +rake app=nodejs/koa-2-microservices app:bash +rake app=nodejs/koa-2-mongo app:bash +rake app=nodejs/koa-2-mysql app:bash +rake app=nodejs/koa-3-mysql app:bash rake app=nodejs/nestjs app:bash rake app=nodejs/nestjs-10 app:bash rake app=nodejs/nestjs-prisma app:bash rake app=nodejs/nextjs-13-app app:bash rake app=nodejs/nextjs-14-app app:bash rake app=nodejs/nextjs-14-pages app:bash -rake app=nodejs/nextjs-15-app-collector app:bash +rake app=nodejs/nextjs-15-app-opentelemetry app:bash rake app=nodejs/remix app:bash rake app=nodejs/restify app:bash -rake app=php/laravel-collector app:bash -rake app=php/symfony-collector app:bash -rake app=php/vanilla-collector app:bash +rake app=php/laravel app:bash +rake app=php/laravel-opentelemetry app:bash +rake app=php/symfony app:bash +rake app=php/symfony-opentelemetry app:bash +rake app=php/vanilla app:bash +rake app=php/vanilla-opentelemetry app:bash rake app=python/django4-asgi app:bash rake app=python/django4-celery app:bash rake app=python/django4-wsgi app:bash rake app=python/django5-celery app:bash -rake app=python/django5-celery-collector app:bash -rake app=python/django5-celery-integration-collector app:bash +rake app=python/django5-celery-opentelemetry app:bash rake app=python/fastapi app:bash rake app=python/fastapi-databases app:bash rake app=python/flask app:bash @@ -389,8 +440,9 @@ rake app=ruby/rails7-sequel app:bash rake app=ruby/rails7-sidekiq app:bash rake app=ruby/rails7-solid-cache app:bash rake app=ruby/rails7-solid-queue app:bash +rake app=ruby/rails8-delayed-job app:bash rake app=ruby/rails8-sidekiq app:bash -rake app=ruby/rails8-sidekiq-collector app:bash +rake app=ruby/rails8-sidekiq-opentelemetry app:bash rake app=ruby/shoryuken app:bash rake app=ruby/sinatra-alpine app:bash rake app=ruby/sinatra-gvltools app:bash @@ -409,8 +461,8 @@ To run the console (if implemented in the test app): rake app=elixir/alpine-release app:console rake app=elixir/phoenix app:console rake app=elixir/phoenix-ash app:console -rake app=elixir/phoenix-collector app:console rake app=elixir/phoenix-oban app:console +rake app=elixir/phoenix-opentelemetry app:console rake app=elixir/plug app:console rake app=elixir/plug-ecto app:console rake app=elixir/plug-oban app:console @@ -418,15 +470,15 @@ rake app=elixir/single-task app:console rake app=go/beego app:console rake app=go/beego-mod-otel app:console rake app=go/go-gin-mysql app:console -rake app=go/go-gin-mysql-collector app:console +rake app=go/go-gin-mysql-opentelemetry app:console rake app=go/gorilla-mux-mysql-redis-mongo app:console -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:console -rake app=java/spring-agent-collector app:console -rake app=java/spring-native-collector app:console +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:console +rake app=java/spring-agent-opentelemetry app:console +rake app=java/spring-native-opentelemetry app:console rake app=javascript/Dockerfile app:console rake app=javascript/ember app:console rake app=javascript/react app:console -rake app=javascript/react-vite-collector app:console +rake app=javascript/react-vite-opentelemetry app:console rake app=javascript/typescript-angular app:console rake app=javascript/vanilla app:console rake app=javascript/vue-3 app:console @@ -436,33 +488,36 @@ rake app=nodejs/express-bullmq app:console rake app=nodejs/express-elasticsearch app:console rake app=nodejs/express-mongoose app:console rake app=nodejs/express-postgres app:console -rake app=nodejs/express-postgres-collector app:console +rake app=nodejs/express-postgres-opentelemetry app:console rake app=nodejs/express-rabbitmq app:console rake app=nodejs/express-redis app:console rake app=nodejs/express-redis-alpine app:console rake app=nodejs/express-yoga app:console rake app=nodejs/fastify app:console -rake app=nodejs/koa-microservices app:console -rake app=nodejs/koa-mongo app:console -rake app=nodejs/koa-mysql app:console +rake app=nodejs/koa-2-microservices app:console +rake app=nodejs/koa-2-mongo app:console +rake app=nodejs/koa-2-mysql app:console +rake app=nodejs/koa-3-mysql app:console rake app=nodejs/nestjs app:console rake app=nodejs/nestjs-10 app:console rake app=nodejs/nestjs-prisma app:console rake app=nodejs/nextjs-13-app app:console rake app=nodejs/nextjs-14-app app:console rake app=nodejs/nextjs-14-pages app:console -rake app=nodejs/nextjs-15-app-collector app:console +rake app=nodejs/nextjs-15-app-opentelemetry app:console rake app=nodejs/remix app:console rake app=nodejs/restify app:console -rake app=php/laravel-collector app:console -rake app=php/symfony-collector app:console -rake app=php/vanilla-collector app:console +rake app=php/laravel app:console +rake app=php/laravel-opentelemetry app:console +rake app=php/symfony app:console +rake app=php/symfony-opentelemetry app:console +rake app=php/vanilla app:console +rake app=php/vanilla-opentelemetry app:console rake app=python/django4-asgi app:console rake app=python/django4-celery app:console rake app=python/django4-wsgi app:console rake app=python/django5-celery app:console -rake app=python/django5-celery-collector app:console -rake app=python/django5-celery-integration-collector app:console +rake app=python/django5-celery-opentelemetry app:console rake app=python/fastapi app:console rake app=python/fastapi-databases app:console rake app=python/flask app:console @@ -487,8 +542,9 @@ rake app=ruby/rails7-sequel app:console rake app=ruby/rails7-sidekiq app:console rake app=ruby/rails7-solid-cache app:console rake app=ruby/rails7-solid-queue app:console +rake app=ruby/rails8-delayed-job app:console rake app=ruby/rails8-sidekiq app:console -rake app=ruby/rails8-sidekiq-collector app:console +rake app=ruby/rails8-sidekiq-opentelemetry app:console rake app=ruby/shoryuken app:console rake app=ruby/sinatra-alpine app:console rake app=ruby/sinatra-gvltools app:console @@ -507,8 +563,8 @@ To send in a diagnose (if implemented in the test app); rake app=elixir/alpine-release app:diagnose rake app=elixir/phoenix app:diagnose rake app=elixir/phoenix-ash app:diagnose -rake app=elixir/phoenix-collector app:diagnose rake app=elixir/phoenix-oban app:diagnose +rake app=elixir/phoenix-opentelemetry app:diagnose rake app=elixir/plug app:diagnose rake app=elixir/plug-ecto app:diagnose rake app=elixir/plug-oban app:diagnose @@ -516,15 +572,15 @@ rake app=elixir/single-task app:diagnose rake app=go/beego app:diagnose rake app=go/beego-mod-otel app:diagnose rake app=go/go-gin-mysql app:diagnose -rake app=go/go-gin-mysql-collector app:diagnose +rake app=go/go-gin-mysql-opentelemetry app:diagnose rake app=go/gorilla-mux-mysql-redis-mongo app:diagnose -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:diagnose -rake app=java/spring-agent-collector app:diagnose -rake app=java/spring-native-collector app:diagnose +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:diagnose +rake app=java/spring-agent-opentelemetry app:diagnose +rake app=java/spring-native-opentelemetry app:diagnose rake app=javascript/Dockerfile app:diagnose rake app=javascript/ember app:diagnose rake app=javascript/react app:diagnose -rake app=javascript/react-vite-collector app:diagnose +rake app=javascript/react-vite-opentelemetry app:diagnose rake app=javascript/typescript-angular app:diagnose rake app=javascript/vanilla app:diagnose rake app=javascript/vue-3 app:diagnose @@ -534,33 +590,36 @@ rake app=nodejs/express-bullmq app:diagnose rake app=nodejs/express-elasticsearch app:diagnose rake app=nodejs/express-mongoose app:diagnose rake app=nodejs/express-postgres app:diagnose -rake app=nodejs/express-postgres-collector app:diagnose +rake app=nodejs/express-postgres-opentelemetry app:diagnose rake app=nodejs/express-rabbitmq app:diagnose rake app=nodejs/express-redis app:diagnose rake app=nodejs/express-redis-alpine app:diagnose rake app=nodejs/express-yoga app:diagnose rake app=nodejs/fastify app:diagnose -rake app=nodejs/koa-microservices app:diagnose -rake app=nodejs/koa-mongo app:diagnose -rake app=nodejs/koa-mysql app:diagnose +rake app=nodejs/koa-2-microservices app:diagnose +rake app=nodejs/koa-2-mongo app:diagnose +rake app=nodejs/koa-2-mysql app:diagnose +rake app=nodejs/koa-3-mysql app:diagnose rake app=nodejs/nestjs app:diagnose rake app=nodejs/nestjs-10 app:diagnose rake app=nodejs/nestjs-prisma app:diagnose rake app=nodejs/nextjs-13-app app:diagnose rake app=nodejs/nextjs-14-app app:diagnose rake app=nodejs/nextjs-14-pages app:diagnose -rake app=nodejs/nextjs-15-app-collector app:diagnose +rake app=nodejs/nextjs-15-app-opentelemetry app:diagnose rake app=nodejs/remix app:diagnose rake app=nodejs/restify app:diagnose -rake app=php/laravel-collector app:diagnose -rake app=php/symfony-collector app:diagnose -rake app=php/vanilla-collector app:diagnose +rake app=php/laravel app:diagnose +rake app=php/laravel-opentelemetry app:diagnose +rake app=php/symfony app:diagnose +rake app=php/symfony-opentelemetry app:diagnose +rake app=php/vanilla app:diagnose +rake app=php/vanilla-opentelemetry app:diagnose rake app=python/django4-asgi app:diagnose rake app=python/django4-celery app:diagnose rake app=python/django4-wsgi app:diagnose rake app=python/django5-celery app:diagnose -rake app=python/django5-celery-collector app:diagnose -rake app=python/django5-celery-integration-collector app:diagnose +rake app=python/django5-celery-opentelemetry app:diagnose rake app=python/fastapi app:diagnose rake app=python/fastapi-databases app:diagnose rake app=python/flask app:diagnose @@ -585,8 +644,9 @@ rake app=ruby/rails7-sequel app:diagnose rake app=ruby/rails7-sidekiq app:diagnose rake app=ruby/rails7-solid-cache app:diagnose rake app=ruby/rails7-solid-queue app:diagnose +rake app=ruby/rails8-delayed-job app:diagnose rake app=ruby/rails8-sidekiq app:diagnose -rake app=ruby/rails8-sidekiq-collector app:diagnose +rake app=ruby/rails8-sidekiq-opentelemetry app:diagnose rake app=ruby/shoryuken app:diagnose rake app=ruby/sinatra-alpine app:diagnose rake app=ruby/sinatra-gvltools app:diagnose @@ -605,8 +665,8 @@ Tail the appsignal log: rake app=elixir/alpine-release app:tail:appsignal rake app=elixir/phoenix app:tail:appsignal rake app=elixir/phoenix-ash app:tail:appsignal -rake app=elixir/phoenix-collector app:tail:appsignal rake app=elixir/phoenix-oban app:tail:appsignal +rake app=elixir/phoenix-opentelemetry app:tail:appsignal rake app=elixir/plug app:tail:appsignal rake app=elixir/plug-ecto app:tail:appsignal rake app=elixir/plug-oban app:tail:appsignal @@ -614,15 +674,15 @@ rake app=elixir/single-task app:tail:appsignal rake app=go/beego app:tail:appsignal rake app=go/beego-mod-otel app:tail:appsignal rake app=go/go-gin-mysql app:tail:appsignal -rake app=go/go-gin-mysql-collector app:tail:appsignal +rake app=go/go-gin-mysql-opentelemetry app:tail:appsignal rake app=go/gorilla-mux-mysql-redis-mongo app:tail:appsignal -rake app=go/gorilla-mux-mysql-redis-mongo-collector app:tail:appsignal -rake app=java/spring-agent-collector app:tail:appsignal -rake app=java/spring-native-collector app:tail:appsignal +rake app=go/gorilla-mux-mysql-redis-mongo-opentelemetry app:tail:appsignal +rake app=java/spring-agent-opentelemetry app:tail:appsignal +rake app=java/spring-native-opentelemetry app:tail:appsignal rake app=javascript/Dockerfile app:tail:appsignal rake app=javascript/ember app:tail:appsignal rake app=javascript/react app:tail:appsignal -rake app=javascript/react-vite-collector app:tail:appsignal +rake app=javascript/react-vite-opentelemetry app:tail:appsignal rake app=javascript/typescript-angular app:tail:appsignal rake app=javascript/vanilla app:tail:appsignal rake app=javascript/vue-3 app:tail:appsignal @@ -632,33 +692,36 @@ rake app=nodejs/express-bullmq app:tail:appsignal rake app=nodejs/express-elasticsearch app:tail:appsignal rake app=nodejs/express-mongoose app:tail:appsignal rake app=nodejs/express-postgres app:tail:appsignal -rake app=nodejs/express-postgres-collector app:tail:appsignal +rake app=nodejs/express-postgres-opentelemetry app:tail:appsignal rake app=nodejs/express-rabbitmq app:tail:appsignal rake app=nodejs/express-redis app:tail:appsignal rake app=nodejs/express-redis-alpine app:tail:appsignal rake app=nodejs/express-yoga app:tail:appsignal rake app=nodejs/fastify app:tail:appsignal -rake app=nodejs/koa-microservices app:tail:appsignal -rake app=nodejs/koa-mongo app:tail:appsignal -rake app=nodejs/koa-mysql app:tail:appsignal +rake app=nodejs/koa-2-microservices app:tail:appsignal +rake app=nodejs/koa-2-mongo app:tail:appsignal +rake app=nodejs/koa-2-mysql app:tail:appsignal +rake app=nodejs/koa-3-mysql app:tail:appsignal rake app=nodejs/nestjs app:tail:appsignal rake app=nodejs/nestjs-10 app:tail:appsignal rake app=nodejs/nestjs-prisma app:tail:appsignal rake app=nodejs/nextjs-13-app app:tail:appsignal rake app=nodejs/nextjs-14-app app:tail:appsignal rake app=nodejs/nextjs-14-pages app:tail:appsignal -rake app=nodejs/nextjs-15-app-collector app:tail:appsignal +rake app=nodejs/nextjs-15-app-opentelemetry app:tail:appsignal rake app=nodejs/remix app:tail:appsignal rake app=nodejs/restify app:tail:appsignal -rake app=php/laravel-collector app:tail:appsignal -rake app=php/symfony-collector app:tail:appsignal -rake app=php/vanilla-collector app:tail:appsignal +rake app=php/laravel app:tail:appsignal +rake app=php/laravel-opentelemetry app:tail:appsignal +rake app=php/symfony app:tail:appsignal +rake app=php/symfony-opentelemetry app:tail:appsignal +rake app=php/vanilla app:tail:appsignal +rake app=php/vanilla-opentelemetry app:tail:appsignal rake app=python/django4-asgi app:tail:appsignal rake app=python/django4-celery app:tail:appsignal rake app=python/django4-wsgi app:tail:appsignal rake app=python/django5-celery app:tail:appsignal -rake app=python/django5-celery-collector app:tail:appsignal -rake app=python/django5-celery-integration-collector app:tail:appsignal +rake app=python/django5-celery-opentelemetry app:tail:appsignal rake app=python/fastapi app:tail:appsignal rake app=python/fastapi-databases app:tail:appsignal rake app=python/flask app:tail:appsignal @@ -683,8 +746,9 @@ rake app=ruby/rails7-sequel app:tail:appsignal rake app=ruby/rails7-sidekiq app:tail:appsignal rake app=ruby/rails7-solid-cache app:tail:appsignal rake app=ruby/rails7-solid-queue app:tail:appsignal +rake app=ruby/rails8-delayed-job app:tail:appsignal rake app=ruby/rails8-sidekiq app:tail:appsignal -rake app=ruby/rails8-sidekiq-collector app:tail:appsignal +rake app=ruby/rails8-sidekiq-opentelemetry app:tail:appsignal rake app=ruby/shoryuken app:tail:appsignal rake app=ruby/sinatra-alpine app:tail:appsignal rake app=ruby/sinatra-gvltools app:tail:appsignal diff --git a/Rakefile b/Rakefile index 61a37691f..68848221c 100644 --- a/Rakefile +++ b/Rakefile @@ -11,6 +11,82 @@ def get_app end.delete_suffix("/") end +# A mode is just a `docker-compose..yml` file in the app directory. The +# `shared` file is reserved (it holds the common services every mode includes) +# and is never a selectable mode. Returns a `{ mode_name => filename }` map. +def mode_files(app) + Dir["#{app}/docker-compose.*.yml"].each_with_object({}) do |path, files| + mode = File.basename(path).sub(/\Adocker-compose\./, "").sub(/\.yml\z/, "") + next if mode == "shared" + files[mode] = File.basename(path) + end +end + +# A plain `docker-compose.yml` provides the `default` mode (so does an explicit +# `docker-compose.default.yml`). +def has_plain_default?(app) + File.exist?("#{app}/docker-compose.yml") +end + +# The modes an app can run in, for listing and validation. +def available_modes(app) + modes = mode_files(app).keys + modes << "default" if has_plain_default?(app) && !modes.include?("default") + modes +end + +# The compose file that defines an app in the given mode. Each per-mode file +# includes the app's `docker-compose.shared.yml`, so loading one is enough. +def compose_file_for(app, mode) + files = mode_files(app) + return files[mode] if files.key?(mode) + return "docker-compose.yml" if mode == "default" && has_plain_default?(app) + raise "App #{app} has no compose file for '#{mode}' mode." +end + +def compose_file_arg(app, mode) + "-f #{compose_file_for(app, mode)}" +end + +# Resolve the mode for an app from the `mode=` parameter: +# - no mode given: the `default` mode if present, else `agent`, else error. +# - `mode=shared`: error (reserved, not selectable). +# - mode given but not available for the app: error, listing what is available. +# - the `default` mode is ambiguous when both `docker-compose.yml` and +# `docker-compose.default.yml` exist: error. +# The chosen mode is printed so it's clear at the start of the output. +def get_mode(app) + files = mode_files(app) + available = available_modes(app) + default_conflict = has_plain_default?(app) && files.key?("default") + requested = ENV["mode"] + requested = nil if requested && requested.strip.empty? + + mode = + if requested.nil? + if available.include?("default") + "default" + elsif available.include?("agent") + "agent" + else + raise "No mode specified for #{app} and it has no default or agent mode. Available modes: #{available.sort.join(", ")}." + end + elsif requested == "shared" + raise "'shared' is not a selectable mode; it holds the services shared by every mode." + elsif !available.include?(requested) + raise "App #{app} does not support '#{requested}' mode. Available modes: #{available.sort.join(", ")}." + else + requested + end + + if mode == "default" && default_conflict + raise "App #{app} has both docker-compose.yml and docker-compose.default.yml, which both define the 'default' mode. Remove one." + end + + puts "==> Mode: #{mode}" + mode +end + def clone_from_git(path, repo, branch: nil) if File.exist?(path) puts "#{path} already present" @@ -136,6 +212,7 @@ namespace :app do end @app = get_app + @mode = get_mode(@app) puts "Starting #{@app}" puts "Copying processmon" @@ -150,7 +227,7 @@ namespace :app do if build_args options = "--build-arg=#{build_args}" end - run_command "cd #{@app} && docker compose build #{options}" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} build #{options}" puts "Cleaning processmon" FileUtils.rm_f "#{@app}/commands/processmon" @@ -161,7 +238,7 @@ namespace :app do build_app puts "Starting compose..." - run_command "cd #{@app} && docker compose up --abort-on-container-exit" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} up --abort-on-container-exit" end desc "Start a test app and run the tests on it" @@ -169,10 +246,10 @@ namespace :app do build_app puts "Building the tests container..." - run_command "cd #{@app} && docker compose build --build-arg TESTING=true tests" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} build --build-arg TESTING=true tests" puts "Starting compose with the tests..." - run_command "cd #{@app} && docker compose --profile tests up --abort-on-container-exit --exit-code-from tests" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} --profile tests up --abort-on-container-exit --exit-code-from tests" end desc "Start a test app with the bot generating activity" @@ -180,15 +257,16 @@ namespace :app do build_app puts "Building the bot container..." - run_command "cd #{@app} && docker compose build bot" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} build bot" puts "Starting compose with the bot..." - run_command "cd #{@app} && docker compose --profile bot up --abort-on-container-exit" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} --profile bot up --abort-on-container-exit" end desc "Attach to app and get bash" task :bash do @app = get_app + @mode = get_mode(@app) puts "Starting bash in #{@app}" workdir = if @app.start_with?("php/") @@ -196,20 +274,21 @@ namespace :app do else "/app" end - run_command "cd #{@app} && docker compose exec --workdir #{workdir} app /bin/bash" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec --workdir #{workdir} app /bin/bash" rescue FailedCommand puts "Failed to open '#{workdir}' working directory. Does it exist?" puts puts "Starting bash in #{@app} in root '/' fallback directory" - run_command "cd #{@app} && docker compose exec --workdir / app /bin/bash" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec --workdir / app /bin/bash" end desc "Attach to app and get a console" task :console do @app = get_app + @mode = get_mode(@app) if File.exist?("#{@app}/commands/console") puts "Starting console in #{@app}" - run_command "cd #{@app} && docker compose exec app /commands/console" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app /commands/console" else puts "Starting a console in #{@app} is not supported" end @@ -218,9 +297,10 @@ namespace :app do desc "Attach to app and run diagnose" task :diagnose do @app = get_app + @mode = get_mode(@app) if File.exist?("#{@app}/commands/diagnose") puts "Runing diagnose in #{@app}" - run_command "cd #{@app} && docker compose exec app /commands/diagnose" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app /commands/diagnose" else puts "Running diagnose in #{@app} is not supported" end @@ -229,9 +309,10 @@ namespace :app do desc "Attach to app and run demo" task :demo do @app = get_app + @mode = get_mode(@app) if File.exist?("#{@app}/commands/demo") puts "Runing demo in #{@app}" - run_command "cd #{@app} && docker compose exec app /commands/demo" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app /commands/demo" else puts "Running demo in #{@app} is not supported" end @@ -240,15 +321,26 @@ namespace :app do desc "Restart the app container, needed when making changes in the integration" task :restart do @app = get_app + @mode = get_mode(@app) puts "Restarting #{@app}" - run_command "cd #{@app} && docker compose restart app" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} restart app" end desc "Bring compose down and remove cached app docker image" task :down do @app = get_app + # Tear everything down with the most complete compose file. The collector + # file includes the shared file plus the collector service, so it knows + # about every container; fall back to the default/agent file otherwise. + files = mode_files(@app) + down_file = + files["collector"] || + (has_plain_default?(@app) ? "docker-compose.yml" : nil) || + files["default"] || + files["agent"] || + files.values.first puts "Bringing compose down..." - run_command "cd #{@app} && docker compose --profile tests --profile bot down --rmi=local" + run_command "cd #{@app} && docker compose -f #{down_file} --profile tests --profile bot down --rmi=local" run_command "docker image rm -f #{@app}:latest" end @@ -256,7 +348,8 @@ namespace :app do desc "Tail appsignal.log" task :appsignal do @app = get_app - run_command "cd #{@app} && docker compose exec app sh -c 'touch /tmp/appsignal.log && tail -f /tmp/appsignal.log'" + @mode = get_mode(@app) + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app sh -c 'touch /tmp/appsignal.log && tail -f /tmp/appsignal.log'" end end @@ -264,7 +357,8 @@ namespace :app do desc "Head appsignal.log (first 20 lines)" task :appsignal do @app = get_app - run_command "cd #{@app} && docker compose exec app sh -c 'touch /tmp/appsignal.log && tail -f -n +1 /tmp/appsignal.log | head -n 20'" + @mode = get_mode(@app) + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app sh -c 'touch /tmp/appsignal.log && tail -f -n +1 /tmp/appsignal.log | head -n 20'" end end @@ -272,8 +366,9 @@ namespace :app do desc "Less +F appsignal.log" task :appsignal do @app = get_app - run_command "cd #{@app} && docker compose exec app touch /tmp/appsignal.log" - run_command "cd #{@app} && docker compose exec app less +F /tmp/appsignal.log" + @mode = get_mode(@app) + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app touch /tmp/appsignal.log" + run_command "cd #{@app} && docker compose #{compose_file_arg(@app, @mode)} exec app less +F /tmp/appsignal.log" end end end @@ -321,9 +416,18 @@ namespace :global do end.sort end.flatten + # The bot service is pulled in via the bot compose include, which may live + # in the app's mode files or in its `docker-compose.shared.yml`. @bot_apps = @apps.select do |app| - compose = "#{app}/docker-compose.yml" - File.exist?(compose) && File.read(compose).include?(" bot:") + %w(docker-compose.yml docker-compose.agent.yml docker-compose.shared.yml).any? do |file| + path = "#{app}/#{file}" + File.exist?(path) && File.read(path).include?("support/bot/docker-compose.yml") + end + end + + # Apps that ship a collector compose file can be run in collector mode. + @collector_apps = @apps.select do |app| + mode_files(app).key?("collector") end File.write "README.md", render_erb("support/templates/README.md.erb") diff --git a/elixir/phoenix-collector/Dockerfile b/elixir/phoenix-opentelemetry/Dockerfile similarity index 100% rename from elixir/phoenix-collector/Dockerfile rename to elixir/phoenix-opentelemetry/Dockerfile diff --git a/elixir/phoenix-collector/app/.formatter.exs b/elixir/phoenix-opentelemetry/app/.formatter.exs similarity index 100% rename from elixir/phoenix-collector/app/.formatter.exs rename to elixir/phoenix-opentelemetry/app/.formatter.exs diff --git a/elixir/phoenix-collector/app/.gitignore b/elixir/phoenix-opentelemetry/app/.gitignore similarity index 100% rename from elixir/phoenix-collector/app/.gitignore rename to elixir/phoenix-opentelemetry/app/.gitignore diff --git a/elixir/phoenix-collector/app/README.md b/elixir/phoenix-opentelemetry/app/README.md similarity index 100% rename from elixir/phoenix-collector/app/README.md rename to elixir/phoenix-opentelemetry/app/README.md diff --git a/elixir/phoenix-collector/app/assets/css/app.css b/elixir/phoenix-opentelemetry/app/assets/css/app.css similarity index 100% rename from elixir/phoenix-collector/app/assets/css/app.css rename to elixir/phoenix-opentelemetry/app/assets/css/app.css diff --git a/elixir/phoenix-collector/app/assets/js/app.js b/elixir/phoenix-opentelemetry/app/assets/js/app.js similarity index 100% rename from elixir/phoenix-collector/app/assets/js/app.js rename to elixir/phoenix-opentelemetry/app/assets/js/app.js diff --git a/elixir/phoenix-collector/app/assets/tailwind.config.js b/elixir/phoenix-opentelemetry/app/assets/tailwind.config.js similarity index 100% rename from elixir/phoenix-collector/app/assets/tailwind.config.js rename to elixir/phoenix-opentelemetry/app/assets/tailwind.config.js diff --git a/elixir/phoenix-collector/app/config/config.exs b/elixir/phoenix-opentelemetry/app/config/config.exs similarity index 100% rename from elixir/phoenix-collector/app/config/config.exs rename to elixir/phoenix-opentelemetry/app/config/config.exs diff --git a/elixir/phoenix-collector/app/config/dev.exs b/elixir/phoenix-opentelemetry/app/config/dev.exs similarity index 100% rename from elixir/phoenix-collector/app/config/dev.exs rename to elixir/phoenix-opentelemetry/app/config/dev.exs diff --git a/elixir/phoenix-collector/app/config/prod.exs b/elixir/phoenix-opentelemetry/app/config/prod.exs similarity index 100% rename from elixir/phoenix-collector/app/config/prod.exs rename to elixir/phoenix-opentelemetry/app/config/prod.exs diff --git a/elixir/phoenix-collector/app/config/runtime.exs b/elixir/phoenix-opentelemetry/app/config/runtime.exs similarity index 100% rename from elixir/phoenix-collector/app/config/runtime.exs rename to elixir/phoenix-opentelemetry/app/config/runtime.exs diff --git a/elixir/phoenix-collector/app/config/test.exs b/elixir/phoenix-opentelemetry/app/config/test.exs similarity index 100% rename from elixir/phoenix-collector/app/config/test.exs rename to elixir/phoenix-opentelemetry/app/config/test.exs diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/application.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/application.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/application.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/application.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/mailer.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/mailer.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/mailer.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/mailer.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/repo.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/repo.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry/repo.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry/repo.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/core_components.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/core_components.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/core_components.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/core_components.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/app.html.heex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/app.html.heex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/app.html.heex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/app.html.heex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/root.html.heex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/root.html.heex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/root.html.heex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/components/layouts/root.html.heex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_html.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_html.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_html.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_html.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_json.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_json.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_json.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/error_json.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_controller.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_controller.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_controller.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_controller.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/index.html.eex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/index.html.eex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/index.html.eex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/index.html.eex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/slow.html.eex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/slow.html.eex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/slow.html.eex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/controllers/page_html/slow.html.eex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/endpoint.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/endpoint.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/endpoint.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/endpoint.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/gettext.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/gettext.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/gettext.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/gettext.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/router.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/router.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/router.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/router.ex diff --git a/elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/telemetry.ex b/elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/telemetry.ex similarity index 100% rename from elixir/phoenix-collector/app/lib/elixir_phoenix_opentelemetry_web/telemetry.ex rename to elixir/phoenix-opentelemetry/app/lib/elixir_phoenix_opentelemetry_web/telemetry.ex diff --git a/elixir/phoenix-collector/app/mix.exs b/elixir/phoenix-opentelemetry/app/mix.exs similarity index 100% rename from elixir/phoenix-collector/app/mix.exs rename to elixir/phoenix-opentelemetry/app/mix.exs diff --git a/elixir/phoenix-collector/app/mix.lock b/elixir/phoenix-opentelemetry/app/mix.lock similarity index 100% rename from elixir/phoenix-collector/app/mix.lock rename to elixir/phoenix-opentelemetry/app/mix.lock diff --git a/elixir/phoenix-collector/app/priv/gettext/en/LC_MESSAGES/errors.po b/elixir/phoenix-opentelemetry/app/priv/gettext/en/LC_MESSAGES/errors.po similarity index 100% rename from elixir/phoenix-collector/app/priv/gettext/en/LC_MESSAGES/errors.po rename to elixir/phoenix-opentelemetry/app/priv/gettext/en/LC_MESSAGES/errors.po diff --git a/elixir/phoenix-collector/app/priv/gettext/errors.pot b/elixir/phoenix-opentelemetry/app/priv/gettext/errors.pot similarity index 100% rename from elixir/phoenix-collector/app/priv/gettext/errors.pot rename to elixir/phoenix-opentelemetry/app/priv/gettext/errors.pot diff --git a/elixir/phoenix-collector/app/priv/repo/migrations/.formatter.exs b/elixir/phoenix-opentelemetry/app/priv/repo/migrations/.formatter.exs similarity index 100% rename from elixir/phoenix-collector/app/priv/repo/migrations/.formatter.exs rename to elixir/phoenix-opentelemetry/app/priv/repo/migrations/.formatter.exs diff --git a/elixir/phoenix-collector/app/priv/repo/seeds.exs b/elixir/phoenix-opentelemetry/app/priv/repo/seeds.exs similarity index 100% rename from elixir/phoenix-collector/app/priv/repo/seeds.exs rename to elixir/phoenix-opentelemetry/app/priv/repo/seeds.exs diff --git a/elixir/phoenix-collector/app/priv/static/favicon.ico b/elixir/phoenix-opentelemetry/app/priv/static/favicon.ico similarity index 100% rename from elixir/phoenix-collector/app/priv/static/favicon.ico rename to elixir/phoenix-opentelemetry/app/priv/static/favicon.ico diff --git a/elixir/phoenix-collector/app/priv/static/images/logo.svg b/elixir/phoenix-opentelemetry/app/priv/static/images/logo.svg similarity index 100% rename from elixir/phoenix-collector/app/priv/static/images/logo.svg rename to elixir/phoenix-opentelemetry/app/priv/static/images/logo.svg diff --git a/elixir/phoenix-collector/app/priv/static/robots.txt b/elixir/phoenix-opentelemetry/app/priv/static/robots.txt similarity index 100% rename from elixir/phoenix-collector/app/priv/static/robots.txt rename to elixir/phoenix-opentelemetry/app/priv/static/robots.txt diff --git a/elixir/phoenix-collector/app/processmon.toml b/elixir/phoenix-opentelemetry/app/processmon.toml similarity index 100% rename from elixir/phoenix-collector/app/processmon.toml rename to elixir/phoenix-opentelemetry/app/processmon.toml diff --git a/elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/error_html_test.exs b/elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/error_html_test.exs similarity index 100% rename from elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/error_html_test.exs rename to elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/error_html_test.exs diff --git a/elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/error_json_test.exs b/elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/error_json_test.exs similarity index 100% rename from elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/error_json_test.exs rename to elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/error_json_test.exs diff --git a/elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/page_controller_test.exs b/elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/page_controller_test.exs similarity index 100% rename from elixir/phoenix-collector/app/test/elixir_phoenix_opentelemetry_web/controllers/page_controller_test.exs rename to elixir/phoenix-opentelemetry/app/test/elixir_phoenix_opentelemetry_web/controllers/page_controller_test.exs diff --git a/elixir/phoenix-collector/app/test/support/conn_case.ex b/elixir/phoenix-opentelemetry/app/test/support/conn_case.ex similarity index 100% rename from elixir/phoenix-collector/app/test/support/conn_case.ex rename to elixir/phoenix-opentelemetry/app/test/support/conn_case.ex diff --git a/elixir/phoenix-collector/app/test/support/data_case.ex b/elixir/phoenix-opentelemetry/app/test/support/data_case.ex similarity index 100% rename from elixir/phoenix-collector/app/test/support/data_case.ex rename to elixir/phoenix-opentelemetry/app/test/support/data_case.ex diff --git a/elixir/phoenix-collector/app/test/test_helper.exs b/elixir/phoenix-opentelemetry/app/test/test_helper.exs similarity index 100% rename from elixir/phoenix-collector/app/test/test_helper.exs rename to elixir/phoenix-opentelemetry/app/test/test_helper.exs diff --git a/elixir/phoenix-collector/commands/console b/elixir/phoenix-opentelemetry/commands/console similarity index 100% rename from elixir/phoenix-collector/commands/console rename to elixir/phoenix-opentelemetry/commands/console diff --git a/elixir/phoenix-collector/commands/diagnose b/elixir/phoenix-opentelemetry/commands/diagnose similarity index 100% rename from elixir/phoenix-collector/commands/diagnose rename to elixir/phoenix-opentelemetry/commands/diagnose diff --git a/elixir/phoenix-collector/commands/run b/elixir/phoenix-opentelemetry/commands/run similarity index 100% rename from elixir/phoenix-collector/commands/run rename to elixir/phoenix-opentelemetry/commands/run diff --git a/elixir/phoenix-collector/docker-compose.yml b/elixir/phoenix-opentelemetry/docker-compose.yml similarity index 84% rename from elixir/phoenix-collector/docker-compose.yml rename to elixir/phoenix-opentelemetry/docker-compose.yml index 2e8baeaa9..8cc3f5c89 100644 --- a/elixir/phoenix-collector/docker-compose.yml +++ b/elixir/phoenix-opentelemetry/docker-compose.yml @@ -19,14 +19,14 @@ services: - ../../appsignal_key.env app: build: . - image: elixir/phoenix-collector + image: elixir/phoenix-opentelemetry depends_on: - postgres ports: - "4001:4001" environment: - PORT=4001 - - APPSIGNAL_APP_NAME=elixir/phoenix-collector + - APPSIGNAL_APP_NAME=elixir/phoenix-opentelemetry env_file: - postgres.env - ../../appsignal.env @@ -41,5 +41,5 @@ services: depends_on: - app environment: - - APP_NAME=elixir/phoenix-collector + - APP_NAME=elixir/phoenix-opentelemetry - APP_URL=http://app:4001 diff --git a/elixir/phoenix-collector/postgres.env b/elixir/phoenix-opentelemetry/postgres.env similarity index 100% rename from elixir/phoenix-collector/postgres.env rename to elixir/phoenix-opentelemetry/postgres.env diff --git a/go/go-gin-mysql-collector/Dockerfile b/go/go-gin-mysql-opentelemetry/Dockerfile similarity index 100% rename from go/go-gin-mysql-collector/Dockerfile rename to go/go-gin-mysql-opentelemetry/Dockerfile diff --git a/go/go-gin-mysql-collector/app/go.mod b/go/go-gin-mysql-opentelemetry/app/go.mod similarity index 100% rename from go/go-gin-mysql-collector/app/go.mod rename to go/go-gin-mysql-opentelemetry/app/go.mod diff --git a/go/go-gin-mysql-collector/app/go.sum b/go/go-gin-mysql-opentelemetry/app/go.sum similarity index 100% rename from go/go-gin-mysql-collector/app/go.sum rename to go/go-gin-mysql-opentelemetry/app/go.sum diff --git a/go/go-gin-mysql-collector/app/index.html b/go/go-gin-mysql-opentelemetry/app/index.html similarity index 100% rename from go/go-gin-mysql-collector/app/index.html rename to go/go-gin-mysql-opentelemetry/app/index.html diff --git a/go/go-gin-mysql-collector/app/main.go b/go/go-gin-mysql-opentelemetry/app/main.go similarity index 100% rename from go/go-gin-mysql-collector/app/main.go rename to go/go-gin-mysql-opentelemetry/app/main.go diff --git a/go/go-gin-mysql-collector/app/processmon.toml b/go/go-gin-mysql-opentelemetry/app/processmon.toml similarity index 100% rename from go/go-gin-mysql-collector/app/processmon.toml rename to go/go-gin-mysql-opentelemetry/app/processmon.toml diff --git a/go/go-gin-mysql-collector/commands/run b/go/go-gin-mysql-opentelemetry/commands/run similarity index 100% rename from go/go-gin-mysql-collector/commands/run rename to go/go-gin-mysql-opentelemetry/commands/run diff --git a/go/go-gin-mysql-collector/docker-compose.yml b/go/go-gin-mysql-opentelemetry/docker-compose.yml similarity index 86% rename from go/go-gin-mysql-collector/docker-compose.yml rename to go/go-gin-mysql-opentelemetry/docker-compose.yml index 4b09d11cf..6f6cc5d0a 100644 --- a/go/go-gin-mysql-collector/docker-compose.yml +++ b/go/go-gin-mysql-opentelemetry/docker-compose.yml @@ -20,14 +20,14 @@ services: - MYSQL_DATABASE=mydb app: build: . - image: go/go-gin-mysql-collector + image: go/go-gin-mysql-opentelemetry depends_on: - appsignal-collector - mysql ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=go/go-gin-mysql-collector + - APPSIGNAL_APP_NAME=go/go-gin-mysql-opentelemetry - APPSIGNAL_APP_ENV=development env_file: - ../../appsignal.env @@ -42,5 +42,5 @@ services: depends_on: - app environment: - - APP_NAME=go/gin-mysql-collector + - APP_NAME=go/gin-mysql-opentelemetry - APP_URL=http://app:4001 diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/Dockerfile b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/Dockerfile similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/Dockerfile rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/Dockerfile diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/app/README.md b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/README.md similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/app/README.md rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/README.md diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/app/go.mod b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/go.mod similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/app/go.mod rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/go.mod diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/app/go.sum b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/go.sum similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/app/go.sum rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/go.sum diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/app/main.go b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/main.go similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/app/main.go rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/main.go diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/app/processmon.toml b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/processmon.toml similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/app/processmon.toml rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/app/processmon.toml diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/commands/run b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/commands/run similarity index 100% rename from go/gorilla-mux-mysql-redis-mongo-collector/commands/run rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/commands/run diff --git a/go/gorilla-mux-mysql-redis-mongo-collector/docker-compose.yml b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/docker-compose.yml similarity index 82% rename from go/gorilla-mux-mysql-redis-mongo-collector/docker-compose.yml rename to go/gorilla-mux-mysql-redis-mongo-opentelemetry/docker-compose.yml index 8a7f2309b..fdf4a0e48 100644 --- a/go/gorilla-mux-mysql-redis-mongo-collector/docker-compose.yml +++ b/go/gorilla-mux-mysql-redis-mongo-opentelemetry/docker-compose.yml @@ -24,14 +24,14 @@ services: - MYSQL_DATABASE=mydb app: build: . - image: go/gorilla-mux-mysql-redis-mongo-collector + image: go/gorilla-mux-mysql-redis-mongo-opentelemetry depends_on: - appsignal-collector - mysql ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=go/gorilla-mux-mysql-redis-mongo-collector + - APPSIGNAL_APP_NAME=go/gorilla-mux-mysql-redis-mongo-opentelemetry - APPSIGNAL_APP_ENV=development env_file: - ../../appsignal.env @@ -46,5 +46,5 @@ services: depends_on: - app environment: - - APP_NAME=go/gorilla-mux-mysql-redis-mongo-collector + - APP_NAME=go/gorilla-mux-mysql-redis-mongo-opentelemetry - APP_URL=http://app:4001 diff --git a/java/spring-agent-collector/Dockerfile b/java/spring-agent-opentelemetry/Dockerfile similarity index 100% rename from java/spring-agent-collector/Dockerfile rename to java/spring-agent-opentelemetry/Dockerfile diff --git a/java/spring-agent-collector/app/.gitignore b/java/spring-agent-opentelemetry/app/.gitignore similarity index 100% rename from java/spring-agent-collector/app/.gitignore rename to java/spring-agent-opentelemetry/app/.gitignore diff --git a/java/spring-agent-collector/app/build.gradle.kts b/java/spring-agent-opentelemetry/app/build.gradle.kts similarity index 100% rename from java/spring-agent-collector/app/build.gradle.kts rename to java/spring-agent-opentelemetry/app/build.gradle.kts diff --git a/java/spring-agent-collector/app/gradle.properties b/java/spring-agent-opentelemetry/app/gradle.properties similarity index 100% rename from java/spring-agent-collector/app/gradle.properties rename to java/spring-agent-opentelemetry/app/gradle.properties diff --git a/java/spring-agent-collector/app/gradlew b/java/spring-agent-opentelemetry/app/gradlew similarity index 100% rename from java/spring-agent-collector/app/gradlew rename to java/spring-agent-opentelemetry/app/gradlew diff --git a/java/spring-agent-collector/app/settings.gradle.kts b/java/spring-agent-opentelemetry/app/settings.gradle.kts similarity index 100% rename from java/spring-agent-collector/app/settings.gradle.kts rename to java/spring-agent-opentelemetry/app/settings.gradle.kts diff --git a/java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/Application.java b/java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Application.java similarity index 100% rename from java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/Application.java rename to java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Application.java diff --git a/java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/Controller.java b/java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Controller.java similarity index 100% rename from java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/Controller.java rename to java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Controller.java diff --git a/java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/ElasticsearchService.java b/java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/ElasticsearchService.java similarity index 100% rename from java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/ElasticsearchService.java rename to java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/ElasticsearchService.java diff --git a/java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java b/java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java similarity index 100% rename from java/spring-agent-collector/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java rename to java/spring-agent-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java diff --git a/java/spring-agent-collector/app/src/main/resources/application.properties b/java/spring-agent-opentelemetry/app/src/main/resources/application.properties similarity index 100% rename from java/spring-agent-collector/app/src/main/resources/application.properties rename to java/spring-agent-opentelemetry/app/src/main/resources/application.properties diff --git a/java/spring-agent-collector/commands/run b/java/spring-agent-opentelemetry/commands/run similarity index 100% rename from java/spring-agent-collector/commands/run rename to java/spring-agent-opentelemetry/commands/run diff --git a/java/spring-agent-collector/docker-compose.yml b/java/spring-agent-opentelemetry/docker-compose.yml similarity index 91% rename from java/spring-agent-collector/docker-compose.yml rename to java/spring-agent-opentelemetry/docker-compose.yml index 125d37d07..76f27e331 100644 --- a/java/spring-agent-collector/docker-compose.yml +++ b/java/spring-agent-opentelemetry/docker-compose.yml @@ -8,7 +8,7 @@ services: volumes: - ./app:/app environment: - APPSIGNAL_APP_NAME: java/spring-agent-collector + APPSIGNAL_APP_NAME: java/spring-agent-opentelemetry APPSIGNAL_APP_ENV: development SERVER_PORT: "4001" env_file: @@ -45,7 +45,7 @@ services: depends_on: - app environment: - - APP_NAME=java/spring-agent-collector + - APP_NAME=java/spring-agent-opentelemetry - APP_URL=http://app:4001 volumes: elasticsearch_data: diff --git a/java/spring-native-collector/Dockerfile b/java/spring-native-opentelemetry/Dockerfile similarity index 100% rename from java/spring-native-collector/Dockerfile rename to java/spring-native-opentelemetry/Dockerfile diff --git a/java/spring-native-collector/app/.gitignore b/java/spring-native-opentelemetry/app/.gitignore similarity index 100% rename from java/spring-native-collector/app/.gitignore rename to java/spring-native-opentelemetry/app/.gitignore diff --git a/java/spring-native-collector/app/build.gradle.kts b/java/spring-native-opentelemetry/app/build.gradle.kts similarity index 100% rename from java/spring-native-collector/app/build.gradle.kts rename to java/spring-native-opentelemetry/app/build.gradle.kts diff --git a/java/spring-native-collector/app/gradle.properties b/java/spring-native-opentelemetry/app/gradle.properties similarity index 100% rename from java/spring-native-collector/app/gradle.properties rename to java/spring-native-opentelemetry/app/gradle.properties diff --git a/java/spring-native-collector/app/gradlew b/java/spring-native-opentelemetry/app/gradlew similarity index 100% rename from java/spring-native-collector/app/gradlew rename to java/spring-native-opentelemetry/app/gradlew diff --git a/java/spring-native-collector/app/settings.gradle.kts b/java/spring-native-opentelemetry/app/settings.gradle.kts similarity index 100% rename from java/spring-native-collector/app/settings.gradle.kts rename to java/spring-native-opentelemetry/app/settings.gradle.kts diff --git a/java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/Application.java b/java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Application.java similarity index 100% rename from java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/Application.java rename to java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Application.java diff --git a/java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/Controller.java b/java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Controller.java similarity index 100% rename from java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/Controller.java rename to java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/Controller.java diff --git a/java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/OpenTelemetryConfig.java b/java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/OpenTelemetryConfig.java similarity index 100% rename from java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/OpenTelemetryConfig.java rename to java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/OpenTelemetryConfig.java diff --git a/java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java b/java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java similarity index 100% rename from java/spring-native-collector/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java rename to java/spring-native-opentelemetry/app/src/main/java/io/opentelemetry/example/graal/SqlExecutor.java diff --git a/java/spring-native-collector/app/src/main/resources/application.properties b/java/spring-native-opentelemetry/app/src/main/resources/application.properties similarity index 100% rename from java/spring-native-collector/app/src/main/resources/application.properties rename to java/spring-native-opentelemetry/app/src/main/resources/application.properties diff --git a/java/spring-native-collector/commands/.gitkeep b/java/spring-native-opentelemetry/commands/.gitkeep similarity index 100% rename from java/spring-native-collector/commands/.gitkeep rename to java/spring-native-opentelemetry/commands/.gitkeep diff --git a/java/spring-native-collector/docker-compose.yml b/java/spring-native-opentelemetry/docker-compose.yml similarity index 87% rename from java/spring-native-collector/docker-compose.yml rename to java/spring-native-opentelemetry/docker-compose.yml index 443c6f149..c98d93c23 100644 --- a/java/spring-native-collector/docker-compose.yml +++ b/java/spring-native-opentelemetry/docker-compose.yml @@ -9,7 +9,7 @@ services: - ./app:/app environment: OTEL_LOGS_EXPORTER: "none" - APPSIGNAL_APP_NAME: java/spring-native-collector + APPSIGNAL_APP_NAME: java/spring-native-opentelemetry APPSIGNAL_APP_ENV: development SERVER_PORT: "4001" env_file: @@ -34,5 +34,5 @@ services: depends_on: - app environment: - - APP_NAME=java/spring-native-collector + - APP_NAME=java/spring-native-opentelemetry - APP_URL=http://app:4001 diff --git a/javascript/react-vite-collector/README.md b/javascript/react-vite-opentelemetry/README.md similarity index 100% rename from javascript/react-vite-collector/README.md rename to javascript/react-vite-opentelemetry/README.md diff --git a/javascript/react-vite-collector/app/.example.env b/javascript/react-vite-opentelemetry/app/.example.env similarity index 100% rename from javascript/react-vite-collector/app/.example.env rename to javascript/react-vite-opentelemetry/app/.example.env diff --git a/javascript/react-vite-collector/app/.gitignore b/javascript/react-vite-opentelemetry/app/.gitignore similarity index 100% rename from javascript/react-vite-collector/app/.gitignore rename to javascript/react-vite-opentelemetry/app/.gitignore diff --git a/javascript/react-vite-collector/app/README.md b/javascript/react-vite-opentelemetry/app/README.md similarity index 100% rename from javascript/react-vite-collector/app/README.md rename to javascript/react-vite-opentelemetry/app/README.md diff --git a/javascript/react-vite-collector/app/eslint.config.js b/javascript/react-vite-opentelemetry/app/eslint.config.js similarity index 100% rename from javascript/react-vite-collector/app/eslint.config.js rename to javascript/react-vite-opentelemetry/app/eslint.config.js diff --git a/javascript/react-vite-collector/app/index.html b/javascript/react-vite-opentelemetry/app/index.html similarity index 100% rename from javascript/react-vite-collector/app/index.html rename to javascript/react-vite-opentelemetry/app/index.html diff --git a/javascript/react-vite-collector/app/package-lock.json b/javascript/react-vite-opentelemetry/app/package-lock.json similarity index 100% rename from javascript/react-vite-collector/app/package-lock.json rename to javascript/react-vite-opentelemetry/app/package-lock.json diff --git a/javascript/react-vite-collector/app/package.json b/javascript/react-vite-opentelemetry/app/package.json similarity index 100% rename from javascript/react-vite-collector/app/package.json rename to javascript/react-vite-opentelemetry/app/package.json diff --git a/javascript/react-vite-collector/app/public/vite.svg b/javascript/react-vite-opentelemetry/app/public/vite.svg similarity index 100% rename from javascript/react-vite-collector/app/public/vite.svg rename to javascript/react-vite-opentelemetry/app/public/vite.svg diff --git a/javascript/react-vite-collector/app/src/App.css b/javascript/react-vite-opentelemetry/app/src/App.css similarity index 100% rename from javascript/react-vite-collector/app/src/App.css rename to javascript/react-vite-opentelemetry/app/src/App.css diff --git a/javascript/react-vite-collector/app/src/App.tsx b/javascript/react-vite-opentelemetry/app/src/App.tsx similarity index 100% rename from javascript/react-vite-collector/app/src/App.tsx rename to javascript/react-vite-opentelemetry/app/src/App.tsx diff --git a/javascript/react-vite-collector/app/src/Counter.css b/javascript/react-vite-opentelemetry/app/src/Counter.css similarity index 100% rename from javascript/react-vite-collector/app/src/Counter.css rename to javascript/react-vite-opentelemetry/app/src/Counter.css diff --git a/javascript/react-vite-collector/app/src/Counter.tsx b/javascript/react-vite-opentelemetry/app/src/Counter.tsx similarity index 100% rename from javascript/react-vite-collector/app/src/Counter.tsx rename to javascript/react-vite-opentelemetry/app/src/Counter.tsx diff --git a/javascript/react-vite-collector/app/src/ErrorBoundary.tsx b/javascript/react-vite-opentelemetry/app/src/ErrorBoundary.tsx similarity index 100% rename from javascript/react-vite-collector/app/src/ErrorBoundary.tsx rename to javascript/react-vite-opentelemetry/app/src/ErrorBoundary.tsx diff --git a/javascript/react-vite-collector/app/src/ErrorComponent.tsx b/javascript/react-vite-opentelemetry/app/src/ErrorComponent.tsx similarity index 100% rename from javascript/react-vite-collector/app/src/ErrorComponent.tsx rename to javascript/react-vite-opentelemetry/app/src/ErrorComponent.tsx diff --git a/javascript/react-vite-collector/app/src/assets/react.svg b/javascript/react-vite-opentelemetry/app/src/assets/react.svg similarity index 100% rename from javascript/react-vite-collector/app/src/assets/react.svg rename to javascript/react-vite-opentelemetry/app/src/assets/react.svg diff --git a/javascript/react-vite-collector/app/src/index.css b/javascript/react-vite-opentelemetry/app/src/index.css similarity index 100% rename from javascript/react-vite-collector/app/src/index.css rename to javascript/react-vite-opentelemetry/app/src/index.css diff --git a/javascript/react-vite-collector/app/src/main.tsx b/javascript/react-vite-opentelemetry/app/src/main.tsx similarity index 100% rename from javascript/react-vite-collector/app/src/main.tsx rename to javascript/react-vite-opentelemetry/app/src/main.tsx diff --git a/javascript/react-vite-collector/app/src/telemetry.ts b/javascript/react-vite-opentelemetry/app/src/telemetry.ts similarity index 100% rename from javascript/react-vite-collector/app/src/telemetry.ts rename to javascript/react-vite-opentelemetry/app/src/telemetry.ts diff --git a/javascript/react-vite-collector/app/src/vite-env.d.ts b/javascript/react-vite-opentelemetry/app/src/vite-env.d.ts similarity index 100% rename from javascript/react-vite-collector/app/src/vite-env.d.ts rename to javascript/react-vite-opentelemetry/app/src/vite-env.d.ts diff --git a/javascript/react-vite-collector/app/tsconfig.app.json b/javascript/react-vite-opentelemetry/app/tsconfig.app.json similarity index 100% rename from javascript/react-vite-collector/app/tsconfig.app.json rename to javascript/react-vite-opentelemetry/app/tsconfig.app.json diff --git a/javascript/react-vite-collector/app/tsconfig.json b/javascript/react-vite-opentelemetry/app/tsconfig.json similarity index 100% rename from javascript/react-vite-collector/app/tsconfig.json rename to javascript/react-vite-opentelemetry/app/tsconfig.json diff --git a/javascript/react-vite-collector/app/tsconfig.node.json b/javascript/react-vite-opentelemetry/app/tsconfig.node.json similarity index 100% rename from javascript/react-vite-collector/app/tsconfig.node.json rename to javascript/react-vite-opentelemetry/app/tsconfig.node.json diff --git a/javascript/react-vite-collector/app/vite.config.ts b/javascript/react-vite-opentelemetry/app/vite.config.ts similarity index 100% rename from javascript/react-vite-collector/app/vite.config.ts rename to javascript/react-vite-opentelemetry/app/vite.config.ts diff --git a/javascript/react-vite-collector/commands/run b/javascript/react-vite-opentelemetry/commands/run similarity index 100% rename from javascript/react-vite-collector/commands/run rename to javascript/react-vite-opentelemetry/commands/run diff --git a/javascript/react-vite-collector/cors/Dockerfile b/javascript/react-vite-opentelemetry/cors/Dockerfile similarity index 100% rename from javascript/react-vite-collector/cors/Dockerfile rename to javascript/react-vite-opentelemetry/cors/Dockerfile diff --git a/javascript/react-vite-collector/cors/README.md b/javascript/react-vite-opentelemetry/cors/README.md similarity index 100% rename from javascript/react-vite-collector/cors/README.md rename to javascript/react-vite-opentelemetry/cors/README.md diff --git a/javascript/react-vite-collector/cors/nginx.conf b/javascript/react-vite-opentelemetry/cors/nginx.conf similarity index 100% rename from javascript/react-vite-collector/cors/nginx.conf rename to javascript/react-vite-opentelemetry/cors/nginx.conf diff --git a/javascript/react-vite-collector/docker-compose.yml b/javascript/react-vite-opentelemetry/docker-compose.yml similarity index 81% rename from javascript/react-vite-collector/docker-compose.yml rename to javascript/react-vite-opentelemetry/docker-compose.yml index f07646a9f..e869790ee 100644 --- a/javascript/react-vite-collector/docker-compose.yml +++ b/javascript/react-vite-opentelemetry/docker-compose.yml @@ -12,11 +12,11 @@ services: build: context: . dockerfile: ../Dockerfile - image: javascript/react-vite-collector + image: javascript/react-vite-opentelemetry ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=javascript/react-vite-collector + - APPSIGNAL_APP_NAME=javascript/react-vite-opentelemetry - APPSIGNAL_APP_ENV=development env_file: - ../../appsignal.env @@ -35,5 +35,5 @@ services: depends_on: - app environment: - - APP_NAME=javascript/react-vite-collector + - APP_NAME=javascript/react-vite-opentelemetry - APP_URL=http://app:4001 diff --git a/nodejs/express-postgres-collector/Dockerfile b/nodejs/express-postgres-opentelemetry/Dockerfile similarity index 100% rename from nodejs/express-postgres-collector/Dockerfile rename to nodejs/express-postgres-opentelemetry/Dockerfile diff --git a/nodejs/express-postgres-collector/app/.gitignore b/nodejs/express-postgres-opentelemetry/app/.gitignore similarity index 100% rename from nodejs/express-postgres-collector/app/.gitignore rename to nodejs/express-postgres-opentelemetry/app/.gitignore diff --git a/nodejs/express-postgres-collector/app/package-lock.json b/nodejs/express-postgres-opentelemetry/app/package-lock.json similarity index 100% rename from nodejs/express-postgres-collector/app/package-lock.json rename to nodejs/express-postgres-opentelemetry/app/package-lock.json diff --git a/nodejs/express-postgres-collector/app/package.json b/nodejs/express-postgres-opentelemetry/app/package.json similarity index 100% rename from nodejs/express-postgres-collector/app/package.json rename to nodejs/express-postgres-opentelemetry/app/package.json diff --git a/nodejs/express-postgres-collector/app/processmon.toml b/nodejs/express-postgres-opentelemetry/app/processmon.toml similarity index 100% rename from nodejs/express-postgres-collector/app/processmon.toml rename to nodejs/express-postgres-opentelemetry/app/processmon.toml diff --git a/nodejs/express-postgres-collector/app/src/app.ts b/nodejs/express-postgres-opentelemetry/app/src/app.ts similarity index 100% rename from nodejs/express-postgres-collector/app/src/app.ts rename to nodejs/express-postgres-opentelemetry/app/src/app.ts diff --git a/nodejs/express-postgres-collector/app/src/opentelemetry.cjs b/nodejs/express-postgres-opentelemetry/app/src/opentelemetry.cjs similarity index 100% rename from nodejs/express-postgres-collector/app/src/opentelemetry.cjs rename to nodejs/express-postgres-opentelemetry/app/src/opentelemetry.cjs diff --git a/nodejs/express-postgres-collector/app/tsconfig.json b/nodejs/express-postgres-opentelemetry/app/tsconfig.json similarity index 100% rename from nodejs/express-postgres-collector/app/tsconfig.json rename to nodejs/express-postgres-opentelemetry/app/tsconfig.json diff --git a/nodejs/express-postgres-collector/commands/run b/nodejs/express-postgres-opentelemetry/commands/run similarity index 100% rename from nodejs/express-postgres-collector/commands/run rename to nodejs/express-postgres-opentelemetry/commands/run diff --git a/nodejs/express-postgres-collector/docker-compose.yml b/nodejs/express-postgres-opentelemetry/docker-compose.yml similarity index 82% rename from nodejs/express-postgres-collector/docker-compose.yml rename to nodejs/express-postgres-opentelemetry/docker-compose.yml index 0f6be4ed4..9ae50e58a 100644 --- a/nodejs/express-postgres-collector/docker-compose.yml +++ b/nodejs/express-postgres-opentelemetry/docker-compose.yml @@ -17,14 +17,14 @@ services: - ../../appsignal_key.env app: build: . - image: nodejs/express-postgres-collector + image: nodejs/express-postgres-opentelemetry depends_on: - postgres ports: - "4001:4001" environment: - PORT=4001 - - APPSIGNAL_APP_NAME=nodejs/express-postgres-collector + - APPSIGNAL_APP_NAME=nodejs/express-postgres-opentelemetry env_file: - postgres.env - ../../appsignal.env @@ -41,4 +41,4 @@ services: - app environment: - APP_URL=http://app:4001 - - APP_NAME=nodejs/express-postgres-collector + - APP_NAME=nodejs/express-postgres-opentelemetry diff --git a/nodejs/express-postgres-collector/postgres.env b/nodejs/express-postgres-opentelemetry/postgres.env similarity index 100% rename from nodejs/express-postgres-collector/postgres.env rename to nodejs/express-postgres-opentelemetry/postgres.env diff --git a/nodejs/nextjs-15-app-collector/Dockerfile b/nodejs/nextjs-15-app-opentelemetry/Dockerfile similarity index 100% rename from nodejs/nextjs-15-app-collector/Dockerfile rename to nodejs/nextjs-15-app-opentelemetry/Dockerfile diff --git a/nodejs/nextjs-15-app-collector/app/.gitignore b/nodejs/nextjs-15-app-opentelemetry/app/.gitignore similarity index 100% rename from nodejs/nextjs-15-app-collector/app/.gitignore rename to nodejs/nextjs-15-app-opentelemetry/app/.gitignore diff --git a/nodejs/nextjs-15-app-collector/app/README.md b/nodejs/nextjs-15-app-opentelemetry/app/README.md similarity index 100% rename from nodejs/nextjs-15-app-collector/app/README.md rename to nodejs/nextjs-15-app-opentelemetry/app/README.md diff --git a/nodejs/nextjs-15-app-collector/app/app/error/page.tsx b/nodejs/nextjs-15-app-opentelemetry/app/app/error/page.tsx similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/error/page.tsx rename to nodejs/nextjs-15-app-opentelemetry/app/app/error/page.tsx diff --git a/nodejs/nextjs-15-app-collector/app/app/favicon.ico b/nodejs/nextjs-15-app-opentelemetry/app/app/favicon.ico similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/favicon.ico rename to nodejs/nextjs-15-app-opentelemetry/app/app/favicon.ico diff --git a/nodejs/nextjs-15-app-collector/app/app/globals.css b/nodejs/nextjs-15-app-opentelemetry/app/app/globals.css similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/globals.css rename to nodejs/nextjs-15-app-opentelemetry/app/app/globals.css diff --git a/nodejs/nextjs-15-app-collector/app/app/layout.tsx b/nodejs/nextjs-15-app-opentelemetry/app/app/layout.tsx similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/layout.tsx rename to nodejs/nextjs-15-app-opentelemetry/app/app/layout.tsx diff --git a/nodejs/nextjs-15-app-collector/app/app/page.tsx b/nodejs/nextjs-15-app-opentelemetry/app/app/page.tsx similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/page.tsx rename to nodejs/nextjs-15-app-opentelemetry/app/app/page.tsx diff --git a/nodejs/nextjs-15-app-collector/app/app/slow/page.tsx b/nodejs/nextjs-15-app-opentelemetry/app/app/slow/page.tsx similarity index 100% rename from nodejs/nextjs-15-app-collector/app/app/slow/page.tsx rename to nodejs/nextjs-15-app-opentelemetry/app/app/slow/page.tsx diff --git a/nodejs/nextjs-15-app-collector/app/instrumentation.ts b/nodejs/nextjs-15-app-opentelemetry/app/instrumentation.ts similarity index 100% rename from nodejs/nextjs-15-app-collector/app/instrumentation.ts rename to nodejs/nextjs-15-app-opentelemetry/app/instrumentation.ts diff --git a/nodejs/nextjs-15-app-collector/app/next.config.ts b/nodejs/nextjs-15-app-opentelemetry/app/next.config.ts similarity index 100% rename from nodejs/nextjs-15-app-collector/app/next.config.ts rename to nodejs/nextjs-15-app-opentelemetry/app/next.config.ts diff --git a/nodejs/nextjs-15-app-collector/app/package-lock.json b/nodejs/nextjs-15-app-opentelemetry/app/package-lock.json similarity index 100% rename from nodejs/nextjs-15-app-collector/app/package-lock.json rename to nodejs/nextjs-15-app-opentelemetry/app/package-lock.json diff --git a/nodejs/nextjs-15-app-collector/app/package.json b/nodejs/nextjs-15-app-opentelemetry/app/package.json similarity index 100% rename from nodejs/nextjs-15-app-collector/app/package.json rename to nodejs/nextjs-15-app-opentelemetry/app/package.json diff --git a/nodejs/nextjs-15-app-collector/app/postcss.config.mjs b/nodejs/nextjs-15-app-opentelemetry/app/postcss.config.mjs similarity index 100% rename from nodejs/nextjs-15-app-collector/app/postcss.config.mjs rename to nodejs/nextjs-15-app-opentelemetry/app/postcss.config.mjs diff --git a/nodejs/nextjs-15-app-collector/app/public/file.svg b/nodejs/nextjs-15-app-opentelemetry/app/public/file.svg similarity index 100% rename from nodejs/nextjs-15-app-collector/app/public/file.svg rename to nodejs/nextjs-15-app-opentelemetry/app/public/file.svg diff --git a/nodejs/nextjs-15-app-collector/app/public/globe.svg b/nodejs/nextjs-15-app-opentelemetry/app/public/globe.svg similarity index 100% rename from nodejs/nextjs-15-app-collector/app/public/globe.svg rename to nodejs/nextjs-15-app-opentelemetry/app/public/globe.svg diff --git a/nodejs/nextjs-15-app-collector/app/public/next.svg b/nodejs/nextjs-15-app-opentelemetry/app/public/next.svg similarity index 100% rename from nodejs/nextjs-15-app-collector/app/public/next.svg rename to nodejs/nextjs-15-app-opentelemetry/app/public/next.svg diff --git a/nodejs/nextjs-15-app-collector/app/public/vercel.svg b/nodejs/nextjs-15-app-opentelemetry/app/public/vercel.svg similarity index 100% rename from nodejs/nextjs-15-app-collector/app/public/vercel.svg rename to nodejs/nextjs-15-app-opentelemetry/app/public/vercel.svg diff --git a/nodejs/nextjs-15-app-collector/app/public/window.svg b/nodejs/nextjs-15-app-opentelemetry/app/public/window.svg similarity index 100% rename from nodejs/nextjs-15-app-collector/app/public/window.svg rename to nodejs/nextjs-15-app-opentelemetry/app/public/window.svg diff --git a/nodejs/nextjs-15-app-collector/app/tsconfig.json b/nodejs/nextjs-15-app-opentelemetry/app/tsconfig.json similarity index 100% rename from nodejs/nextjs-15-app-collector/app/tsconfig.json rename to nodejs/nextjs-15-app-opentelemetry/app/tsconfig.json diff --git a/nodejs/nextjs-15-app-collector/commands/run b/nodejs/nextjs-15-app-opentelemetry/commands/run similarity index 100% rename from nodejs/nextjs-15-app-collector/commands/run rename to nodejs/nextjs-15-app-opentelemetry/commands/run diff --git a/nodejs/nextjs-15-app-collector/docker-compose.yml b/nodejs/nextjs-15-app-opentelemetry/docker-compose.yml similarity index 91% rename from nodejs/nextjs-15-app-collector/docker-compose.yml rename to nodejs/nextjs-15-app-opentelemetry/docker-compose.yml index 7c4886d8d..113ec2a26 100644 --- a/nodejs/nextjs-15-app-collector/docker-compose.yml +++ b/nodejs/nextjs-15-app-opentelemetry/docker-compose.yml @@ -15,7 +15,7 @@ services: - "4001:4001" environment: - PORT=4001 - - APPSIGNAL_APP_NAME=nodejs/nextjs-15-app-collector + - APPSIGNAL_APP_NAME=nodejs/nextjs-15-app-opentelemetry env_file: - ../../appsignal.env - ../../appsignal_key.env diff --git a/php/laravel-collector/app/.editorconfig b/php/laravel-opentelemetry/app/.editorconfig similarity index 100% rename from php/laravel-collector/app/.editorconfig rename to php/laravel-opentelemetry/app/.editorconfig diff --git a/php/laravel-collector/app/.env.example b/php/laravel-opentelemetry/app/.env.example similarity index 100% rename from php/laravel-collector/app/.env.example rename to php/laravel-opentelemetry/app/.env.example diff --git a/php/laravel-collector/app/.gitattributes b/php/laravel-opentelemetry/app/.gitattributes similarity index 100% rename from php/laravel-collector/app/.gitattributes rename to php/laravel-opentelemetry/app/.gitattributes diff --git a/php/laravel-collector/app/.gitignore b/php/laravel-opentelemetry/app/.gitignore similarity index 100% rename from php/laravel-collector/app/.gitignore rename to php/laravel-opentelemetry/app/.gitignore diff --git a/php/laravel-collector/app/README.md b/php/laravel-opentelemetry/app/README.md similarity index 100% rename from php/laravel-collector/app/README.md rename to php/laravel-opentelemetry/app/README.md diff --git a/php/laravel-collector/app/app/Http/Controllers/BacktraceController.php b/php/laravel-opentelemetry/app/app/Http/Controllers/BacktraceController.php similarity index 100% rename from php/laravel-collector/app/app/Http/Controllers/BacktraceController.php rename to php/laravel-opentelemetry/app/app/Http/Controllers/BacktraceController.php diff --git a/php/laravel-collector/app/app/Http/Controllers/Controller.php b/php/laravel-opentelemetry/app/app/Http/Controllers/Controller.php similarity index 100% rename from php/laravel-collector/app/app/Http/Controllers/Controller.php rename to php/laravel-opentelemetry/app/app/Http/Controllers/Controller.php diff --git a/php/laravel-collector/app/app/Jobs/ExampleJob.php b/php/laravel-opentelemetry/app/app/Jobs/ExampleJob.php similarity index 100% rename from php/laravel-collector/app/app/Jobs/ExampleJob.php rename to php/laravel-opentelemetry/app/app/Jobs/ExampleJob.php diff --git a/php/laravel-collector/app/app/Models/User.php b/php/laravel-opentelemetry/app/app/Models/User.php similarity index 100% rename from php/laravel-collector/app/app/Models/User.php rename to php/laravel-opentelemetry/app/app/Models/User.php diff --git a/php/laravel-collector/app/app/Providers/AppServiceProvider.php b/php/laravel-opentelemetry/app/app/Providers/AppServiceProvider.php similarity index 100% rename from php/laravel-collector/app/app/Providers/AppServiceProvider.php rename to php/laravel-opentelemetry/app/app/Providers/AppServiceProvider.php diff --git a/php/laravel-collector/app/artisan b/php/laravel-opentelemetry/app/artisan similarity index 100% rename from php/laravel-collector/app/artisan rename to php/laravel-opentelemetry/app/artisan diff --git a/php/laravel-collector/app/bootstrap/app.php b/php/laravel-opentelemetry/app/bootstrap/app.php similarity index 100% rename from php/laravel-collector/app/bootstrap/app.php rename to php/laravel-opentelemetry/app/bootstrap/app.php diff --git a/php/laravel-collector/app/bootstrap/cache/.gitignore b/php/laravel-opentelemetry/app/bootstrap/cache/.gitignore similarity index 100% rename from php/laravel-collector/app/bootstrap/cache/.gitignore rename to php/laravel-opentelemetry/app/bootstrap/cache/.gitignore diff --git a/php/laravel-collector/app/bootstrap/instrumentation.php b/php/laravel-opentelemetry/app/bootstrap/instrumentation.php similarity index 100% rename from php/laravel-collector/app/bootstrap/instrumentation.php rename to php/laravel-opentelemetry/app/bootstrap/instrumentation.php diff --git a/php/laravel-collector/app/bootstrap/providers.php b/php/laravel-opentelemetry/app/bootstrap/providers.php similarity index 100% rename from php/laravel-collector/app/bootstrap/providers.php rename to php/laravel-opentelemetry/app/bootstrap/providers.php diff --git a/php/laravel-collector/app/composer.json b/php/laravel-opentelemetry/app/composer.json similarity index 100% rename from php/laravel-collector/app/composer.json rename to php/laravel-opentelemetry/app/composer.json diff --git a/php/laravel-collector/app/composer.lock b/php/laravel-opentelemetry/app/composer.lock similarity index 100% rename from php/laravel-collector/app/composer.lock rename to php/laravel-opentelemetry/app/composer.lock diff --git a/php/laravel-collector/app/config/app.php b/php/laravel-opentelemetry/app/config/app.php similarity index 100% rename from php/laravel-collector/app/config/app.php rename to php/laravel-opentelemetry/app/config/app.php diff --git a/php/laravel-collector/app/config/auth.php b/php/laravel-opentelemetry/app/config/auth.php similarity index 100% rename from php/laravel-collector/app/config/auth.php rename to php/laravel-opentelemetry/app/config/auth.php diff --git a/php/laravel-collector/app/config/cache.php b/php/laravel-opentelemetry/app/config/cache.php similarity index 100% rename from php/laravel-collector/app/config/cache.php rename to php/laravel-opentelemetry/app/config/cache.php diff --git a/php/laravel-collector/app/config/database.php b/php/laravel-opentelemetry/app/config/database.php similarity index 100% rename from php/laravel-collector/app/config/database.php rename to php/laravel-opentelemetry/app/config/database.php diff --git a/php/laravel-collector/app/config/filesystems.php b/php/laravel-opentelemetry/app/config/filesystems.php similarity index 100% rename from php/laravel-collector/app/config/filesystems.php rename to php/laravel-opentelemetry/app/config/filesystems.php diff --git a/php/laravel-collector/app/config/logging.php b/php/laravel-opentelemetry/app/config/logging.php similarity index 100% rename from php/laravel-collector/app/config/logging.php rename to php/laravel-opentelemetry/app/config/logging.php diff --git a/php/laravel-collector/app/config/mail.php b/php/laravel-opentelemetry/app/config/mail.php similarity index 100% rename from php/laravel-collector/app/config/mail.php rename to php/laravel-opentelemetry/app/config/mail.php diff --git a/php/laravel-collector/app/config/queue.php b/php/laravel-opentelemetry/app/config/queue.php similarity index 100% rename from php/laravel-collector/app/config/queue.php rename to php/laravel-opentelemetry/app/config/queue.php diff --git a/php/laravel-collector/app/config/services.php b/php/laravel-opentelemetry/app/config/services.php similarity index 100% rename from php/laravel-collector/app/config/services.php rename to php/laravel-opentelemetry/app/config/services.php diff --git a/php/laravel-collector/app/config/session.php b/php/laravel-opentelemetry/app/config/session.php similarity index 100% rename from php/laravel-collector/app/config/session.php rename to php/laravel-opentelemetry/app/config/session.php diff --git a/php/laravel-collector/app/database/.gitignore b/php/laravel-opentelemetry/app/database/.gitignore similarity index 100% rename from php/laravel-collector/app/database/.gitignore rename to php/laravel-opentelemetry/app/database/.gitignore diff --git a/php/laravel-collector/app/database/factories/UserFactory.php b/php/laravel-opentelemetry/app/database/factories/UserFactory.php similarity index 100% rename from php/laravel-collector/app/database/factories/UserFactory.php rename to php/laravel-opentelemetry/app/database/factories/UserFactory.php diff --git a/php/laravel-collector/app/database/migrations/0001_01_01_000000_create_users_table.php b/php/laravel-opentelemetry/app/database/migrations/0001_01_01_000000_create_users_table.php similarity index 100% rename from php/laravel-collector/app/database/migrations/0001_01_01_000000_create_users_table.php rename to php/laravel-opentelemetry/app/database/migrations/0001_01_01_000000_create_users_table.php diff --git a/php/laravel-collector/app/database/migrations/0001_01_01_000001_create_cache_table.php b/php/laravel-opentelemetry/app/database/migrations/0001_01_01_000001_create_cache_table.php similarity index 100% rename from php/laravel-collector/app/database/migrations/0001_01_01_000001_create_cache_table.php rename to php/laravel-opentelemetry/app/database/migrations/0001_01_01_000001_create_cache_table.php diff --git a/php/laravel-collector/app/database/migrations/0001_01_01_000002_create_jobs_table.php b/php/laravel-opentelemetry/app/database/migrations/0001_01_01_000002_create_jobs_table.php similarity index 100% rename from php/laravel-collector/app/database/migrations/0001_01_01_000002_create_jobs_table.php rename to php/laravel-opentelemetry/app/database/migrations/0001_01_01_000002_create_jobs_table.php diff --git a/php/laravel-collector/app/database/seeders/DatabaseSeeder.php b/php/laravel-opentelemetry/app/database/seeders/DatabaseSeeder.php similarity index 100% rename from php/laravel-collector/app/database/seeders/DatabaseSeeder.php rename to php/laravel-opentelemetry/app/database/seeders/DatabaseSeeder.php diff --git a/php/laravel-collector/app/package.json b/php/laravel-opentelemetry/app/package.json similarity index 100% rename from php/laravel-collector/app/package.json rename to php/laravel-opentelemetry/app/package.json diff --git a/php/laravel-collector/app/phpunit.xml b/php/laravel-opentelemetry/app/phpunit.xml similarity index 100% rename from php/laravel-collector/app/phpunit.xml rename to php/laravel-opentelemetry/app/phpunit.xml diff --git a/php/laravel-collector/app/public/.htaccess b/php/laravel-opentelemetry/app/public/.htaccess similarity index 100% rename from php/laravel-collector/app/public/.htaccess rename to php/laravel-opentelemetry/app/public/.htaccess diff --git a/php/laravel-collector/app/public/favicon.ico b/php/laravel-opentelemetry/app/public/favicon.ico similarity index 100% rename from php/laravel-collector/app/public/favicon.ico rename to php/laravel-opentelemetry/app/public/favicon.ico diff --git a/php/laravel-collector/app/public/index.php b/php/laravel-opentelemetry/app/public/index.php similarity index 100% rename from php/laravel-collector/app/public/index.php rename to php/laravel-opentelemetry/app/public/index.php diff --git a/php/laravel-collector/app/public/robots.txt b/php/laravel-opentelemetry/app/public/robots.txt similarity index 100% rename from php/laravel-collector/app/public/robots.txt rename to php/laravel-opentelemetry/app/public/robots.txt diff --git a/php/laravel-collector/app/resources/css/app.css b/php/laravel-opentelemetry/app/resources/css/app.css similarity index 100% rename from php/laravel-collector/app/resources/css/app.css rename to php/laravel-opentelemetry/app/resources/css/app.css diff --git a/php/laravel-collector/app/resources/js/app.js b/php/laravel-opentelemetry/app/resources/js/app.js similarity index 100% rename from php/laravel-collector/app/resources/js/app.js rename to php/laravel-opentelemetry/app/resources/js/app.js diff --git a/php/laravel-collector/app/resources/js/bootstrap.js b/php/laravel-opentelemetry/app/resources/js/bootstrap.js similarity index 100% rename from php/laravel-collector/app/resources/js/bootstrap.js rename to php/laravel-opentelemetry/app/resources/js/bootstrap.js diff --git a/php/laravel-collector/app/resources/views/backtrace.blade.php b/php/laravel-opentelemetry/app/resources/views/backtrace.blade.php similarity index 100% rename from php/laravel-collector/app/resources/views/backtrace.blade.php rename to php/laravel-opentelemetry/app/resources/views/backtrace.blade.php diff --git a/php/laravel-collector/app/resources/views/slow.blade.php b/php/laravel-opentelemetry/app/resources/views/slow.blade.php similarity index 100% rename from php/laravel-collector/app/resources/views/slow.blade.php rename to php/laravel-opentelemetry/app/resources/views/slow.blade.php diff --git a/php/laravel-collector/app/resources/views/welcome.blade.php b/php/laravel-opentelemetry/app/resources/views/welcome.blade.php similarity index 100% rename from php/laravel-collector/app/resources/views/welcome.blade.php rename to php/laravel-opentelemetry/app/resources/views/welcome.blade.php diff --git a/php/laravel-collector/app/routes/console.php b/php/laravel-opentelemetry/app/routes/console.php similarity index 100% rename from php/laravel-collector/app/routes/console.php rename to php/laravel-opentelemetry/app/routes/console.php diff --git a/php/laravel-collector/app/routes/web.php b/php/laravel-opentelemetry/app/routes/web.php similarity index 100% rename from php/laravel-collector/app/routes/web.php rename to php/laravel-opentelemetry/app/routes/web.php diff --git a/php/laravel-collector/app/storage/app/.gitignore b/php/laravel-opentelemetry/app/storage/app/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/app/.gitignore rename to php/laravel-opentelemetry/app/storage/app/.gitignore diff --git a/php/laravel-collector/app/storage/app/private/.gitignore b/php/laravel-opentelemetry/app/storage/app/private/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/app/private/.gitignore rename to php/laravel-opentelemetry/app/storage/app/private/.gitignore diff --git a/php/laravel-collector/app/storage/app/public/.gitignore b/php/laravel-opentelemetry/app/storage/app/public/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/app/public/.gitignore rename to php/laravel-opentelemetry/app/storage/app/public/.gitignore diff --git a/php/laravel-collector/app/storage/framework/.gitignore b/php/laravel-opentelemetry/app/storage/framework/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/.gitignore diff --git a/php/laravel-collector/app/storage/framework/cache/.gitignore b/php/laravel-opentelemetry/app/storage/framework/cache/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/cache/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/cache/.gitignore diff --git a/php/laravel-collector/app/storage/framework/cache/data/.gitignore b/php/laravel-opentelemetry/app/storage/framework/cache/data/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/cache/data/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/cache/data/.gitignore diff --git a/php/laravel-collector/app/storage/framework/sessions/.gitignore b/php/laravel-opentelemetry/app/storage/framework/sessions/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/sessions/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/sessions/.gitignore diff --git a/php/laravel-collector/app/storage/framework/testing/.gitignore b/php/laravel-opentelemetry/app/storage/framework/testing/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/testing/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/testing/.gitignore diff --git a/php/laravel-collector/app/storage/framework/views/.gitignore b/php/laravel-opentelemetry/app/storage/framework/views/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/framework/views/.gitignore rename to php/laravel-opentelemetry/app/storage/framework/views/.gitignore diff --git a/php/laravel-collector/app/storage/logs/.gitignore b/php/laravel-opentelemetry/app/storage/logs/.gitignore similarity index 100% rename from php/laravel-collector/app/storage/logs/.gitignore rename to php/laravel-opentelemetry/app/storage/logs/.gitignore diff --git a/php/laravel-collector/app/tests/Feature/ExampleTest.php b/php/laravel-opentelemetry/app/tests/Feature/ExampleTest.php similarity index 100% rename from php/laravel-collector/app/tests/Feature/ExampleTest.php rename to php/laravel-opentelemetry/app/tests/Feature/ExampleTest.php diff --git a/php/laravel-collector/app/tests/TestCase.php b/php/laravel-opentelemetry/app/tests/TestCase.php similarity index 100% rename from php/laravel-collector/app/tests/TestCase.php rename to php/laravel-opentelemetry/app/tests/TestCase.php diff --git a/php/laravel-collector/app/tests/Unit/ExampleTest.php b/php/laravel-opentelemetry/app/tests/Unit/ExampleTest.php similarity index 100% rename from php/laravel-collector/app/tests/Unit/ExampleTest.php rename to php/laravel-opentelemetry/app/tests/Unit/ExampleTest.php diff --git a/php/laravel-collector/app/vite.config.js b/php/laravel-opentelemetry/app/vite.config.js similarity index 100% rename from php/laravel-collector/app/vite.config.js rename to php/laravel-opentelemetry/app/vite.config.js diff --git a/php/laravel-collector/commands/run b/php/laravel-opentelemetry/commands/run similarity index 100% rename from php/laravel-collector/commands/run rename to php/laravel-opentelemetry/commands/run diff --git a/php/laravel-collector/docker-compose.yml b/php/laravel-opentelemetry/docker-compose.yml similarity index 95% rename from php/laravel-collector/docker-compose.yml rename to php/laravel-opentelemetry/docker-compose.yml index 180915f80..9cc957d89 100644 --- a/php/laravel-collector/docker-compose.yml +++ b/php/laravel-opentelemetry/docker-compose.yml @@ -24,7 +24,7 @@ services: # application are set in the `.env` file, either hardcoded, # or by setting then in `/commands/run` from the ones # defined here and in `env_file`: - APPSIGNAL_APP_NAME: php/laravel-collector + APPSIGNAL_APP_NAME: php/laravel-opentelemetry APPSIGNAL_APP_ENV: development env_file: - ../../appsignal.env @@ -68,5 +68,5 @@ services: depends_on: - app environment: - - APP_NAME=php/laravel-collector + - APP_NAME=php/laravel-opentelemetry - APP_URL=http://app:4001 diff --git a/php/laravel-collector/docker/Dockerfile b/php/laravel-opentelemetry/docker/Dockerfile similarity index 100% rename from php/laravel-collector/docker/Dockerfile rename to php/laravel-opentelemetry/docker/Dockerfile diff --git a/php/laravel-collector/docker/README b/php/laravel-opentelemetry/docker/README similarity index 100% rename from php/laravel-collector/docker/README rename to php/laravel-opentelemetry/docker/README diff --git a/php/laravel-collector/docker/create-testing-database.sh b/php/laravel-opentelemetry/docker/create-testing-database.sh similarity index 100% rename from php/laravel-collector/docker/create-testing-database.sh rename to php/laravel-opentelemetry/docker/create-testing-database.sh diff --git a/php/laravel-collector/docker/php.ini b/php/laravel-opentelemetry/docker/php.ini similarity index 100% rename from php/laravel-collector/docker/php.ini rename to php/laravel-opentelemetry/docker/php.ini diff --git a/php/laravel-collector/docker/start-container b/php/laravel-opentelemetry/docker/start-container similarity index 100% rename from php/laravel-collector/docker/start-container rename to php/laravel-opentelemetry/docker/start-container diff --git a/php/laravel-collector/docker/supervisord.conf b/php/laravel-opentelemetry/docker/supervisord.conf similarity index 100% rename from php/laravel-collector/docker/supervisord.conf rename to php/laravel-opentelemetry/docker/supervisord.conf diff --git a/php/symfony-collector/Dockerfile b/php/symfony-opentelemetry/Dockerfile similarity index 100% rename from php/symfony-collector/Dockerfile rename to php/symfony-opentelemetry/Dockerfile diff --git a/php/symfony-collector/app/.editorconfig b/php/symfony-opentelemetry/app/.editorconfig similarity index 100% rename from php/symfony-collector/app/.editorconfig rename to php/symfony-opentelemetry/app/.editorconfig diff --git a/php/symfony-collector/app/.env.dev b/php/symfony-opentelemetry/app/.env.dev similarity index 100% rename from php/symfony-collector/app/.env.dev rename to php/symfony-opentelemetry/app/.env.dev diff --git a/php/symfony-collector/app/.env.example b/php/symfony-opentelemetry/app/.env.example similarity index 100% rename from php/symfony-collector/app/.env.example rename to php/symfony-opentelemetry/app/.env.example diff --git a/php/symfony-collector/app/.gitignore b/php/symfony-opentelemetry/app/.gitignore similarity index 100% rename from php/symfony-collector/app/.gitignore rename to php/symfony-opentelemetry/app/.gitignore diff --git a/php/symfony-collector/app/appsignal.php b/php/symfony-opentelemetry/app/appsignal.php similarity index 100% rename from php/symfony-collector/app/appsignal.php rename to php/symfony-opentelemetry/app/appsignal.php diff --git a/php/symfony-collector/app/bin/console b/php/symfony-opentelemetry/app/bin/console similarity index 100% rename from php/symfony-collector/app/bin/console rename to php/symfony-opentelemetry/app/bin/console diff --git a/php/symfony-collector/app/composer.json b/php/symfony-opentelemetry/app/composer.json similarity index 100% rename from php/symfony-collector/app/composer.json rename to php/symfony-opentelemetry/app/composer.json diff --git a/php/symfony-collector/app/composer.lock b/php/symfony-opentelemetry/app/composer.lock similarity index 100% rename from php/symfony-collector/app/composer.lock rename to php/symfony-opentelemetry/app/composer.lock diff --git a/php/symfony-collector/app/config/bundles.php b/php/symfony-opentelemetry/app/config/bundles.php similarity index 100% rename from php/symfony-collector/app/config/bundles.php rename to php/symfony-opentelemetry/app/config/bundles.php diff --git a/php/symfony-collector/app/config/packages/cache.yaml b/php/symfony-opentelemetry/app/config/packages/cache.yaml similarity index 100% rename from php/symfony-collector/app/config/packages/cache.yaml rename to php/symfony-opentelemetry/app/config/packages/cache.yaml diff --git a/php/symfony-collector/app/config/packages/framework.yaml b/php/symfony-opentelemetry/app/config/packages/framework.yaml similarity index 100% rename from php/symfony-collector/app/config/packages/framework.yaml rename to php/symfony-opentelemetry/app/config/packages/framework.yaml diff --git a/php/symfony-collector/app/config/packages/http_discovery.yaml b/php/symfony-opentelemetry/app/config/packages/http_discovery.yaml similarity index 100% rename from php/symfony-collector/app/config/packages/http_discovery.yaml rename to php/symfony-opentelemetry/app/config/packages/http_discovery.yaml diff --git a/php/symfony-collector/app/config/packages/routing.yaml b/php/symfony-opentelemetry/app/config/packages/routing.yaml similarity index 100% rename from php/symfony-collector/app/config/packages/routing.yaml rename to php/symfony-opentelemetry/app/config/packages/routing.yaml diff --git a/php/symfony-collector/app/config/packages/twig.yaml b/php/symfony-opentelemetry/app/config/packages/twig.yaml similarity index 100% rename from php/symfony-collector/app/config/packages/twig.yaml rename to php/symfony-opentelemetry/app/config/packages/twig.yaml diff --git a/php/symfony-collector/app/config/preload.php b/php/symfony-opentelemetry/app/config/preload.php similarity index 100% rename from php/symfony-collector/app/config/preload.php rename to php/symfony-opentelemetry/app/config/preload.php diff --git a/php/symfony-collector/app/config/routes.yaml b/php/symfony-opentelemetry/app/config/routes.yaml similarity index 100% rename from php/symfony-collector/app/config/routes.yaml rename to php/symfony-opentelemetry/app/config/routes.yaml diff --git a/php/symfony-collector/app/config/routes/framework.yaml b/php/symfony-opentelemetry/app/config/routes/framework.yaml similarity index 100% rename from php/symfony-collector/app/config/routes/framework.yaml rename to php/symfony-opentelemetry/app/config/routes/framework.yaml diff --git a/php/symfony-collector/app/config/services.yaml b/php/symfony-opentelemetry/app/config/services.yaml similarity index 100% rename from php/symfony-collector/app/config/services.yaml rename to php/symfony-opentelemetry/app/config/services.yaml diff --git a/php/symfony-collector/app/public/index.php b/php/symfony-opentelemetry/app/public/index.php similarity index 100% rename from php/symfony-collector/app/public/index.php rename to php/symfony-opentelemetry/app/public/index.php diff --git a/php/symfony-collector/app/src/Controller/.gitignore b/php/symfony-opentelemetry/app/src/Controller/.gitignore similarity index 100% rename from php/symfony-collector/app/src/Controller/.gitignore rename to php/symfony-opentelemetry/app/src/Controller/.gitignore diff --git a/php/symfony-collector/app/src/Controller/HomeController.php b/php/symfony-opentelemetry/app/src/Controller/HomeController.php similarity index 100% rename from php/symfony-collector/app/src/Controller/HomeController.php rename to php/symfony-opentelemetry/app/src/Controller/HomeController.php diff --git a/php/symfony-collector/app/src/Kernel.php b/php/symfony-opentelemetry/app/src/Kernel.php similarity index 100% rename from php/symfony-collector/app/src/Kernel.php rename to php/symfony-opentelemetry/app/src/Kernel.php diff --git a/php/symfony-collector/app/symfony.lock b/php/symfony-opentelemetry/app/symfony.lock similarity index 100% rename from php/symfony-collector/app/symfony.lock rename to php/symfony-opentelemetry/app/symfony.lock diff --git a/php/symfony-collector/app/templates/backtrace.html.twig b/php/symfony-opentelemetry/app/templates/backtrace.html.twig similarity index 100% rename from php/symfony-collector/app/templates/backtrace.html.twig rename to php/symfony-opentelemetry/app/templates/backtrace.html.twig diff --git a/php/symfony-collector/app/templates/base.html.twig b/php/symfony-opentelemetry/app/templates/base.html.twig similarity index 100% rename from php/symfony-collector/app/templates/base.html.twig rename to php/symfony-opentelemetry/app/templates/base.html.twig diff --git a/php/symfony-collector/app/templates/home/index.html.twig b/php/symfony-opentelemetry/app/templates/home/index.html.twig similarity index 100% rename from php/symfony-collector/app/templates/home/index.html.twig rename to php/symfony-opentelemetry/app/templates/home/index.html.twig diff --git a/php/symfony-collector/app/templates/home/slow.html.twig b/php/symfony-opentelemetry/app/templates/home/slow.html.twig similarity index 100% rename from php/symfony-collector/app/templates/home/slow.html.twig rename to php/symfony-opentelemetry/app/templates/home/slow.html.twig diff --git a/php/symfony-collector/commands/run b/php/symfony-opentelemetry/commands/run similarity index 100% rename from php/symfony-collector/commands/run rename to php/symfony-opentelemetry/commands/run diff --git a/php/symfony-collector/docker-compose.yml b/php/symfony-opentelemetry/docker-compose.yml similarity index 88% rename from php/symfony-collector/docker-compose.yml rename to php/symfony-opentelemetry/docker-compose.yml index affce129d..287c1b839 100644 --- a/php/symfony-collector/docker-compose.yml +++ b/php/symfony-opentelemetry/docker-compose.yml @@ -10,7 +10,7 @@ services: ports: - '4001:4001' environment: - APPSIGNAL_APP_NAME: php/symfony-collector + APPSIGNAL_APP_NAME: php/symfony-opentelemetry APPSIGNAL_APP_ENV: development env_file: - ../../appsignal.env @@ -33,5 +33,5 @@ services: depends_on: - app environment: - - APP_NAME=php/symfony-collector + - APP_NAME=php/symfony-opentelemetry - APP_URL=http://app:4001 diff --git a/php/symfony-collector/docker/apache-site.conf b/php/symfony-opentelemetry/docker/apache-site.conf similarity index 100% rename from php/symfony-collector/docker/apache-site.conf rename to php/symfony-opentelemetry/docker/apache-site.conf diff --git a/php/symfony-collector/docker/php.ini b/php/symfony-opentelemetry/docker/php.ini similarity index 100% rename from php/symfony-collector/docker/php.ini rename to php/symfony-opentelemetry/docker/php.ini diff --git a/php/vanilla-collector/Dockerfile b/php/vanilla-opentelemetry/Dockerfile similarity index 100% rename from php/vanilla-collector/Dockerfile rename to php/vanilla-opentelemetry/Dockerfile diff --git a/php/vanilla-collector/app/bootstrap/instrumentation.php b/php/vanilla-opentelemetry/app/bootstrap/instrumentation.php similarity index 100% rename from php/vanilla-collector/app/bootstrap/instrumentation.php rename to php/vanilla-opentelemetry/app/bootstrap/instrumentation.php diff --git a/php/vanilla-collector/app/composer.json b/php/vanilla-opentelemetry/app/composer.json similarity index 100% rename from php/vanilla-collector/app/composer.json rename to php/vanilla-opentelemetry/app/composer.json diff --git a/php/vanilla-collector/app/composer.lock b/php/vanilla-opentelemetry/app/composer.lock similarity index 100% rename from php/vanilla-collector/app/composer.lock rename to php/vanilla-opentelemetry/app/composer.lock diff --git a/php/vanilla-collector/app/public/.htaccess b/php/vanilla-opentelemetry/app/public/.htaccess similarity index 100% rename from php/vanilla-collector/app/public/.htaccess rename to php/vanilla-opentelemetry/app/public/.htaccess diff --git a/php/vanilla-collector/app/public/index.php b/php/vanilla-opentelemetry/app/public/index.php similarity index 100% rename from php/vanilla-collector/app/public/index.php rename to php/vanilla-opentelemetry/app/public/index.php diff --git a/php/vanilla-collector/app/src/ErrorHandler.php b/php/vanilla-opentelemetry/app/src/ErrorHandler.php similarity index 100% rename from php/vanilla-collector/app/src/ErrorHandler.php rename to php/vanilla-opentelemetry/app/src/ErrorHandler.php diff --git a/php/vanilla-collector/commands/run b/php/vanilla-opentelemetry/commands/run similarity index 100% rename from php/vanilla-collector/commands/run rename to php/vanilla-opentelemetry/commands/run diff --git a/php/vanilla-collector/docker-compose.yml b/php/vanilla-opentelemetry/docker-compose.yml similarity index 89% rename from php/vanilla-collector/docker-compose.yml rename to php/vanilla-opentelemetry/docker-compose.yml index c9a9ba0a2..c494beebc 100644 --- a/php/vanilla-collector/docker-compose.yml +++ b/php/vanilla-opentelemetry/docker-compose.yml @@ -11,7 +11,7 @@ services: ports: - "4001:4001" environment: - APPSIGNAL_APP_NAME: php/vanilla-collector + APPSIGNAL_APP_NAME: php/vanilla-opentelemetry APPSIGNAL_APP_ENV: development env_file: - ../../appsignal.env @@ -34,5 +34,5 @@ services: depends_on: - app environment: - - APP_NAME=php/vanilla-collector + - APP_NAME=php/vanilla-opentelemetry - APP_URL=http://app:4001 diff --git a/python/django4-asgi/docker-compose.agent.yml b/python/django4-asgi/docker-compose.agent.yml new file mode 100644 index 000000000..83d8ee52c --- /dev/null +++ b/python/django4-asgi/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-asgi diff --git a/python/django4-asgi/docker-compose.collector.yml b/python/django4-asgi/docker-compose.collector.yml new file mode 100644 index 000000000..db91024e3 --- /dev/null +++ b/python/django4-asgi/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-asgi-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/django4-asgi/docker-compose.yml b/python/django4-asgi/docker-compose.shared.yml similarity index 94% rename from python/django4-asgi/docker-compose.yml rename to python/django4-asgi/docker-compose.shared.yml index 4513ede99..ce3bbb9ac 100644 --- a/python/django4-asgi/docker-compose.yml +++ b/python/django4-asgi/docker-compose.shared.yml @@ -28,7 +28,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/django4-asgi volumes: - ./app:/app - ../integration:/integration diff --git a/python/django4-celery/docker-compose.agent.yml b/python/django4-celery/docker-compose.agent.yml new file mode 100644 index 000000000..9ec6f3634 --- /dev/null +++ b/python/django4-celery/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-celery diff --git a/python/django4-celery/docker-compose.collector.yml b/python/django4-celery/docker-compose.collector.yml new file mode 100644 index 000000000..e30d90ef7 --- /dev/null +++ b/python/django4-celery/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-celery-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/django4-celery/docker-compose.yml b/python/django4-celery/docker-compose.shared.yml similarity index 94% rename from python/django4-celery/docker-compose.yml rename to python/django4-celery/docker-compose.shared.yml index 75c96ceb3..271d75c38 100644 --- a/python/django4-celery/docker-compose.yml +++ b/python/django4-celery/docker-compose.shared.yml @@ -28,7 +28,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/django4-celery volumes: - ./app:/app - ../integration:/integration diff --git a/python/django4-wsgi/docker-compose.agent.yml b/python/django4-wsgi/docker-compose.agent.yml new file mode 100644 index 000000000..483db63ba --- /dev/null +++ b/python/django4-wsgi/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-wsgi diff --git a/python/django4-wsgi/docker-compose.collector.yml b/python/django4-wsgi/docker-compose.collector.yml new file mode 100644 index 000000000..d3c6d9504 --- /dev/null +++ b/python/django4-wsgi/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django4-wsgi-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/django4-wsgi/docker-compose.yml b/python/django4-wsgi/docker-compose.shared.yml similarity index 94% rename from python/django4-wsgi/docker-compose.yml rename to python/django4-wsgi/docker-compose.shared.yml index b04c9a1ea..abae6b943 100644 --- a/python/django4-wsgi/docker-compose.yml +++ b/python/django4-wsgi/docker-compose.shared.yml @@ -28,7 +28,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/django4-wsgi volumes: - ./app:/app - ../integration:/integration diff --git a/python/django5-celery-integration-collector/Dockerfile b/python/django5-celery-integration-collector/Dockerfile deleted file mode 100644 index 8e98ae5a1..000000000 --- a/python/django5-celery-integration-collector/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM python:3.11-bullseye - -# Update this if the docker image changes -ENV REFRESHED_AT=2023-02-08 - -RUN apt-get update && \ - apt-get install -y postgresql-client git less - -# Copy commands into the container -RUN mkdir /commands -COPY ./commands/* /commands/ -RUN chmod +x /commands/* - -# Run the app -CMD /commands/run diff --git a/python/django5-celery-integration-collector/app/.gitignore b/python/django5-celery-integration-collector/app/.gitignore deleted file mode 100644 index deccabaf8..000000000 --- a/python/django5-celery-integration-collector/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -__pycache__ -tmp/ diff --git a/python/django5-celery-integration-collector/app/__appsignal__.py b/python/django5-celery-integration-collector/app/__appsignal__.py deleted file mode 100644 index 59b98c67e..000000000 --- a/python/django5-celery-integration-collector/app/__appsignal__.py +++ /dev/null @@ -1,6 +0,0 @@ -from appsignal import Appsignal - -appsignal = Appsignal( - active=True, - environment="development" -) diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/__init__.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/asgi.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/asgi.py deleted file mode 100644 index e05d6f5ea..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/asgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -ASGI config for appsignal_python_opentelemetry project. - -It exposes the ASGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/ -""" - -import os - -from django.core.asgi import get_asgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'appsignal_python_opentelemetry.settings') - -application = get_asgi_application() diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/settings.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/settings.py deleted file mode 100644 index 0c7fbec62..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/settings.py +++ /dev/null @@ -1,137 +0,0 @@ -""" -Django settings for appsignal_python_opentelemetry project. - -Generated by 'django-admin startproject' using Django 4.1.2. - -For more information on this file, see -https://docs.djangoproject.com/en/4.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/4.1/ref/settings/ -""" - -from pathlib import Path -import os -import socket - -# Build paths inside the project like this: BASE_DIR / 'subdir'. -BASE_DIR = Path(__file__).resolve().parent.parent - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-5j92mad%e)qasjerwqq5$ssu)r7%3)ud0r81*kq4j)l=9yj9x1' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = ['app', 'localhost'] - - -# Application definition - -INSTALLED_APPS = [ - 'blog.apps.BlogConfig', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', -] - -MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - # 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -] - -ROOT_URLCONF = 'appsignal_python_opentelemetry.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, - { - 'BACKEND': 'django.template.backends.jinja2.Jinja2', - 'DIRS': [ - os.path.join(BASE_DIR, 'appsignal_python_opentelemetry/templates'), - os.path.join(BASE_DIR, 'blog/templates') - ] - }, -] - -WSGI_APPLICATION = 'appsignal_python_opentelemetry.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/4.1/ref/settings/#databases - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': os.environ['POSTGRES_DB'], - 'USER': os.environ['POSTGRES_USER'], - 'PASSWORD': os.environ['POSTGRES_PASSWORD'], - 'HOST': os.environ['POSTGRES_HOST'], - 'PORT': '5432', - } -} - - -# Password validation -# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/4.1/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/4.1/howto/static-files/ - -STATIC_URL = 'static/' - -# Default primary key field type -# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field - -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/templates/home.html b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/templates/home.html deleted file mode 100644 index a63ccb9a2..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/templates/home.html +++ /dev/null @@ -1,18 +0,0 @@ -

Python OpenTelemetry app

- - diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/urls.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/urls.py deleted file mode 100644 index fec994f3c..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/urls.py +++ /dev/null @@ -1,38 +0,0 @@ -"""appsignal_python_opentelemetry URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/4.1/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" -from django.contrib import admin -from django.urls import include, path - -from . import views - -urlpatterns = [ - path('admin/', admin.site.urls), - path('', views.home, name='home'), - path('custom/', views.custom, name='custom'), - path('test/', views.home, name='test'), - path('slow/', views.slow, name='slow'), - path('slow_queue/', views.slow_queue, name='slow_queue'), - path('slow_queue_inline/', views.slow_queue_inline, name='slow_queue_inline'), - path('error/', views.error, name='error'), - path('custom_error/', views.custom_error, name='custom_error'), - path('error_queue/', views.error_queue, name='error_queue'), - path('error_queue_inline/', views.error_queue_inline, name='error_queue_inline'), - path('make_request/', views.make_request, name='make_request'), - path('custom_instrumentation/', views.custom_instrumentation, name='custom_instrumentation'), - path('metrics/', views.metrics, name='metrics'), - path('logs/', views.logs, name='logs'), - path('blog/', include("blog.urls")) -] diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/views.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/views.py deleted file mode 100644 index ea48cb543..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/views.py +++ /dev/null @@ -1,221 +0,0 @@ -import requests -import json -import time -from random import randrange -import datetime - -from opentelemetry import trace -from opentelemetry.metrics import get_meter - -from django.http import HttpResponse -from django.shortcuts import render - -from tasks import error_task, performance_task, performance_task2 - - -def home(request): - tracer = trace.get_tracer(__name__) - with tracer.start_as_current_span("something.custom") as span: - span.set_attribute("appsignal.request.query_parameters", json.dumps({ - "password": "super secret", - "email": "test@example.com", - "cvv": 123, - "test_param": "test value", - "nested": { - "password": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.request.payload", json.dumps({ - "password": "super secret", - "email": "test@example.com", - "cvv": 123, - "test_param": "test value", - "nested": { - "password": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.request.session_data", json.dumps({ - "token": "super secret", - "user_id": 123, - "test_param": "test value", - "nested": { - "token": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.function.parameters", json.dumps({ - "hash": "super secret", - "salt": "shoppai", - "test_param": "test value", - "nested": { - "hash": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("http.request.header.content-type", - ["application/json"]) - span.set_attribute("http.request.header.custom-header", ["abc", "def"]) - span.set_attribute("db.statement", "SELECT * FROM foo") - return render(request, 'home.html', {}) - - -def custom(request): - tracer = trace.get_tracer(__name__) - with tracer.start_as_current_span("something.custom"): - # Do something - tracer - return HttpResponse("Custom route") - - -def slow(request): - time.sleep(3) - return HttpResponse("I was slow!") - - -def slow_queue(request): - tracer = trace.get_tracer(__name__) - with tracer.start_as_current_span("queue.task"): - performance_task.delay("argument 1", "argument 2") - - with tracer.start_as_current_span("queue.task"): - performance_task2.delay("argument 3", "argument 4") - return HttpResponse("I queued an performance_task!") - - -def slow_queue_inline(request): - performance_task.apply(["argument 1", "argument 2"]) - return HttpResponse("I ran an performance_task inline!") - - -def error(request): - tracer = trace.get_tracer(__name__) - with tracer.start_as_current_span("something.custom") as span: - span.set_attribute("appsignal.request.query_parameters", json.dumps({ - "password": "super secret", - "email": "test@example.com", - "cvv": 123, - "test_param": "test value", - "nested": { - "password": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.request.payload", json.dumps({ - "password": "super secret", - "email": "test@example.com", - "cvv": 123, - "test_param": "test value", - "nested": { - "password": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.request.session_data", json.dumps({ - "token": "super secret", - "user_id": 123, - "test_param": "test value", - "nested": { - "token": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("appsignal.function.parameters", json.dumps({ - "hash": "super secret", - "salt": "shoppai", - "test_param": "test value", - "nested": { - "hash": "super secret nested", - "test_param": "test value", - } - })) - span.set_attribute("http.request.header.content-type", - ["application/json"]) - span.set_attribute("http.request.header.custom-header", ["abc", "def"]) - span.set_attribute("db.statement", "SELECT * FROM foo") - raise Exception("I am an error!") - - -def custom_error(request): - raise MyException("I am a custom error!") - - -def error_queue(request): - error_task.delay() - return HttpResponse("I queued an error_task!") - - -def error_queue_inline(request): - error_task.apply() - return HttpResponse("I ran an error_task inline!") - - -def make_request(request): - requests.get('https://www.appsignal.com/') - return HttpResponse("I did a request to appsignal.com!") - - -def custom_instrumentation(request): - tracer = trace.get_tracer(__name__) - with tracer.start_as_current_span("sleep.time"): - time.sleep(0.1) - with tracer.start_as_current_span("sleep.time"): - time.sleep(0.2) - return HttpResponse("I reported some custom instrumentation!") - - -def metrics(request): - meter = get_meter("my_meter") - - # Counter - my_counter = meter.create_counter( - "my_counter", - unit="1", - description="My counter" - ) - count_value = randrange(1, 3) - my_counter.add(count_value, {"my_tag": "tag_value"}) - - # Gauge - my_gauge = meter.create_gauge( - "my_gauge", - unit="1", - description="My gauge" - ) - gauge_value = randrange(1, 25) - my_gauge.set(gauge_value, {"my_tag": "tag_value"}) - - # Histogram - histogram = meter.create_histogram( - "my_histogram", - unit="1", - description="My histogram" - ) - histogram_value = randrange(10, 25) - histogram.record(histogram_value, {"my_tag": "tag_value"}) - - time = datetime.datetime.now() - return HttpResponse( - f"{time}: Reported metrics: Counter: {count_value}, " + - f"Gauge: {gauge_value}, Histogram: {histogram_value}\n" - ) - -def logs(request): - import logging - logging.basicConfig(level=logging.INFO) - logger = logging.getLogger("my app") - - logger.info("This is an info log") - logger.warning("This is a warning log") - logger.error("This is an error log") - try: - raise Exception("This is a test exception") - except Exception as e: - logger.exception("An exception occurred: %s", e) - - return HttpResponse("I emitted some logs to AppSignal!") - - -class MyException(Exception): - pass diff --git a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/wsgi.py b/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/wsgi.py deleted file mode 100644 index 2f4098e92..000000000 --- a/python/django5-celery-integration-collector/app/appsignal_python_opentelemetry/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for appsignal_python_opentelemetry project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'appsignal_python_opentelemetry.settings') - -application = get_wsgi_application() diff --git a/python/django5-celery-integration-collector/app/blog/__init__.py b/python/django5-celery-integration-collector/app/blog/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python/django5-celery-integration-collector/app/blog/admin.py b/python/django5-celery-integration-collector/app/blog/admin.py deleted file mode 100644 index 8c38f3f3d..000000000 --- a/python/django5-celery-integration-collector/app/blog/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/python/django5-celery-integration-collector/app/blog/apps.py b/python/django5-celery-integration-collector/app/blog/apps.py deleted file mode 100644 index c35af733c..000000000 --- a/python/django5-celery-integration-collector/app/blog/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - -class BlogConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' - name = 'blog' diff --git a/python/django5-celery-integration-collector/app/blog/migrations/0001_initial.py b/python/django5-celery-integration-collector/app/blog/migrations/0001_initial.py deleted file mode 100644 index 53cc8449f..000000000 --- a/python/django5-celery-integration-collector/app/blog/migrations/0001_initial.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 4.1.3 on 2023-01-06 10:58 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Post', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=30)), - ('body', models.CharField(max_length=10000)), - ], - ), - ] diff --git a/python/django5-celery-integration-collector/app/blog/migrations/__init__.py b/python/django5-celery-integration-collector/app/blog/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/python/django5-celery-integration-collector/app/blog/models.py b/python/django5-celery-integration-collector/app/blog/models.py deleted file mode 100644 index e11b71fbd..000000000 --- a/python/django5-celery-integration-collector/app/blog/models.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.db import models - -class Post(models.Model): - title = models.CharField(max_length=30) - body = models.CharField(max_length=10000) diff --git a/python/django5-celery-integration-collector/app/blog/templates/index.html b/python/django5-celery-integration-collector/app/blog/templates/index.html deleted file mode 100644 index c0b7ba8bc..000000000 --- a/python/django5-celery-integration-collector/app/blog/templates/index.html +++ /dev/null @@ -1,9 +0,0 @@ -

My blog

- -/blog/create: Create and show a new blog post - -

Value from Redis: {{ redis_value }}

- -{% for post in posts %} -

{{ post.title }}

-{% endfor %} diff --git a/python/django5-celery-integration-collector/app/blog/templates/show.html b/python/django5-celery-integration-collector/app/blog/templates/show.html deleted file mode 100644 index 403b18a5e..000000000 --- a/python/django5-celery-integration-collector/app/blog/templates/show.html +++ /dev/null @@ -1,3 +0,0 @@ -

{{ post.title }}

- -

{{ post.body }}

diff --git a/python/django5-celery-integration-collector/app/blog/tests.py b/python/django5-celery-integration-collector/app/blog/tests.py deleted file mode 100644 index 7ce503c2d..000000000 --- a/python/django5-celery-integration-collector/app/blog/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/python/django5-celery-integration-collector/app/blog/urls.py b/python/django5-celery-integration-collector/app/blog/urls.py deleted file mode 100644 index d911aa207..000000000 --- a/python/django5-celery-integration-collector/app/blog/urls.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.contrib import admin -from django.urls import path - -from . import views - -urlpatterns = [ - path('', views.index, name='index'), - path('post/', views.show, name='show'), - path('create/', views.create, name='create'), -] diff --git a/python/django5-celery-integration-collector/app/blog/views.py b/python/django5-celery-integration-collector/app/blog/views.py deleted file mode 100644 index 294dd5283..000000000 --- a/python/django5-celery-integration-collector/app/blog/views.py +++ /dev/null @@ -1,24 +0,0 @@ -import redis - -from django.shortcuts import render - -from blog.models import Post - -def index(request): - posts = Post.objects.all() - r = redis.Redis(host='redis', port=6379, db=0) - r.set('some_key', 'some_value') - redis_value = r.get('some_key') - context = { 'posts': posts, 'redis_value': redis_value } - return render(request, 'index.html', context) - -def show(request): - post = Post.objects.get(id=request.GET['id']) - context = { 'post': post } - return render(request, 'show.html', context) - -def create(request): - post = Post(title="Hello world!", body="I am the long form greeting! Hi!") - post.save() - context = { 'post': post } - return render(request, 'show.html', context) diff --git a/python/django5-celery-integration-collector/app/manage.py b/python/django5-celery-integration-collector/app/manage.py deleted file mode 100755 index 4d370438a..000000000 --- a/python/django5-celery-integration-collector/app/manage.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python -"""Django's command-line utility for administrative tasks.""" -import os -import sys -import requests -import redis -import appsignal - -def main(): - """Run administrative tasks.""" - os.environ["OTEL_SERVICE_NAME"] = "django-app" - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'appsignal_python_opentelemetry.settings') - - appsignal.start() - - try: - from django.core.management import execute_from_command_line - except ImportError as exc: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) from exc - execute_from_command_line(sys.argv) - - -if __name__ == '__main__': - main() diff --git a/python/django5-celery-integration-collector/app/processmon.toml b/python/django5-celery-integration-collector/app/processmon.toml deleted file mode 100644 index 0f26e1af2..000000000 --- a/python/django5-celery-integration-collector/app/processmon.toml +++ /dev/null @@ -1,21 +0,0 @@ -[[paths_to_watch]] -path = "/app" - -[processes.django] -command = "python3" -args = [ - "manage.py", - "runserver", - "0.0.0.0:4001" -] -working_dir = "/app" - -[processes.celery] -command = "celery" -args = [ - "--app=tasks", - "worker", - "--loglevel=INFO", - "--queues=high-priority,low-priority" -] -working_dir = "/app" diff --git a/python/django5-celery-integration-collector/app/requirements.txt b/python/django5-celery-integration-collector/app/requirements.txt deleted file mode 100644 index 311731614..000000000 --- a/python/django5-celery-integration-collector/app/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -celery -appsignal -django==5.1.8 -Jinja2 -psycopg2 -redis -requests -opentelemetry-api -opentelemetry-sdk -opentelemetry-exporter-otlp-proto-http -opentelemetry-instrumentation-celery -opentelemetry-instrumentation-django==0.53b0 -opentelemetry-instrumentation-psycopg2 -opentelemetry-instrumentation-redis -opentelemetry-instrumentation-jinja2 -opentelemetry-instrumentation-requests diff --git a/python/django5-celery-integration-collector/app/tasks.py b/python/django5-celery-integration-collector/app/tasks.py deleted file mode 100644 index ed6999a06..000000000 --- a/python/django5-celery-integration-collector/app/tasks.py +++ /dev/null @@ -1,41 +0,0 @@ -import time -import os -import socket - -import appsignal -import redis -from celery import Celery -from celery.signals import worker_process_init - - -@worker_process_init.connect(weak=False) -def init_celery_tracing(*args, **kwargs): - appsignal.start() - - -app = Celery('tasks', broker='redis://redis') -app.conf.task_routes = { - 'tasks.performance_task': { 'queue': 'low-priority' }, - 'tasks.performance_task2': { 'queue': 'low-priority' }, - 'tasks.error_task': { 'queue': 'high-priority' } -} - - -@app.task -def performance_task(argument1, argument2): - r = redis.Redis(host='redis', port=6379, db=0) - r.set('some_key', 'some_value') - redis_value = r.get('some_key') - time.sleep(0.2) - - -@app.task -def performance_task2(argument1, argument2): - r = redis.Redis(host='redis', port=6379, db=0) - r.set('some_key2', 'some_value2') - redis_value = r.get('some_key2') - time.sleep(0.2) - -@app.task -def error_task(): - raise Exception("Celery error") diff --git a/python/django5-celery-integration-collector/commands/run b/python/django5-celery-integration-collector/commands/run deleted file mode 100644 index e08c5307c..000000000 --- a/python/django5-celery-integration-collector/commands/run +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -eu - -pip3 install --upgrade pip - -cd /integration - -pip3 install hatch "click<8.3.0" -hatch clean -hatch run build:me - -cd /app - -echo "Installing dependencies" -pip3 install -r requirements.txt -pip3 install /integration/dist/* --force-reinstall - -echo "Running migrations" -python3 manage.py migrate - -echo "Starting app" -/commands/processmon processmon.toml diff --git a/python/django5-celery-integration-collector/docker-compose.yml b/python/django5-celery-integration-collector/docker-compose.yml deleted file mode 100644 index ba99141d9..000000000 --- a/python/django5-celery-integration-collector/docker-compose.yml +++ /dev/null @@ -1,53 +0,0 @@ -version: '3.8' - -include: - - path: ../../support/bot/docker-compose.yml - -services: - postgres: - image: postgres - # ports: - # - "5432:5432" - env_file: - - postgres.env - redis: - image: "redis:6.2.7" - # ports: - # - "6379:6379" - appsignal-collector: - image: appsignal/collector:latest - environment: - - APPSIGNAL_LOG_LEVEL=trace - env_file: - - ../../appsignal.env - - ../../appsignal_key.env - app: - build: . - image: python/django5-celery - depends_on: - - postgres - - redis - ports: - - "4001:4001" - env_file: - - postgres.env - - ../../appsignal.env - - ../../appsignal_key.env - environment: - - PORT=4001 - - APPSIGNAL_APP_NAME=python/django5-celery-integration-collector - - APPSIGNAL_APP_ENV=dev - - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 - volumes: - - ./app:/app - - ../integration:/integration - tests: - build: ../../support/server-tests - image: server-tests - profiles: - - tests - depends_on: - - app - environment: - - APP_NAME=python/django5-celery - - APP_URL=http://app:4001 diff --git a/python/django5-celery-integration-collector/postgres.env b/python/django5-celery-integration-collector/postgres.env deleted file mode 100644 index 722541032..000000000 --- a/python/django5-celery-integration-collector/postgres.env +++ /dev/null @@ -1,4 +0,0 @@ -POSTGRES_USER=app -POSTGRES_PASSWORD=password -POSTGRES_DB=app_db -POSTGRES_HOST=postgres diff --git a/python/django5-celery-collector/Dockerfile b/python/django5-celery-opentelemetry/Dockerfile similarity index 100% rename from python/django5-celery-collector/Dockerfile rename to python/django5-celery-opentelemetry/Dockerfile diff --git a/python/django5-celery-collector/app/.gitignore b/python/django5-celery-opentelemetry/app/.gitignore similarity index 100% rename from python/django5-celery-collector/app/.gitignore rename to python/django5-celery-opentelemetry/app/.gitignore diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/__init__.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/__init__.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/__init__.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/__init__.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/asgi.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/asgi.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/asgi.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/asgi.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/opentelemetry.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/opentelemetry.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/opentelemetry.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/opentelemetry.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/settings.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/settings.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/settings.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/settings.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/templates/home.html b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/templates/home.html similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/templates/home.html rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/templates/home.html diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/urls.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/urls.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/urls.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/urls.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/views.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/views.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/views.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/views.py diff --git a/python/django5-celery-collector/app/appsignal_python_opentelemetry/wsgi.py b/python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/wsgi.py similarity index 100% rename from python/django5-celery-collector/app/appsignal_python_opentelemetry/wsgi.py rename to python/django5-celery-opentelemetry/app/appsignal_python_opentelemetry/wsgi.py diff --git a/python/django5-celery-collector/app/blog/__init__.py b/python/django5-celery-opentelemetry/app/blog/__init__.py similarity index 100% rename from python/django5-celery-collector/app/blog/__init__.py rename to python/django5-celery-opentelemetry/app/blog/__init__.py diff --git a/python/django5-celery-collector/app/blog/admin.py b/python/django5-celery-opentelemetry/app/blog/admin.py similarity index 100% rename from python/django5-celery-collector/app/blog/admin.py rename to python/django5-celery-opentelemetry/app/blog/admin.py diff --git a/python/django5-celery-collector/app/blog/apps.py b/python/django5-celery-opentelemetry/app/blog/apps.py similarity index 100% rename from python/django5-celery-collector/app/blog/apps.py rename to python/django5-celery-opentelemetry/app/blog/apps.py diff --git a/python/django5-celery-collector/app/blog/migrations/0001_initial.py b/python/django5-celery-opentelemetry/app/blog/migrations/0001_initial.py similarity index 100% rename from python/django5-celery-collector/app/blog/migrations/0001_initial.py rename to python/django5-celery-opentelemetry/app/blog/migrations/0001_initial.py diff --git a/python/django5-celery-collector/app/blog/migrations/__init__.py b/python/django5-celery-opentelemetry/app/blog/migrations/__init__.py similarity index 100% rename from python/django5-celery-collector/app/blog/migrations/__init__.py rename to python/django5-celery-opentelemetry/app/blog/migrations/__init__.py diff --git a/python/django5-celery-collector/app/blog/models.py b/python/django5-celery-opentelemetry/app/blog/models.py similarity index 100% rename from python/django5-celery-collector/app/blog/models.py rename to python/django5-celery-opentelemetry/app/blog/models.py diff --git a/python/django5-celery-collector/app/blog/templates/index.html b/python/django5-celery-opentelemetry/app/blog/templates/index.html similarity index 100% rename from python/django5-celery-collector/app/blog/templates/index.html rename to python/django5-celery-opentelemetry/app/blog/templates/index.html diff --git a/python/django5-celery-collector/app/blog/templates/show.html b/python/django5-celery-opentelemetry/app/blog/templates/show.html similarity index 100% rename from python/django5-celery-collector/app/blog/templates/show.html rename to python/django5-celery-opentelemetry/app/blog/templates/show.html diff --git a/python/django5-celery-collector/app/blog/tests.py b/python/django5-celery-opentelemetry/app/blog/tests.py similarity index 100% rename from python/django5-celery-collector/app/blog/tests.py rename to python/django5-celery-opentelemetry/app/blog/tests.py diff --git a/python/django5-celery-collector/app/blog/urls.py b/python/django5-celery-opentelemetry/app/blog/urls.py similarity index 100% rename from python/django5-celery-collector/app/blog/urls.py rename to python/django5-celery-opentelemetry/app/blog/urls.py diff --git a/python/django5-celery-collector/app/blog/views.py b/python/django5-celery-opentelemetry/app/blog/views.py similarity index 100% rename from python/django5-celery-collector/app/blog/views.py rename to python/django5-celery-opentelemetry/app/blog/views.py diff --git a/python/django5-celery-collector/app/manage.py b/python/django5-celery-opentelemetry/app/manage.py similarity index 100% rename from python/django5-celery-collector/app/manage.py rename to python/django5-celery-opentelemetry/app/manage.py diff --git a/python/django5-celery-collector/app/processmon.toml b/python/django5-celery-opentelemetry/app/processmon.toml similarity index 100% rename from python/django5-celery-collector/app/processmon.toml rename to python/django5-celery-opentelemetry/app/processmon.toml diff --git a/python/django5-celery-collector/app/requirements.txt b/python/django5-celery-opentelemetry/app/requirements.txt similarity index 100% rename from python/django5-celery-collector/app/requirements.txt rename to python/django5-celery-opentelemetry/app/requirements.txt diff --git a/python/django5-celery-collector/app/tasks.py b/python/django5-celery-opentelemetry/app/tasks.py similarity index 100% rename from python/django5-celery-collector/app/tasks.py rename to python/django5-celery-opentelemetry/app/tasks.py diff --git a/python/django5-celery-collector/commands/run b/python/django5-celery-opentelemetry/commands/run similarity index 100% rename from python/django5-celery-collector/commands/run rename to python/django5-celery-opentelemetry/commands/run diff --git a/python/django5-celery-collector/docker-compose.yml b/python/django5-celery-opentelemetry/docker-compose.yml similarity index 93% rename from python/django5-celery-collector/docker-compose.yml rename to python/django5-celery-opentelemetry/docker-compose.yml index a504bc3d7..62744ea88 100644 --- a/python/django5-celery-collector/docker-compose.yml +++ b/python/django5-celery-opentelemetry/docker-compose.yml @@ -35,7 +35,7 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/django5-celery-collector + - APPSIGNAL_APP_NAME=python/django5-celery-opentelemetry - APPSIGNAL_APP_ENV=dev volumes: - ./app:/app diff --git a/python/django5-celery-collector/postgres.env b/python/django5-celery-opentelemetry/postgres.env similarity index 100% rename from python/django5-celery-collector/postgres.env rename to python/django5-celery-opentelemetry/postgres.env diff --git a/python/django5-celery/app/appsignal_python_opentelemetry/templates/home.html b/python/django5-celery/app/appsignal_python_opentelemetry/templates/home.html index c02c6108c..a63ccb9a2 100644 --- a/python/django5-celery/app/appsignal_python_opentelemetry/templates/home.html +++ b/python/django5-celery/app/appsignal_python_opentelemetry/templates/home.html @@ -12,6 +12,7 @@

Python OpenTelemetry app

  • /metrics: Send metrics
  • /make_request: Make a request to www.appsignal.com
  • /custom_instrumentation: Report custom instrumentation
  • +
  • /logs: Report logs
  • /blog: Query and list blog posts
  • /blog/create: Create and show a new blog post
  • diff --git a/python/django5-celery/app/appsignal_python_opentelemetry/urls.py b/python/django5-celery/app/appsignal_python_opentelemetry/urls.py index 2da2ddb09..fec994f3c 100644 --- a/python/django5-celery/app/appsignal_python_opentelemetry/urls.py +++ b/python/django5-celery/app/appsignal_python_opentelemetry/urls.py @@ -33,5 +33,6 @@ path('make_request/', views.make_request, name='make_request'), path('custom_instrumentation/', views.custom_instrumentation, name='custom_instrumentation'), path('metrics/', views.metrics, name='metrics'), + path('logs/', views.logs, name='logs'), path('blog/', include("blog.urls")) ] diff --git a/python/django5-celery/app/appsignal_python_opentelemetry/views.py b/python/django5-celery/app/appsignal_python_opentelemetry/views.py index c4aa50d56..204a74119 100644 --- a/python/django5-celery/app/appsignal_python_opentelemetry/views.py +++ b/python/django5-celery/app/appsignal_python_opentelemetry/views.py @@ -202,5 +202,21 @@ def metrics(request): ) +def logs(request): + import logging + logging.basicConfig(level=logging.INFO) + logger = logging.getLogger("my app") + + logger.info("This is an info log") + logger.warning("This is a warning log") + logger.error("This is an error log") + try: + raise Exception("This is a test exception") + except Exception as e: + logger.exception("An exception occurred: %s", e) + + return HttpResponse("I emitted some logs to AppSignal!") + + class MyException(Exception): pass diff --git a/python/django5-celery/docker-compose.agent.yml b/python/django5-celery/docker-compose.agent.yml new file mode 100644 index 000000000..fbffc1731 --- /dev/null +++ b/python/django5-celery/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django5-celery diff --git a/python/django5-celery/docker-compose.collector.yml b/python/django5-celery/docker-compose.collector.yml new file mode 100644 index 000000000..932dac9a5 --- /dev/null +++ b/python/django5-celery/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/django5-celery-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/django5-celery/docker-compose.yml b/python/django5-celery/docker-compose.shared.yml similarity index 94% rename from python/django5-celery/docker-compose.yml rename to python/django5-celery/docker-compose.shared.yml index 950163a82..71372be60 100644 --- a/python/django5-celery/docker-compose.yml +++ b/python/django5-celery/docker-compose.shared.yml @@ -28,7 +28,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/django5-celery - APPSIGNAL_APP_ENV=dev - APPSIGNAL_LOG_LEVEL=trace volumes: diff --git a/python/fastapi-databases/docker-compose.agent.yml b/python/fastapi-databases/docker-compose.agent.yml new file mode 100644 index 000000000..561fd9c2d --- /dev/null +++ b/python/fastapi-databases/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/fastapi-databases diff --git a/python/fastapi-databases/docker-compose.collector.yml b/python/fastapi-databases/docker-compose.collector.yml new file mode 100644 index 000000000..a7d4d6f22 --- /dev/null +++ b/python/fastapi-databases/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/fastapi-databases-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/fastapi-databases/docker-compose.yml b/python/fastapi-databases/docker-compose.shared.yml similarity index 94% rename from python/fastapi-databases/docker-compose.yml rename to python/fastapi-databases/docker-compose.shared.yml index 955eb6e44..163ff792e 100644 --- a/python/fastapi-databases/docker-compose.yml +++ b/python/fastapi-databases/docker-compose.shared.yml @@ -26,7 +26,6 @@ services: - mysql.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/fastapi-databases - APPSIGNAL_LOG_LEVEL=trace volumes: - ./app:/app diff --git a/python/fastapi/docker-compose.agent.yml b/python/fastapi/docker-compose.agent.yml new file mode 100644 index 000000000..0c306d3f0 --- /dev/null +++ b/python/fastapi/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/fastapi diff --git a/python/fastapi/docker-compose.collector.yml b/python/fastapi/docker-compose.collector.yml new file mode 100644 index 000000000..9fb6468a4 --- /dev/null +++ b/python/fastapi/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/fastapi-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/fastapi/docker-compose.yml b/python/fastapi/docker-compose.shared.yml similarity index 92% rename from python/fastapi/docker-compose.yml rename to python/fastapi/docker-compose.shared.yml index acfd75fe6..1e55cee0c 100644 --- a/python/fastapi/docker-compose.yml +++ b/python/fastapi/docker-compose.shared.yml @@ -14,7 +14,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/fastapi volumes: - ./app:/app - ../integration:/integration diff --git a/python/flask-pika/docker-compose.agent.yml b/python/flask-pika/docker-compose.agent.yml new file mode 100644 index 000000000..f91fd9c65 --- /dev/null +++ b/python/flask-pika/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask-pika diff --git a/python/flask-pika/docker-compose.collector.yml b/python/flask-pika/docker-compose.collector.yml new file mode 100644 index 000000000..c24ef4fce --- /dev/null +++ b/python/flask-pika/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask-pika-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/flask-pika/docker-compose.yml b/python/flask-pika/docker-compose.shared.yml similarity index 93% rename from python/flask-pika/docker-compose.yml rename to python/flask-pika/docker-compose.shared.yml index 76c034c8d..1f93057e3 100644 --- a/python/flask-pika/docker-compose.yml +++ b/python/flask-pika/docker-compose.shared.yml @@ -19,7 +19,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/flask-pika volumes: - ./app:/app - ../integration:/integration diff --git a/python/flask-sqlalchemy/docker-compose.agent.yml b/python/flask-sqlalchemy/docker-compose.agent.yml new file mode 100644 index 000000000..88e374ba6 --- /dev/null +++ b/python/flask-sqlalchemy/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask-sqlalchemy diff --git a/python/flask-sqlalchemy/docker-compose.collector.yml b/python/flask-sqlalchemy/docker-compose.collector.yml new file mode 100644 index 000000000..d0d5d1b64 --- /dev/null +++ b/python/flask-sqlalchemy/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask-sqlalchemy-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/flask-sqlalchemy/docker-compose.yml b/python/flask-sqlalchemy/docker-compose.shared.yml similarity index 91% rename from python/flask-sqlalchemy/docker-compose.yml rename to python/flask-sqlalchemy/docker-compose.shared.yml index d3465d7a8..a00058b89 100644 --- a/python/flask-sqlalchemy/docker-compose.yml +++ b/python/flask-sqlalchemy/docker-compose.shared.yml @@ -14,7 +14,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/flask-sqlalchemy volumes: - ./app:/app - ../integration:/integration diff --git a/python/flask/docker-compose.agent.yml b/python/flask/docker-compose.agent.yml new file mode 100644 index 000000000..abfdb9f01 --- /dev/null +++ b/python/flask/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask diff --git a/python/flask/docker-compose.collector.yml b/python/flask/docker-compose.collector.yml new file mode 100644 index 000000000..63e9c0b22 --- /dev/null +++ b/python/flask/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/flask-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/flask/docker-compose.yml b/python/flask/docker-compose.shared.yml similarity index 93% rename from python/flask/docker-compose.yml rename to python/flask/docker-compose.shared.yml index d1a8d69f9..df0b1526c 100644 --- a/python/flask/docker-compose.yml +++ b/python/flask/docker-compose.shared.yml @@ -14,7 +14,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/flask volumes: - ./app:/app - ../integration:/integration diff --git a/python/starlette/docker-compose.agent.yml b/python/starlette/docker-compose.agent.yml new file mode 100644 index 000000000..fba5fba4d --- /dev/null +++ b/python/starlette/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/starlette diff --git a/python/starlette/docker-compose.collector.yml b/python/starlette/docker-compose.collector.yml new file mode 100644 index 000000000..6609b2fb5 --- /dev/null +++ b/python/starlette/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=python/starlette-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/python/starlette/docker-compose.yml b/python/starlette/docker-compose.shared.yml similarity index 92% rename from python/starlette/docker-compose.yml rename to python/starlette/docker-compose.shared.yml index 3d122c0bc..dd00cca04 100644 --- a/python/starlette/docker-compose.yml +++ b/python/starlette/docker-compose.shared.yml @@ -14,7 +14,6 @@ services: - ../../appsignal_key.env environment: - PORT=4001 - - APPSIGNAL_APP_NAME=python/starlette volumes: - ./app:/app - ../integration:/integration diff --git a/ruby/grape/app/Gemfile b/ruby/grape/app/Gemfile index 601e49c73..f2dd861b6 100644 --- a/ruby/grape/app/Gemfile +++ b/ruby/grape/app/Gemfile @@ -4,3 +4,13 @@ gem "grape" gem "puma" gem "debug" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" diff --git a/ruby/grape/app/Gemfile.lock b/ruby/grape/app/Gemfile.lock index 15b789db9..1f47640cd 100644 --- a/ruby/grape/app/Gemfile.lock +++ b/ruby/grape/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (4.0.0) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -40,6 +41,14 @@ GEM dry-inflector (~> 1.0) dry-logic (~> 1.4) zeitwerk (~> 2.6) + google-protobuf (4.35.1) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) grape (2.1.1) activesupport (>= 6) dry-types (>= 1.1) @@ -52,6 +61,7 @@ GEM irb (1.13.2) rdoc (>= 4.0.0) reline (>= 0.4.2) + logger (1.7.0) minitest (5.24.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) @@ -59,11 +69,63 @@ GEM mustermann (>= 1.0.0) mutex_m (0.2.0) nio4r (2.7.3) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) psych (5.1.2) stringio puma (6.4.2) nio4r (~> 2.0) rack (3.1.4) + rake (13.4.2) rdoc (6.7.0) psych (>= 4.0.0) reline (0.5.9) @@ -82,6 +144,12 @@ DEPENDENCIES appsignal! debug grape + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) puma BUNDLED WITH diff --git a/ruby/grape/docker-compose.agent.yml b/ruby/grape/docker-compose.agent.yml new file mode 100644 index 000000000..ed5869b89 --- /dev/null +++ b/ruby/grape/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/grape diff --git a/ruby/grape/docker-compose.collector.yml b/ruby/grape/docker-compose.collector.yml new file mode 100644 index 000000000..399479e47 --- /dev/null +++ b/ruby/grape/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/grape-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/grape/docker-compose.yml b/ruby/grape/docker-compose.shared.yml similarity index 93% rename from ruby/grape/docker-compose.yml rename to ruby/grape/docker-compose.shared.yml index 6c2872468..e19495d11 100644 --- a/ruby/grape/docker-compose.yml +++ b/ruby/grape/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/grape - PORT=4001 env_file: - ../../appsignal.env diff --git a/ruby/hanami2-postgres/app/Gemfile b/ruby/hanami2-postgres/app/Gemfile index d84b5c521..c92ed1058 100644 --- a/ruby/hanami2-postgres/app/Gemfile +++ b/ruby/hanami2-postgres/app/Gemfile @@ -17,6 +17,16 @@ gem "rake" gem "pg" gem "appsignal", :path => "/integration" +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + group :development do gem "hanami-webconsole", "~> 2.2" end diff --git a/ruby/hanami2-postgres/app/Gemfile.lock b/ruby/hanami2-postgres/app/Gemfile.lock index 340b1eb80..59c0607d2 100644 --- a/ruby/hanami2-postgres/app/Gemfile.lock +++ b/ruby/hanami2-postgres/app/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: /integration specs: - appsignal (4.5.17) + appsignal (4.8.0) logger rack (>= 2.0.0) @@ -113,6 +113,35 @@ GEM ffi (1.17.0-x86_64-linux-gnu) ffi (1.17.0-x86_64-linux-musl) formatador (1.1.0) + google-protobuf (4.33.6) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-musl) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) guard (2.19.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -221,6 +250,57 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) pg (1.5.9) pry (0.14.2) coderay (~> 1.1) @@ -318,6 +398,12 @@ DEPENDENCIES hanami-validations (~> 2.2) hanami-view (~> 2.2) hanami-webconsole (~> 2.2) + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg puma rack-test diff --git a/ruby/hanami2-postgres/docker-compose.agent.yml b/ruby/hanami2-postgres/docker-compose.agent.yml new file mode 100644 index 000000000..c4425ba29 --- /dev/null +++ b/ruby/hanami2-postgres/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-hanami2-postgres diff --git a/ruby/hanami2-postgres/docker-compose.collector.yml b/ruby/hanami2-postgres/docker-compose.collector.yml new file mode 100644 index 000000000..18dd62592 --- /dev/null +++ b/ruby/hanami2-postgres/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-hanami2-postgres-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/hanami2-postgres/docker-compose.yml b/ruby/hanami2-postgres/docker-compose.shared.yml similarity index 94% rename from ruby/hanami2-postgres/docker-compose.yml rename to ruby/hanami2-postgres/docker-compose.shared.yml index 309e817ed..8688e44f4 100644 --- a/ruby/hanami2-postgres/docker-compose.yml +++ b/ruby/hanami2-postgres/docker-compose.shared.yml @@ -16,7 +16,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-hanami2-postgres - PORT=4001 - PGHOST=postgres - PGDATABASE=app_db diff --git a/ruby/rack/app/Gemfile b/ruby/rack/app/Gemfile index 950db6673..8a9270fc1 100644 --- a/ruby/rack/app/Gemfile +++ b/ruby/rack/app/Gemfile @@ -4,3 +4,13 @@ gem "rack" gem "puma" gem "debug" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" diff --git a/ruby/rack/app/Gemfile.lock b/ruby/rack/app/Gemfile.lock index eba71b1b4..51b0d53b0 100644 --- a/ruby/rack/app/Gemfile.lock +++ b/ruby/rack/app/Gemfile.lock @@ -1,25 +1,88 @@ PATH remote: /integration specs: - appsignal (3.9.1) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ specs: + bigdecimal (4.1.2) debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) + google-protobuf (4.35.1) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) io-console (0.7.2) irb (1.13.2) rdoc (>= 4.0.0) reline (>= 0.4.2) + logger (1.7.0) nio4r (2.7.3) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) psych (5.1.2) stringio puma (6.4.2) nio4r (~> 2.0) rack (3.1.4) + rake (13.4.2) rdoc (6.7.0) psych (>= 4.0.0) reline (0.5.9) @@ -33,6 +96,12 @@ PLATFORMS DEPENDENCIES appsignal! debug + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) puma rack diff --git a/ruby/rack/docker-compose.agent.yml b/ruby/rack/docker-compose.agent.yml new file mode 100644 index 000000000..6f87c7576 --- /dev/null +++ b/ruby/rack/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rack diff --git a/ruby/rack/docker-compose.collector.yml b/ruby/rack/docker-compose.collector.yml new file mode 100644 index 000000000..8ade7cada --- /dev/null +++ b/ruby/rack/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rack-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rack/docker-compose.yml b/ruby/rack/docker-compose.shared.yml similarity index 93% rename from ruby/rack/docker-compose.yml rename to ruby/rack/docker-compose.shared.yml index c80c80136..810a3d82e 100644 --- a/ruby/rack/docker-compose.yml +++ b/ruby/rack/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/rack - PORT=4001 env_file: - ../../appsignal.env diff --git a/ruby/rails6-mysql/app/Gemfile b/ruby/rails6-mysql/app/Gemfile index 5f7824f35..b06da7957 100644 --- a/ruby/rails6-mysql/app/Gemfile +++ b/ruby/rails6-mysql/app/Gemfile @@ -5,6 +5,16 @@ ruby '3.2.2' gem "appsignal", :path => "/integration" +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + # Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main' gem 'rails', '~> 6.1.4', '>= 6.1.4.6' # Use mysql2 as the database for Active Record diff --git a/ruby/rails6-mysql/app/Gemfile.lock b/ruby/rails6-mysql/app/Gemfile.lock index d9a1da944..0442a86f7 100644 --- a/ruby/rails6-mysql/app/Gemfile.lock +++ b/ruby/rails6-mysql/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.5.5) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -68,6 +69,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) + bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.16.0) msgpack (~> 1.2) @@ -89,6 +91,11 @@ GEM ffi (1.15.5) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.12.0) concurrent-ruby (~> 1.0) jbuilder (2.11.5) @@ -97,6 +104,7 @@ GEM listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) loofah (2.20.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -124,13 +132,61 @@ GEM nio4r (2.5.9) nokogiri (1.14.2-x86_64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) public_suffix (5.0.1) puma (5.6.5) nio4r (~> 2.0) racc (1.6.2) rack (2.2.6.4) - rack-mini-profiler (2.3.4) - rack (>= 1.2.0) rack-proxy (0.7.6) rack rack-test (2.1.0) @@ -220,8 +276,13 @@ DEPENDENCIES jbuilder (~> 2.7) listen (~> 3.3) mysql2 (~> 0.5) + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) puma (~> 5.0) - rack-mini-profiler (~> 2.0) rails (~> 6.1.4, >= 6.1.4.6) selenium-webdriver turbolinks (~> 5) diff --git a/ruby/rails6-mysql/docker-compose.agent.yml b/ruby/rails6-mysql/docker-compose.agent.yml new file mode 100644 index 000000000..29a1f39fb --- /dev/null +++ b/ruby/rails6-mysql/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails6-mysql diff --git a/ruby/rails6-mysql/docker-compose.collector.yml b/ruby/rails6-mysql/docker-compose.collector.yml new file mode 100644 index 000000000..a17f41c8c --- /dev/null +++ b/ruby/rails6-mysql/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails6-mysql-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails6-mysql/docker-compose.yml b/ruby/rails6-mysql/docker-compose.shared.yml similarity index 94% rename from ruby/rails6-mysql/docker-compose.yml rename to ruby/rails6-mysql/docker-compose.shared.yml index 897c574b2..b03fd69e8 100644 --- a/ruby/rails6-mysql/docker-compose.yml +++ b/ruby/rails6-mysql/docker-compose.shared.yml @@ -19,7 +19,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails6-mysql - PORT=4001 env_file: - mysql.env diff --git a/ruby/rails6-shakapacker/app/Gemfile b/ruby/rails6-shakapacker/app/Gemfile index 9e9b79568..781c9e9b2 100644 --- a/ruby/rails6-shakapacker/app/Gemfile +++ b/ruby/rails6-shakapacker/app/Gemfile @@ -51,3 +51,13 @@ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] gem "shakapacker", "= 6.6" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" diff --git a/ruby/rails6-shakapacker/app/Gemfile.lock b/ruby/rails6-shakapacker/app/Gemfile.lock index 8236b49e6..a535e01d1 100644 --- a/ruby/rails6-shakapacker/app/Gemfile.lock +++ b/ruby/rails6-shakapacker/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.4.4) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -68,6 +69,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) + bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.16.0) msgpack (~> 1.2) @@ -89,6 +91,14 @@ GEM ffi (1.15.5) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-arm64-darwin) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.1) concurrent-ruby (~> 1.0) jbuilder (2.11.5) @@ -97,6 +107,7 @@ GEM listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) loofah (2.21.3) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -125,6 +136,56 @@ GEM racc (~> 1.4) nokogiri (1.15.2-arm64-darwin) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pg (1.5.3) public_suffix (5.0.1) puma (5.6.6) @@ -232,6 +293,12 @@ DEPENDENCIES capybara (>= 3.26) jbuilder (~> 2.7) listen (~> 3.3) + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg puma (~> 5.0) rack-mini-profiler (~> 2.0) diff --git a/ruby/rails6-shakapacker/docker-compose.agent.yml b/ruby/rails6-shakapacker/docker-compose.agent.yml new file mode 100644 index 000000000..6ad894035 --- /dev/null +++ b/ruby/rails6-shakapacker/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails6-shakapacker diff --git a/ruby/rails6-shakapacker/docker-compose.collector.yml b/ruby/rails6-shakapacker/docker-compose.collector.yml new file mode 100644 index 000000000..f13c9a20a --- /dev/null +++ b/ruby/rails6-shakapacker/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails6-shakapacker-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails6-shakapacker/docker-compose.yml b/ruby/rails6-shakapacker/docker-compose.shared.yml similarity index 93% rename from ruby/rails6-shakapacker/docker-compose.yml rename to ruby/rails6-shakapacker/docker-compose.shared.yml index 08d86b83f..720eed793 100644 --- a/ruby/rails6-shakapacker/docker-compose.yml +++ b/ruby/rails6-shakapacker/docker-compose.shared.yml @@ -16,7 +16,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails6-shakapacker - PORT=4001 env_file: - postgres.env diff --git a/ruby/rails6-shoryuken/app/Gemfile b/ruby/rails6-shoryuken/app/Gemfile index 23b0ada55..facf83144 100644 --- a/ruby/rails6-shoryuken/app/Gemfile +++ b/ruby/rails6-shoryuken/app/Gemfile @@ -4,6 +4,17 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '3.2.2' gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "shoryuken", "~> 5.3.2" gem "aws-sdk-sqs" gem "net-smtp", require: false diff --git a/ruby/rails6-shoryuken/app/Gemfile.lock b/ruby/rails6-shoryuken/app/Gemfile.lock index e30b97b14..cd45e09c7 100644 --- a/ruby/rails6-shoryuken/app/Gemfile.lock +++ b/ruby/rails6-shoryuken/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.4.13) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -80,6 +81,7 @@ GEM aws-sigv4 (~> 1.1) aws-sigv4 (1.6.1) aws-eventstream (~> 1, >= 1.0.2) + bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.17.0) msgpack (~> 1.2) @@ -101,6 +103,11 @@ GEM ffi (1.16.3) globalid (1.2.1) activesupport (>= 6.1) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.1) concurrent-ruby (~> 1.0) jbuilder (2.11.5) @@ -110,6 +117,7 @@ GEM listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -136,6 +144,56 @@ GEM nio4r (2.6.1) nokogiri (1.15.5-x86_64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) public_suffix (5.0.4) puma (5.6.7) nio4r (~> 2.0) @@ -241,6 +299,12 @@ DEPENDENCIES jbuilder (~> 2.7) listen (~> 3.3) net-smtp + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) puma (~> 5.0) rack-mini-profiler (~> 2.0) rails (~> 6.1.4, >= 6.1.4.6) diff --git a/ruby/rails6-shoryuken/docker-compose.agent.yml b/ruby/rails6-shoryuken/docker-compose.agent.yml new file mode 100644 index 000000000..b6ca95b17 --- /dev/null +++ b/ruby/rails6-shoryuken/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=rails6-shoryuken diff --git a/ruby/rails6-shoryuken/docker-compose.collector.yml b/ruby/rails6-shoryuken/docker-compose.collector.yml new file mode 100644 index 000000000..baa91282f --- /dev/null +++ b/ruby/rails6-shoryuken/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=rails6-shoryuken-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails6-shoryuken/docker-compose.yml b/ruby/rails6-shoryuken/docker-compose.shared.yml similarity index 93% rename from ruby/rails6-shoryuken/docker-compose.yml rename to ruby/rails6-shoryuken/docker-compose.shared.yml index bfd70c810..d2df5cfc0 100644 --- a/ruby/rails6-shoryuken/docker-compose.yml +++ b/ruby/rails6-shoryuken/docker-compose.shared.yml @@ -15,7 +15,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=rails6-shoryuken - PORT=4001 env_file: - shoryuken.env diff --git a/ruby/rails7-delayed-job/app/Gemfile b/ruby/rails7-delayed-job/app/Gemfile index 62813971e..0a5718c67 100644 --- a/ruby/rails7-delayed-job/app/Gemfile +++ b/ruby/rails7-delayed-job/app/Gemfile @@ -64,3 +64,13 @@ end gem "delayed_job_active_record", "~> 4.1" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" diff --git a/ruby/rails7-delayed-job/app/Gemfile.lock b/ruby/rails7-delayed-job/app/Gemfile.lock index 017bdbe36..fcb7f0462 100644 --- a/ruby/rails7-delayed-job/app/Gemfile.lock +++ b/ruby/rails7-delayed-job/app/Gemfile.lock @@ -1,3 +1,10 @@ +PATH + remote: /integration + specs: + appsignal (4.8.0) + logger + rack (>= 2.0.0) + GEM remote: https://rubygems.org/ specs: @@ -68,8 +75,7 @@ GEM tzinfo (~> 2.0) addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) - appsignal (3.4.1) - rack + bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.16.0) msgpack (~> 1.2) @@ -97,6 +103,11 @@ GEM erubi (1.12.0) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.22.0) + google-protobuf (~> 4.26) i18n (1.12.0) concurrent-ruby (~> 1.0) importmap-rails (1.1.5) @@ -108,6 +119,7 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) + logger (1.7.0) lograge (0.12.0) actionpack (>= 4) activesupport (>= 4) @@ -139,6 +151,56 @@ GEM nio4r (2.5.9) nokogiri (1.14.3-aarch64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pg (1.4.6) public_suffix (5.0.1) puma (5.6.5) @@ -217,7 +279,7 @@ PLATFORMS aarch64-linux DEPENDENCIES - appsignal (~> 3.2) + appsignal! bootsnap capybara debug @@ -225,6 +287,12 @@ DEPENDENCIES importmap-rails jbuilder lograge + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg (~> 1.1) puma (~> 5.0) rails (~> 7.0.4) diff --git a/ruby/rails7-delayed-job/docker-compose.agent.yml b/ruby/rails7-delayed-job/docker-compose.agent.yml new file mode 100644 index 000000000..00e76013a --- /dev/null +++ b/ruby/rails7-delayed-job/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-delayed-job diff --git a/ruby/rails7-delayed-job/docker-compose.collector.yml b/ruby/rails7-delayed-job/docker-compose.collector.yml new file mode 100644 index 000000000..9d25d7abc --- /dev/null +++ b/ruby/rails7-delayed-job/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-delayed-job-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-delayed-job/docker-compose.yml b/ruby/rails7-delayed-job/docker-compose.shared.yml similarity index 92% rename from ruby/rails7-delayed-job/docker-compose.yml rename to ruby/rails7-delayed-job/docker-compose.shared.yml index e55485d3c..af9c763bb 100644 --- a/ruby/rails7-delayed-job/docker-compose.yml +++ b/ruby/rails7-delayed-job/docker-compose.shared.yml @@ -17,7 +17,6 @@ services: - "4001:4001" environment: - PORT=4001 - - APPSIGNAL_APP_NAME=ruby-rails7-delayed-job env_file: - ../../appsignal.env - ../../appsignal_key.env diff --git a/ruby/rails7-goodjob/app/Gemfile b/ruby/rails7-goodjob/app/Gemfile index 4f058d1c6..c2e3c5341 100644 --- a/ruby/rails7-goodjob/app/Gemfile +++ b/ruby/rails7-goodjob/app/Gemfile @@ -67,4 +67,15 @@ group :test do end gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "good_job", "~> 3.20" diff --git a/ruby/rails7-goodjob/app/Gemfile.lock b/ruby/rails7-goodjob/app/Gemfile.lock index c5717746a..7b9e47893 100644 --- a/ruby/rails7-goodjob/app/Gemfile.lock +++ b/ruby/rails7-goodjob/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.5.5) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -121,6 +122,11 @@ GEM fugit (>= 1.1) railties (>= 6.0.0) thor (>= 0.14.1) + google-protobuf (4.33.6) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.22.0) + google-protobuf (~> 4.26) i18n (1.14.1) concurrent-ruby (~> 1.0) importmap-rails (1.2.3) @@ -134,6 +140,7 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) + logger (1.7.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -162,6 +169,56 @@ GEM racc (~> 1.4) nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pg (1.5.4) psych (5.1.2) stringio @@ -264,6 +321,12 @@ DEPENDENCIES good_job (~> 3.20) importmap-rails jbuilder + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg (~> 1.1) puma (>= 5.0) rails (~> 7.1.1) diff --git a/ruby/rails7-goodjob/docker-compose.agent.yml b/ruby/rails7-goodjob/docker-compose.agent.yml new file mode 100644 index 000000000..1cbf79f1e --- /dev/null +++ b/ruby/rails7-goodjob/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-goodjob diff --git a/ruby/rails7-goodjob/docker-compose.collector.yml b/ruby/rails7-goodjob/docker-compose.collector.yml new file mode 100644 index 000000000..501050d69 --- /dev/null +++ b/ruby/rails7-goodjob/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-goodjob-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-goodjob/docker-compose.yml b/ruby/rails7-goodjob/docker-compose.shared.yml similarity index 93% rename from ruby/rails7-goodjob/docker-compose.yml rename to ruby/rails7-goodjob/docker-compose.shared.yml index b92e0cbc9..6138d2eab 100644 --- a/ruby/rails7-goodjob/docker-compose.yml +++ b/ruby/rails7-goodjob/docker-compose.shared.yml @@ -16,7 +16,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails7-goodjob - PORT=4001 env_file: - postgres.env diff --git a/ruby/rails7-postgres/app/Gemfile b/ruby/rails7-postgres/app/Gemfile index af8abaa14..2cfc62968 100644 --- a/ruby/rails7-postgres/app/Gemfile +++ b/ruby/rails7-postgres/app/Gemfile @@ -17,6 +17,16 @@ gem 'listen' gem 'appsignal', :path => '/integration' +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + group :development, :test do gem "rspec-rails" gem "pry" diff --git a/ruby/rails7-postgres/app/Gemfile.lock b/ruby/rails7-postgres/app/Gemfile.lock index 13524be0c..f550abcb4 100644 --- a/ruby/rails7-postgres/app/Gemfile.lock +++ b/ruby/rails7-postgres/app/Gemfile.lock @@ -1,9 +1,9 @@ PATH remote: /integration specs: - appsignal (4.2.3) + appsignal (4.8.0) logger - rack + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -96,6 +96,17 @@ GEM ffi (1.17.1-x86_64-linux-gnu) globalid (1.2.1) activesupport (>= 6.1) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.6) concurrent-ruby (~> 1.0) io-console (0.8.0) @@ -137,6 +148,57 @@ GEM racc (~> 1.4) nokogiri (1.18.1-x86_64-linux-gnu) racc (~> 1.4) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) pg (1.5.9) pry (0.15.2) coderay (~> 1.1) @@ -250,6 +312,12 @@ DEPENDENCIES appsignal! jbuilder (~> 2.7) listen + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg pry puma (~> 6) diff --git a/ruby/rails7-postgres/docker-compose.agent.yml b/ruby/rails7-postgres/docker-compose.agent.yml new file mode 100644 index 000000000..30f84be5a --- /dev/null +++ b/ruby/rails7-postgres/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-postgres diff --git a/ruby/rails7-postgres/docker-compose.collector.yml b/ruby/rails7-postgres/docker-compose.collector.yml new file mode 100644 index 000000000..938d30519 --- /dev/null +++ b/ruby/rails7-postgres/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-postgres-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-postgres/docker-compose.yml b/ruby/rails7-postgres/docker-compose.shared.yml similarity index 95% rename from ruby/rails7-postgres/docker-compose.yml rename to ruby/rails7-postgres/docker-compose.shared.yml index 0197fc3d8..1e1cd7633 100644 --- a/ruby/rails7-postgres/docker-compose.yml +++ b/ruby/rails7-postgres/docker-compose.shared.yml @@ -16,7 +16,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails7-postgres - PORT=4001 env_file: - postgres.env diff --git a/ruby/rails7-sequel/app/Gemfile b/ruby/rails7-sequel/app/Gemfile index 587c1499d..cdbc6bdcc 100644 --- a/ruby/rails7-sequel/app/Gemfile +++ b/ruby/rails7-sequel/app/Gemfile @@ -71,3 +71,13 @@ gem "pg", "~> 1.5" gem "view_component" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" diff --git a/ruby/rails7-sequel/app/Gemfile.lock b/ruby/rails7-sequel/app/Gemfile.lock index 9d1793daf..fed02eb4c 100644 --- a/ruby/rails7-sequel/app/Gemfile.lock +++ b/ruby/rails7-sequel/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.6.4) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -97,6 +98,11 @@ GEM erubi (1.12.0) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.22.0) + google-protobuf (~> 4.26) i18n (1.14.1) concurrent-ruby (~> 1.0) importmap-rails (1.2.1) @@ -109,6 +115,7 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) + logger (1.7.0) loofah (2.21.3) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -137,6 +144,56 @@ GEM racc (~> 1.4) nokogiri (1.15.4-x86_64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pg (1.5.4) psych (5.1.0) stringio @@ -244,6 +301,12 @@ DEPENDENCIES debug importmap-rails jbuilder + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg (~> 1.5) puma (~> 5.0) rails (~> 7.0.7, >= 7.0.7.2) diff --git a/ruby/rails7-sequel/docker-compose.agent.yml b/ruby/rails7-sequel/docker-compose.agent.yml new file mode 100644 index 000000000..2608a74f3 --- /dev/null +++ b/ruby/rails7-sequel/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-sequel diff --git a/ruby/rails7-sequel/docker-compose.collector.yml b/ruby/rails7-sequel/docker-compose.collector.yml new file mode 100644 index 000000000..bcf685cda --- /dev/null +++ b/ruby/rails7-sequel/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-sequel-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-sequel/docker-compose.yml b/ruby/rails7-sequel/docker-compose.shared.yml similarity index 93% rename from ruby/rails7-sequel/docker-compose.yml rename to ruby/rails7-sequel/docker-compose.shared.yml index 29c54d9b0..107c48686 100644 --- a/ruby/rails7-sequel/docker-compose.yml +++ b/ruby/rails7-sequel/docker-compose.shared.yml @@ -16,7 +16,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails7-sequel - PORT=4001 env_file: - postgres.env diff --git a/ruby/rails7-solid-cache/app/Gemfile b/ruby/rails7-solid-cache/app/Gemfile index 23641208a..443a4e77e 100644 --- a/ruby/rails7-solid-cache/app/Gemfile +++ b/ruby/rails7-solid-cache/app/Gemfile @@ -19,6 +19,16 @@ gem 'listen' gem 'appsignal', :path => '/integration' +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + group :development, :test do gem "rspec-rails" gem "pry" diff --git a/ruby/rails7-solid-cache/app/Gemfile.lock b/ruby/rails7-solid-cache/app/Gemfile.lock index d3261ccdb..a82063b21 100644 --- a/ruby/rails7-solid-cache/app/Gemfile.lock +++ b/ruby/rails7-solid-cache/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.5.3) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -72,6 +73,7 @@ GEM i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) + bigdecimal (4.1.2) builder (3.2.4) coderay (1.1.3) concurrent-ruby (1.2.2) @@ -82,6 +84,17 @@ GEM ffi (1.15.5) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.12.0) concurrent-ruby (~> 1.0) jbuilder (2.11.5) @@ -90,6 +103,7 @@ GEM listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) loofah (2.20.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -119,6 +133,56 @@ GEM racc (~> 1.4) nokogiri (1.14.3-x86_64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) @@ -219,6 +283,12 @@ DEPENDENCIES jbuilder (~> 2.7) listen mysql2 (~> 0.5) + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pry puma (~> 4.1) rails (>= 7) diff --git a/ruby/rails7-solid-cache/docker-compose.agent.yml b/ruby/rails7-solid-cache/docker-compose.agent.yml new file mode 100644 index 000000000..ab6adfe44 --- /dev/null +++ b/ruby/rails7-solid-cache/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-solid-cache diff --git a/ruby/rails7-solid-cache/docker-compose.collector.yml b/ruby/rails7-solid-cache/docker-compose.collector.yml new file mode 100644 index 000000000..8adbed8c1 --- /dev/null +++ b/ruby/rails7-solid-cache/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-solid-cache-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-solid-cache/docker-compose.yml b/ruby/rails7-solid-cache/docker-compose.shared.yml similarity index 93% rename from ruby/rails7-solid-cache/docker-compose.yml rename to ruby/rails7-solid-cache/docker-compose.shared.yml index 6f474bc3d..eb4e57b4b 100644 --- a/ruby/rails7-solid-cache/docker-compose.yml +++ b/ruby/rails7-solid-cache/docker-compose.shared.yml @@ -18,7 +18,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-rails7-solid-cache - PORT=4001 env_file: - mysql.env diff --git a/ruby/rails7-solid-queue/app/Gemfile b/ruby/rails7-solid-queue/app/Gemfile index 2778e8bfb..9822b8c26 100644 --- a/ruby/rails7-solid-queue/app/Gemfile +++ b/ruby/rails7-solid-queue/app/Gemfile @@ -63,4 +63,14 @@ end gem 'appsignal', :path => '/integration' +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "solid_queue" diff --git a/ruby/rails7-solid-queue/app/Gemfile.lock b/ruby/rails7-solid-queue/app/Gemfile.lock index 00d5fc5c5..3e9ff82f0 100644 --- a/ruby/rails7-solid-queue/app/Gemfile.lock +++ b/ruby/rails7-solid-queue/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.6.4) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -74,6 +75,7 @@ GEM tzinfo (~> 2.0) addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) + bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.16.0) msgpack (~> 1.2) @@ -96,6 +98,11 @@ GEM erubi (1.12.0) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.22.0) + google-protobuf (~> 4.26) i18n (1.12.0) concurrent-ruby (~> 1.0) importmap-rails (1.1.5) @@ -107,6 +114,7 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) + logger (1.7.0) lograge (0.12.0) actionpack (>= 4) activesupport (>= 4) @@ -138,6 +146,56 @@ GEM nio4r (2.5.9) nokogiri (1.14.3-aarch64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pg (1.4.6) public_suffix (5.0.1) puma (5.6.5) @@ -225,6 +283,12 @@ DEPENDENCIES importmap-rails jbuilder lograge + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pg (~> 1.1) puma (~> 5.0) rails (~> 7.0.4) diff --git a/ruby/rails7-solid-queue/docker-compose.agent.yml b/ruby/rails7-solid-queue/docker-compose.agent.yml new file mode 100644 index 000000000..56369bcbe --- /dev/null +++ b/ruby/rails7-solid-queue/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-solid-queue diff --git a/ruby/rails7-solid-queue/docker-compose.collector.yml b/ruby/rails7-solid-queue/docker-compose.collector.yml new file mode 100644 index 000000000..ef77bbc19 --- /dev/null +++ b/ruby/rails7-solid-queue/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-rails7-solid-queue-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails7-solid-queue/docker-compose.yml b/ruby/rails7-solid-queue/docker-compose.shared.yml similarity index 92% rename from ruby/rails7-solid-queue/docker-compose.yml rename to ruby/rails7-solid-queue/docker-compose.shared.yml index d9210d3e0..e8a2e6cbb 100644 --- a/ruby/rails7-solid-queue/docker-compose.yml +++ b/ruby/rails7-solid-queue/docker-compose.shared.yml @@ -17,7 +17,6 @@ services: - "4001:4001" environment: - PORT=4001 - - APPSIGNAL_APP_NAME=ruby-rails7-solid-queue env_file: - ../../appsignal.env - ../../appsignal_key.env diff --git a/ruby/rails8-delayed-job/app/Gemfile b/ruby/rails8-delayed-job/app/Gemfile index 94a36fb9c..aa07a2f5d 100644 --- a/ruby/rails8-delayed-job/app/Gemfile +++ b/ruby/rails8-delayed-job/app/Gemfile @@ -67,6 +67,16 @@ gem "daemons" gem "appsignal", path: "/integration" gem "ownership" +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + # Enable these lines when testing semantic logger # gem "rails_semantic_logger", "4.17.0" # gem "semantic_logger", "4.16.1" diff --git a/ruby/rails8-delayed-job/app/Gemfile.lock b/ruby/rails8-delayed-job/app/Gemfile.lock index c26e94c09..be3acc98f 100644 --- a/ruby/rails8-delayed-job/app/Gemfile.lock +++ b/ruby/rails8-delayed-job/app/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: /integration specs: - appsignal (4.8.1) + appsignal (4.8.0) logger rack (>= 2.0.0) @@ -133,6 +133,35 @@ GEM raabro (~> 1.4) globalid (1.3.0) activesupport (>= 6.1) + google-protobuf (4.35.1) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-aarch64-linux-musl) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-arm64-darwin) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86-linux-musl) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-darwin) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-linux-musl) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.7) concurrent-ruby (~> 1.0) importmap-rails (2.0.3) @@ -210,6 +239,57 @@ GEM racc (~> 1.4) nokogiri (1.18.10-x86_64-linux-musl) racc (~> 1.4) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) ostruct (0.6.1) ownership (0.4.0) parallel (1.26.3) @@ -408,6 +488,12 @@ DEPENDENCIES importmap-rails jbuilder kamal + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) ownership propshaft puma (>= 5.0) diff --git a/ruby/rails8-delayed-job/docker-compose.agent.yml b/ruby/rails8-delayed-job/docker-compose.agent.yml new file mode 100644 index 000000000..06e45431b --- /dev/null +++ b/ruby/rails8-delayed-job/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rails8-delayed-job diff --git a/ruby/rails8-delayed-job/docker-compose.collector.yml b/ruby/rails8-delayed-job/docker-compose.collector.yml new file mode 100644 index 000000000..0406d0325 --- /dev/null +++ b/ruby/rails8-delayed-job/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rails8-delayed-job-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails8-delayed-job/docker-compose.yml b/ruby/rails8-delayed-job/docker-compose.shared.yml similarity index 92% rename from ruby/rails8-delayed-job/docker-compose.yml rename to ruby/rails8-delayed-job/docker-compose.shared.yml index 158287149..0344c837e 100644 --- a/ruby/rails8-delayed-job/docker-compose.yml +++ b/ruby/rails8-delayed-job/docker-compose.shared.yml @@ -13,7 +13,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/rails8-delayed-job - PORT=4001 env_file: - postgres.env diff --git a/ruby/rails8-sidekiq-collector/Dockerfile b/ruby/rails8-sidekiq-opentelemetry/Dockerfile similarity index 100% rename from ruby/rails8-sidekiq-collector/Dockerfile rename to ruby/rails8-sidekiq-opentelemetry/Dockerfile diff --git a/ruby/rails8-sidekiq-collector/app/.dockerignore b/ruby/rails8-sidekiq-opentelemetry/app/.dockerignore similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.dockerignore rename to ruby/rails8-sidekiq-opentelemetry/app/.dockerignore diff --git a/ruby/rails8-sidekiq-collector/app/.gitattributes b/ruby/rails8-sidekiq-opentelemetry/app/.gitattributes similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.gitattributes rename to ruby/rails8-sidekiq-opentelemetry/app/.gitattributes diff --git a/ruby/rails8-sidekiq-collector/app/.github/dependabot.yml b/ruby/rails8-sidekiq-opentelemetry/app/.github/dependabot.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.github/dependabot.yml rename to ruby/rails8-sidekiq-opentelemetry/app/.github/dependabot.yml diff --git a/ruby/rails8-sidekiq-collector/app/.github/workflows/ci.yml b/ruby/rails8-sidekiq-opentelemetry/app/.github/workflows/ci.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.github/workflows/ci.yml rename to ruby/rails8-sidekiq-opentelemetry/app/.github/workflows/ci.yml diff --git a/ruby/rails8-sidekiq-collector/app/.gitignore b/ruby/rails8-sidekiq-opentelemetry/app/.gitignore similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.gitignore rename to ruby/rails8-sidekiq-opentelemetry/app/.gitignore diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/docker-setup.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/docker-setup.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/docker-setup.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/docker-setup.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/post-deploy.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/post-deploy.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/post-deploy.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/post-deploy.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/post-proxy-reboot.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/post-proxy-reboot.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/post-proxy-reboot.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/post-proxy-reboot.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-build.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-build.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-build.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-build.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-connect.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-connect.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-connect.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-connect.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-deploy.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-deploy.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-deploy.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-deploy.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-proxy-reboot.sample b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-proxy-reboot.sample similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/hooks/pre-proxy-reboot.sample rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/hooks/pre-proxy-reboot.sample diff --git a/ruby/rails8-sidekiq-collector/app/.kamal/secrets b/ruby/rails8-sidekiq-opentelemetry/app/.kamal/secrets similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.kamal/secrets rename to ruby/rails8-sidekiq-opentelemetry/app/.kamal/secrets diff --git a/ruby/rails8-sidekiq-collector/app/.rubocop.yml b/ruby/rails8-sidekiq-opentelemetry/app/.rubocop.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.rubocop.yml rename to ruby/rails8-sidekiq-opentelemetry/app/.rubocop.yml diff --git a/ruby/rails8-sidekiq-collector/app/.ruby-version b/ruby/rails8-sidekiq-opentelemetry/app/.ruby-version similarity index 100% rename from ruby/rails8-sidekiq-collector/app/.ruby-version rename to ruby/rails8-sidekiq-opentelemetry/app/.ruby-version diff --git a/ruby/rails8-sidekiq-collector/app/Dockerfile b/ruby/rails8-sidekiq-opentelemetry/app/Dockerfile similarity index 100% rename from ruby/rails8-sidekiq-collector/app/Dockerfile rename to ruby/rails8-sidekiq-opentelemetry/app/Dockerfile diff --git a/ruby/rails8-sidekiq-collector/app/Gemfile b/ruby/rails8-sidekiq-opentelemetry/app/Gemfile similarity index 100% rename from ruby/rails8-sidekiq-collector/app/Gemfile rename to ruby/rails8-sidekiq-opentelemetry/app/Gemfile diff --git a/ruby/rails8-sidekiq-collector/app/Gemfile.lock b/ruby/rails8-sidekiq-opentelemetry/app/Gemfile.lock similarity index 100% rename from ruby/rails8-sidekiq-collector/app/Gemfile.lock rename to ruby/rails8-sidekiq-opentelemetry/app/Gemfile.lock diff --git a/ruby/rails8-sidekiq-collector/app/README.md b/ruby/rails8-sidekiq-opentelemetry/app/README.md similarity index 100% rename from ruby/rails8-sidekiq-collector/app/README.md rename to ruby/rails8-sidekiq-opentelemetry/app/README.md diff --git a/ruby/rails8-sidekiq-collector/app/Rakefile b/ruby/rails8-sidekiq-opentelemetry/app/Rakefile similarity index 100% rename from ruby/rails8-sidekiq-collector/app/Rakefile rename to ruby/rails8-sidekiq-opentelemetry/app/Rakefile diff --git a/ruby/rails8-sidekiq-collector/app/app/assets/images/.keep b/ruby/rails8-sidekiq-opentelemetry/app/app/assets/images/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/assets/images/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/app/assets/images/.keep diff --git a/ruby/rails8-sidekiq-collector/app/app/assets/stylesheets/application.css b/ruby/rails8-sidekiq-opentelemetry/app/app/assets/stylesheets/application.css similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/assets/stylesheets/application.css rename to ruby/rails8-sidekiq-opentelemetry/app/app/assets/stylesheets/application.css diff --git a/ruby/rails8-sidekiq-collector/app/app/controllers/application_controller.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/controllers/application_controller.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/controllers/application_controller.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/controllers/application_controller.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/controllers/concerns/.keep b/ruby/rails8-sidekiq-opentelemetry/app/app/controllers/concerns/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/controllers/concerns/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/app/controllers/concerns/.keep diff --git a/ruby/rails8-sidekiq-collector/app/app/controllers/examples_controller.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/controllers/examples_controller.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/controllers/examples_controller.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/controllers/examples_controller.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/controllers/workers_controller.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/controllers/workers_controller.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/controllers/workers_controller.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/controllers/workers_controller.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/helpers/application_helper.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/helpers/application_helper.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/helpers/application_helper.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/helpers/application_helper.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/javascript/application.js b/ruby/rails8-sidekiq-opentelemetry/app/app/javascript/application.js similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/javascript/application.js rename to ruby/rails8-sidekiq-opentelemetry/app/app/javascript/application.js diff --git a/ruby/rails8-sidekiq-collector/app/app/javascript/controllers/application.js b/ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/application.js similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/javascript/controllers/application.js rename to ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/application.js diff --git a/ruby/rails8-sidekiq-collector/app/app/javascript/controllers/hello_controller.js b/ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/hello_controller.js similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/javascript/controllers/hello_controller.js rename to ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/hello_controller.js diff --git a/ruby/rails8-sidekiq-collector/app/app/javascript/controllers/index.js b/ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/index.js similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/javascript/controllers/index.js rename to ruby/rails8-sidekiq-opentelemetry/app/app/javascript/controllers/index.js diff --git a/ruby/rails8-sidekiq-collector/app/app/jobs/application_job.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/jobs/application_job.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/jobs/application_job.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/jobs/application_job.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/mailers/application_mailer.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/mailers/application_mailer.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/mailers/application_mailer.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/mailers/application_mailer.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/mailers/error_mailer.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/mailers/error_mailer.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/mailers/error_mailer.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/mailers/error_mailer.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/mailers/performance_mailer.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/mailers/performance_mailer.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/mailers/performance_mailer.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/mailers/performance_mailer.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/models/application_record.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/models/application_record.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/models/application_record.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/models/application_record.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/models/concerns/.keep b/ruby/rails8-sidekiq-opentelemetry/app/app/models/concerns/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/models/concerns/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/app/models/concerns/.keep diff --git a/ruby/rails8-sidekiq-collector/app/app/views/examples/index.html.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/examples/index.html.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/examples/index.html.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/examples/index.html.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/examples/slow.html.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/examples/slow.html.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/examples/slow.html.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/examples/slow.html.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/layouts/application.html.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/application.html.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/layouts/application.html.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/application.html.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/layouts/mailer.html.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/mailer.html.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/layouts/mailer.html.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/mailer.html.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/layouts/mailer.text.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/mailer.text.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/layouts/mailer.text.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/layouts/mailer.text.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/pwa/manifest.json.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/pwa/manifest.json.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/pwa/manifest.json.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/pwa/manifest.json.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/views/pwa/service-worker.js b/ruby/rails8-sidekiq-opentelemetry/app/app/views/pwa/service-worker.js similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/pwa/service-worker.js rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/pwa/service-worker.js diff --git a/ruby/rails8-sidekiq-collector/app/app/views/workers/index.html.erb b/ruby/rails8-sidekiq-opentelemetry/app/app/views/workers/index.html.erb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/views/workers/index.html.erb rename to ruby/rails8-sidekiq-opentelemetry/app/app/views/workers/index.html.erb diff --git a/ruby/rails8-sidekiq-collector/app/app/workers/active_job_error_worker.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/workers/active_job_error_worker.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/workers/active_job_error_worker.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/workers/active_job_error_worker.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/workers/active_job_performance_worker.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/workers/active_job_performance_worker.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/workers/active_job_performance_worker.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/workers/active_job_performance_worker.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/workers/error_worker.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/workers/error_worker.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/workers/error_worker.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/workers/error_worker.rb diff --git a/ruby/rails8-sidekiq-collector/app/app/workers/performance_worker.rb b/ruby/rails8-sidekiq-opentelemetry/app/app/workers/performance_worker.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/app/workers/performance_worker.rb rename to ruby/rails8-sidekiq-opentelemetry/app/app/workers/performance_worker.rb diff --git a/ruby/rails8-sidekiq-collector/app/bin/brakeman b/ruby/rails8-sidekiq-opentelemetry/app/bin/brakeman similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/brakeman rename to ruby/rails8-sidekiq-opentelemetry/app/bin/brakeman diff --git a/ruby/rails8-sidekiq-collector/app/bin/bundle b/ruby/rails8-sidekiq-opentelemetry/app/bin/bundle similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/bundle rename to ruby/rails8-sidekiq-opentelemetry/app/bin/bundle diff --git a/ruby/rails8-sidekiq-collector/app/bin/dev b/ruby/rails8-sidekiq-opentelemetry/app/bin/dev similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/dev rename to ruby/rails8-sidekiq-opentelemetry/app/bin/dev diff --git a/ruby/rails8-sidekiq-collector/app/bin/docker-entrypoint b/ruby/rails8-sidekiq-opentelemetry/app/bin/docker-entrypoint similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/docker-entrypoint rename to ruby/rails8-sidekiq-opentelemetry/app/bin/docker-entrypoint diff --git a/ruby/rails8-sidekiq-collector/app/bin/importmap b/ruby/rails8-sidekiq-opentelemetry/app/bin/importmap similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/importmap rename to ruby/rails8-sidekiq-opentelemetry/app/bin/importmap diff --git a/ruby/rails8-sidekiq-collector/app/bin/jobs b/ruby/rails8-sidekiq-opentelemetry/app/bin/jobs similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/jobs rename to ruby/rails8-sidekiq-opentelemetry/app/bin/jobs diff --git a/ruby/rails8-sidekiq-collector/app/bin/kamal b/ruby/rails8-sidekiq-opentelemetry/app/bin/kamal similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/kamal rename to ruby/rails8-sidekiq-opentelemetry/app/bin/kamal diff --git a/ruby/rails8-sidekiq-collector/app/bin/rails b/ruby/rails8-sidekiq-opentelemetry/app/bin/rails similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/rails rename to ruby/rails8-sidekiq-opentelemetry/app/bin/rails diff --git a/ruby/rails8-sidekiq-collector/app/bin/rake b/ruby/rails8-sidekiq-opentelemetry/app/bin/rake similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/rake rename to ruby/rails8-sidekiq-opentelemetry/app/bin/rake diff --git a/ruby/rails8-sidekiq-collector/app/bin/rubocop b/ruby/rails8-sidekiq-opentelemetry/app/bin/rubocop similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/rubocop rename to ruby/rails8-sidekiq-opentelemetry/app/bin/rubocop diff --git a/ruby/rails8-sidekiq-collector/app/bin/setup b/ruby/rails8-sidekiq-opentelemetry/app/bin/setup similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/setup rename to ruby/rails8-sidekiq-opentelemetry/app/bin/setup diff --git a/ruby/rails8-sidekiq-collector/app/bin/thrust b/ruby/rails8-sidekiq-opentelemetry/app/bin/thrust similarity index 100% rename from ruby/rails8-sidekiq-collector/app/bin/thrust rename to ruby/rails8-sidekiq-opentelemetry/app/bin/thrust diff --git a/ruby/rails8-sidekiq-collector/app/config.ru b/ruby/rails8-sidekiq-opentelemetry/app/config.ru similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config.ru rename to ruby/rails8-sidekiq-opentelemetry/app/config.ru diff --git a/ruby/rails8-sidekiq-collector/app/config/application.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/application.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/application.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/application.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/appsignal.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/appsignal.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/appsignal.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/appsignal.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/boot.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/boot.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/boot.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/boot.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/cable.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/cable.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/cable.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/cable.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/cache.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/cache.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/cache.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/cache.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/credentials.yml.enc b/ruby/rails8-sidekiq-opentelemetry/app/config/credentials.yml.enc similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/credentials.yml.enc rename to ruby/rails8-sidekiq-opentelemetry/app/config/credentials.yml.enc diff --git a/ruby/rails8-sidekiq-collector/app/config/database.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/database.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/database.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/database.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/deploy.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/deploy.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/deploy.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/deploy.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/environment.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/environment.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/environment.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/environment.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/environments/development.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/environments/development.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/environments/development.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/environments/development.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/environments/production.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/environments/production.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/environments/production.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/environments/production.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/environments/test.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/environments/test.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/environments/test.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/environments/test.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/importmap.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/importmap.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/importmap.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/importmap.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/initializers/assets.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/initializers/assets.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/initializers/assets.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/initializers/assets.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/initializers/content_security_policy.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/initializers/content_security_policy.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/initializers/content_security_policy.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/initializers/content_security_policy.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/initializers/filter_parameter_logging.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/initializers/filter_parameter_logging.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/initializers/filter_parameter_logging.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/initializers/filter_parameter_logging.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/initializers/inflections.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/initializers/inflections.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/initializers/inflections.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/initializers/inflections.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/initializers/opentelemetry.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/initializers/opentelemetry.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/initializers/opentelemetry.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/initializers/opentelemetry.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/locales/en.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/locales/en.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/locales/en.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/locales/en.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/puma.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/puma.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/puma.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/puma.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/queue.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/queue.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/queue.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/queue.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/recurring.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/recurring.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/recurring.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/recurring.yml diff --git a/ruby/rails8-sidekiq-collector/app/config/routes.rb b/ruby/rails8-sidekiq-opentelemetry/app/config/routes.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/routes.rb rename to ruby/rails8-sidekiq-opentelemetry/app/config/routes.rb diff --git a/ruby/rails8-sidekiq-collector/app/config/storage.yml b/ruby/rails8-sidekiq-opentelemetry/app/config/storage.yml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/config/storage.yml rename to ruby/rails8-sidekiq-opentelemetry/app/config/storage.yml diff --git a/ruby/rails8-sidekiq-collector/app/db/cable_schema.rb b/ruby/rails8-sidekiq-opentelemetry/app/db/cable_schema.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/db/cable_schema.rb rename to ruby/rails8-sidekiq-opentelemetry/app/db/cable_schema.rb diff --git a/ruby/rails8-sidekiq-collector/app/db/cache_schema.rb b/ruby/rails8-sidekiq-opentelemetry/app/db/cache_schema.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/db/cache_schema.rb rename to ruby/rails8-sidekiq-opentelemetry/app/db/cache_schema.rb diff --git a/ruby/rails8-sidekiq-collector/app/db/queue_schema.rb b/ruby/rails8-sidekiq-opentelemetry/app/db/queue_schema.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/db/queue_schema.rb rename to ruby/rails8-sidekiq-opentelemetry/app/db/queue_schema.rb diff --git a/ruby/rails8-sidekiq-collector/app/db/schema.rb b/ruby/rails8-sidekiq-opentelemetry/app/db/schema.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/db/schema.rb rename to ruby/rails8-sidekiq-opentelemetry/app/db/schema.rb diff --git a/ruby/rails8-sidekiq-collector/app/db/seeds.rb b/ruby/rails8-sidekiq-opentelemetry/app/db/seeds.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/db/seeds.rb rename to ruby/rails8-sidekiq-opentelemetry/app/db/seeds.rb diff --git a/ruby/rails8-sidekiq-collector/app/lib/tasks/.keep b/ruby/rails8-sidekiq-opentelemetry/app/lib/tasks/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/lib/tasks/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/lib/tasks/.keep diff --git a/ruby/rails8-sidekiq-collector/app/log/.keep b/ruby/rails8-sidekiq-opentelemetry/app/log/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/log/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/log/.keep diff --git a/ruby/rails8-sidekiq-collector/app/processmon.toml b/ruby/rails8-sidekiq-opentelemetry/app/processmon.toml similarity index 100% rename from ruby/rails8-sidekiq-collector/app/processmon.toml rename to ruby/rails8-sidekiq-opentelemetry/app/processmon.toml diff --git a/ruby/rails8-sidekiq-collector/app/public/400.html b/ruby/rails8-sidekiq-opentelemetry/app/public/400.html similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/400.html rename to ruby/rails8-sidekiq-opentelemetry/app/public/400.html diff --git a/ruby/rails8-sidekiq-collector/app/public/404.html b/ruby/rails8-sidekiq-opentelemetry/app/public/404.html similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/404.html rename to ruby/rails8-sidekiq-opentelemetry/app/public/404.html diff --git a/ruby/rails8-sidekiq-collector/app/public/406-unsupported-browser.html b/ruby/rails8-sidekiq-opentelemetry/app/public/406-unsupported-browser.html similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/406-unsupported-browser.html rename to ruby/rails8-sidekiq-opentelemetry/app/public/406-unsupported-browser.html diff --git a/ruby/rails8-sidekiq-collector/app/public/422.html b/ruby/rails8-sidekiq-opentelemetry/app/public/422.html similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/422.html rename to ruby/rails8-sidekiq-opentelemetry/app/public/422.html diff --git a/ruby/rails8-sidekiq-collector/app/public/500.html b/ruby/rails8-sidekiq-opentelemetry/app/public/500.html similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/500.html rename to ruby/rails8-sidekiq-opentelemetry/app/public/500.html diff --git a/ruby/rails8-sidekiq-collector/app/public/icon.png b/ruby/rails8-sidekiq-opentelemetry/app/public/icon.png similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/icon.png rename to ruby/rails8-sidekiq-opentelemetry/app/public/icon.png diff --git a/ruby/rails8-sidekiq-collector/app/public/icon.svg b/ruby/rails8-sidekiq-opentelemetry/app/public/icon.svg similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/icon.svg rename to ruby/rails8-sidekiq-opentelemetry/app/public/icon.svg diff --git a/ruby/rails8-sidekiq-collector/app/public/robots.txt b/ruby/rails8-sidekiq-opentelemetry/app/public/robots.txt similarity index 100% rename from ruby/rails8-sidekiq-collector/app/public/robots.txt rename to ruby/rails8-sidekiq-opentelemetry/app/public/robots.txt diff --git a/ruby/rails8-sidekiq-collector/app/script/.keep b/ruby/rails8-sidekiq-opentelemetry/app/script/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/script/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/script/.keep diff --git a/ruby/rails8-sidekiq-collector/app/storage/.keep b/ruby/rails8-sidekiq-opentelemetry/app/storage/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/storage/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/storage/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/application_system_test_case.rb b/ruby/rails8-sidekiq-opentelemetry/app/test/application_system_test_case.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/application_system_test_case.rb rename to ruby/rails8-sidekiq-opentelemetry/app/test/application_system_test_case.rb diff --git a/ruby/rails8-sidekiq-collector/app/test/controllers/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/controllers/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/controllers/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/controllers/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/fixtures/files/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/fixtures/files/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/fixtures/files/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/fixtures/files/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/helpers/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/helpers/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/helpers/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/helpers/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/integration/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/integration/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/integration/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/integration/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/mailers/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/mailers/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/mailers/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/mailers/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/models/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/models/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/models/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/models/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/system/.keep b/ruby/rails8-sidekiq-opentelemetry/app/test/system/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/system/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/test/system/.keep diff --git a/ruby/rails8-sidekiq-collector/app/test/test_helper.rb b/ruby/rails8-sidekiq-opentelemetry/app/test/test_helper.rb similarity index 100% rename from ruby/rails8-sidekiq-collector/app/test/test_helper.rb rename to ruby/rails8-sidekiq-opentelemetry/app/test/test_helper.rb diff --git a/ruby/rails8-sidekiq-collector/app/tmp/.keep b/ruby/rails8-sidekiq-opentelemetry/app/tmp/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/tmp/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/tmp/.keep diff --git a/ruby/rails8-sidekiq-collector/app/tmp/pids/.keep b/ruby/rails8-sidekiq-opentelemetry/app/tmp/pids/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/tmp/pids/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/tmp/pids/.keep diff --git a/ruby/rails8-sidekiq-collector/app/tmp/storage/.keep b/ruby/rails8-sidekiq-opentelemetry/app/tmp/storage/.keep similarity index 100% rename from ruby/rails8-sidekiq-collector/app/tmp/storage/.keep rename to ruby/rails8-sidekiq-opentelemetry/app/tmp/storage/.keep diff --git a/ruby/rails8-sidekiq-collector/commands/console b/ruby/rails8-sidekiq-opentelemetry/commands/console similarity index 100% rename from ruby/rails8-sidekiq-collector/commands/console rename to ruby/rails8-sidekiq-opentelemetry/commands/console diff --git a/ruby/rails8-sidekiq-collector/commands/diagnose b/ruby/rails8-sidekiq-opentelemetry/commands/diagnose similarity index 100% rename from ruby/rails8-sidekiq-collector/commands/diagnose rename to ruby/rails8-sidekiq-opentelemetry/commands/diagnose diff --git a/ruby/rails8-sidekiq-collector/commands/run b/ruby/rails8-sidekiq-opentelemetry/commands/run similarity index 100% rename from ruby/rails8-sidekiq-collector/commands/run rename to ruby/rails8-sidekiq-opentelemetry/commands/run diff --git a/ruby/rails8-sidekiq-collector/docker-compose.yml b/ruby/rails8-sidekiq-opentelemetry/docker-compose.yml similarity index 83% rename from ruby/rails8-sidekiq-collector/docker-compose.yml rename to ruby/rails8-sidekiq-opentelemetry/docker-compose.yml index fa0152b0b..aabf0358a 100644 --- a/ruby/rails8-sidekiq-collector/docker-compose.yml +++ b/ruby/rails8-sidekiq-opentelemetry/docker-compose.yml @@ -19,14 +19,14 @@ services: - ../../appsignal_key.env app: build: . - image: ruby/rails8-sidekiq-collector + image: ruby/rails8-sidekiq-opentelemetry depends_on: - postgres - redis ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/rails8-sidekiq-collector + - APPSIGNAL_APP_NAME=ruby/rails8-sidekiq-opentelemetry - PORT=4001 env_file: - postgres.env @@ -43,5 +43,5 @@ services: depends_on: - app environment: - - APP_NAME=ruby/rails8-sidekiq-collector + - APP_NAME=ruby/rails8-sidekiq-opentelemetry - APP_URL=http://app:4001 diff --git a/ruby/rails8-sidekiq-collector/postgres.env b/ruby/rails8-sidekiq-opentelemetry/postgres.env similarity index 100% rename from ruby/rails8-sidekiq-collector/postgres.env rename to ruby/rails8-sidekiq-opentelemetry/postgres.env diff --git a/ruby/rails8-sidekiq-collector/redis.env b/ruby/rails8-sidekiq-opentelemetry/redis.env similarity index 100% rename from ruby/rails8-sidekiq-collector/redis.env rename to ruby/rails8-sidekiq-opentelemetry/redis.env diff --git a/ruby/rails8-sidekiq/app/Gemfile b/ruby/rails8-sidekiq/app/Gemfile index 74bf41a74..a8466e00a 100644 --- a/ruby/rails8-sidekiq/app/Gemfile +++ b/ruby/rails8-sidekiq/app/Gemfile @@ -66,6 +66,16 @@ gem "sidekiq", "8.0.0" gem "appsignal", :path => "/integration" gem "ownership" +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + # Enable these lines when testing semantic logger # gem "rails_semantic_logger", "4.17.0" # gem "semantic_logger", "4.16.1" diff --git a/ruby/rails8-sidekiq/app/Gemfile.lock b/ruby/rails8-sidekiq/app/Gemfile.lock index a7f6d157b..3a4d4df9c 100644 --- a/ruby/rails8-sidekiq/app/Gemfile.lock +++ b/ruby/rails8-sidekiq/app/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: /integration specs: - appsignal (4.7.5) + appsignal (4.8.0) logger rack (>= 2.0.0) @@ -121,6 +121,35 @@ GEM raabro (~> 1.4) globalid (1.2.1) activesupport (>= 6.1) + google-protobuf (4.33.6) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.6-x86_64-linux-musl) + bigdecimal + rake (>= 13) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.7) concurrent-ruby (~> 1.0) importmap-rails (2.0.3) @@ -197,6 +226,57 @@ GEM racc (~> 1.4) nokogiri (1.18.7-x86_64-linux-musl) racc (~> 1.4) + opentelemetry-api (1.10.0) + logger + opentelemetry-common (0.25.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.34.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.5.1) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.9.1) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.6.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.6.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.14.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.6.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.12.0) + logger + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.41.0) + opentelemetry-api (~> 1.0) ostruct (0.6.1) ownership (0.4.0) parallel (1.26.3) @@ -397,6 +477,12 @@ DEPENDENCIES importmap-rails jbuilder kamal + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) ownership propshaft puma (>= 5.0) diff --git a/ruby/rails8-sidekiq/docker-compose.agent.yml b/ruby/rails8-sidekiq/docker-compose.agent.yml new file mode 100644 index 000000000..96d3bc0a6 --- /dev/null +++ b/ruby/rails8-sidekiq/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rails8-sidekiq diff --git a/ruby/rails8-sidekiq/docker-compose.collector.yml b/ruby/rails8-sidekiq/docker-compose.collector.yml new file mode 100644 index 000000000..e35609e07 --- /dev/null +++ b/ruby/rails8-sidekiq/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/rails8-sidekiq-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/rails8-sidekiq/docker-compose.yml b/ruby/rails8-sidekiq/docker-compose.shared.yml similarity index 94% rename from ruby/rails8-sidekiq/docker-compose.yml rename to ruby/rails8-sidekiq/docker-compose.shared.yml index bd369bdbe..bb1921af0 100644 --- a/ruby/rails8-sidekiq/docker-compose.yml +++ b/ruby/rails8-sidekiq/docker-compose.shared.yml @@ -19,7 +19,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/rails8-sidekiq - PORT=4001 env_file: - postgres.env diff --git a/ruby/sinatra-alpine/app/Gemfile b/ruby/sinatra-alpine/app/Gemfile index cd19322ee..3b48a1f44 100644 --- a/ruby/sinatra-alpine/app/Gemfile +++ b/ruby/sinatra-alpine/app/Gemfile @@ -3,6 +3,17 @@ source "https://rubygems.org" gem "sinatra" gem "webrick" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "activesupport", "5.2.0" gem "actionmailer", "5.2.0" diff --git a/ruby/sinatra-alpine/app/Gemfile.lock b/ruby/sinatra-alpine/app/Gemfile.lock index 138bcfd8e..0b2b66fc4 100644 --- a/ruby/sinatra-alpine/app/Gemfile.lock +++ b/ruby/sinatra-alpine/app/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: /integration specs: - appsignal (3.5.0) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ @@ -34,6 +35,7 @@ GEM i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) + bigdecimal (4.1.2) builder (3.2.4) concurrent-ruby (1.2.2) crass (1.0.6) @@ -44,12 +46,18 @@ GEM erubi (1.12.0) globalid (1.1.0) activesupport (>= 5.0) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.1) concurrent-ruby (~> 1.0) io-console (0.7.0) irb (1.10.1) rdoc reline (>= 0.3.8) + logger (1.7.0) loofah (2.21.3) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -73,6 +81,56 @@ GEM net-protocol nokogiri (1.15.2-aarch64-linux) racc (~> 1.4) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) psych (5.1.1.1) stringio racc (1.7.1) @@ -87,6 +145,7 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) + rake (13.4.2) rdoc (6.6.1) psych (>= 4.0.0) reline (0.4.1) @@ -113,6 +172,12 @@ DEPENDENCIES activesupport (= 5.2.0) appsignal! debug + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) sinatra webrick diff --git a/ruby/sinatra-alpine/docker-compose.agent.yml b/ruby/sinatra-alpine/docker-compose.agent.yml new file mode 100644 index 000000000..55adf789b --- /dev/null +++ b/ruby/sinatra-alpine/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-sinatra-alpine diff --git a/ruby/sinatra-alpine/docker-compose.collector.yml b/ruby/sinatra-alpine/docker-compose.collector.yml new file mode 100644 index 000000000..953022b24 --- /dev/null +++ b/ruby/sinatra-alpine/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-sinatra-alpine-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/sinatra-alpine/docker-compose.yml b/ruby/sinatra-alpine/docker-compose.shared.yml similarity index 92% rename from ruby/sinatra-alpine/docker-compose.yml rename to ruby/sinatra-alpine/docker-compose.shared.yml index aef3a97d9..d43a0f530 100644 --- a/ruby/sinatra-alpine/docker-compose.yml +++ b/ruby/sinatra-alpine/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-sinatra-alpine - PORT=4001 env_file: - ../../appsignal.env diff --git a/ruby/sinatra-gvltools/app/Gemfile b/ruby/sinatra-gvltools/app/Gemfile index 4af487fb7..0a29ec94a 100644 --- a/ruby/sinatra-gvltools/app/Gemfile +++ b/ruby/sinatra-gvltools/app/Gemfile @@ -3,6 +3,17 @@ source "https://rubygems.org" gem "sinatra" gem "webrick" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "activesupport", "5.2.0" gem "actionmailer", "5.2.0" gem "gvltools", "0.2.0" diff --git a/ruby/sinatra-gvltools/docker-compose.agent.yml b/ruby/sinatra-gvltools/docker-compose.agent.yml new file mode 100644 index 000000000..aaa1fd599 --- /dev/null +++ b/ruby/sinatra-gvltools/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-sinatra-gvltools diff --git a/ruby/sinatra-gvltools/docker-compose.collector.yml b/ruby/sinatra-gvltools/docker-compose.collector.yml new file mode 100644 index 000000000..684e0f17e --- /dev/null +++ b/ruby/sinatra-gvltools/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby-sinatra-gvltools-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/sinatra-gvltools/docker-compose.yml b/ruby/sinatra-gvltools/docker-compose.shared.yml similarity index 91% rename from ruby/sinatra-gvltools/docker-compose.yml rename to ruby/sinatra-gvltools/docker-compose.shared.yml index 0207fa5e1..d9f5e978b 100644 --- a/ruby/sinatra-gvltools/docker-compose.yml +++ b/ruby/sinatra-gvltools/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby-sinatra-gvltools - PORT=4001 env_file: - ../../appsignal.env diff --git a/ruby/webmachine1/app/Gemfile b/ruby/webmachine1/app/Gemfile index 470d7ba16..6cfcb6242 100644 --- a/ruby/webmachine1/app/Gemfile +++ b/ruby/webmachine1/app/Gemfile @@ -4,5 +4,16 @@ gem "webmachine", "~> 1.6" gem "i18n", "~> 0.0" # Lock to pre 1.x version as it's not compatible gem "webrick" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "pry" gem "rackup" diff --git a/ruby/webmachine1/app/Gemfile.lock b/ruby/webmachine1/app/Gemfile.lock index 6e1ffd11d..1499a6a36 100644 --- a/ruby/webmachine1/app/Gemfile.lock +++ b/ruby/webmachine1/app/Gemfile.lock @@ -1,19 +1,80 @@ PATH remote: /integration specs: - appsignal (3.9.3) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ specs: as-notifications (1.0.2) + bigdecimal (4.1.2) coderay (1.1.3) concurrent-ruby (1.1.8) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (0.9.5) concurrent-ruby (~> 1.0) + logger (1.7.0) method_source (1.0.0) multi_json (1.15.0) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pry (0.14.0) coderay (~> 1.1) method_source (~> 1.0) @@ -21,6 +82,7 @@ GEM rackup (2.0.0) rack (>= 3) webrick + rake (13.4.2) webmachine (1.6.0) as-notifications (~> 1.0) i18n (>= 0.4.0) @@ -34,6 +96,12 @@ PLATFORMS DEPENDENCIES appsignal! i18n (~> 0.0) + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pry rackup webmachine (~> 1.6) diff --git a/ruby/webmachine1/docker-compose.agent.yml b/ruby/webmachine1/docker-compose.agent.yml new file mode 100644 index 000000000..bdbde17ae --- /dev/null +++ b/ruby/webmachine1/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/webmachine1 diff --git a/ruby/webmachine1/docker-compose.collector.yml b/ruby/webmachine1/docker-compose.collector.yml new file mode 100644 index 000000000..c4c726055 --- /dev/null +++ b/ruby/webmachine1/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/webmachine1-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/webmachine1/docker-compose.yml b/ruby/webmachine1/docker-compose.shared.yml similarity index 92% rename from ruby/webmachine1/docker-compose.yml rename to ruby/webmachine1/docker-compose.shared.yml index 5ec129ff8..abb94ccb1 100644 --- a/ruby/webmachine1/docker-compose.yml +++ b/ruby/webmachine1/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/webmachine1 - PORT=4001 env_file: - ../../appsignal.env diff --git a/ruby/webmachine2/app/Gemfile b/ruby/webmachine2/app/Gemfile index 94e4e372e..d9638bf0a 100644 --- a/ruby/webmachine2/app/Gemfile +++ b/ruby/webmachine2/app/Gemfile @@ -3,5 +3,16 @@ source "https://rubygems.org" gem "webmachine", "~> 2.0" gem "webrick" gem "appsignal", :path => "/integration" + +# OpenTelemetry gems for AppSignal collector mode. Loaded only when +# APPSIGNAL_COLLECTOR_ENDPOINT is set; keep versions in sync with appsignal's +# lib/appsignal/opentelemetry/dependencies.rb. +gem "opentelemetry-sdk", ">= 1.8.0" +gem "opentelemetry-metrics-sdk", ">= 0.7.1" +gem "opentelemetry-logs-sdk", ">= 0.2.0" +gem "opentelemetry-exporter-otlp", ">= 0.30.0" +gem "opentelemetry-exporter-otlp-metrics", ">= 0.4.0" +gem "opentelemetry-exporter-otlp-logs", ">= 0.2.0" + gem "pry" gem "rackup" diff --git a/ruby/webmachine2/app/Gemfile.lock b/ruby/webmachine2/app/Gemfile.lock index 5ea4c26a5..e0414c5cb 100644 --- a/ruby/webmachine2/app/Gemfile.lock +++ b/ruby/webmachine2/app/Gemfile.lock @@ -1,20 +1,81 @@ PATH remote: /integration specs: - appsignal (3.9.3) - rack + appsignal (4.8.0) + logger + rack (>= 2.0.0) GEM remote: https://rubygems.org/ specs: as-notifications (1.0.2) base64 (0.2.0) + bigdecimal (4.1.2) coderay (1.1.3) concurrent-ruby (1.3.3) + google-protobuf (4.35.1-aarch64-linux-gnu) + bigdecimal + rake (~> 13.3) + google-protobuf (4.35.1-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + googleapis-common-protos-types (1.23.0) + google-protobuf (~> 4.26) i18n (1.14.5) concurrent-ruby (~> 1.0) + logger (1.7.0) method_source (1.0.0) multi_json (1.15.0) + opentelemetry-api (1.8.0) + logger + opentelemetry-common (0.23.0) + opentelemetry-api (~> 1.0) + opentelemetry-exporter-otlp (0.32.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-sdk (~> 1.10) + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-logs (0.3.0) + google-protobuf (>= 3.18) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-logs-api (~> 0.1) + opentelemetry-logs-sdk (~> 0.1) + opentelemetry-sdk + opentelemetry-semantic_conventions + opentelemetry-exporter-otlp-metrics (0.7.0) + google-protobuf (>= 3.18, < 5.0) + googleapis-common-protos-types (~> 1.3) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-metrics-sdk (~> 0.5) + opentelemetry-sdk (~> 1.2) + opentelemetry-semantic_conventions + opentelemetry-logs-api (0.2.0) + opentelemetry-api (~> 1.0) + opentelemetry-logs-sdk (0.4.0) + opentelemetry-api (~> 1.2) + opentelemetry-logs-api (~> 0.1) + opentelemetry-sdk (~> 1.3) + opentelemetry-metrics-api (0.4.0) + opentelemetry-api (~> 1.0) + opentelemetry-metrics-sdk (0.12.0) + opentelemetry-api (~> 1.1) + opentelemetry-metrics-api (~> 0.2) + opentelemetry-sdk (~> 1.2) + opentelemetry-registry (0.4.0) + opentelemetry-api (~> 1.1) + opentelemetry-sdk (1.10.0) + opentelemetry-api (~> 1.1) + opentelemetry-common (~> 0.20) + opentelemetry-registry (~> 0.2) + opentelemetry-semantic_conventions + opentelemetry-semantic_conventions (1.36.0) + opentelemetry-api (~> 1.0) pry (0.14.0) coderay (~> 1.1) method_source (~> 1.0) @@ -22,6 +83,7 @@ GEM rackup (2.0.0) rack (>= 3) webrick + rake (13.4.2) webmachine (2.0.1) as-notifications (>= 1.0.2, < 2.0) base64 @@ -35,6 +97,12 @@ PLATFORMS DEPENDENCIES appsignal! + opentelemetry-exporter-otlp (>= 0.30.0) + opentelemetry-exporter-otlp-logs (>= 0.2.0) + opentelemetry-exporter-otlp-metrics (>= 0.4.0) + opentelemetry-logs-sdk (>= 0.2.0) + opentelemetry-metrics-sdk (>= 0.7.1) + opentelemetry-sdk (>= 1.8.0) pry rackup webmachine (~> 2.0) diff --git a/ruby/webmachine2/docker-compose.agent.yml b/ruby/webmachine2/docker-compose.agent.yml new file mode 100644 index 000000000..8b7d8c5c5 --- /dev/null +++ b/ruby/webmachine2/docker-compose.agent.yml @@ -0,0 +1,7 @@ +include: + - path: docker-compose.shared.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/webmachine2 diff --git a/ruby/webmachine2/docker-compose.collector.yml b/ruby/webmachine2/docker-compose.collector.yml new file mode 100644 index 000000000..726558df3 --- /dev/null +++ b/ruby/webmachine2/docker-compose.collector.yml @@ -0,0 +1,9 @@ +include: + - path: docker-compose.shared.yml + - path: ../../support/collector/docker-compose.yml + +services: + app: + environment: + - APPSIGNAL_APP_NAME=ruby/webmachine2-collector + - APPSIGNAL_COLLECTOR_ENDPOINT=http://appsignal-collector:8099 diff --git a/ruby/webmachine2/docker-compose.yml b/ruby/webmachine2/docker-compose.shared.yml similarity index 92% rename from ruby/webmachine2/docker-compose.yml rename to ruby/webmachine2/docker-compose.shared.yml index 6a25a6936..0ffabde9a 100644 --- a/ruby/webmachine2/docker-compose.yml +++ b/ruby/webmachine2/docker-compose.shared.yml @@ -10,7 +10,6 @@ services: ports: - "4001:4001" environment: - - APPSIGNAL_APP_NAME=ruby/webmachine2 - PORT=4001 env_file: - ../../appsignal.env diff --git a/support/collector/docker-compose.yml b/support/collector/docker-compose.yml new file mode 100644 index 000000000..1966f205d --- /dev/null +++ b/support/collector/docker-compose.yml @@ -0,0 +1,8 @@ +services: + appsignal-collector: + image: appsignal/collector:latest + environment: + - APPSIGNAL_LOG_LEVEL=trace + env_file: + - ../../appsignal.env + - ../../appsignal_key.env diff --git a/support/templates/README.md.erb b/support/templates/README.md.erb index 3550859b6..375eb439c 100644 --- a/support/templates/README.md.erb +++ b/support/templates/README.md.erb @@ -37,6 +37,20 @@ page and follows a random link every 5 seconds): <% @bot_apps.each do |app | %>rake app=<%= app %> app:bot <% end %>``` +Each test setup can be run in one or more "modes", selected with the `mode=` +parameter. A mode is defined by a `docker-compose..yml` file in the setup +directory. When no `mode=` is given, the setup runs in its default mode (its +plain `docker-compose.yml`), or in `agent` mode when it has no default. + +Most setups run their integration in "agent mode". Some also support "collector +mode", in which the integration sends data to AppSignal through a local +AppSignal collector over OpenTelemetry. Pass `mode=collector` to any command. +The setups that support collector mode: + +``` +<% @collector_apps.each do |app | %>rake app=<%= app %> mode=collector app:up +<% end %>``` + To restart the app container after making changes to an integration: ```