Files
Nityananda GohainandGitHub 61ad7bb3b3 feat: add signozllmcostprocessor (#797)
## Pull Request

### Summary
Adds llm cost processor

### Related Issues
FIxes https://github.com/SigNoz/engineering-pod/issues/4358

### Resource Impact
**Will this change affect the application's resource usage?**
- [x] Yes
- [ ] No

If **Yes**, describe:
- **Resources impacted:** (CPU, Memory, Disk, Network, etc.)
- **Expected change:** (e.g., +10% CPU, -150MB RAM)
- **Benchmarks:** Provide before/after results and how they were
measured.
2026-05-18 04:33:46 +00:00

117 lines
2.6 KiB
YAML

# Full valid config — mirrors the spec.
signozllmpricing:
attrs:
model: "gen_ai.request.model"
in: "gen_ai.usage.input_tokens"
out: "gen_ai.usage.output_tokens"
cache_read: "gen_ai.usage.input_token_details.cached"
cache_write: "gen_ai.usage.input_token_details.cache_creation"
default_pricing:
rules:
- name: gpt-4o
pattern: ["gpt-4o*"]
cache:
mode: subtract
read: 2.5
write: 0.0
in: 5.0
out: 15.0
- name: claude
pattern: ["claude-*"]
cache:
mode: additive
read: 0.30
write: 3.75
in: 3.0
out: 15.0
output_attrs:
in: "_signoz.gen_ai.cost_input"
out: "_signoz.gen_ai.cost_output"
cache_read: "_signoz.gen_ai.cost_cache_read"
cache_write: "_signoz.gen_ai.cost_cache_write"
total: "_signoz.gen_ai.total_cost"
# Minimal valid — only total output attr required.
signozllmpricing/minimal:
attrs:
model: "gen_ai.request.model"
in: "gen_ai.usage.input_tokens"
out: "gen_ai.usage.output_tokens"
default_pricing:
rules:
- pattern: ["*"]
cache:
mode: subtract
read: 0.0
write: 0.0
in: 1.0
out: 2.0
output_attrs:
total: "_signoz.gen_ai.total_cost"
# Invalid: missing attrs.model.
signozllmpricing/no_model_attr:
attrs:
model: ""
in: "gen_ai.usage.input_tokens"
out: "gen_ai.usage.output_tokens"
default_pricing:
rules:
- pattern: ["*"]
cache:
mode: subtract
read: 0.0
write: 0.0
in: 1.0
out: 2.0
output_attrs:
total: "_signoz.gen_ai.total_cost"
# Invalid: missing pattern (empty list).
signozllmpricing/no_pattern:
attrs:
model: "gen_ai.request.model"
default_pricing:
rules:
- pattern: []
cache:
mode: subtract
read: 0.0
write: 0.0
in: 1.0
out: 2.0
output_attrs:
total: "_signoz.gen_ai.total_cost"
# Invalid: unknown cache.mode.
signozllmpricing/bad_cache_mode:
attrs:
model: "gen_ai.request.model"
default_pricing:
rules:
- pattern: ["*"]
cache:
mode: unknown
read: 0.0
write: 0.0
in: 1.0
out: 2.0
output_attrs:
total: "_signoz.gen_ai.total_cost"
# Invalid: missing output_attrs.total.
signozllmpricing/no_total_output:
attrs:
model: "gen_ai.request.model"
default_pricing:
rules:
- pattern: ["*"]
cache:
mode: subtract
read: 0.0
write: 0.0
in: 1.0
out: 2.0
output_attrs:
total: ""