mcp-server-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/LICENSE-GPL.md +219 -0
- package/LICENSE.md +187 -0
- package/README.md +439 -0
- package/build/config/config-cache.d.ts +120 -0
- package/build/config/config-cache.d.ts.map +1 -0
- package/build/config/config-cache.js +310 -0
- package/build/config/config-cache.js.map +1 -0
- package/build/config/env.d.ts +476 -0
- package/build/config/env.d.ts.map +1 -0
- package/build/config/env.js +441 -0
- package/build/config/env.js.map +1 -0
- package/build/config/extensions.d.ts +107 -0
- package/build/config/extensions.d.ts.map +1 -0
- package/build/config/extensions.js +152 -0
- package/build/config/extensions.js.map +1 -0
- package/build/config/file/index.d.ts +8 -0
- package/build/config/file/index.d.ts.map +1 -0
- package/build/config/file/index.js +10 -0
- package/build/config/file/index.js.map +1 -0
- package/build/config/file/loader.d.ts +31 -0
- package/build/config/file/loader.d.ts.map +1 -0
- package/build/config/file/loader.js +313 -0
- package/build/config/file/loader.js.map +1 -0
- package/build/config/file/schema.d.ts +583 -0
- package/build/config/file/schema.d.ts.map +1 -0
- package/build/config/file/schema.js +388 -0
- package/build/config/file/schema.js.map +1 -0
- package/build/config/index.d.ts +15 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +27 -0
- package/build/config/index.js.map +1 -0
- package/build/config/startup-warnings.d.ts +46 -0
- package/build/config/startup-warnings.d.ts.map +1 -0
- package/build/config/startup-warnings.js +61 -0
- package/build/config/startup-warnings.js.map +1 -0
- package/build/connection/connection-state.d.ts +196 -0
- package/build/connection/connection-state.d.ts.map +1 -0
- package/build/connection/connection-state.js +426 -0
- package/build/connection/connection-state.js.map +1 -0
- package/build/connection/core/base.d.ts +43 -0
- package/build/connection/core/base.d.ts.map +1 -0
- package/build/connection/core/base.js +82 -0
- package/build/connection/core/base.js.map +1 -0
- package/build/connection/core/constants.d.ts +121 -0
- package/build/connection/core/constants.d.ts.map +1 -0
- package/build/connection/core/constants.js +151 -0
- package/build/connection/core/constants.js.map +1 -0
- package/build/connection/core/index.d.ts +13 -0
- package/build/connection/core/index.d.ts.map +1 -0
- package/build/connection/core/index.js +14 -0
- package/build/connection/core/index.js.map +1 -0
- package/build/connection/core/types.d.ts +102 -0
- package/build/connection/core/types.d.ts.map +1 -0
- package/build/connection/core/types.js +31 -0
- package/build/connection/core/types.js.map +1 -0
- package/build/connection/index.d.ts +19 -0
- package/build/connection/index.d.ts.map +1 -0
- package/build/connection/index.js +22 -0
- package/build/connection/index.js.map +1 -0
- package/build/connection/types.d.ts +125 -0
- package/build/connection/types.d.ts.map +1 -0
- package/build/connection/types.js +39 -0
- package/build/connection/types.js.map +1 -0
- package/build/errors/categories/auth.d.ts +59 -0
- package/build/errors/categories/auth.d.ts.map +1 -0
- package/build/errors/categories/auth.js +111 -0
- package/build/errors/categories/auth.js.map +1 -0
- package/build/errors/categories/connection.d.ts +70 -0
- package/build/errors/categories/connection.d.ts.map +1 -0
- package/build/errors/categories/connection.js +120 -0
- package/build/errors/categories/connection.js.map +1 -0
- package/build/errors/categories/index.d.ts +14 -0
- package/build/errors/categories/index.d.ts.map +1 -0
- package/build/errors/categories/index.js +20 -0
- package/build/errors/categories/index.js.map +1 -0
- package/build/errors/categories/operation.d.ts +83 -0
- package/build/errors/categories/operation.d.ts.map +1 -0
- package/build/errors/categories/operation.js +149 -0
- package/build/errors/categories/operation.js.map +1 -0
- package/build/errors/categories/protocol.d.ts +68 -0
- package/build/errors/categories/protocol.d.ts.map +1 -0
- package/build/errors/categories/protocol.js +135 -0
- package/build/errors/categories/protocol.js.map +1 -0
- package/build/errors/categories/session.d.ts +50 -0
- package/build/errors/categories/session.d.ts.map +1 -0
- package/build/errors/categories/session.js +97 -0
- package/build/errors/categories/session.js.map +1 -0
- package/build/errors/categories/system.d.ts +95 -0
- package/build/errors/categories/system.d.ts.map +1 -0
- package/build/errors/categories/system.js +190 -0
- package/build/errors/categories/system.js.map +1 -0
- package/build/errors/categories/transport.d.ts +70 -0
- package/build/errors/categories/transport.d.ts.map +1 -0
- package/build/errors/categories/transport.js +148 -0
- package/build/errors/categories/transport.js.map +1 -0
- package/build/errors/categories/validation.d.ts +140 -0
- package/build/errors/categories/validation.d.ts.map +1 -0
- package/build/errors/categories/validation.js +311 -0
- package/build/errors/categories/validation.js.map +1 -0
- package/build/errors/core/base.d.ts +103 -0
- package/build/errors/core/base.d.ts.map +1 -0
- package/build/errors/core/base.js +219 -0
- package/build/errors/core/base.js.map +1 -0
- package/build/errors/core/constants.d.ts +40 -0
- package/build/errors/core/constants.d.ts.map +1 -0
- package/build/errors/core/constants.js +49 -0
- package/build/errors/core/constants.js.map +1 -0
- package/build/errors/core/error-codes.d.ts +72 -0
- package/build/errors/core/error-codes.d.ts.map +1 -0
- package/build/errors/core/error-codes.js +88 -0
- package/build/errors/core/error-codes.js.map +1 -0
- package/build/errors/core/http.d.ts +69 -0
- package/build/errors/core/http.d.ts.map +1 -0
- package/build/errors/core/http.js +106 -0
- package/build/errors/core/http.js.map +1 -0
- package/build/errors/core/index.d.ts +23 -0
- package/build/errors/core/index.d.ts.map +1 -0
- package/build/errors/core/index.js +41 -0
- package/build/errors/core/index.js.map +1 -0
- package/build/errors/core/json-rpc.d.ts +69 -0
- package/build/errors/core/json-rpc.d.ts.map +1 -0
- package/build/errors/core/json-rpc.js +79 -0
- package/build/errors/core/json-rpc.js.map +1 -0
- package/build/errors/core/messages.d.ts +51 -0
- package/build/errors/core/messages.d.ts.map +1 -0
- package/build/errors/core/messages.js +59 -0
- package/build/errors/core/messages.js.map +1 -0
- package/build/errors/core/types.d.ts +80 -0
- package/build/errors/core/types.d.ts.map +1 -0
- package/build/errors/core/types.js +10 -0
- package/build/errors/core/types.js.map +1 -0
- package/build/errors/factory.d.ts +199 -0
- package/build/errors/factory.d.ts.map +1 -0
- package/build/errors/factory.js +244 -0
- package/build/errors/factory.js.map +1 -0
- package/build/errors/index.d.ts +35 -0
- package/build/errors/index.d.ts.map +1 -0
- package/build/errors/index.js +67 -0
- package/build/errors/index.js.map +1 -0
- package/build/index.d.ts +93 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +107 -0
- package/build/index.js.map +1 -0
- package/build/logger/core/constants.d.ts +143 -0
- package/build/logger/core/constants.d.ts.map +1 -0
- package/build/logger/core/constants.js +206 -0
- package/build/logger/core/constants.js.map +1 -0
- package/build/logger/core/context.d.ts +170 -0
- package/build/logger/core/context.d.ts.map +1 -0
- package/build/logger/core/context.js +237 -0
- package/build/logger/core/context.js.map +1 -0
- package/build/logger/core/errors.d.ts +101 -0
- package/build/logger/core/errors.d.ts.map +1 -0
- package/build/logger/core/errors.js +128 -0
- package/build/logger/core/errors.js.map +1 -0
- package/build/logger/core/format.d.ts +40 -0
- package/build/logger/core/format.d.ts.map +1 -0
- package/build/logger/core/format.js +47 -0
- package/build/logger/core/format.js.map +1 -0
- package/build/logger/core/index.d.ts +19 -0
- package/build/logger/core/index.d.ts.map +1 -0
- package/build/logger/core/index.js +47 -0
- package/build/logger/core/index.js.map +1 -0
- package/build/logger/core/trace-context.d.ts +51 -0
- package/build/logger/core/trace-context.d.ts.map +1 -0
- package/build/logger/core/trace-context.js +42 -0
- package/build/logger/core/trace-context.js.map +1 -0
- package/build/logger/core/types.d.ts +233 -0
- package/build/logger/core/types.d.ts.map +1 -0
- package/build/logger/core/types.js +10 -0
- package/build/logger/core/types.js.map +1 -0
- package/build/logger/factory.d.ts +150 -0
- package/build/logger/factory.d.ts.map +1 -0
- package/build/logger/factory.js +236 -0
- package/build/logger/factory.js.map +1 -0
- package/build/logger/formatters/index.d.ts +12 -0
- package/build/logger/formatters/index.d.ts.map +1 -0
- package/build/logger/formatters/index.js +15 -0
- package/build/logger/formatters/index.js.map +1 -0
- package/build/logger/formatters/json-formatter.d.ts +54 -0
- package/build/logger/formatters/json-formatter.d.ts.map +1 -0
- package/build/logger/formatters/json-formatter.js +80 -0
- package/build/logger/formatters/json-formatter.js.map +1 -0
- package/build/logger/formatters/schema.d.ts +230 -0
- package/build/logger/formatters/schema.d.ts.map +1 -0
- package/build/logger/formatters/schema.js +278 -0
- package/build/logger/formatters/schema.js.map +1 -0
- package/build/logger/formatters/text-formatter.d.ts +50 -0
- package/build/logger/formatters/text-formatter.d.ts.map +1 -0
- package/build/logger/formatters/text-formatter.js +93 -0
- package/build/logger/formatters/text-formatter.js.map +1 -0
- package/build/logger/index.d.ts +39 -0
- package/build/logger/index.d.ts.map +1 -0
- package/build/logger/index.js +43 -0
- package/build/logger/index.js.map +1 -0
- package/build/logger/logger.d.ts +278 -0
- package/build/logger/logger.d.ts.map +1 -0
- package/build/logger/logger.js +459 -0
- package/build/logger/logger.js.map +1 -0
- package/build/logger/mcp-logger.d.ts +177 -0
- package/build/logger/mcp-logger.d.ts.map +1 -0
- package/build/logger/mcp-logger.js +294 -0
- package/build/logger/mcp-logger.js.map +1 -0
- package/build/logger/scrubbing/index.d.ts +14 -0
- package/build/logger/scrubbing/index.d.ts.map +1 -0
- package/build/logger/scrubbing/index.js +16 -0
- package/build/logger/scrubbing/index.js.map +1 -0
- package/build/logger/scrubbing/injection-guard.d.ts +69 -0
- package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
- package/build/logger/scrubbing/injection-guard.js +102 -0
- package/build/logger/scrubbing/injection-guard.js.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.js +177 -0
- package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
- package/build/logger/writers/base-writer.d.ts +45 -0
- package/build/logger/writers/base-writer.d.ts.map +1 -0
- package/build/logger/writers/base-writer.js +41 -0
- package/build/logger/writers/base-writer.js.map +1 -0
- package/build/logger/writers/composite-writer.d.ts +83 -0
- package/build/logger/writers/composite-writer.d.ts.map +1 -0
- package/build/logger/writers/composite-writer.js +121 -0
- package/build/logger/writers/composite-writer.js.map +1 -0
- package/build/logger/writers/console-writer.d.ts +59 -0
- package/build/logger/writers/console-writer.d.ts.map +1 -0
- package/build/logger/writers/console-writer.js +73 -0
- package/build/logger/writers/console-writer.js.map +1 -0
- package/build/logger/writers/file-writer.d.ts +160 -0
- package/build/logger/writers/file-writer.d.ts.map +1 -0
- package/build/logger/writers/file-writer.js +345 -0
- package/build/logger/writers/file-writer.js.map +1 -0
- package/build/logger/writers/index.d.ts +15 -0
- package/build/logger/writers/index.d.ts.map +1 -0
- package/build/logger/writers/index.js +19 -0
- package/build/logger/writers/index.js.map +1 -0
- package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
- package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/define-app.js +127 -0
- package/build/mcp/capabilities/apps/define-app.js.map +1 -0
- package/build/mcp/capabilities/apps/index.d.ts +10 -0
- package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/index.js +10 -0
- package/build/mcp/capabilities/apps/index.js.map +1 -0
- package/build/mcp/capabilities/capabilities.d.ts +24 -0
- package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/capabilities.js +50 -0
- package/build/mcp/capabilities/capabilities.js.map +1 -0
- package/build/mcp/capabilities/index.d.ts +17 -0
- package/build/mcp/capabilities/index.d.ts.map +1 -0
- package/build/mcp/capabilities/index.js +20 -0
- package/build/mcp/capabilities/index.js.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
- package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
- package/build/mcp/capabilities/prompts/index.d.ts +10 -0
- package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/index.js +10 -0
- package/build/mcp/capabilities/prompts/index.js.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.js +149 -0
- package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/index.d.ts +16 -0
- package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/index.js +34 -0
- package/build/mcp/capabilities/registry/index.js.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
- package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/reset.d.ts +30 -0
- package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/reset.js +48 -0
- package/build/mcp/capabilities/registry/reset.js.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.js +430 -0
- package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.js +242 -0
- package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.js +137 -0
- package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
- package/build/mcp/capabilities/resources/index.d.ts +10 -0
- package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/index.js +10 -0
- package/build/mcp/capabilities/resources/index.js.map +1 -0
- package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
- package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/server-capabilities.js +16 -0
- package/build/mcp/capabilities/server-capabilities.js.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.js +93 -0
- package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
- package/build/mcp/capabilities/tasks/index.d.ts +11 -0
- package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/index.js +11 -0
- package/build/mcp/capabilities/tasks/index.js.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.js +73 -0
- package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
- package/build/mcp/capabilities/tools/index.d.ts +10 -0
- package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/index.js +10 -0
- package/build/mcp/capabilities/tools/index.js.map +1 -0
- package/build/mcp/handlers/index.d.ts +19 -0
- package/build/mcp/handlers/index.d.ts.map +1 -0
- package/build/mcp/handlers/index.js +26 -0
- package/build/mcp/handlers/index.js.map +1 -0
- package/build/mcp/handlers/ping.d.ts +27 -0
- package/build/mcp/handlers/ping.d.ts.map +1 -0
- package/build/mcp/handlers/ping.js +61 -0
- package/build/mcp/handlers/ping.js.map +1 -0
- package/build/mcp/handlers/progress.d.ts +41 -0
- package/build/mcp/handlers/progress.d.ts.map +1 -0
- package/build/mcp/handlers/progress.js +79 -0
- package/build/mcp/handlers/progress.js.map +1 -0
- package/build/mcp/index.d.ts +28 -0
- package/build/mcp/index.d.ts.map +1 -0
- package/build/mcp/index.js +34 -0
- package/build/mcp/index.js.map +1 -0
- package/build/mcp/responses/helpers.d.ts +146 -0
- package/build/mcp/responses/helpers.d.ts.map +1 -0
- package/build/mcp/responses/helpers.js +197 -0
- package/build/mcp/responses/helpers.js.map +1 -0
- package/build/mcp/responses/index.d.ts +9 -0
- package/build/mcp/responses/index.d.ts.map +1 -0
- package/build/mcp/responses/index.js +12 -0
- package/build/mcp/responses/index.js.map +1 -0
- package/build/mcp/types/context.d.ts +371 -0
- package/build/mcp/types/context.d.ts.map +1 -0
- package/build/mcp/types/context.js +17 -0
- package/build/mcp/types/context.js.map +1 -0
- package/build/mcp/types/definition.d.ts +727 -0
- package/build/mcp/types/definition.d.ts.map +1 -0
- package/build/mcp/types/definition.js +29 -0
- package/build/mcp/types/definition.js.map +1 -0
- package/build/mcp/types/handler.d.ts +58 -0
- package/build/mcp/types/handler.d.ts.map +1 -0
- package/build/mcp/types/handler.js +10 -0
- package/build/mcp/types/handler.js.map +1 -0
- package/build/mcp/types/index.d.ts +21 -0
- package/build/mcp/types/index.d.ts.map +1 -0
- package/build/mcp/types/index.js +18 -0
- package/build/mcp/types/index.js.map +1 -0
- package/build/mcp/types/response.d.ts +79 -0
- package/build/mcp/types/response.d.ts.map +1 -0
- package/build/mcp/types/response.js +10 -0
- package/build/mcp/types/response.js.map +1 -0
- package/build/server/auth/auth-context.d.ts +52 -0
- package/build/server/auth/auth-context.d.ts.map +1 -0
- package/build/server/auth/auth-context.js +45 -0
- package/build/server/auth/auth-context.js.map +1 -0
- package/build/server/auth/guards.d.ts +72 -0
- package/build/server/auth/guards.d.ts.map +1 -0
- package/build/server/auth/guards.js +103 -0
- package/build/server/auth/guards.js.map +1 -0
- package/build/server/auth/index.d.ts +21 -0
- package/build/server/auth/index.d.ts.map +1 -0
- package/build/server/auth/index.js +20 -0
- package/build/server/auth/index.js.map +1 -0
- package/build/server/auth/oidc-discovery.d.ts +68 -0
- package/build/server/auth/oidc-discovery.d.ts.map +1 -0
- package/build/server/auth/oidc-discovery.js +234 -0
- package/build/server/auth/oidc-discovery.js.map +1 -0
- package/build/server/auth/oidc-provider.d.ts +96 -0
- package/build/server/auth/oidc-provider.d.ts.map +1 -0
- package/build/server/auth/oidc-provider.js +126 -0
- package/build/server/auth/oidc-provider.js.map +1 -0
- package/build/server/auth/types.d.ts +204 -0
- package/build/server/auth/types.d.ts.map +1 -0
- package/build/server/auth/types.js +29 -0
- package/build/server/auth/types.js.map +1 -0
- package/build/server/auth/upstream-provider.d.ts +161 -0
- package/build/server/auth/upstream-provider.d.ts.map +1 -0
- package/build/server/auth/upstream-provider.js +411 -0
- package/build/server/auth/upstream-provider.js.map +1 -0
- package/build/server/builder/constants.d.ts +45 -0
- package/build/server/builder/constants.d.ts.map +1 -0
- package/build/server/builder/constants.js +54 -0
- package/build/server/builder/constants.js.map +1 -0
- package/build/server/builder/index.d.ts +24 -0
- package/build/server/builder/index.d.ts.map +1 -0
- package/build/server/builder/index.js +25 -0
- package/build/server/builder/index.js.map +1 -0
- package/build/server/builder/primitive-collector.d.ts +24 -0
- package/build/server/builder/primitive-collector.d.ts.map +1 -0
- package/build/server/builder/primitive-collector.js +89 -0
- package/build/server/builder/primitive-collector.js.map +1 -0
- package/build/server/builder/server-builder.d.ts +53 -0
- package/build/server/builder/server-builder.d.ts.map +1 -0
- package/build/server/builder/server-builder.js +132 -0
- package/build/server/builder/server-builder.js.map +1 -0
- package/build/server/builder/types.d.ts +93 -0
- package/build/server/builder/types.d.ts.map +1 -0
- package/build/server/builder/types.js +25 -0
- package/build/server/builder/types.js.map +1 -0
- package/build/server/builder/validation.d.ts +36 -0
- package/build/server/builder/validation.d.ts.map +1 -0
- package/build/server/builder/validation.js +44 -0
- package/build/server/builder/validation.js.map +1 -0
- package/build/server/create-server.d.ts +57 -0
- package/build/server/create-server.d.ts.map +1 -0
- package/build/server/create-server.js +104 -0
- package/build/server/create-server.js.map +1 -0
- package/build/server/http/express-app.d.ts +103 -0
- package/build/server/http/express-app.d.ts.map +1 -0
- package/build/server/http/express-app.js +391 -0
- package/build/server/http/express-app.js.map +1 -0
- package/build/server/http/http-server.d.ts +67 -0
- package/build/server/http/http-server.d.ts.map +1 -0
- package/build/server/http/http-server.js +188 -0
- package/build/server/http/http-server.js.map +1 -0
- package/build/server/http/http-transport.d.ts +33 -0
- package/build/server/http/http-transport.d.ts.map +1 -0
- package/build/server/http/http-transport.js +84 -0
- package/build/server/http/http-transport.js.map +1 -0
- package/build/server/http/index.d.ts +15 -0
- package/build/server/http/index.d.ts.map +1 -0
- package/build/server/http/index.js +11 -0
- package/build/server/http/index.js.map +1 -0
- package/build/server/index.d.ts +25 -0
- package/build/server/index.d.ts.map +1 -0
- package/build/server/index.js +41 -0
- package/build/server/index.js.map +1 -0
- package/build/server/lifecycle.d.ts +114 -0
- package/build/server/lifecycle.d.ts.map +1 -0
- package/build/server/lifecycle.js +30 -0
- package/build/server/lifecycle.js.map +1 -0
- package/build/server/middleware/bearer-auth.d.ts +43 -0
- package/build/server/middleware/bearer-auth.d.ts.map +1 -0
- package/build/server/middleware/bearer-auth.js +75 -0
- package/build/server/middleware/bearer-auth.js.map +1 -0
- package/build/server/middleware/custom-header-auth.d.ts +40 -0
- package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
- package/build/server/middleware/custom-header-auth.js +90 -0
- package/build/server/middleware/custom-header-auth.js.map +1 -0
- package/build/server/middleware/dns-rebinding.d.ts +25 -0
- package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
- package/build/server/middleware/dns-rebinding.js +94 -0
- package/build/server/middleware/dns-rebinding.js.map +1 -0
- package/build/server/middleware/index.d.ts +69 -0
- package/build/server/middleware/index.d.ts.map +1 -0
- package/build/server/middleware/index.js +68 -0
- package/build/server/middleware/index.js.map +1 -0
- package/build/server/middleware/logging.d.ts +21 -0
- package/build/server/middleware/logging.d.ts.map +1 -0
- package/build/server/middleware/logging.js +36 -0
- package/build/server/middleware/logging.js.map +1 -0
- package/build/server/middleware/oauth-router.d.ts +50 -0
- package/build/server/middleware/oauth-router.d.ts.map +1 -0
- package/build/server/middleware/oauth-router.js +53 -0
- package/build/server/middleware/oauth-router.js.map +1 -0
- package/build/server/middleware/protocol-version.d.ts +13 -0
- package/build/server/middleware/protocol-version.d.ts.map +1 -0
- package/build/server/middleware/protocol-version.js +48 -0
- package/build/server/middleware/protocol-version.js.map +1 -0
- package/build/server/middleware/rate-limit.d.ts +47 -0
- package/build/server/middleware/rate-limit.d.ts.map +1 -0
- package/build/server/middleware/rate-limit.js +109 -0
- package/build/server/middleware/rate-limit.js.map +1 -0
- package/build/server/middleware/trust-proxy.d.ts +37 -0
- package/build/server/middleware/trust-proxy.d.ts.map +1 -0
- package/build/server/middleware/trust-proxy.js +154 -0
- package/build/server/middleware/trust-proxy.js.map +1 -0
- package/build/server/option-overrides.d.ts +25 -0
- package/build/server/option-overrides.d.ts.map +1 -0
- package/build/server/option-overrides.js +85 -0
- package/build/server/option-overrides.js.map +1 -0
- package/build/server/routes/health.d.ts +87 -0
- package/build/server/routes/health.d.ts.map +1 -0
- package/build/server/routes/health.js +183 -0
- package/build/server/routes/health.js.map +1 -0
- package/build/server/routes/index.d.ts +16 -0
- package/build/server/routes/index.d.ts.map +1 -0
- package/build/server/routes/index.js +18 -0
- package/build/server/routes/index.js.map +1 -0
- package/build/server/routes/metrics.d.ts +40 -0
- package/build/server/routes/metrics.d.ts.map +1 -0
- package/build/server/routes/metrics.js +81 -0
- package/build/server/routes/metrics.js.map +1 -0
- package/build/server/routes/oauth-router.d.ts +50 -0
- package/build/server/routes/oauth-router.d.ts.map +1 -0
- package/build/server/routes/oauth-router.js +53 -0
- package/build/server/routes/oauth-router.js.map +1 -0
- package/build/server/routes/readiness-status.d.ts +25 -0
- package/build/server/routes/readiness-status.d.ts.map +1 -0
- package/build/server/routes/readiness-status.js +27 -0
- package/build/server/routes/readiness-status.js.map +1 -0
- package/build/server/routes/sse-router.d.ts +43 -0
- package/build/server/routes/sse-router.d.ts.map +1 -0
- package/build/server/routes/sse-router.js +92 -0
- package/build/server/routes/sse-router.js.map +1 -0
- package/build/server/routes/streamable-http-router.d.ts +36 -0
- package/build/server/routes/streamable-http-router.d.ts.map +1 -0
- package/build/server/routes/streamable-http-router.js +59 -0
- package/build/server/routes/streamable-http-router.js.map +1 -0
- package/build/server/server-instance.d.ts +185 -0
- package/build/server/server-instance.d.ts.map +1 -0
- package/build/server/server-instance.js +615 -0
- package/build/server/server-instance.js.map +1 -0
- package/build/server/server-options.d.ts +411 -0
- package/build/server/server-options.d.ts.map +1 -0
- package/build/server/server-options.js +17 -0
- package/build/server/server-options.js.map +1 -0
- package/build/server/session/in-memory-store.d.ts +128 -0
- package/build/server/session/in-memory-store.d.ts.map +1 -0
- package/build/server/session/in-memory-store.js +312 -0
- package/build/server/session/in-memory-store.js.map +1 -0
- package/build/server/session/index.d.ts +43 -0
- package/build/server/session/index.d.ts.map +1 -0
- package/build/server/session/index.js +47 -0
- package/build/server/session/index.js.map +1 -0
- package/build/server/session/mcp-session.d.ts +210 -0
- package/build/server/session/mcp-session.d.ts.map +1 -0
- package/build/server/session/mcp-session.js +428 -0
- package/build/server/session/mcp-session.js.map +1 -0
- package/build/server/session/session-factory.d.ts +119 -0
- package/build/server/session/session-factory.d.ts.map +1 -0
- package/build/server/session/session-factory.js +131 -0
- package/build/server/session/session-factory.js.map +1 -0
- package/build/server/session/session-housekeeper.d.ts +100 -0
- package/build/server/session/session-housekeeper.d.ts.map +1 -0
- package/build/server/session/session-housekeeper.js +217 -0
- package/build/server/session/session-housekeeper.js.map +1 -0
- package/build/server/session/session-manager.d.ts +227 -0
- package/build/server/session/session-manager.d.ts.map +1 -0
- package/build/server/session/session-manager.js +282 -0
- package/build/server/session/session-manager.js.map +1 -0
- package/build/server/session/session-store.d.ts +95 -0
- package/build/server/session/session-store.d.ts.map +1 -0
- package/build/server/session/session-store.js +13 -0
- package/build/server/session/session-store.js.map +1 -0
- package/build/server/session/session.d.ts +132 -0
- package/build/server/session/session.d.ts.map +1 -0
- package/build/server/session/session.js +61 -0
- package/build/server/session/session.js.map +1 -0
- package/build/server/transport/constants.d.ts +85 -0
- package/build/server/transport/constants.d.ts.map +1 -0
- package/build/server/transport/constants.js +103 -0
- package/build/server/transport/constants.js.map +1 -0
- package/build/server/transport/index.d.ts +21 -0
- package/build/server/transport/index.d.ts.map +1 -0
- package/build/server/transport/index.js +28 -0
- package/build/server/transport/index.js.map +1 -0
- package/build/server/transport/sse/handler.d.ts +46 -0
- package/build/server/transport/sse/handler.d.ts.map +1 -0
- package/build/server/transport/sse/handler.js +189 -0
- package/build/server/transport/sse/handler.js.map +1 -0
- package/build/server/transport/sse/index.d.ts +15 -0
- package/build/server/transport/sse/index.d.ts.map +1 -0
- package/build/server/transport/sse/index.js +14 -0
- package/build/server/transport/sse/index.js.map +1 -0
- package/build/server/transport/sse/transport.d.ts +94 -0
- package/build/server/transport/sse/transport.d.ts.map +1 -0
- package/build/server/transport/sse/transport.js +175 -0
- package/build/server/transport/sse/transport.js.map +1 -0
- package/build/server/transport/stdio-transport.d.ts +23 -0
- package/build/server/transport/stdio-transport.d.ts.map +1 -0
- package/build/server/transport/stdio-transport.js +59 -0
- package/build/server/transport/stdio-transport.js.map +1 -0
- package/build/server/transport/streamable-http/index.d.ts +9 -0
- package/build/server/transport/streamable-http/index.d.ts.map +1 -0
- package/build/server/transport/streamable-http/index.js +9 -0
- package/build/server/transport/streamable-http/index.js.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.js +264 -0
- package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.js +81 -0
- package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
- package/build/server/transport/streamable-http/transport.d.ts +110 -0
- package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
- package/build/server/transport/streamable-http/transport.js +118 -0
- package/build/server/transport/streamable-http/transport.js.map +1 -0
- package/build/server/transport/transport-context.d.ts +67 -0
- package/build/server/transport/transport-context.d.ts.map +1 -0
- package/build/server/transport/transport-context.js +38 -0
- package/build/server/transport/transport-context.js.map +1 -0
- package/build/server/transport/types.d.ts +56 -0
- package/build/server/transport/types.d.ts.map +1 -0
- package/build/server/transport/types.js +11 -0
- package/build/server/transport/types.js.map +1 -0
- package/build/server/transport-options.d.ts +248 -0
- package/build/server/transport-options.d.ts.map +1 -0
- package/build/server/transport-options.js +18 -0
- package/build/server/transport-options.js.map +1 -0
- package/build/server/types.d.ts +172 -0
- package/build/server/types.d.ts.map +1 -0
- package/build/server/types.js +9 -0
- package/build/server/types.js.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.js +54 -0
- package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
- package/build/telemetry/core/config.d.ts +38 -0
- package/build/telemetry/core/config.d.ts.map +1 -0
- package/build/telemetry/core/config.js +54 -0
- package/build/telemetry/core/config.js.map +1 -0
- package/build/telemetry/core/constants.d.ts +183 -0
- package/build/telemetry/core/constants.d.ts.map +1 -0
- package/build/telemetry/core/constants.js +207 -0
- package/build/telemetry/core/constants.js.map +1 -0
- package/build/telemetry/core/diag-logger.d.ts +35 -0
- package/build/telemetry/core/diag-logger.d.ts.map +1 -0
- package/build/telemetry/core/diag-logger.js +54 -0
- package/build/telemetry/core/diag-logger.js.map +1 -0
- package/build/telemetry/core/index.d.ts +12 -0
- package/build/telemetry/core/index.d.ts.map +1 -0
- package/build/telemetry/core/index.js +32 -0
- package/build/telemetry/core/index.js.map +1 -0
- package/build/telemetry/core/types.d.ts +106 -0
- package/build/telemetry/core/types.d.ts.map +1 -0
- package/build/telemetry/core/types.js +10 -0
- package/build/telemetry/core/types.js.map +1 -0
- package/build/telemetry/index.d.ts +59 -0
- package/build/telemetry/index.d.ts.map +1 -0
- package/build/telemetry/index.js +79 -0
- package/build/telemetry/index.js.map +1 -0
- package/build/telemetry/metrics.d.ts +127 -0
- package/build/telemetry/metrics.d.ts.map +1 -0
- package/build/telemetry/metrics.js +337 -0
- package/build/telemetry/metrics.js.map +1 -0
- package/build/telemetry/sdk.d.ts +110 -0
- package/build/telemetry/sdk.d.ts.map +1 -0
- package/build/telemetry/sdk.js +547 -0
- package/build/telemetry/sdk.js.map +1 -0
- package/build/telemetry/tracing.d.ts +78 -0
- package/build/telemetry/tracing.d.ts.map +1 -0
- package/build/telemetry/tracing.js +257 -0
- package/build/telemetry/tracing.js.map +1 -0
- package/build/utils/env-helpers.d.ts +46 -0
- package/build/utils/env-helpers.d.ts.map +1 -0
- package/build/utils/env-helpers.js +54 -0
- package/build/utils/env-helpers.js.map +1 -0
- package/build/utils/index.d.ts +14 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +19 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/sensitive-keys.d.ts +48 -0
- package/build/utils/sensitive-keys.d.ts.map +1 -0
- package/build/utils/sensitive-keys.js +131 -0
- package/build/utils/sensitive-keys.js.map +1 -0
- package/build/utils/string-helpers.d.ts +126 -0
- package/build/utils/string-helpers.d.ts.map +1 -0
- package/build/utils/string-helpers.js +189 -0
- package/build/utils/string-helpers.js.map +1 -0
- package/build/utils/validation.d.ts +84 -0
- package/build/utils/validation.d.ts.map +1 -0
- package/build/utils/validation.js +111 -0
- package/build/utils/validation.js.map +1 -0
- package/build/utils/zod-helpers.d.ts +92 -0
- package/build/utils/zod-helpers.d.ts.map +1 -0
- package/build/utils/zod-helpers.js +120 -0
- package/build/utils/zod-helpers.js.map +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry SDK Initialization
|
|
3
|
+
*
|
|
4
|
+
* Handles the lifecycle of the OpenTelemetry SDK including:
|
|
5
|
+
* - SDK initialization with targeted instrumentation
|
|
6
|
+
* - Trace and metric export via OTLP/HTTP
|
|
7
|
+
* - Prometheus metrics embedded at `/metrics` on the MCP Express server
|
|
8
|
+
* - Graceful shutdown
|
|
9
|
+
*
|
|
10
|
+
* ## Configuration
|
|
11
|
+
*
|
|
12
|
+
* All OTEL settings are routed through the config system (env vars + config file).
|
|
13
|
+
* The framework builds exporters and readers explicitly from the unified config
|
|
14
|
+
* so that both env vars and config file are respected consistently.
|
|
15
|
+
*
|
|
16
|
+
* **Framework-managed** (with defaults):
|
|
17
|
+
* - `OTEL_ENABLED` — Master toggle (default: false)
|
|
18
|
+
* - `OTEL_SERVICE_NAME` — Service name (default: 'mcp-server')
|
|
19
|
+
* - `OTEL_METRICS_EXPORTER` — Metric exporters (default: 'otlp,prometheus')
|
|
20
|
+
* - `OTEL_LOGS_EXPORTER` — Log exporter (default: 'none' — framework has own logger)
|
|
21
|
+
*
|
|
22
|
+
* **Standard OTEL (pass-through, no defaults)**:
|
|
23
|
+
* - `OTEL_EXPORTER_OTLP_ENDPOINT` — OTLP endpoint URL
|
|
24
|
+
* - `OTEL_TRACES_EXPORTER` — Trace exporter: otlp (default), console, none
|
|
25
|
+
* - `OTEL_LOG_LEVEL` — SDK diagnostic log level
|
|
26
|
+
* - `OTEL_METRIC_EXPORT_INTERVAL` — Periodic metric export interval (ms)
|
|
27
|
+
*
|
|
28
|
+
* ## Environment Variable Synchronization
|
|
29
|
+
*
|
|
30
|
+
* The NodeSDK reads standard OTEL env vars directly from `process.env`
|
|
31
|
+
* for internal auto-configuration. Since the framework's config system
|
|
32
|
+
* deliberately does NOT mutate `process.env` (12-Factor compliance),
|
|
33
|
+
* config-file-only values would be invisible to the SDK.
|
|
34
|
+
*
|
|
35
|
+
* {@link syncOtelEnvironment} bridges this gap by writing config values
|
|
36
|
+
* to `process.env` for keys that are NOT already set, preserving the
|
|
37
|
+
* 12-Factor priority: env var > config file > default.
|
|
38
|
+
*
|
|
39
|
+
* ## DiagLogger / OTEL_LOG_LEVEL
|
|
40
|
+
*
|
|
41
|
+
* `OTEL_LOG_LEVEL` is consumed (deleted) from `process.env` in Step 0
|
|
42
|
+
* of {@link initializeTelemetry}, BEFORE the NodeSDK constructor.
|
|
43
|
+
* Without this, the SDK calls `diag.setLogger(new DiagConsoleLogger(), level)`
|
|
44
|
+
* — writing diagnostics to stdout and corrupting the MCP stdio transport.
|
|
45
|
+
*
|
|
46
|
+
* The framework sets `frameworkDiagLogger` as default DiagLogger,
|
|
47
|
+
* which routes all OTEL diagnostics through the framework's logging
|
|
48
|
+
* pipeline (→ stderr with secret scrubbing and structured formatting).
|
|
49
|
+
* Power users can override via `onBeforeTelemetryInit` callback.
|
|
50
|
+
*
|
|
51
|
+
* ## Why exporters are built manually
|
|
52
|
+
*
|
|
53
|
+
* The SDK's env-var auto-config is bypassed when `traceExporter` or
|
|
54
|
+
* `metricReaders` are passed to the NodeSDK constructor. Since we need
|
|
55
|
+
* to build metric readers manually (for Prometheus embedded mode), AND
|
|
56
|
+
* we want config-file support for all settings, we build both trace
|
|
57
|
+
* and metric exporters explicitly from the unified config.
|
|
58
|
+
*
|
|
59
|
+
* @module server/telemetry/sdk
|
|
60
|
+
*/
|
|
61
|
+
import { METRIC_NAMES } from "./core/constants.js";
|
|
62
|
+
import { logger as baseLogger } from "../logger/index.js";
|
|
63
|
+
import { setTraceContextExtractor } from "../logger/core/index.js";
|
|
64
|
+
import { getTelemetryConfig, TELEMETRY_LOG_COMPONENTS, SdkLogMessages, frameworkDiagLogger } from "./core/index.js";
|
|
65
|
+
let otelModules = null;
|
|
66
|
+
let otelModulesPromise = null;
|
|
67
|
+
/**
|
|
68
|
+
* Dynamically loads all @opentelemetry/* packages needed for SDK initialization.
|
|
69
|
+
* Called once on first `initializeTelemetry()` invocation when OTEL is enabled.
|
|
70
|
+
* Cached for subsequent calls. Uses promise caching to prevent double-loading
|
|
71
|
+
* if called concurrently.
|
|
72
|
+
*/
|
|
73
|
+
async function loadOtelModules() {
|
|
74
|
+
if (otelModules)
|
|
75
|
+
return otelModules;
|
|
76
|
+
if (otelModulesPromise)
|
|
77
|
+
return otelModulesPromise;
|
|
78
|
+
otelModulesPromise = loadOtelModulesImpl();
|
|
79
|
+
try {
|
|
80
|
+
otelModules = await otelModulesPromise;
|
|
81
|
+
return otelModules;
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
// Reset cached promise so a subsequent call can retry (e.g., after
|
|
85
|
+
// installing missing OTEL packages in development).
|
|
86
|
+
otelModulesPromise = null;
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async function loadOtelModulesImpl() {
|
|
91
|
+
const [sdkNode, sdkMetrics, traceOtlpHttp, metricsOtlpHttp, prometheus, sdkTraceBase, instrHttp, instrExpress, resources, semconv,] = await Promise.all([
|
|
92
|
+
import("@opentelemetry/sdk-node"),
|
|
93
|
+
import("@opentelemetry/sdk-metrics"),
|
|
94
|
+
import("@opentelemetry/exporter-trace-otlp-http"),
|
|
95
|
+
import("@opentelemetry/exporter-metrics-otlp-http"),
|
|
96
|
+
import("@opentelemetry/exporter-prometheus"),
|
|
97
|
+
import("@opentelemetry/sdk-trace-base"),
|
|
98
|
+
import("@opentelemetry/instrumentation-http"),
|
|
99
|
+
import("@opentelemetry/instrumentation-express"),
|
|
100
|
+
import("@opentelemetry/resources"),
|
|
101
|
+
import("@opentelemetry/semantic-conventions"),
|
|
102
|
+
]);
|
|
103
|
+
return {
|
|
104
|
+
NodeSDK: sdkNode.NodeSDK,
|
|
105
|
+
PeriodicExportingMetricReader: sdkMetrics.PeriodicExportingMetricReader,
|
|
106
|
+
ConsoleMetricExporter: sdkMetrics.ConsoleMetricExporter,
|
|
107
|
+
AggregationType: sdkMetrics.AggregationType,
|
|
108
|
+
OTLPTraceExporter: traceOtlpHttp.OTLPTraceExporter,
|
|
109
|
+
OTLPMetricExporter: metricsOtlpHttp.OTLPMetricExporter,
|
|
110
|
+
PrometheusExporter: prometheus.PrometheusExporter,
|
|
111
|
+
ConsoleSpanExporter: sdkTraceBase.ConsoleSpanExporter,
|
|
112
|
+
HttpInstrumentation: instrHttp.HttpInstrumentation,
|
|
113
|
+
ExpressInstrumentation: instrExpress.ExpressInstrumentation,
|
|
114
|
+
envDetector: resources.envDetector,
|
|
115
|
+
resourceFromAttributes: resources.resourceFromAttributes,
|
|
116
|
+
ATTR_SERVICE_NAME: semconv.ATTR_SERVICE_NAME,
|
|
117
|
+
ATTR_SERVICE_VERSION: semconv.ATTR_SERVICE_VERSION,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const logger = baseLogger.child({ component: TELEMETRY_LOG_COMPONENTS.SDK });
|
|
121
|
+
/**
|
|
122
|
+
* Framework infrastructure routes excluded from HTTP trace instrumentation.
|
|
123
|
+
*
|
|
124
|
+
* These paths handle liveness/readiness probes and metrics scraping.
|
|
125
|
+
* They fire at high frequency (every 10–30s in Kubernetes) and would
|
|
126
|
+
* flood traces with low-value spans. Filtering is applied via
|
|
127
|
+
* {@link HttpInstrumentation}'s `ignoreIncomingRequestHook`.
|
|
128
|
+
*/
|
|
129
|
+
const TRACE_IGNORED_ROUTES = new Set(["/health", "/ready", "/metrics"]);
|
|
130
|
+
/** SDK instance — null when not initialized */
|
|
131
|
+
let sdk = null;
|
|
132
|
+
/**
|
|
133
|
+
* Prometheus exporter instance — null when OTEL is disabled or
|
|
134
|
+
* 'prometheus' is not in OTEL_METRICS_EXPORTER.
|
|
135
|
+
*
|
|
136
|
+
* Always created with `preventServerStart: true` (embedded mode).
|
|
137
|
+
* The `/metrics` Express route delegates to this exporter via
|
|
138
|
+
* {@link getPrometheusExporter}.
|
|
139
|
+
*/
|
|
140
|
+
let prometheusExporter = null;
|
|
141
|
+
/**
|
|
142
|
+
* Initialize the OpenTelemetry SDK.
|
|
143
|
+
* Call this at application startup, before any other code.
|
|
144
|
+
*
|
|
145
|
+
* All @opentelemetry/* packages are loaded dynamically on first call
|
|
146
|
+
* (see DD-020). When OTEL is disabled, no packages are loaded and
|
|
147
|
+
* the function returns immediately — saving ~15-20 MB of memory.
|
|
148
|
+
*
|
|
149
|
+
* Builds both trace and metric exporters from the unified config.
|
|
150
|
+
* Only HTTP and Express instrumentations are loaded — other
|
|
151
|
+
* auto-instrumentations are irrelevant for MCP servers.
|
|
152
|
+
*
|
|
153
|
+
* @param onBeforeInit - Optional callback invoked before SDK construction.
|
|
154
|
+
* Power users can call `diag.setLogger()` in this callback to override the
|
|
155
|
+
* framework's default DiagLogger. The callback runs AFTER the framework sets
|
|
156
|
+
* `frameworkDiagLogger` as default.
|
|
157
|
+
* @returns true if OpenTelemetry was initialized, false if disabled
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* import { initializeTelemetry } from './telemetry/index.js';
|
|
162
|
+
*
|
|
163
|
+
* const enabled = await initializeTelemetry();
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export async function initializeTelemetry(onBeforeInit) {
|
|
167
|
+
const config = getTelemetryConfig();
|
|
168
|
+
if (!config.enabled) {
|
|
169
|
+
logger.debug(SdkLogMessages.INIT_SKIPPED);
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
logger.info(SdkLogMessages.INIT_START);
|
|
173
|
+
// ── Step 0: Framework DiagLogger Setup ───────────────────────────────
|
|
174
|
+
// Load @opentelemetry/api early (lightweight, ~200 KB — not a heavy SDK package).
|
|
175
|
+
// Set frameworkDiagLogger as the default DiagLogger to route OTEL SDK
|
|
176
|
+
// diagnostics through the framework's logging pipeline (→ stderr).
|
|
177
|
+
// Consume OTEL_LOG_LEVEL from process.env to prevent the NodeSDK
|
|
178
|
+
// constructor from calling diag.setLogger(new DiagConsoleLogger(), level)
|
|
179
|
+
// which would write to stdout and corrupt MCP stdio transport.
|
|
180
|
+
const api = await import("@opentelemetry/api");
|
|
181
|
+
const diagLevelStr = process.env["OTEL_LOG_LEVEL"]?.toUpperCase();
|
|
182
|
+
delete process.env["OTEL_LOG_LEVEL"];
|
|
183
|
+
const diagLevelMap = {
|
|
184
|
+
NONE: api.DiagLogLevel.NONE,
|
|
185
|
+
ERROR: api.DiagLogLevel.ERROR,
|
|
186
|
+
WARN: api.DiagLogLevel.WARN,
|
|
187
|
+
INFO: api.DiagLogLevel.INFO,
|
|
188
|
+
DEBUG: api.DiagLogLevel.DEBUG,
|
|
189
|
+
VERBOSE: api.DiagLogLevel.VERBOSE,
|
|
190
|
+
ALL: api.DiagLogLevel.ALL,
|
|
191
|
+
};
|
|
192
|
+
const diagLevel = diagLevelStr ? (diagLevelMap[diagLevelStr] ?? api.DiagLogLevel.INFO) : api.DiagLogLevel.INFO;
|
|
193
|
+
api.diag.setLogger(frameworkDiagLogger, {
|
|
194
|
+
logLevel: diagLevel,
|
|
195
|
+
suppressOverrideMessage: true,
|
|
196
|
+
});
|
|
197
|
+
// ── Step 1: Power-User Pre-Init Hook ─────────────────────────────────
|
|
198
|
+
// Called after default DiagLogger setup. Power users can override
|
|
199
|
+
// the DiagLogger via diag.setLogger(), register instrumentations,
|
|
200
|
+
// or configure propagators here.
|
|
201
|
+
if (onBeforeInit) {
|
|
202
|
+
onBeforeInit();
|
|
203
|
+
}
|
|
204
|
+
// ── Step 2: Lazy-load OTEL packages ──────────────────────────────────
|
|
205
|
+
// All heavy @opentelemetry/* modules are loaded here, not at module parse
|
|
206
|
+
// time. This saves ~15-20 MB when OTEL is disabled (see DD-020).
|
|
207
|
+
// Since OTEL packages are optionalDependencies, gracefully handle the case
|
|
208
|
+
// where they are not installed despite OTEL_ENABLED=true.
|
|
209
|
+
let otel;
|
|
210
|
+
try {
|
|
211
|
+
otel = await loadOtelModules();
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
215
|
+
logger.warn(SdkLogMessages.INIT_PACKAGES_MISSING, reason);
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
// ── Step 3: Env-Var Sync ─────────────────────────────────────────────
|
|
219
|
+
// The NodeSDK reads standard OTEL env vars (OTEL_TRACES_EXPORTER,
|
|
220
|
+
// OTEL_LOGS_EXPORTER, etc.) directly from process.env for its internal
|
|
221
|
+
// auto-configuration. Our config system merges config-file values
|
|
222
|
+
// into the Zod parse source but does NOT mutate process.env (12-Factor:
|
|
223
|
+
// real env vars must always win). This means config-file-only settings
|
|
224
|
+
// would be invisible to the SDK's internal env-var checks.
|
|
225
|
+
//
|
|
226
|
+
// syncOtelEnvironment() bridges this gap by writing config values to
|
|
227
|
+
// process.env for keys that are NOT already set, preserving 12-Factor
|
|
228
|
+
// priority (env var > config file > default).
|
|
229
|
+
syncOtelEnvironment(config);
|
|
230
|
+
// ── Step 4: Build Resource & Exporters ───────────────────────────────
|
|
231
|
+
// Resource: service identity attributes.
|
|
232
|
+
// Additional attributes can be set via OTEL_RESOURCE_ATTRIBUTES (env only).
|
|
233
|
+
const resource = otel.resourceFromAttributes({
|
|
234
|
+
[otel.ATTR_SERVICE_NAME]: config.serviceName,
|
|
235
|
+
[otel.ATTR_SERVICE_VERSION]: config.serviceVersion,
|
|
236
|
+
});
|
|
237
|
+
// Build trace exporter from config.
|
|
238
|
+
// Defaults to OTLP when not explicitly set.
|
|
239
|
+
const traceExporter = buildTraceExporter(config, otel);
|
|
240
|
+
// Build metric readers from OTEL_METRICS_EXPORTER.
|
|
241
|
+
const metricReaders = buildMetricReaders(config, otel);
|
|
242
|
+
logger.info(SdkLogMessages.METRICS_EXPORTERS_CONFIGURED, config.metricsExporters.join(", "));
|
|
243
|
+
// ── Step 5: Construct & Start SDK ────────────────────────────────────
|
|
244
|
+
// - resourceDetectors: Only OTEL_RESOURCE_ATTRIBUTES (env) is respected.
|
|
245
|
+
// Host/process/OS auto-detectors are disabled to keep target_info lean.
|
|
246
|
+
// - views: Custom histogram buckets for HTTP and MCP duration metrics.
|
|
247
|
+
// Default OTEL SDK emits 16 bucket boundaries — reduced to MCP-relevant ranges.
|
|
248
|
+
sdk = new otel.NodeSDK({
|
|
249
|
+
resource,
|
|
250
|
+
...(traceExporter !== undefined && { traceExporter }),
|
|
251
|
+
metricReaders,
|
|
252
|
+
resourceDetectors: [otel.envDetector],
|
|
253
|
+
views: buildMetricViews(otel),
|
|
254
|
+
instrumentations: [
|
|
255
|
+
new otel.HttpInstrumentation({
|
|
256
|
+
// Suppress trace spans for framework infrastructure routes
|
|
257
|
+
// (health probes, readiness checks, Prometheus scrapes).
|
|
258
|
+
// These fire frequently and produce low-value trace data.
|
|
259
|
+
ignoreIncomingRequestHook: (request) => {
|
|
260
|
+
const path = (request.url?.split("?")[0] ?? "").replace(/\/+$/, "");
|
|
261
|
+
return TRACE_IGNORED_ROUTES.has(path);
|
|
262
|
+
},
|
|
263
|
+
}),
|
|
264
|
+
new otel.ExpressInstrumentation(),
|
|
265
|
+
],
|
|
266
|
+
});
|
|
267
|
+
sdk.start();
|
|
268
|
+
// Register OTEL trace context extractor in the logger.
|
|
269
|
+
// Uses the plugin interface (DD-023) — the logger has no OTEL dependency.
|
|
270
|
+
// Must happen AFTER sdk.start() so that the API has a registered TracerProvider.
|
|
271
|
+
const otelExtractor = {
|
|
272
|
+
extract() {
|
|
273
|
+
const span = api.trace.getActiveSpan();
|
|
274
|
+
if (!span)
|
|
275
|
+
return undefined;
|
|
276
|
+
const ctx = span.spanContext();
|
|
277
|
+
if (!api.isSpanContextValid(ctx))
|
|
278
|
+
return undefined;
|
|
279
|
+
return { traceId: ctx.traceId, spanId: ctx.spanId };
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
setTraceContextExtractor(otelExtractor);
|
|
283
|
+
logger.info(SdkLogMessages.INIT_SUCCESS, config.serviceName, config.endpoint);
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Shutdown the OpenTelemetry SDK.
|
|
288
|
+
* Call this during application shutdown.
|
|
289
|
+
*
|
|
290
|
+
* @returns Promise that resolves when shutdown is complete
|
|
291
|
+
*/
|
|
292
|
+
export async function shutdownTelemetry() {
|
|
293
|
+
if (!sdk) {
|
|
294
|
+
logger.debug(SdkLogMessages.SHUTDOWN_SKIPPED);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
logger.info(SdkLogMessages.SHUTDOWN_START);
|
|
298
|
+
try {
|
|
299
|
+
await sdk.shutdown();
|
|
300
|
+
sdk = null;
|
|
301
|
+
prometheusExporter = null;
|
|
302
|
+
logger.info(SdkLogMessages.SHUTDOWN_SUCCESS);
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
306
|
+
logger.error(SdkLogMessages.SHUTDOWN_ERROR, errorMessage);
|
|
307
|
+
throw error;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Check if the SDK is currently initialized.
|
|
312
|
+
*
|
|
313
|
+
* @returns true if SDK is initialized
|
|
314
|
+
*/
|
|
315
|
+
export function isSdkInitialized() {
|
|
316
|
+
return sdk !== null;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Get the Prometheus exporter instance.
|
|
320
|
+
*
|
|
321
|
+
* Returns null when telemetry is disabled, not yet initialized,
|
|
322
|
+
* or 'prometheus' is not in OTEL_METRICS_EXPORTER.
|
|
323
|
+
* Used by the `/metrics` Express route to serve Prometheus metrics.
|
|
324
|
+
*
|
|
325
|
+
* @returns PrometheusExporter instance or null
|
|
326
|
+
*/
|
|
327
|
+
export function getPrometheusExporter() {
|
|
328
|
+
return prometheusExporter;
|
|
329
|
+
}
|
|
330
|
+
// ============================================================================
|
|
331
|
+
// Internal Helpers
|
|
332
|
+
// ============================================================================
|
|
333
|
+
/**
|
|
334
|
+
* Synchronize framework config values to `process.env` for the NodeSDK.
|
|
335
|
+
*
|
|
336
|
+
* The framework's config system resolves values from env vars, config files,
|
|
337
|
+
* and defaults into a unified `TelemetryConfig` but deliberately does NOT
|
|
338
|
+
* mutate `process.env` (12-Factor compliance). However, the NodeSDK reads
|
|
339
|
+
* several `OTEL_*` env vars directly from `process.env` for its internal
|
|
340
|
+
* auto-configuration (e.g., log exporter, trace exporter selection).
|
|
341
|
+
*
|
|
342
|
+
* This function bridges the gap by writing config values to `process.env`
|
|
343
|
+
* **only for keys that are not already set**. This preserves 12-Factor
|
|
344
|
+
* priority: real env vars always override config file values.
|
|
345
|
+
*
|
|
346
|
+
* Synchronized variables:
|
|
347
|
+
* - `OTEL_TRACES_EXPORTER` — Prevents SDK from auto-enabling OTLP traces
|
|
348
|
+
* - `OTEL_LOGS_EXPORTER` — Prevents SDK from auto-enabling OTLP logs
|
|
349
|
+
* - `OTEL_SERVICE_NAME` — Ensures SDK resource matches framework config
|
|
350
|
+
* - `OTEL_EXPORTER_OTLP_ENDPOINT` — Ensures OTLP endpoint is consistent
|
|
351
|
+
*
|
|
352
|
+
* **Note**: `OTEL_LOG_LEVEL` is intentionally NOT synced here. It is
|
|
353
|
+
* consumed (deleted) in Step 1 of {@link initializeTelemetry} to prevent
|
|
354
|
+
* the NodeSDK constructor from setting DiagConsoleLogger (→ stdout).
|
|
355
|
+
*
|
|
356
|
+
* @param config - Resolved telemetry configuration
|
|
357
|
+
*/
|
|
358
|
+
function syncOtelEnvironment(config) {
|
|
359
|
+
// Helper: only set env var if not already defined by the environment.
|
|
360
|
+
// This preserves 12-Factor priority (real env var > config file > default).
|
|
361
|
+
const setIfAbsent = (key, value) => {
|
|
362
|
+
if (value !== undefined && !process.env[key]) {
|
|
363
|
+
process.env[key] = value;
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
// Trace exporter: prevents "OTEL_TRACES_EXPORTER is empty" warning
|
|
367
|
+
setIfAbsent("OTEL_TRACES_EXPORTER", config.tracesExporter);
|
|
368
|
+
// Log exporter: prevents SDK from auto-enabling OTLP log export.
|
|
369
|
+
// Framework default is 'none' (own logger handles all logging).
|
|
370
|
+
setIfAbsent("OTEL_LOGS_EXPORTER", config.logsExporter);
|
|
371
|
+
// Service name: ensures SDK resource detection matches framework config
|
|
372
|
+
setIfAbsent("OTEL_SERVICE_NAME", config.serviceName);
|
|
373
|
+
// OTLP endpoint: ensures exporters use the config-file endpoint
|
|
374
|
+
setIfAbsent("OTEL_EXPORTER_OTLP_ENDPOINT", config.endpoint);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Build the trace exporter from config.
|
|
378
|
+
*
|
|
379
|
+
* - `'none'` — No trace export (returns undefined)
|
|
380
|
+
* - `'console'` — ConsoleSpanExporter (for debugging)
|
|
381
|
+
* - `'otlp'` or unset — OTLPTraceExporter with optional endpoint
|
|
382
|
+
*
|
|
383
|
+
* @param config - Telemetry configuration
|
|
384
|
+
* @param otel - Lazily loaded OTEL modules
|
|
385
|
+
* @returns SpanExporter instance or undefined (no tracing)
|
|
386
|
+
*/
|
|
387
|
+
function buildTraceExporter(config, otel) {
|
|
388
|
+
const exporter = config.tracesExporter?.toLowerCase() ?? "otlp";
|
|
389
|
+
switch (exporter) {
|
|
390
|
+
case "none":
|
|
391
|
+
logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, "none");
|
|
392
|
+
return undefined;
|
|
393
|
+
case "console":
|
|
394
|
+
logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, "console");
|
|
395
|
+
return new otel.ConsoleSpanExporter();
|
|
396
|
+
case "otlp":
|
|
397
|
+
default: {
|
|
398
|
+
if (exporter !== "otlp") {
|
|
399
|
+
logger.warn(SdkLogMessages.UNKNOWN_TRACE_EXPORTER, exporter);
|
|
400
|
+
}
|
|
401
|
+
// OTLPTraceExporter reads OTEL_EXPORTER_OTLP_ENDPOINT from env natively,
|
|
402
|
+
// but we pass the config value explicitly to support config-file-based setup.
|
|
403
|
+
const url = `${config.endpoint}/v1/traces`;
|
|
404
|
+
logger.debug(SdkLogMessages.TRACE_EXPORTER_CONFIGURED, `otlp (endpoint: ${url})`);
|
|
405
|
+
return new otel.OTLPTraceExporter({ url });
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Build metric readers from the configured exporter list.
|
|
411
|
+
*
|
|
412
|
+
* Supported values in `OTEL_METRICS_EXPORTER`:
|
|
413
|
+
* - `'otlp'` — OTLP/HTTP metric export
|
|
414
|
+
* - `'prometheus'` — Embedded Prometheus exporter at `/metrics`
|
|
415
|
+
* - `'console'` — Console metric exporter (for debugging)
|
|
416
|
+
* - `'none'` — No metrics export
|
|
417
|
+
*
|
|
418
|
+
* Unknown values are silently ignored.
|
|
419
|
+
*
|
|
420
|
+
* @param config - Telemetry configuration
|
|
421
|
+
* @param otel - Lazily loaded OTEL modules
|
|
422
|
+
* @returns Array of MetricReader instances
|
|
423
|
+
*/
|
|
424
|
+
function buildMetricReaders(config, otel) {
|
|
425
|
+
const readers = [];
|
|
426
|
+
for (const exporterName of config.metricsExporters) {
|
|
427
|
+
switch (exporterName) {
|
|
428
|
+
case "otlp": {
|
|
429
|
+
// OTLPMetricExporter reads endpoint from env natively,
|
|
430
|
+
// but we pass it explicitly to support config-file-based setup.
|
|
431
|
+
const url = `${config.endpoint}/v1/metrics`;
|
|
432
|
+
const otlpReader = new otel.PeriodicExportingMetricReader({
|
|
433
|
+
exporter: new otel.OTLPMetricExporter({ url }),
|
|
434
|
+
...(config.metricExportInterval && {
|
|
435
|
+
exportIntervalMillis: config.metricExportInterval,
|
|
436
|
+
}),
|
|
437
|
+
});
|
|
438
|
+
readers.push(otlpReader);
|
|
439
|
+
break;
|
|
440
|
+
}
|
|
441
|
+
case "prometheus": {
|
|
442
|
+
// Embedded mode: preventServerStart stops PrometheusExporter from
|
|
443
|
+
// binding its own HTTP server. Metrics are served by the Express
|
|
444
|
+
// /metrics route via getPrometheusExporter().
|
|
445
|
+
prometheusExporter = new otel.PrometheusExporter({
|
|
446
|
+
preventServerStart: true,
|
|
447
|
+
});
|
|
448
|
+
readers.push(prometheusExporter);
|
|
449
|
+
logger.debug(SdkLogMessages.PROMETHEUS_EXPORTER_ADDED);
|
|
450
|
+
break;
|
|
451
|
+
}
|
|
452
|
+
case "console": {
|
|
453
|
+
const consoleReader = new otel.PeriodicExportingMetricReader({
|
|
454
|
+
exporter: new otel.ConsoleMetricExporter(),
|
|
455
|
+
...(config.metricExportInterval && {
|
|
456
|
+
exportIntervalMillis: config.metricExportInterval,
|
|
457
|
+
}),
|
|
458
|
+
});
|
|
459
|
+
readers.push(consoleReader);
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
case "none":
|
|
463
|
+
// Explicit no-op — skip metric export entirely
|
|
464
|
+
break;
|
|
465
|
+
default:
|
|
466
|
+
logger.warn(SdkLogMessages.UNKNOWN_METRIC_EXPORTER, exporterName);
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return readers;
|
|
471
|
+
}
|
|
472
|
+
// ============================================================================
|
|
473
|
+
// Metric Views
|
|
474
|
+
// ============================================================================
|
|
475
|
+
/**
|
|
476
|
+
* Reduced histogram bucket boundaries for HTTP request duration (OLD semconv).
|
|
477
|
+
*
|
|
478
|
+
* Metric: `http.server.duration` (milliseconds).
|
|
479
|
+
* Default OTEL SDK has 16 boundaries (0, 5, 10, 25, 50, 75, 100, 250, 500,
|
|
480
|
+
* 750, 1000, 2500, 5000, 7500, 10000). For MCP servers, 9 buckets covering
|
|
481
|
+
* the common response time range (5ms–10s) are sufficient.
|
|
482
|
+
*
|
|
483
|
+
* Active when `OTEL_SEMCONV_STABILITY_OPT_IN` is unset or contains `http/dup`.
|
|
484
|
+
*/
|
|
485
|
+
const HTTP_DURATION_BUCKETS_MS = [5, 10, 25, 50, 100, 250, 500, 1000, 5000];
|
|
486
|
+
/**
|
|
487
|
+
* Histogram bucket boundaries for HTTP request duration (stable semconv).
|
|
488
|
+
*
|
|
489
|
+
* Metric: `http.server.request.duration` (seconds).
|
|
490
|
+
* Active when `OTEL_SEMCONV_STABILITY_OPT_IN` contains `http` or `http/dup`.
|
|
491
|
+
* Values are the same ranges as {@link HTTP_DURATION_BUCKETS_MS} converted to
|
|
492
|
+
* seconds, with finer sub-10ms resolution added.
|
|
493
|
+
*/
|
|
494
|
+
const HTTP_DURATION_BUCKETS_S = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 5];
|
|
495
|
+
/**
|
|
496
|
+
* Histogram bucket boundaries for MCP request duration.
|
|
497
|
+
*
|
|
498
|
+
* MCP tool handlers typically respond in 1ms–5s. Finer granularity at the
|
|
499
|
+
* low end (1–50ms) captures fast tools; the tail (1s–10s) covers API calls.
|
|
500
|
+
*/
|
|
501
|
+
const MCP_DURATION_BUCKETS = [1, 5, 10, 25, 50, 100, 250, 500, 1000, 5000];
|
|
502
|
+
/**
|
|
503
|
+
* Builds OpenTelemetry metric views with custom histogram bucket boundaries.
|
|
504
|
+
*
|
|
505
|
+
* Overrides the default OTEL bucket set (16 boundaries) with MCP-relevant
|
|
506
|
+
* ranges for both HTTP and MCP duration histograms, reducing Prometheus
|
|
507
|
+
* cardinality while preserving useful percentile resolution.
|
|
508
|
+
*
|
|
509
|
+
* Two HTTP views are registered to cover both semconv variants:
|
|
510
|
+
* - `http.server.duration` (OLD, milliseconds) — default behavior
|
|
511
|
+
* - `http.server.request.duration` (stable, seconds) — active when
|
|
512
|
+
* `OTEL_SEMCONV_STABILITY_OPT_IN` includes `http` or `http/dup`
|
|
513
|
+
*
|
|
514
|
+
* Both views are always registered; the SDK only applies a view when
|
|
515
|
+
* its `instrumentName` matches an actually emitted metric.
|
|
516
|
+
*
|
|
517
|
+
* @returns Array of ViewOptions for NodeSDK configuration
|
|
518
|
+
*/
|
|
519
|
+
function buildMetricViews(otel) {
|
|
520
|
+
return [
|
|
521
|
+
// OLD semconv: http.server.duration (milliseconds)
|
|
522
|
+
{
|
|
523
|
+
instrumentName: "http.server.duration",
|
|
524
|
+
aggregation: {
|
|
525
|
+
type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
|
|
526
|
+
options: { boundaries: HTTP_DURATION_BUCKETS_MS },
|
|
527
|
+
},
|
|
528
|
+
},
|
|
529
|
+
// Stable semconv: http.server.request.duration (seconds)
|
|
530
|
+
// Active when OTEL_SEMCONV_STABILITY_OPT_IN=http or http/dup
|
|
531
|
+
{
|
|
532
|
+
instrumentName: "http.server.request.duration",
|
|
533
|
+
aggregation: {
|
|
534
|
+
type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
|
|
535
|
+
options: { boundaries: HTTP_DURATION_BUCKETS_S },
|
|
536
|
+
},
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
instrumentName: METRIC_NAMES.REQUEST_DURATION,
|
|
540
|
+
aggregation: {
|
|
541
|
+
type: otel.AggregationType.EXPLICIT_BUCKET_HISTOGRAM,
|
|
542
|
+
options: { boundaries: MCP_DURATION_BUCKETS },
|
|
543
|
+
},
|
|
544
|
+
},
|
|
545
|
+
];
|
|
546
|
+
}
|
|
547
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/telemetry/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Tracing Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides convenient helpers for creating and managing spans.
|
|
5
|
+
* All OTEL imports are lazy-loaded (see DD-020). Synchronous functions
|
|
6
|
+
* gracefully no-op when the API hasn't been loaded yet.
|
|
7
|
+
*
|
|
8
|
+
* @module server/telemetry/tracing
|
|
9
|
+
*/
|
|
10
|
+
import type { Span, Attributes, Tracer } from "@opentelemetry/api";
|
|
11
|
+
import { type SpanOptions, type TraceContext, type SpanCallback, type AsyncSpanCallback } from "./core/index.js";
|
|
12
|
+
/** @public SpanKind constants — numeric-compatible with `@opentelemetry/api.SpanKind` */
|
|
13
|
+
export declare const FrameworkSpanKind: {
|
|
14
|
+
readonly INTERNAL: 0;
|
|
15
|
+
readonly SERVER: 1;
|
|
16
|
+
readonly CLIENT: 2;
|
|
17
|
+
readonly PRODUCER: 3;
|
|
18
|
+
readonly CONSUMER: 4;
|
|
19
|
+
};
|
|
20
|
+
/** @public SpanStatusCode constants — numeric-compatible with `@opentelemetry/api.SpanStatusCode` */
|
|
21
|
+
export declare const FrameworkSpanStatusCode: {
|
|
22
|
+
readonly UNSET: 0;
|
|
23
|
+
readonly OK: 1;
|
|
24
|
+
readonly ERROR: 2;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Get the tracer instance for the MCP Server.
|
|
28
|
+
* Returns a noop tracer proxy when the OTEL API hasn't been loaded yet.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getTracer(): Tracer;
|
|
31
|
+
/**
|
|
32
|
+
* Execute a function within a new span.
|
|
33
|
+
* Automatically handles errors and sets span status.
|
|
34
|
+
*
|
|
35
|
+
* @param name - Name of the span
|
|
36
|
+
* @param fn - Function to execute within the span
|
|
37
|
+
* @param options - Span options
|
|
38
|
+
* @returns The result of the function
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const result = await withSpan('processRequest', async (span) => {
|
|
43
|
+
* span.setAttribute('request.id', requestId);
|
|
44
|
+
* return await processRequest();
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function withSpan<T>(name: string, fn: AsyncSpanCallback<T>, options?: SpanOptions): Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Execute a synchronous function within a new span.
|
|
51
|
+
*
|
|
52
|
+
* @param name - Name of the span
|
|
53
|
+
* @param fn - Function to execute within the span
|
|
54
|
+
* @param options - Span options
|
|
55
|
+
* @returns The result of the function
|
|
56
|
+
*/
|
|
57
|
+
export declare function withSpanSync<T>(name: string, fn: SpanCallback<T>, options?: SpanOptions): T;
|
|
58
|
+
/**
|
|
59
|
+
* Get the currently active span.
|
|
60
|
+
* Returns undefined if no span is active or OTEL API is not loaded.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getActiveSpan(): Span | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Add attributes to the active span.
|
|
65
|
+
* Does nothing if no span is active.
|
|
66
|
+
*/
|
|
67
|
+
export declare function addSpanAttributes(attributes: Attributes): void;
|
|
68
|
+
/**
|
|
69
|
+
* Add an event to the active span.
|
|
70
|
+
* Does nothing if no span is active.
|
|
71
|
+
*/
|
|
72
|
+
export declare function addSpanEvent(name: string, attributes?: Attributes): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get the current trace context for propagation.
|
|
75
|
+
* Useful for passing context to external services.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getTraceContext(): TraceContext | undefined;
|
|
78
|
+
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/telemetry/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AA+CzB,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAEX,qGAAqG;AACrG,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAuC/G;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CA4C/F;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,GAAG,SAAS,CAIhD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAK9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAKxE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAW1D"}
|