Skip to content

Conversation

@Kyle-Verhoog
Copy link
Member

@Kyle-Verhoog Kyle-Verhoog commented Jul 2, 2025

Adds the basic support for creating and pulling dataset objects from the new Datadog LLMObs Experiments product.

Testing is done using the new cassette logic added in 1.27.4 to the test agent which enables us to easily record requests made to the Datadog API. Instructions for running the tests are included at the top of the tests file.

Dependent on DataDog/dd-apm-test-agent#223 being merged + released.

Checklist

  • PR author has checked that all the criteria below are met
  • The PR description includes an overview of the change
  • The PR description articulates the motivation for the change
  • The change includes tests OR the PR description describes a testing strategy
  • The PR description notes risks associated with the change, if any
  • Newly-added code is easy to change
  • The change follows the library release note guidelines
  • The change includes or references documentation updates if necessary
  • Backport labels are set (if applicable)

Reviewer Checklist

  • Reviewer has checked that all the criteria below are met
  • Title is accurate
  • All changes are related to the pull request's stated goal
  • Avoids breaking API changes
  • Testing strategy adequately addresses listed risks
  • Newly-added code is easy to change
  • Release note makes sense to a user of the library
  • If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment
  • Backport labels are set in a manner that is consistent with the release branch maintenance policy

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2025

CODEOWNERS have been resolved as:

ddtrace/llmobs/_experiment.py                                           @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_delete_post_0e577f3f.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_delete_post_15fc0d15.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_e3608c37-7422-4a91-8897-9dc6097e86b4_records_get_ce4912d9.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_filter_name__test-dataset-non-existent_get_ceb7b7a1.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_filter_name__test-dataset_get_3012b2d9.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_post_3335cc3f.yaml  @DataDog/ml-observability
tests/llmobs/llmobs_cassettes/datadog/datadog_api_unstable_llm-obs_v1_datasets_post_816b83e0.yaml  @DataDog/ml-observability
tests/llmobs/test_experiments.py                                        @DataDog/ml-observability
.gitlab/services.yml                                                    @DataDog/python-guild @DataDog/apm-core-python
ddtrace/llmobs/__init__.py                                              @DataDog/ml-observability
ddtrace/llmobs/_constants.py                                            @DataDog/ml-observability
ddtrace/llmobs/_llmobs.py                                               @DataDog/ml-observability
ddtrace/llmobs/_writer.py                                               @DataDog/ml-observability
docker-compose.yml                                                      @DataDog/apm-core-python
tests/llmobs/_utils.py                                                  @DataDog/ml-observability
tests/llmobs/conftest.py                                                @DataDog/ml-observability
tests/llmobs/suitespec.yml                                              @DataDog/ml-observability

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2025

Bootstrap import analysis

Comparison of import times between this PR and base.

Summary

The average import time from this PR is: 285 ± 4 ms.

The average import time from base is: 290 ± 7 ms.

The import time difference between this PR and base is: -5.0 ± 0.3 ms.

Import time breakdown

The following import paths have shrunk:

ddtrace.auto 2.246 ms (0.79%)
ddtrace.bootstrap.sitecustomize 1.554 ms (0.55%)
ddtrace.bootstrap.preload 1.554 ms (0.55%)
ddtrace.internal.remoteconfig.client 0.716 ms (0.25%)
ddtrace 0.692 ms (0.24%)
ddtrace.internal._unpatched 0.035 ms (0.01%)
json 0.035 ms (0.01%)
json.decoder 0.035 ms (0.01%)
re 0.035 ms (0.01%)
enum 0.035 ms (0.01%)
types 0.035 ms (0.01%)

@pr-commenter
Copy link

pr-commenter bot commented Jul 2, 2025

Benchmarks

Benchmark execution time: 2025-07-09 18:03:19

Comparing candidate commit 06c2352 in PR branch llmobs/dne with baseline commit 6eb491c in branch main.

Found 0 performance improvements and 1 performance regressions! Performance is the same for 547 metrics, 2 unstable metrics.

scenario:telemetryaddmetric-1-distribution-metric-1-times

  • 🟥 execution_time [+401.419ns; +431.735ns] or [+13.846%; +14.892%]

Copy link
Contributor

@Yun-Kim Yun-Kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial thoughts!

@Kyle-Verhoog Kyle-Verhoog added the changelog/no-changelog A changelog entry is not required for this PR. label Jul 3, 2025
@Kyle-Verhoog Kyle-Verhoog force-pushed the llmobs/dne branch 2 times, most recently from 8387a40 to 46ddf4d Compare July 3, 2025 05:52
@Yun-Kim Yun-Kim changed the title feat(llmobs): add base datasets and experiments feat(llmobs): add base datasets for DnE Jul 3, 2025
@Kyle-Verhoog Kyle-Verhoog changed the title feat(llmobs): add base datasets for DnE feat(llmobs): add base datasets for experiments Jul 7, 2025
@Kyle-Verhoog Kyle-Verhoog marked this pull request as ready for review July 7, 2025 17:59
@Kyle-Verhoog Kyle-Verhoog requested review from a team as code owners July 7, 2025 17:59
@Kyle-Verhoog Kyle-Verhoog requested a review from juanjux July 7, 2025 17:59
@Kyle-Verhoog Kyle-Verhoog changed the title feat(llmobs): add base datasets for experiments chore(llmobs): add base datasets for experiments Jul 7, 2025
@Kyle-Verhoog Kyle-Verhoog requested a review from a team as a code owner July 8, 2025 13:43
Copy link
Member

@brettlangdon brettlangdon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes to .gitlab/services.yml and docker-compose.yml lgtm

This change will depend on fixes in #13911 in order to be merged.

@Kyle-Verhoog Kyle-Verhoog enabled auto-merge (squash) July 9, 2025 17:09
Copy link
Contributor

@gary-huang gary-huang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm for the first pass

@Kyle-Verhoog Kyle-Verhoog merged commit 9e5a5a0 into main Jul 9, 2025
863 checks passed
@Kyle-Verhoog Kyle-Verhoog deleted the llmobs/dne branch July 9, 2025 18:15
alyshawang pushed a commit that referenced this pull request Jul 25, 2025
Adds the basic support for creating and pulling dataset objects from the
new Datadog LLMObs Experiments product.

Testing is done using the new cassette logic added in 1.27.4 to the test
agent which enables us to easily record requests made to the Datadog
API. Instructions for running the tests are included at the top of the
tests file.

Dependent on DataDog/dd-apm-test-agent#223 being
merged + released.

[](https://datadoghq.atlassian.net/browse/MLOB-3260)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog A changelog entry is not required for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants