Este producto no es compatible con el sitio Datadog seleccionado. ().

Información general

La API de exportación de LLM Observability proporciona endpoints para recuperar datos de tramos (spans). Estos endpoints te permiten acceder mediante programación a tus datos de LLM Observability para ejecutar evaluaciones externas y exportar tramos para su almacenamiento sin conexión.

Por defecto, exportamos tramos de los últimos 15 minutos. Si necesitas buscar fuera de este intervalo de tiempo, especifica un intervalo de tiempo en tu solicitud.

Buscar tramos

Utiliza este endpoint para buscar y filtrar tramos de LLM Observability utilizando criterios específicos.

Endpoint
https://api./api/v2/llm-obs/v1/spans/events/search
Método
POST

Solicitud

Encabezados (obligatorios)

  • DD-API-KEY=<YOUR_DATADOG_API_KEY>
  • DD-APPLICATION-KEY=<YOUR_DATADOG_APPLICATION_KEY>
  • Content-Type="application/vnd.api+json"

Datos del cuerpo de texto (obligatorios)

CampoTipoDescripción
data[required]SearchSpansRequestPunto de entrada al cuerpo de la solicitud.
{
  "data": {
    "type": "spans",
    "attributes": {
      "filter": {
        "from": "2025-10-27T00:00:00Z",
        "to": "2025-10-29T23:59:59Z",
        "trace_id": "123456789",
        "span_kind": "llm",
        "tags": {
          "test-key": "correct-test-value"
        }
      },
      "page": {
        "limit": 2
      },
      "options": {
        "time_offset": 3600
      },
      "sort": "timestamp"
    }
  }
}

Ejemplo de código

curl -X POST "https://api.datadoghq.com/api/v2/llm-obs/v1/spans/events/search" \
-H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
-H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
-H "Content-Type: application/vnd.api+json" \
-d @- << EOF
{
  "data": {
    "type": "spans",
    "attributes": {
      "filter": {
        "from": "2025-10-27T00:00:00Z",
        "to": "2025-10-29T23:59:59Z",
        "span_id": "14624140233640368324"
      }
    }
  }
}
EOF

Lista de tramos

Utiliza este endpoint para recuperar una lista de tramos de LLM Observability.

Endpoint
https://api./api/v2/llm-obs/v1/spans/events
Método
GET

Solicitud

Encabezados (obligatorios)

  • DD-API-KEY=<YOUR_DATADOG_API_KEY>
  • DD-APPLICATION-KEY=<YOUR_DATADOG_APPLICATION_KEY>

Parámetros de consulta

ParámetroTipoDescripción
filter[query]cadenaBusca tramos utilizando la sintaxis genérica de consulta EVP. Si no se proporciona ningún filtro de consulta, los demás filtros tienen prioridad.
filter[span_id]cadenaBusca un tramo específico por su ID de tramo.
filter[trace_id]cadenaBusca tramos por su ID de traza (trace).
filter[tag][key]cadenaBusca tramos por pares clave/valor de etiqueta (tag).
filter[span_kind]cadenaTipo de tramo: “agent”, “workflow”, “llm”, “tool”, “task”, “embedding” o “retrieval”.
filter[span_name]cadenaBusca tramos basándose en el nombre proporcionado.
filter[ml_app]cadenaBusca tramos enviados mediante una aplicación ML específica.
filter[from]cadenaMarca de tiempo mínima de los tramos solicitados. Admite fecha-hora ISO8601, fecha matemática y marcas de tiempo frecuentes (milisegundos). Por defecto, es la hora actual menos 15 minutos.
filter[to]cadenaMarca de tiempo máxima de los tramos solicitados. Admite fecha-hora ISO8601, fecha matemática y marcas de tiempo frecuentes (milisegundos). Por defecto, es la hora actual.
sortcadenaOrden de clasificación. Valores permitidos: timestamp, -timestamp.
page[cursor]cadenaLista de los siguientes resultados con un cursor proporcionado en la consulta anterior.
page[limit]enteroNúmero máximo de tramos en la respuesta. Por defecto: 10. Límite máximo configurable: 5000.

Ejemplo de código

curl -G "https://api.datadoghq.com/api/v2/llm-obs/v1/spans/events" \
-H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
-H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
# Busca intervalos de los últimos 15 minutos.
--data-urlencode "filter[trace_id]=6903738200000000af2d3775dfc70530"

Respuesta

Ambos endpoints tienen el mismo formato de respuesta. Los resultados están paginados.

