node-integration-tests: port database, cache and messaging suites to span streaming

Open
#24,137 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
docker-compose, kafka, mongodb, mysql, node.js, postgresql, rabbitmq, redis, typescript

Research direction

Start with the parent issue's porting recipe, then inspect the listed tracing suites and their docker-compose test entry points. Update the span and operation assertions, fold the postgres-streamed twins back into their base suites, and remove the STREAMED lifecycle switch where specified. Run the affected integration suites and confirm all listed database, cache, and messaging tests pass with streaming enabled.

Written by the indexing model from the issue text.

Description

javascript Task

Follow the porting recipe in the parent issue.

Most of these run under docker compose, so plan for a slow feedback loop. db span names became low cardinality and redis spans now start as cache spans, so nearly every name and op assertion changes.

Suites

  • Postgres: tracing/postgres, tracing/postgresjs
  • MySQL: tracing/mysql, tracing/mysql2, tracing/mysql2-tracing-channel
  • Mongo: tracing/mongodb, tracing/mongodb-v4 to -v7, tracing/mongoose, tracing/mongoose-v5 to -v9, tracing/mongoose-tracing-channel
  • Prisma: tracing/prisma-orm-v5, -v6, -v7
  • Other: tracing/knex/mysql2, tracing/knex/pg, tracing/tedious, tracing/genericPool, tracing/genericPool-v2, tracing/dataloader
  • Cache: tracing/redis, tracing/redis-cache, tracing/redis-dc, tracing/ioredis-dc
  • Messaging: tracing/kafkajs, tracing/amqplib

Twins to fold back

  • tracing/postgres-streamed into tracing/postgres
  • tracing/postgresjs-streamed into tracing/postgresjs

Env-gated suites

13 of these use traceLifecycle: process.env.STREAMED === 'true' ? 'stream' : 'static' (all the mongo, mongoose, redis and ioredis suites plus tracing/mysql and tracing/dataloader). Drop the switch and keep 'stream'.

Dominant language
TypeScript
Stars
8.7k
Forks
1.9k
Avg merge
1d 18h
Merged PRs (30d)
543

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from getsentry/sentry-javascript

All issues in getsentry/sentry-javascript

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.