Overview

genai_cost

You can use this function to track AI spending, analyze cost per conversation, identify expensive queries, or create cost reports and budgets for AI services.

Usage#

Syntax#

genai_cost(model, input_tokens, output_tokens)

Parameters#

Name Type Required Description
model string Yes The name of the AI model (for example, 'gpt-4', 'claude-3-opus', 'gpt-3.5-turbo').
input_tokens long Yes The number of input tokens (prompt tokens) used in the API call.
output_tokens long Yes The number of output tokens (completion tokens) generated by the API call.

Returns#

Returns a real number representing the total cost in dollars (USD) for the API call based on the model's pricing.

Example#

Calculate the total cost of a GenAI API call based on model and token usage.

Query

['otel-demo-genai']
| extend model = ['attributes.gen_ai.response.model']
| extend input_tokens = tolong(['attributes.gen_ai.usage.input_tokens'])
| extend output_tokens = tolong(['attributes.gen_ai.usage.output_tokens'])
| extend api_cost = genai_cost(model, input_tokens, output_tokens)
| summarize total_cost = sum(api_cost), avg_cost = avg(api_cost)

Run in Playground

Output

total_cost avg_cost
12.45 0.0125

This query calculates total and average spending on AI API calls, helping you track costs and identify spending trends.

  • genai_input_cost: Calculates only the input token cost. Use this when you need to separate input and output costs.
  • genai_output_cost: Calculates only the output token cost. Use this when analyzing generation costs separately.
  • genai_get_pricing: Gets the pricing structure for a model. Use this to understand or display pricing information.
  • genai_estimate_tokens: Estimates tokens from text. Use this with genai_cost to predict costs before making API calls.

Other query languages#

Splunk SPL users

In Splunk SPL, you would need to manually calculate costs using eval and lookup tables.

Splunk example

| lookup model_pricing model OUTPUT input_price output_price
| eval total_cost=(input_tokens * input_price / 1000000) + (output_tokens * output_price / 1000000)

APL equivalent

['ai-logs']
| extend total_cost = genai_cost(model, input_tokens, output_tokens)
ANSI SQL users

In ANSI SQL, you would need to join with a pricing table and calculate costs manually.

SQL example

SELECT
  l.*,
  (l.input_tokens * p.input_price / 1000000) +
  (l.output_tokens * p.output_price / 1000000) as total_cost
FROM ai_logs l
JOIN model_pricing p ON l.model = p.model_name

APL equivalent

['ai-logs']
| extend total_cost = genai_cost(model, input_tokens, output_tokens)

Updated

Was this page helpful?