Overview

genai_estimate_tokens

You can use this function to validate prompt sizes, estimate costs before API calls, monitor content length, or analyze token efficiency across different prompts.

Usage#

Syntax#

genai_estimate_tokens(text)

Parameters#

Name Type Required Description
text string Yes The text string for which you want to estimate the token count.

Returns#

Returns a long integer representing the estimated number of tokens in the input text.

Example#

Estimate the number of tokens in a GenAI conversation prompt.

Query

['otel-demo-genai']
| extend user_prompt = genai_extract_user_prompt(['attributes.gen_ai.input.messages'])
| extend estimated_tokens = genai_estimate_tokens(user_prompt)
| summarize avg_tokens = avg(estimated_tokens), max_tokens = max(estimated_tokens)

Run in Playground

Output

avg_tokens max_tokens
245 1024

This query analyzes prompt token usage patterns, helping you predict costs and validate input sizes.

  • genai_cost: Calculates the actual cost based on token usage. Use this in combination with token estimates to predict costs.
  • strlen: Returns string length in characters. Use this for a simpler character count without token estimation.
  • string_size: Returns string length in characters. Use this when you need character count instead of token count.
  • genai_input_cost: Calculates input token cost. Combine with token estimation to predict prompt costs.

Other query languages#

Splunk SPL users

In Splunk SPL, there’s no direct equivalent for token estimation. You would typically use character or word count as a rough approximation.

Splunk example

| eval estimated_tokens=len(text)/4

APL equivalent

['ai-logs']
| extend estimated_tokens = genai_estimate_tokens(text)
ANSI SQL users

In ANSI SQL, you would need to use character-based estimations, which are less accurate than proper token counting.

SQL example

SELECT
  text,
  LENGTH(text) / 4 as estimated_tokens
FROM prompts

APL equivalent

['ai-logs']
| extend estimated_tokens = genai_estimate_tokens(text)

Updated

Was this page helpful?