-
Notifications
You must be signed in to change notification settings - Fork 470
chore(mcp): add server info metadata on client session "root" spans #14828
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 246 ± 3 ms. The average import time from base is: 245 ± 6 ms. The import time difference between this PR and base is: 0.4 ± 0.2 ms. The difference is not statistically significant (z = 2.00). Import time breakdownThe following import paths have grown:
|
Performance SLOsComparing candidate sabrenner/mcp-server-info (9ee52d3) with baseline 3.19 (015c84a) 🟡 Near SLO Breach (3 suites)🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.593ms (SLO: <4.750ms -3.3%) vs baseline: +0.4% Memory: ✅ 64.383MB (SLO: <66.500MB -3.2%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.637ms (SLO: <6.750ms 🟡 -1.7%) vs baseline: ~same Memory: ✅ 64.372MB (SLO: <66.500MB -3.2%) vs baseline: +5.0% ✅ appsec-telemetryTime: ✅ 4.587ms (SLO: <4.750ms -3.4%) vs baseline: -0.6% Memory: ✅ 64.366MB (SLO: <66.500MB -3.2%) vs baseline: +5.0% ✅ debuggerTime: ✅ 1.857ms (SLO: <2.000ms -7.2%) vs baseline: -0.2% Memory: ✅ 47.813MB (SLO: <49.500MB -3.4%) vs baseline: +4.8% ✅ iast-getTime: ✅ 1.855ms (SLO: <2.000ms -7.2%) vs baseline: -0.6% Memory: ✅ 44.620MB (SLO: <49.000MB -8.9%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.915ms (SLO: <2.100ms -8.8%) vs baseline: -0.6% Memory: ✅ 48.807MB (SLO: <50.000MB -2.4%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.363ms (SLO: <3.650ms -7.9%) vs baseline: ~same Memory: ✅ 54.638MB (SLO: <56.000MB -2.4%) vs baseline: +4.8% ✅ tracerTime: ✅ 3.353ms (SLO: <3.650ms -8.1%) vs baseline: -0.3% Memory: ✅ 54.583MB (SLO: <56.500MB -3.4%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 3.350ms (SLO: <3.650ms -8.2%) vs baseline: ~same Memory: ✅ 54.603MB (SLO: <60.000MB -9.0%) vs baseline: +4.9% 🟡 span - 26/26✅ add-eventTime: ✅ 17.410ms (SLO: <22.500ms 📉 -22.6%) vs baseline: +1.0% Memory: ✅ 36.372MB (SLO: <53.000MB 📉 -31.4%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 86.189ms (SLO: <93.500ms -7.8%) vs baseline: -1.4% Memory: ✅ 40.760MB (SLO: <53.000MB 📉 -23.1%) vs baseline: +4.7% ✅ add-tagsTime: ✅ 145.058ms (SLO: <155.000ms -6.4%) vs baseline: +0.3% Memory: ✅ 40.730MB (SLO: <53.000MB 📉 -23.2%) vs baseline: +4.6% ✅ get-contextTime: ✅ 16.068ms (SLO: <20.500ms 📉 -21.6%) vs baseline: -0.7% Memory: ✅ 36.288MB (SLO: <53.000MB 📉 -31.5%) vs baseline: +4.2% ✅ is-recordingTime: ✅ 16.513ms (SLO: <20.500ms 📉 -19.4%) vs baseline: +1.1% Memory: ✅ 36.468MB (SLO: <53.000MB 📉 -31.2%) vs baseline: +5.2% ✅ record-exceptionTime: ✅ 35.541ms (SLO: <40.000ms 📉 -11.1%) vs baseline: +0.7% Memory: ✅ 36.994MB (SLO: <53.000MB 📉 -30.2%) vs baseline: +5.2% ✅ set-statusTime: ✅ 18.237ms (SLO: <22.000ms 📉 -17.1%) vs baseline: +1.4% Memory: ✅ 36.432MB (SLO: <53.000MB 📉 -31.3%) vs baseline: +5.2% ✅ startTime: ✅ 16.278ms (SLO: <20.500ms 📉 -20.6%) vs baseline: +2.5% Memory: ✅ 36.390MB (SLO: <53.000MB 📉 -31.3%) vs baseline: +4.8% ✅ start-finishTime: ✅ 51.731ms (SLO: <52.500ms 🟡 -1.5%) vs baseline: +1.6% Memory: ✅ 34.524MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 52.043ms (SLO: <54.500ms -4.5%) vs baseline: -0.6% Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +4.4% ✅ start-finish-traceid128Time: ✅ 53.851ms (SLO: <57.000ms -5.5%) vs baseline: ~same Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +5.0% ✅ start-traceid128Time: ✅ 16.346ms (SLO: <22.500ms 📉 -27.3%) vs baseline: -0.3% Memory: ✅ 36.408MB (SLO: <53.000MB 📉 -31.3%) vs baseline: +5.0% ✅ update-nameTime: ✅ 16.347ms (SLO: <22.000ms 📉 -25.7%) vs baseline: -0.9% Memory: ✅ 36.442MB (SLO: <53.000MB 📉 -31.2%) vs baseline: +4.7% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.045µs (SLO: <20.000µs 📉 -84.8%) vs baseline: +1.6% Memory: ✅ 34.426MB (SLO: <35.500MB -3.0%) vs baseline: +4.9% ✅ 1-count-metrics-100-timesTime: ✅ 203.800µs (SLO: <220.000µs -7.4%) vs baseline: -0.6% Memory: ✅ 34.485MB (SLO: <35.500MB -2.9%) vs baseline: +4.7% ✅ 1-distribution-metric-1-timesTime: ✅ 3.623µs (SLO: <20.000µs 📉 -81.9%) vs baseline: +9.6% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +5.0% ✅ 1-distribution-metrics-100-timesTime: ✅ 213.546µs (SLO: <220.000µs -2.9%) vs baseline: -0.9% Memory: ✅ 34.485MB (SLO: <35.500MB -2.9%) vs baseline: +4.9% ✅ 1-gauge-metric-1-timesTime: ✅ 2.173µs (SLO: <20.000µs 📉 -89.1%) vs baseline: -0.5% Memory: ✅ 34.406MB (SLO: <35.500MB -3.1%) vs baseline: +4.7% ✅ 1-gauge-metrics-100-timesTime: ✅ 138.379µs (SLO: <150.000µs -7.7%) vs baseline: +1.1% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +5.0% ✅ 1-rate-metric-1-timesTime: ✅ 3.450µs (SLO: <20.000µs 📉 -82.8%) vs baseline: +9.3% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +5.0% ✅ 1-rate-metrics-100-timesTime: ✅ 217.068µs (SLO: <250.000µs 📉 -13.2%) vs baseline: -0.9% Memory: ✅ 34.367MB (SLO: <35.500MB -3.2%) vs baseline: +4.7% ✅ 100-count-metrics-100-timesTime: ✅ 20.476ms (SLO: <22.000ms -6.9%) vs baseline: +1.4% Memory: ✅ 34.446MB (SLO: <35.500MB -3.0%) vs baseline: +4.8% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.224ms (SLO: <2.300ms -3.3%) vs baseline: -0.3% Memory: ✅ 34.406MB (SLO: <35.500MB -3.1%) vs baseline: +4.8% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.410ms (SLO: <1.550ms -9.1%) vs baseline: ~same Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +4.7% ✅ 100-rate-metrics-100-timesTime: ✅ 2.222ms (SLO: <2.550ms 📉 -12.9%) vs baseline: -0.1% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +4.9% ✅ flush-1-metricTime: ✅ 4.451µs (SLO: <20.000µs 📉 -77.7%) vs baseline: -1.3% Memory: ✅ 34.347MB (SLO: <35.500MB -3.2%) vs baseline: +4.5% ✅ flush-100-metricsTime: ✅ 175.659µs (SLO: <250.000µs 📉 -29.7%) vs baseline: -0.5% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.126ms (SLO: <2.500ms 📉 -15.0%) vs baseline: ~same Memory: ✅ 35.252MB (SLO: <36.500MB -3.4%) vs baseline: +4.8%
|
…ce-py into sabrenner/mcp-server-info
…ce-py into sabrenner/mcp-server-info
…14828) ## Description Adds server info metadata to llm observability mcp client session "root" spans. This information includes - server name - server version - server title Additionally, adds similar tags to client tool spans: - For both client and server tool calls, mark which kind of tool call they are on a tag (as besides the name, which could vary for manual instrumentation, it is not apparent as they are just normal tool calls otherwise) - adds the mcp server name of the session the client tool call was used for Lastly, generally for the `mcp` integration, we now mark client tool calls as errors when the tool result returned from the mcp server was an error as well. MLOB-4147 ## Testing Add unit tests, and additionally, verified through internal testing against a staging hash in our frontend. ## Risks None
…15306) …#14828) ## Description Adds server info metadata to llm observability mcp client session "root" spans. This information includes - server name - server version - server title Additionally, adds similar tags to client tool spans: - For both client and server tool calls, mark which kind of tool call they are on a tag (as besides the name, which could vary for manual instrumentation, it is not apparent as they are just normal tool calls otherwise) - adds the mcp server name of the session the client tool call was used for Lastly, generally for the `mcp` integration, we now mark client tool calls as errors when the tool result returned from the mcp server was an error as well. MLOB-4147 ## Testing Add unit tests, and additionally, verified through internal testing against a staging hash in our frontend. ## Risks None ## Description <!-- Provide an overview of the change and motivation for the change --> ## Testing <!-- Describe your testing strategy or note what tests are included --> ## Risks <!-- Note any risks associated with this change, or "None" if no risks --> ## Additional Notes <!-- Any other information that would be helpful for reviewers -->
Description
Adds server info metadata to llm observability mcp client session "root" spans. This information includes
Additionally, adds similar tags to client tool spans:
Lastly, generally for the
mcpintegration, we now mark client tool calls as errors when the tool result returned from the mcp server was an error as well.MLOB-4147
Testing
Add unit tests, and additionally, verified through internal testing against a staging hash in our frontend.
Risks
None