CampoTipoDescripción
data[SearchedSpanResource]Lista de tramos que coinciden con los criterios de búsqueda.
metaMetaMetadatos sobre la respuesta.
linksLinksAtributos de los enlaces.
{
  "data": [
    {
      "id": "14624140233640368324",
      "type": "span",
      "attributes": {
        "duration": 83000,
        "evaluation": {
          "failure_to_answer": {
              "eval_metric_type": "categorical",
              "value": "answered",
              "assessment": "pass",
              "status": "OK",
              "metadata": {
                  "_dd": {
                      "evaluation_kind": "failure_to_answer"
                  }
              },
              "llm_output": "answered"
          }
        },
        "input": {
          "value": "hi",
          "messages": [
            {
              "content": "hi",
              "role": "user"
            }
          ]
        },
        "metadata": {
          "test-key": "test-value"
        },
        "metrics": {
          "cache_read_input_tokens": 0,
          "cache_write_input_tokens": 0,
          "estimated_cache_read_input_cost": 0,
          "estimated_cache_write_input_cost": 0,
          "estimated_input_cost": 1500,
          "estimated_non_cached_input_cost": 1500,
          "estimated_output_cost": 6000,
          "estimated_total_cost": 7500,
          "input_tokens": 10,
          "non_cached_input_tokens": 10,
          "output_tokens": 10,
          "total_tokens": 20
        },
        "ml_app": "test-ml-app",
        "model_name": "gpt-4o-mini",
        "model_provider": "openai",
        "name": "llm_call_enriched",
        "output": {
          "value": "hello there",
          "messages": [
            {
              "content": "hello there",
              "role": "assistant"
            }
          ]
        },
        "parent_id": "undefined",
        "span_id": "14624140233640368324",
        "span_kind": "llm",
        "start_ns": 1761833858897,
        "status": "ok",
        "tags": [
          "service:test-service",
          "env:prod",
          "ddtrace.version:3.17",
          "test-key:test-value",
          "error:0",
          "source:llm-observability",
          "source:integration",
          "ml_app:test-ml-app",
          "version:",
          "language:python"
        ],
        "tool_definitions": [
          {
            "name": "test-tool",
            "description": "A test tool",
            "schema": {
              "test-key": "test-value"
            }
          }
        ],
        "trace_id": "6903738200000000af2d3775dfc70530"
      }
    }
  ],
  "meta": {
    "elapsed": 336,
    "request_id": "pddv1ChZucHRwTW96NFNfT3Z4bWFLTFBDWkR3Ii0KHYhY65R_1R21AyDpavSaeO2sul_V6omQLAyWutrzEgx-GnVDrZaMu-lW-Yc",
    "status": "done",
    "page": null
  }
}

Normas de la API

SearchSpansRequest

CampoTipoDescripción
type [obligatorio]cadenaIdentificador de la solicitud. Configurado como spans.
attributes [obligatorio]SearchSpansPayloadEl cuerpo de la solicitud.

SearchSpansPayload

CampoTipoDescripción
filterFilterParámetros de las consultas de búsqueda y filtrado.
optionsOptionsOpciones globales de consulta que se utilizan durante la consulta.
pagePageQueryAtributos de paginación para el listado de tramos.
sortcadenaOrden de clasificación. Valores permitidos: timestamp, -timestamp.

Filtro

CampoTipoDescripción
querycadenaBusca tramos utilizando la sintaxis genérica de consulta EVP. Si no se proporciona ningún filtro de consulta, los demás filtros tienen prioridad.
span_idcadenaBusca un tramo específico por su ID de tramo.
trace_idcadenaBusca tramos por su ID de traza.
tagsDict[key (string), string]Búsqueda de tramos por pares clave/valor de etiqueta.
span_kindcadenaTipo de tramo: “agent”, “workflow”, “llm”, “tool”, “task”, “embedding” o “retrieval”.
span_namecadenaBusca tramos basándose en el nombre proporcionado.
ml_appcadenaBusca tramos enviados mediante una aplicación ML específica.
fromcadenaMarca de tiempo mínima de los tramos solicitados. Admite fecha-hora ISO8601, fecha matemática y marcas de tiempo frecuentes (milisegundos). Por defecto, es la hora actual menos 15 minutos.
tocadenaMarca de tiempo máxima de los tramos solicitados. Admite fecha-hora ISO8601, fecha matemática y marcas de tiempo frecuentes (milisegundos). Por defecto, es la hora actual.

Opciones

CampoTipoDescripción
time_offsetenteroDesfase temporal (en segundos) para aplicar a la consulta.

PageQuery

