Overview

genai_is_truncated

You can use this function to identify incomplete responses, monitor quality issues, detect token limit problems, or track when conversations need continuation.

Usage#

Syntax#

genai_is_truncated(messages, finish_reason)

Parameters#

Name Type Required Description
messages dynamic Yes An array of message objects from a GenAI conversation. Each message typically contains role and content fields.
finish_reason string Yes The finish reason returned by the AI API (such as 'stop', 'length', 'content_filter', 'tool_calls').

Returns#

Returns a boolean value: true if the response was truncated (typically when finish_reason is 'length'), false otherwise.

Example#

Check if a GenAI response was truncated due to token limits.

Query

['otel-demo-genai']
| extend finish_reason = ['attributes.gen_ai.response.finish_reasons']
| extend is_truncated = genai_is_truncated(['attributes.gen_ai.input.messages'], finish_reason)
| summarize
    truncated_count = countif(is_truncated),
    total_count = count(),
    truncation_rate = round(100.0 * countif(is_truncated) / count(), 2)

Run in Playground

Output

truncated_count total_count truncation_rate
45 1450 3.10

This query tracks the rate of truncated responses, helping you identify when token limits are causing quality issues.

  • genai_estimate_tokens: Estimates token count. Use this to predict if responses might be truncated before making API calls.
  • genai_conversation_turns: Counts conversation turns. Analyze this alongside truncation to understand context length issues.
  • genai_extract_assistant_response: Extracts assistant responses. Use this to examine truncated responses.
  • strlen: Returns string length. Use this to analyze the length of truncated responses.

Other query languages#

Splunk SPL users

In Splunk SPL, you would check the finish_reason field manually.

Splunk example

| eval is_truncated=if(finish_reason="length", "true", "false")

APL equivalent

['ai-logs']
| extend is_truncated = genai_is_truncated(messages, finish_reason)
ANSI SQL users

In ANSI SQL, you would check the finish_reason field value.

SQL example

SELECT
  conversation_id,
  CASE WHEN finish_reason = 'length' THEN true ELSE false END as is_truncated
FROM ai_logs

APL equivalent

['ai-logs']
| extend is_truncated = genai_is_truncated(messages, finish_reason)

Updated

Was this page helpful?