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;