CampoTipoDescripción
limitenteroNúmero máximo de tramos en la respuesta. Por defecto: 10. Límite máximo configurable: 5000.
cursorcadenaLista de los siguientes resultados con un cursor proporcionado en la consulta anterior.

SearchedSpanResource

CampoTipoDescripción
tipocadenaTipo de tramo. Valores permitidos: span. Por defecto: span.
idcadenaID único del tramo.
attributesSearchedSpanObjeto que contiene todos los atributos de tramos y sus valores asociados.

SearchedSpan

CampoTipoDescripción
span_idcadenaUn ID exclusivo de tramo.
trace_idcadenaUn identificador único compartido por todos los tramos de la misma traza.
parent_idcadenaID del elemento principal directo del tramo.
tags[cadena]Matriz de etiquetas asociadas a tu tramo.
nombrecadenaEl nombre del tramo.
statuscadenaEstado del error (“ok” o “error”).
start_nsenteroHora de inicio del tramo en nanosegundos.
durationfloatDuración del tramo en nanosegundos.
ml_appcadenaNombre de la aplicación LLM del tramo.
metadataDict[key (string), any]Datos del tramo que no están relacionados con entradas o salidas.
span_kindcadenaTipo de tramo: “agent”, “workflow”, “llm”, “tool”, “task”, “embedding” o “retrieval”.
model_namecadenaNombre del modelo utilizado en la solicitud. Solo se aplica a tramos LLM.
model_providercadenaProveedor del modelo utilizado en la solicitud. Solo se aplica a tramos LLM.
inputSearchedIOInformación de entrada del tramo.
outputSearchedIOInformación de salida del tramo.
tool_definitions[ToolDefinition]Lista de herramientas disponibles en una solicitud LLM.
métricasDict[key (string), float]Métricas de Datadog para recopilar.
evaluationDict[key (string), SpanEvalMetric]Mapa de las evaluaciones asociadas al tramo.

SearchedIO

CampoTipoDescripción
valuecadenaValor de entrada o salida.
messages[Message]Lista de mensajes. Solo es relevante para tramos LLM.

Mensaje

CampoTipoDescripción
contentcadenaEl cuerpo del mensaje.
rolcadenaEl rol de la entidad.

ToolDefinition

CampoTipoDescripción
nombrecadenaNombre de la herramienta.
descripcióncadenaDescripción de la función de la herramienta.
esquemaDict[key (string), any]Datos sobre los argumentos aceptados por una herramienta.

SpanEvalMetric

CampoTipoDescripción
eval_metric_typecadenaTipo de métrica de evaluación. Los valores válidos son categorical, score, boolean y json.
valuecualquierResultado de la evaluación. Puede ser un valor de cadena, flotante, booleano o JSON.
razonamientocadenaRazonamiento del resultado de la evaluación.
evaluacióncadenaSi la evaluación ha sido aprobada o no. Los valores válidos son pass y fail.
statuscadenaEstado del proceso de evaluación. Los valores válidos son OK, WARN y ERROR.
errorEvalMetricErrorInformación sobre el error que se ha producido al ejecutar la evaluación (si se ha producido).
tags[cadena]Pares clave-valor asociados a la métrica de evaluación.
accióncadenaAcción tomada en respuesta al resultado de la evaluación para las evaluaciones enviadas por el usuario.
eval_metric_metadataDict[key (string), any]Datos JSON arbitrarios asociados a la evaluación.
llm_outputcadenaSalida sin procesar de la llamada LLM utilizada para determinar el resultado de la evaluación.

EvalMetricError

CampoTipoDescripción
mensajecadenaDescripción del error. Puede incluir las razones por las que se omitió la evaluación o un mensaje de error generado durante la ejecución de la evaluación.
stackcadenaTraza de stack tecnológico asociada al error de evaluación.
tipocadenaCategoría del error. Una de un conjunto fijo de razones que indican por qué se ha omitido o ha fallado la evaluación.
recommended_resolutioncadenaPasos necesarios para resolver el error.

Meta

CampoTipoDescripción
elapsedenteroTiempo transcurrido en milisegundos.
pagePageAtributos de paginación.
request_idcadenaIdentificador de la solicitud.
statuscadenaEstado de la respuesta. Valores permitidos: done, timeout.

Page

CampoTipoDescripción
aftercadenaEl cursor a utilizar para obtener los resultados siguientes, si los hay. Para realizar la solicitud siguiente, utiliza los mismos parámetros añadiendo el campo page[cursor].

Enlaces

CampoTipoDescripción
nextcadenaEnlace al siguiente grupo de resultados. Consulta Paginación.