From 7698c444f92f7ecafa4d81e8ee74237cf0f5952d Mon Sep 17 00:00:00 2001 From: isaacs Date: Fri, 10 Jul 2026 16:34:45 -0700 Subject: [PATCH] chore: stub modules for orchestrion configs, channels As several of us focus on porting integrations to orchestrion, each new addition to the barrel file causes conflicts in all pending PRs. Stub out the remaining TODO instrumentations, and sort them alphabetically, to reduce the incidence of conflicts and allow us to more swiftly get these all landed. Koa, NestJS, and AWS are intentionally *not* included, because PRs are already in progress to instrument those, and so they can fit themselves into the list easily enough once this lands (or this patch can be updated if those land first). --- .../server-utils/src/orchestrion/channels.ts | 73 +++++++++++++------ .../src/orchestrion/config/dataloader.ts | 6 ++ .../src/orchestrion/config/firebase.ts | 6 ++ .../src/orchestrion/config/generic-pool.ts | 6 ++ .../src/orchestrion/config/index.ts | 68 ++++++++++++----- .../src/orchestrion/config/knex.ts | 6 ++ .../src/orchestrion/config/langchain.ts | 6 ++ .../src/orchestrion/config/langgraph.ts | 6 ++ .../src/orchestrion/config/mongodb.ts | 6 ++ .../src/orchestrion/config/mongoose.ts | 6 ++ .../src/orchestrion/config/mysql2.ts | 6 ++ .../src/orchestrion/config/prisma.ts | 6 ++ .../src/orchestrion/config/react-router.ts | 6 ++ .../src/orchestrion/config/remix.ts | 6 ++ .../src/orchestrion/config/tedious.ts | 6 ++ 15 files changed, 177 insertions(+), 42 deletions(-) create mode 100644 packages/server-utils/src/orchestrion/config/dataloader.ts create mode 100644 packages/server-utils/src/orchestrion/config/firebase.ts create mode 100644 packages/server-utils/src/orchestrion/config/generic-pool.ts create mode 100644 packages/server-utils/src/orchestrion/config/knex.ts create mode 100644 packages/server-utils/src/orchestrion/config/langchain.ts create mode 100644 packages/server-utils/src/orchestrion/config/langgraph.ts create mode 100644 packages/server-utils/src/orchestrion/config/mongodb.ts create mode 100644 packages/server-utils/src/orchestrion/config/mongoose.ts create mode 100644 packages/server-utils/src/orchestrion/config/mysql2.ts create mode 100644 packages/server-utils/src/orchestrion/config/prisma.ts create mode 100644 packages/server-utils/src/orchestrion/config/react-router.ts create mode 100644 packages/server-utils/src/orchestrion/config/remix.ts create mode 100644 packages/server-utils/src/orchestrion/config/tedious.ts diff --git a/packages/server-utils/src/orchestrion/channels.ts b/packages/server-utils/src/orchestrion/channels.ts index 3d56b43b29d8..26f10d2fd2c1 100644 --- a/packages/server-utils/src/orchestrion/channels.ts +++ b/packages/server-utils/src/orchestrion/channels.ts @@ -1,18 +1,31 @@ -import { mysqlChannels } from './config/mysql'; -import { lruMemoizerChannels } from './config/lru-memoizer'; -import { ioredisChannels } from './config/ioredis'; -import { pgChannels } from './config/pg'; -import { postgresJsChannels } from './config/postgres'; -import { openaiChannels } from './config/openai'; -import { anthropicAiChannels } from './config/anthropic-ai'; -import { googleGenAiChannels } from './config/google-genai'; -import { vercelAiChannels } from './config/vercel-ai'; import { amqplibChannels } from './config/amqplib'; -import { hapiChannels } from './config/hapi'; -import { redisChannels } from './config/redis'; +import { anthropicAiChannels } from './config/anthropic-ai'; +import { dataloaderChannels } from './config/dataloader'; import { expressChannels } from './config/express'; +import { firebaseChannels } from './config/firebase'; +import { genericPoolChannels } from './config/generic-pool'; +import { googleGenAiChannels } from './config/google-genai'; import { graphqlChannels } from './config/graphql'; +import { hapiChannels } from './config/hapi'; +import { ioredisChannels } from './config/ioredis'; import { kafkajsChannels } from './config/kafkajs'; +import { knexChannels } from './config/knex'; +import { langchainChannels } from './config/langchain'; +import { langgraphChannels } from './config/langgraph'; +import { lruMemoizerChannels } from './config/lru-memoizer'; +import { mongodbChannels } from './config/mongodb'; +import { mongooseChannels } from './config/mongoose'; +import { mysqlChannels } from './config/mysql'; +import { mysql2Channels } from './config/mysql2'; +import { openaiChannels } from './config/openai'; +import { pgChannels } from './config/pg'; +import { postgresJsChannels } from './config/postgres'; +import { prismaChannels } from './config/prisma'; +import { reactRouterChannels } from './config/react-router'; +import { redisChannels } from './config/redis'; +import { remixChannels } from './config/remix'; +import { tediousChannels } from './config/tedious'; +import { vercelAiChannels } from './config/vercel-ai'; /** * Fully-qualified `diagnostics_channel` names that orchestrion publishes to. @@ -26,23 +39,39 @@ import { kafkajsChannels } from './config/kafkajs'; * prefixed string from this map; the config files set only the unprefixed * suffix in `channelName`. Keeping both pieces in one file is what guarantees * they don't drift apart and silently stop firing. + * + * Kept sorted alphabetically by module so concurrent additions insert at different + * points rather than all appending to the end (fewer merge conflicts). */ export const CHANNELS = { - ...mysqlChannels, - ...lruMemoizerChannels, - ...ioredisChannels, - ...pgChannels, - ...postgresJsChannels, - ...openaiChannels, - ...anthropicAiChannels, - ...googleGenAiChannels, - ...vercelAiChannels, ...amqplibChannels, - ...hapiChannels, - ...redisChannels, + ...anthropicAiChannels, + ...dataloaderChannels, ...expressChannels, + ...firebaseChannels, + ...genericPoolChannels, + ...googleGenAiChannels, ...graphqlChannels, + ...hapiChannels, + ...ioredisChannels, ...kafkajsChannels, + ...knexChannels, + ...langchainChannels, + ...langgraphChannels, + ...lruMemoizerChannels, + ...mongodbChannels, + ...mongooseChannels, + ...mysqlChannels, + ...mysql2Channels, + ...openaiChannels, + ...pgChannels, + ...postgresJsChannels, + ...prismaChannels, + ...reactRouterChannels, + ...redisChannels, + ...remixChannels, + ...tediousChannels, + ...vercelAiChannels, } as const; export type ChannelName = (typeof CHANNELS)[keyof typeof CHANNELS]; diff --git a/packages/server-utils/src/orchestrion/config/dataloader.ts b/packages/server-utils/src/orchestrion/config/dataloader.ts new file mode 100644 index 000000000000..d70c58ae9a91 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/dataloader.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `dataloader` orchestrion integration (ports `@opentelemetry/instrumentation-dataloader`). +export const dataloaderConfig: InstrumentationConfig[] = []; + +export const dataloaderChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/firebase.ts b/packages/server-utils/src/orchestrion/config/firebase.ts new file mode 100644 index 000000000000..b2f809e4383c --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/firebase.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `firebase` orchestrion integration (ports `FirebaseInstrumentation`). +export const firebaseConfig: InstrumentationConfig[] = []; + +export const firebaseChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/generic-pool.ts b/packages/server-utils/src/orchestrion/config/generic-pool.ts new file mode 100644 index 000000000000..f44e2aa0f839 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/generic-pool.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `generic-pool` orchestrion integration (ports `@opentelemetry/instrumentation-generic-pool`). +export const genericPoolConfig: InstrumentationConfig[] = []; + +export const genericPoolChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/index.ts b/packages/server-utils/src/orchestrion/config/index.ts index b0e4d3e8b6d1..457684548b0d 100644 --- a/packages/server-utils/src/orchestrion/config/index.ts +++ b/packages/server-utils/src/orchestrion/config/index.ts @@ -1,37 +1,65 @@ import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; import { uniq } from '@sentry/core'; -import { mysqlConfig } from './mysql'; -import { lruMemoizerConfig } from './lru-memoizer'; +import { amqplibConfig } from './amqplib'; +import { anthropicAiConfig } from './anthropic-ai'; +import { dataloaderConfig } from './dataloader'; +import { expressConfig } from './express'; +import { firebaseConfig } from './firebase'; +import { genericPoolConfig } from './generic-pool'; +import { googleGenAiConfig } from './google-genai'; +import { graphqlConfig } from './graphql'; +import { hapiConfig } from './hapi'; import { ioredisConfig } from './ioredis'; +import { kafkajsConfig } from './kafkajs'; +import { knexConfig } from './knex'; +import { langchainConfig } from './langchain'; +import { langgraphConfig } from './langgraph'; +import { lruMemoizerConfig } from './lru-memoizer'; +import { mongodbConfig } from './mongodb'; +import { mongooseConfig } from './mongoose'; +import { mysqlConfig } from './mysql'; +import { mysql2Config } from './mysql2'; import { openaiConfig } from './openai'; import { pgConfig } from './pg'; import { postgresJsConfig } from './postgres'; -import { anthropicAiConfig } from './anthropic-ai'; -import { googleGenAiConfig } from './google-genai'; -import { vercelAiConfig } from './vercel-ai'; -import { amqplibConfig } from './amqplib'; -import { hapiConfig } from './hapi'; +import { prismaConfig } from './prisma'; +import { reactRouterConfig } from './react-router'; import { redisConfig } from './redis'; -import { expressConfig } from './express'; -import { graphqlConfig } from './graphql'; -import { kafkajsConfig } from './kafkajs'; +import { remixConfig } from './remix'; +import { tediousConfig } from './tedious'; +import { vercelAiConfig } from './vercel-ai'; +// Kept sorted alphabetically by module so concurrent additions insert at different +// points rather than all appending to the end (fewer merge conflicts). export const SENTRY_INSTRUMENTATIONS: InstrumentationConfig[] = [ - ...mysqlConfig, - ...lruMemoizerConfig, + ...amqplibConfig, + ...anthropicAiConfig, + ...dataloaderConfig, + ...expressConfig, + ...firebaseConfig, + ...genericPoolConfig, + ...googleGenAiConfig, + ...graphqlConfig, + ...hapiConfig, ...ioredisConfig, + ...kafkajsConfig, + ...knexConfig, + ...langchainConfig, + ...langgraphConfig, + ...lruMemoizerConfig, + ...mongodbConfig, + ...mongooseConfig, + ...mysqlConfig, + ...mysql2Config, ...openaiConfig, ...pgConfig, ...postgresJsConfig, - ...anthropicAiConfig, - ...googleGenAiConfig, - ...vercelAiConfig, - ...hapiConfig, - ...amqplibConfig, + ...prismaConfig, + ...reactRouterConfig, ...redisConfig, - ...expressConfig, - ...graphqlConfig, - ...kafkajsConfig, + ...remixConfig, + ...tediousConfig, + ...vercelAiConfig, ]; /** diff --git a/packages/server-utils/src/orchestrion/config/knex.ts b/packages/server-utils/src/orchestrion/config/knex.ts new file mode 100644 index 000000000000..f268e2f3df4c --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/knex.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `knex` orchestrion integration (ports `@opentelemetry/instrumentation-knex`). +export const knexConfig: InstrumentationConfig[] = []; + +export const knexChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/langchain.ts b/packages/server-utils/src/orchestrion/config/langchain.ts new file mode 100644 index 000000000000..a115273b22aa --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/langchain.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `langchain` orchestrion integration (ports `SentryLangChainInstrumentation`). +export const langchainConfig: InstrumentationConfig[] = []; + +export const langchainChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/langgraph.ts b/packages/server-utils/src/orchestrion/config/langgraph.ts new file mode 100644 index 000000000000..ce93f1e993d5 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/langgraph.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `langgraph` orchestrion integration (ports `SentryLangGraphInstrumentation`). +export const langgraphConfig: InstrumentationConfig[] = []; + +export const langgraphChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/mongodb.ts b/packages/server-utils/src/orchestrion/config/mongodb.ts new file mode 100644 index 000000000000..f99e5b70cea7 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/mongodb.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `mongodb` orchestrion integration (ports `@opentelemetry/instrumentation-mongodb`). +export const mongodbConfig: InstrumentationConfig[] = []; + +export const mongodbChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/mongoose.ts b/packages/server-utils/src/orchestrion/config/mongoose.ts new file mode 100644 index 000000000000..d3186a0aed57 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/mongoose.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `mongoose` orchestrion integration (ports `@opentelemetry/instrumentation-mongoose`). +export const mongooseConfig: InstrumentationConfig[] = []; + +export const mongooseChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/mysql2.ts b/packages/server-utils/src/orchestrion/config/mysql2.ts new file mode 100644 index 000000000000..43acfbdb62c1 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/mysql2.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `mysql2` orchestrion integration (ports `@opentelemetry/instrumentation-mysql2`). +export const mysql2Config: InstrumentationConfig[] = []; + +export const mysql2Channels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/prisma.ts b/packages/server-utils/src/orchestrion/config/prisma.ts new file mode 100644 index 000000000000..d2b3f35ebbce --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/prisma.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `prisma` orchestrion integration (ports `@prisma/instrumentation`). +export const prismaConfig: InstrumentationConfig[] = []; + +export const prismaChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/react-router.ts b/packages/server-utils/src/orchestrion/config/react-router.ts new file mode 100644 index 000000000000..50f45bc837c5 --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/react-router.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `react-router` orchestrion integration (ports `ReactRouterInstrumentation`). +export const reactRouterConfig: InstrumentationConfig[] = []; + +export const reactRouterChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/remix.ts b/packages/server-utils/src/orchestrion/config/remix.ts new file mode 100644 index 000000000000..eaac1a6e390b --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/remix.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `remix` orchestrion integration (ports `RemixInstrumentation`). +export const remixConfig: InstrumentationConfig[] = []; + +export const remixChannels = {} as const; diff --git a/packages/server-utils/src/orchestrion/config/tedious.ts b/packages/server-utils/src/orchestrion/config/tedious.ts new file mode 100644 index 000000000000..8c9ee313d23c --- /dev/null +++ b/packages/server-utils/src/orchestrion/config/tedious.ts @@ -0,0 +1,6 @@ +import type { InstrumentationConfig } from '@apm-js-collab/code-transformer'; + +// TODO: Stub for the `tedious` orchestrion integration (ports `@opentelemetry/instrumentation-tedious`). +export const tediousConfig: InstrumentationConfig[] = []; + +export const tediousChannels = {} as const;