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)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.
List of related functions#
- 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_nameAPL equivalent
['ai-logs']
| extend total_cost = genai_cost(model, input_tokens, output_tokens)