-
Notifications
You must be signed in to change notification settings - Fork 457
feat(tracing): add support for google agentic development kit (adk) #14588
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
base: main
Are you sure you want to change the base?
Conversation
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 268 ± 3 ms. The average import time from base is: 269 ± 3 ms. The import time difference between this PR and base is: -1.3 ± 0.1 ms. Import time breakdownThe following import paths have grown:
|
Performance SLOsComparing candidate conti/google-adk-integration (58e1609) with baseline main (b57f153) ❌ Test Failures (1 suite)❌ iastpropagation - 7/8✅ no-propagationTime: ✅ 48.984µs (SLO: <60.000µs 📉 -18.4%) vs baseline: -0.3% Memory: ✅ 37.021MB (SLO: <39.000MB -5.1%) vs baseline: +5.1% ✅ propagation_enabledTime: ✅ 173.702µs (SLO: <190.000µs -8.6%) vs baseline: +4.2% Memory: ✅ 37.100MB (SLO: <39.000MB -4.9%) vs baseline: +5.5% ❌ propagation_enabled_100Time: ❌ 1.927ms (SLO: <1.900ms +1.4%) vs baseline: +4.9% Memory: ✅ 37.061MB (SLO: <39.000MB -5.0%) vs baseline: +5.4% ✅ propagation_enabled_1000Time: ✅ 32.881ms (SLO: <35.550ms -7.5%) vs baseline: +3.3% Memory: ✅ 37.041MB (SLO: <39.000MB -5.0%) vs baseline: +5.2% 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.6% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ add_inplace_aspectTime: ✅ 0.423µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +4.1% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ add_inplace_noaspectTime: ✅ 0.315µs (SLO: <10.000µs 📉 -96.9%) vs baseline: -0.1% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ add_noaspectTime: ✅ 0.277µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +1.0% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.7% ✅ bytearray_aspectTime: ✅ 1.310µs (SLO: <10.000µs 📉 -86.9%) vs baseline: -0.4% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ bytearray_extend_aspectTime: ✅ 1.597µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +8.9% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.2% ✅ bytearray_extend_noaspectTime: ✅ 0.609µs (SLO: <10.000µs 📉 -93.9%) vs baseline: -0.2% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ bytearray_noaspectTime: ✅ 0.482µs (SLO: <10.000µs 📉 -95.2%) vs baseline: ~same Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ bytes_aspectTime: ✅ 1.429µs (SLO: <10.000µs 📉 -85.7%) vs baseline: 📈 +11.0% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ bytes_noaspectTime: ✅ 0.494µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.3% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ bytesio_aspectTime: ✅ 1.347µs (SLO: <10.000µs 📉 -86.5%) vs baseline: -1.1% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ bytesio_noaspectTime: ✅ 0.499µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.3% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ capitalize_aspectTime: ✅ 0.733µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -0.6% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.2% ✅ capitalize_noaspectTime: ✅ 0.429µs (SLO: <10.000µs 📉 -95.7%) vs baseline: -0.8% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ casefold_aspectTime: ✅ 0.731µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -0.6% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.4% ✅ casefold_noaspectTime: ✅ 0.369µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.9% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ decode_aspectTime: ✅ 0.726µs (SLO: <10.000µs 📉 -92.7%) vs baseline: +0.3% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.1% ✅ decode_noaspectTime: ✅ 0.415µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -1.8% Memory: ✅ 37.552MB (SLO: <39.000MB -3.7%) vs baseline: +5.5% ✅ encode_aspectTime: ✅ 0.708µs (SLO: <10.000µs 📉 -92.9%) vs baseline: +0.7% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.6% ✅ encode_noaspectTime: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.5% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.4% ✅ format_aspectTime: ✅ 3.388µs (SLO: <10.000µs 📉 -66.1%) vs baseline: +0.4% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ format_map_aspectTime: ✅ 3.710µs (SLO: <10.000µs 📉 -62.9%) vs baseline: +5.8% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ format_map_noaspectTime: ✅ 0.779µs (SLO: <10.000µs 📉 -92.2%) vs baseline: +0.7% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ format_noaspectTime: ✅ 0.594µs (SLO: <10.000µs 📉 -94.1%) vs baseline: +0.4% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ index_aspectTime: ✅ 0.356µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +0.3% Memory: ✅ 37.572MB (SLO: <39.000MB -3.7%) vs baseline: +5.7% ✅ index_noaspectTime: ✅ 0.280µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +1.4% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.6% ✅ join_aspectTime: ✅ 1.372µs (SLO: <10.000µs 📉 -86.3%) vs baseline: +5.0% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ join_noaspectTime: ✅ 0.490µs (SLO: <10.000µs 📉 -95.1%) vs baseline: +0.2% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ ljust_aspectTime: ✅ 2.675µs (SLO: <20.000µs 📉 -86.6%) vs baseline: +4.6% Memory: ✅ 37.552MB (SLO: <39.000MB -3.7%) vs baseline: +5.5% ✅ ljust_noaspectTime: ✅ 0.405µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +1.3% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ lower_aspectTime: ✅ 2.336µs (SLO: <10.000µs 📉 -76.6%) vs baseline: +2.2% Memory: ✅ 37.552MB (SLO: <39.000MB -3.7%) vs baseline: +5.6% ✅ lower_noaspectTime: ✅ 0.369µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.6% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ lstrip_aspectTime: ✅ 2.226µs (SLO: <20.000µs 📉 -88.9%) vs baseline: +0.3% Memory: ✅ 37.572MB (SLO: <39.000MB -3.7%) vs baseline: +5.6% ✅ lstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.8% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ modulo_aspectTime: ✅ 0.997µs (SLO: <10.000µs 📉 -90.0%) vs baseline: -0.6% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.608µs (SLO: <10.000µs 📉 -83.9%) vs baseline: +6.3% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ modulo_aspect_for_bytesTime: ✅ 0.970µs (SLO: <10.000µs 📉 -90.3%) vs baseline: ~same Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.217µs (SLO: <10.000µs 📉 -87.8%) vs baseline: +2.4% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ modulo_noaspectTime: ✅ 0.631µs (SLO: <10.000µs 📉 -93.7%) vs baseline: +1.5% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.3% ✅ replace_aspectTime: ✅ 4.912µs (SLO: <10.000µs 📉 -50.9%) vs baseline: +0.5% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ replace_noaspectTime: ✅ 0.460µs (SLO: <10.000µs 📉 -95.4%) vs baseline: +0.5% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.6% ✅ repr_aspectTime: ✅ 0.908µs (SLO: <10.000µs 📉 -90.9%) vs baseline: -0.2% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ repr_noaspectTime: ✅ 0.415µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +0.8% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ rstrip_aspectTime: ✅ 1.976µs (SLO: <20.000µs 📉 -90.1%) vs baseline: +2.5% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.3% ✅ rstrip_noaspectTime: ✅ 0.378µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -1.3% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ slice_aspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.3% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ slice_noaspectTime: ✅ 0.448µs (SLO: <10.000µs 📉 -95.5%) vs baseline: +1.3% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.3% ✅ stringio_aspectTime: ✅ 1.640µs (SLO: <10.000µs 📉 -83.6%) vs baseline: +6.6% Memory: ✅ 37.415MB (SLO: <39.000MB -4.1%) vs baseline: +5.3% ✅ stringio_noaspectTime: ✅ 0.722µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +0.8% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ strip_aspectTime: ✅ 2.258µs (SLO: <20.000µs 📉 -88.7%) vs baseline: ~same Memory: ✅ 37.591MB (SLO: <39.000MB -3.6%) vs baseline: +5.6% ✅ strip_noaspectTime: ✅ 0.387µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +1.3% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% ✅ swapcase_aspectTime: ✅ 2.560µs (SLO: <10.000µs 📉 -74.4%) vs baseline: +2.0% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ swapcase_noaspectTime: ✅ 0.537µs (SLO: <10.000µs 📉 -94.6%) vs baseline: ~same Memory: ✅ 37.395MB (SLO: <39.000MB -4.1%) vs baseline: +5.0% ✅ title_aspectTime: ✅ 2.347µs (SLO: <10.000µs 📉 -76.5%) vs baseline: -2.7% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ title_noaspectTime: ✅ 0.501µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -1.0% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.5% ✅ translate_aspectTime: ✅ 3.253µs (SLO: <10.000µs 📉 -67.5%) vs baseline: -3.1% Memory: ✅ 37.513MB (SLO: <39.000MB -3.8%) vs baseline: +5.4% ✅ translate_noaspectTime: ✅ 1.041µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +0.3% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.7% ✅ upper_aspectTime: ✅ 2.219µs (SLO: <10.000µs 📉 -77.8%) vs baseline: -2.5% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ upper_noaspectTime: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -1.3% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.4% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 4.151µs (SLO: <10.000µs 📉 -58.5%) vs baseline: -4.3% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.2% ✅ ospathbasename_noaspectTime: ✅ 1.075µs (SLO: <10.000µs 📉 -89.3%) vs baseline: -0.4% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.3% ✅ ospathjoin_aspectTime: ✅ 6.957µs (SLO: <10.000µs 📉 -30.4%) vs baseline: +8.9% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.6% ✅ ospathjoin_noaspectTime: ✅ 2.281µs (SLO: <10.000µs 📉 -77.2%) vs baseline: -0.3% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.7% ✅ ospathnormcase_aspectTime: ✅ 4.062µs (SLO: <10.000µs 📉 -59.4%) vs baseline: 📈 +10.3% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.5% ✅ ospathnormcase_noaspectTime: ✅ 0.566µs (SLO: <10.000µs 📉 -94.3%) vs baseline: -1.0% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.3% ✅ ospathsplit_aspectTime: ✅ 5.691µs (SLO: <10.000µs 📉 -43.1%) vs baseline: 📈 +14.6% Memory: ✅ 37.454MB (SLO: <39.000MB -4.0%) vs baseline: +5.3% ✅ ospathsplit_noaspectTime: ✅ 1.582µs (SLO: <10.000µs 📉 -84.2%) vs baseline: -1.0% Memory: ✅ 37.473MB (SLO: <39.000MB -3.9%) vs baseline: +5.6% ✅ ospathsplitdrive_aspectTime: ✅ 4.241µs (SLO: <10.000µs 📉 -57.6%) vs baseline: +9.8% Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ ospathsplitdrive_noaspectTime: ✅ 0.694µs (SLO: <10.000µs 📉 -93.1%) vs baseline: ~same Memory: ✅ 37.434MB (SLO: <39.000MB -4.0%) vs baseline: +5.4% ✅ ospathsplitext_aspectTime: ✅ 5.073µs (SLO: <10.000µs 📉 -49.3%) vs baseline: +8.8% Memory: ✅ 37.532MB (SLO: <39.000MB -3.8%) vs baseline: +5.6% ✅ ospathsplitext_noaspectTime: ✅ 1.378µs (SLO: <10.000µs 📉 -86.2%) vs baseline: -0.9% Memory: ✅ 37.493MB (SLO: <39.000MB -3.9%) vs baseline: +5.3% 🟡 Near SLO Breach (5 suites)🟡 djangosimple - 26/26✅ appsecTime: ✅ 20.562ms (SLO: <22.300ms -7.8%) vs baseline: +0.1% Memory: ✅ 64.448MB (SLO: <66.000MB -2.4%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.344ms (SLO: <1.450ms -7.3%) vs baseline: -0.6% Memory: ✅ 63.570MB (SLO: <66.000MB -3.7%) vs baseline: +4.9% ✅ iastTime: ✅ 20.577ms (SLO: <22.250ms -7.5%) vs baseline: +0.4% Memory: ✅ 64.487MB (SLO: <66.000MB -2.3%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.260ms (SLO: <16.550ms -7.8%) vs baseline: -0.2% Memory: ✅ 52.986MB (SLO: <53.500MB 🟡 -1.0%) vs baseline: +4.9% ✅ span-code-originTime: ✅ 26.142ms (SLO: <28.200ms -7.3%) vs baseline: ~same Memory: ✅ 66.662MB (SLO: <68.500MB -2.7%) vs baseline: +4.9% ✅ tracerTime: ✅ 20.576ms (SLO: <21.750ms -5.4%) vs baseline: ~same Memory: ✅ 64.507MB (SLO: <66.000MB -2.3%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 22.072ms (SLO: <23.500ms -6.1%) vs baseline: -0.4% Memory: ✅ 65.846MB (SLO: <67.000MB 🟡 -1.7%) vs baseline: +5.1% ✅ tracer-dont-create-db-spansTime: ✅ 19.375ms (SLO: <21.500ms -9.9%) vs baseline: ~same Memory: ✅ 64.527MB (SLO: <66.000MB -2.2%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 20.537ms (SLO: <21.750ms -5.6%) vs baseline: +0.3% Memory: ✅ 65.838MB (SLO: <66.000MB 🟡 -0.2%) vs baseline: +5.2% ✅ tracer-no-cachesTime: ✅ 18.426ms (SLO: <19.650ms -6.2%) vs baseline: -0.3% Memory: ✅ 64.484MB (SLO: <66.000MB -2.3%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.704ms (SLO: <20.100ms -6.9%) vs baseline: -0.6% Memory: ✅ 64.487MB (SLO: <66.000MB -2.3%) vs baseline: +5.0% ✅ tracer-no-middlewareTime: ✅ 20.223ms (SLO: <21.500ms -5.9%) vs baseline: +0.2% Memory: ✅ 64.448MB (SLO: <66.000MB -2.4%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.297ms (SLO: <22.000ms -7.7%) vs baseline: -0.2% Memory: ✅ 64.527MB (SLO: <66.000MB -2.2%) vs baseline: +5.1% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.075ms (SLO: <19.850ms -8.9%) vs baseline: ~same Memory: ✅ 64.487MB (SLO: <65.500MB 🟡 -1.5%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.066ms (SLO: <19.400ms -6.9%) vs baseline: +0.3% Memory: ✅ 64.507MB (SLO: <65.500MB 🟡 -1.5%) vs baseline: +5.0% ✅ tracer-enabledTime: ✅ 18.199ms (SLO: <19.450ms -6.4%) vs baseline: +0.7% Memory: ✅ 64.462MB (SLO: <65.500MB 🟡 -1.6%) vs baseline: +4.9% 🟡 flasksimple - 17/17✅ appsec-getTime: ✅ 4.589ms (SLO: <4.750ms -3.4%) vs baseline: -0.2% Memory: ✅ 62.403MB (SLO: <64.500MB -3.3%) vs baseline: +5.0% ✅ appsec-postTime: ✅ 6.599ms (SLO: <6.750ms -2.2%) vs baseline: +0.4% Memory: ✅ 62.403MB (SLO: <64.500MB -3.3%) vs baseline: +5.2% ✅ appsec-telemetryTime: ✅ 4.582ms (SLO: <4.750ms -3.5%) vs baseline: +0.3% Memory: ✅ 62.344MB (SLO: <64.500MB -3.3%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.857ms (SLO: <2.000ms -7.1%) vs baseline: +0.2% Memory: ✅ 44.768MB (SLO: <45.000MB 🟡 -0.5%) vs baseline: +5.2% ✅ iast-getTime: ✅ 1.854ms (SLO: <2.000ms -7.3%) vs baseline: -0.1% Memory: ✅ 41.760MB (SLO: <49.000MB 📉 -14.8%) vs baseline: +5.2% ✅ profilerTime: ✅ 1.912ms (SLO: <2.100ms -8.9%) vs baseline: ~same Memory: ✅ 44.551MB (SLO: <46.500MB -4.2%) vs baseline: +5.2% ✅ tracerTime: ✅ 3.379ms (SLO: <3.650ms -7.4%) vs baseline: ~same Memory: ✅ 51.393MB (SLO: <53.500MB -3.9%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 3.369ms (SLO: <3.650ms -7.7%) vs baseline: -0.4% Memory: ✅ 52.632MB (SLO: <53.500MB 🟡 -1.6%) vs baseline: +4.9% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 3.942ms (SLO: <4.200ms -6.1%) vs baseline: -0.4% Memory: ✅ 62.494MB (SLO: <66.000MB -5.3%) vs baseline: +4.5% ✅ iast-enabledTime: ✅ 2.462ms (SLO: <2.800ms 📉 -12.1%) vs baseline: +0.7% Memory: ✅ 58.031MB (SLO: <59.000MB 🟡 -1.6%) vs baseline: +4.7% ✅ tracer-enabledTime: ✅ 2.073ms (SLO: <2.250ms -7.9%) vs baseline: ~same Memory: ✅ 51.230MB (SLO: <53.500MB -4.2%) vs baseline: +5.0% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 45.832ms (SLO: <47.150ms -2.8%) vs baseline: +1.5% Memory: ✅ 44.618MB (SLO: <46.500MB -4.0%) vs baseline: +5.3% ✅ add-metricsTime: ✅ 321.893ms (SLO: <344.800ms -6.6%) vs baseline: +0.3% Memory: ✅ 553.771MB (SLO: <562.000MB 🟡 -1.5%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 292.869ms (SLO: <314.000ms -6.7%) vs baseline: +0.5% Memory: ✅ 555.303MB (SLO: <563.500MB 🟡 -1.5%) vs baseline: +4.8% ✅ get-contextTime: ✅ 82.460ms (SLO: <92.350ms 📉 -10.7%) vs baseline: -0.3% Memory: ✅ 39.775MB (SLO: <46.500MB 📉 -14.5%) vs baseline: +5.0% ✅ is-recordingTime: ✅ 43.010ms (SLO: <44.500ms -3.3%) vs baseline: +0.4% Memory: ✅ 44.001MB (SLO: <46.500MB -5.4%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 63.054ms (SLO: <67.650ms -6.8%) vs baseline: +2.2% Memory: ✅ 40.105MB (SLO: <46.500MB 📉 -13.8%) vs baseline: +5.3% ✅ set-statusTime: ✅ 49.007ms (SLO: <50.400ms -2.8%) vs baseline: +0.8% Memory: ✅ 44.212MB (SLO: <46.500MB -4.9%) vs baseline: +5.6% ✅ startTime: ✅ 42.267ms (SLO: <43.450ms -2.7%) vs baseline: +0.2% Memory: ✅ 44.085MB (SLO: <46.500MB -5.2%) vs baseline: +5.3% ✅ start-finishTime: ✅ 83.286ms (SLO: <88.000ms -5.4%) vs baseline: +0.3% Memory: ✅ 33.994MB (SLO: <46.500MB 📉 -26.9%) vs baseline: +5.5% ✅ start-finish-telemetryTime: ✅ 84.930ms (SLO: <89.000ms -4.6%) vs baseline: +0.4% Memory: ✅ 33.994MB (SLO: <46.500MB 📉 -26.9%) vs baseline: +5.5% ✅ update-nameTime: ✅ 44.348ms (SLO: <45.150ms 🟡 -1.8%) vs baseline: +0.6% Memory: ✅ 44.371MB (SLO: <46.500MB -4.6%) vs baseline: +5.3%
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cursory glance at the integration and gave some high level feedback, this PR mostly needs ml-obs review, but aren't the sole code owner yet.
Alternatively, use :func:`patch() <ddtrace.patch>` to manually enable the Google ADK integration:: | ||
from ddtrace import config, patch | ||
patch(google_adk=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alternatively, use :func:`patch() <ddtrace.patch>` to manually enable the Google ADK integration:: | |
from ddtrace import config, patch | |
patch(google_adk=True) |
we shouldn't suggest this approach anymore.
honestly, not a big deal, but figure one less thing to remove in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should continue with the doc suggestions of not suggesting Pin.onto()
or patch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just some initial thoughts on the patching code, will follow up with a closer review of the mlobs integration code after!
def _traced_agent_run_async(adk, pin, wrapped, instance, args, kwargs): | ||
"""Trace the main execution of an agent (async generator).""" | ||
integration = adk._datadog_integration | ||
agen = wrapped(*args, **kwargs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's start the span here, so we can do some try/except around this operation as well should it fail
something like
span = integration.trace(...)
try:
agen = wrapped(*args, **kwargs)
except Exception:
span.set_exc_info(...)
span.finish()
async def _generator(): # finish the span in the `finally` block here as you already do
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done. will leave unresolved so you can check that it was done the way you're expecting.
def extract_provider_and_model_name(kwargs: Optional[Dict[str, Any]] = None, agent: Any = None) -> Tuple[str, str]: | ||
if agent is None: | ||
return "google", "google" | ||
return agent.model.__class__.__name__, agent.model.model |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we .lower
here? i think we should if looking at class names, otherwise if we're able to grab some kind of str
identifier on the agent
object i think that could be better
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah there's only the model class name and the actual model name available.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the .lower
kind = kwargs.get("kind", None) | ||
if kind: | ||
self._register_span(span, kind) | ||
span._set_ctx_item(SPAN_KIND, kind) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'd say we can leave this for the _set_llmobs_tags
method, it takes in an operation
kwarg that could be used in place of reading this ctx item back again there.
mainly just a best practice thing as trace
here will run regardless of if llmobs is enabled. if it's not enabled, we don't want to bloat any aspect of the span or memory associated with it if possible, and instead set it in _llmobs_set_tags
, which is guarded by the parent llmobs_set_tags
to not run if llmobs is not enabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done.
Adds support for APM tracing and LLM Observability for the google-adk library.
Checklist
Reviewer Checklist