Skip to content

Commit e36b89a

Browse files
JPeer264claude
andcommitted
feat(server-utils): Add more channel integration definitions (#23477)
This adds the missing integrations based on top of #23405 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent b6ae8c8 commit e36b89a

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

packages/server-utils/src/orchestrion/config/channel-integration-definitions.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,32 @@ export const CHANNEL_INTEGRATION_DEFINITIONS = [
2020
{ exportName: 'postgresJsIntegration', modules: ['postgres'] },
2121
{ exportName: 'mysqlIntegration', modules: ['mysql'] },
2222
{ exportName: 'mysql2Integration', modules: ['mysql2'] },
23+
{ exportName: 'mongoIntegration', modules: ['mongodb'] },
2324
{ exportName: 'mongooseIntegration', modules: ['mongoose'] },
25+
{ exportName: 'knexIntegration', modules: ['knex'] },
26+
{ exportName: 'tediousIntegration', modules: ['tedious'] },
2427
{ exportName: 'genericPoolIntegration', modules: ['generic-pool'] },
2528
{ exportName: 'lruMemoizerIntegration', modules: ['lru-memoizer'] },
2629
{ exportName: 'openAIIntegration', modules: ['openai'] },
2730
{ exportName: 'anthropicAIIntegration', modules: ['@anthropic-ai/sdk'] },
2831
{ exportName: 'googleGenAIIntegration', modules: ['@google/genai'] },
2932
{ exportName: 'vercelAIIntegration', modules: ['ai'] },
33+
{
34+
exportName: 'langChainIntegration',
35+
modules: [
36+
'@langchain/core',
37+
'@langchain/openai',
38+
'@langchain/google-common',
39+
'@langchain/google-genai',
40+
'@langchain/mistralai',
41+
],
42+
},
43+
{ exportName: 'langGraphIntegration', modules: ['@langchain/langgraph'] },
44+
{ exportName: 'awsIntegration', modules: ['@aws-sdk/smithy-client', '@smithy/core', '@smithy/smithy-client'] },
45+
{ exportName: 'firebaseIntegration', modules: ['@firebase/firestore', 'firebase-functions'] },
3046
{ exportName: 'amqplibIntegration', modules: ['amqplib'] },
3147
{ exportName: 'hapiIntegration', modules: ['@hapi/hapi'] },
48+
{ exportName: 'koaIntegration', modules: ['koa'] },
3249
{ exportName: 'expressIntegration', modules: ['express', 'router'] },
3350
{ exportName: 'graphqlIntegration', modules: ['graphql'] },
3451
{ exportName: 'kafkaIntegration', modules: ['kafkajs'] },

packages/server-utils/test/orchestrion/moduleInjectedTransform.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ describe('channel integration definitions', () => {
3434
expect(typeof (barrel as Record<string, unknown>)[exportName]).toBe('function');
3535
}
3636
});
37+
38+
it('covers every instrumented module that has a channel-subscriber integration', async () => {
39+
const { SENTRY_INSTRUMENTATIONS } = await import('../../src/orchestrion/config');
40+
const configured = new Set(SENTRY_INSTRUMENTATIONS.map(c => c.module.name));
41+
const defined = new Set(CHANNEL_INTEGRATION_DEFINITIONS.flatMap(d => d.modules as readonly string[]));
42+
43+
// `@nestjs/*` and `@remix-run/*` are covered by listeners in their own SDK packages.
44+
const uncovered = [...configured].filter(
45+
name => !defined.has(name) && !name.startsWith('@nestjs/') && !name.startsWith('@remix-run/'),
46+
);
47+
expect(uncovered).toEqual([]);
48+
});
3749
});
3850

3951
describe('module-injected transform', () => {

0 commit comments

Comments
 (0)