AI Observability Telemetry Requirements - GenAI Attributes SigNoz's AI Observability feature requires spans to carry specific OpenTelemetry GenAI semantic convention attributes, including gen_ai.request.model, gen_ai.provider.name, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens, gen_ai.server.ttft, gen_ai.tool.name, and gen_ai.agent.name, and panels stay empty until those attributes are present. SigNoz counts a span with gen_ai.request.model as an LLM call and a span with gen_ai.tool.name as a tool call, while tool spans carry no model so the model and provider filters do not affect Tool calls panels or Calls per AI trace. SigNoz does not receive cost from users; it calculates cost from token counts and its Model pricing table and writes the total to signoz.gen_ai.usage.tokens.cost plus per-token-type attributes such as signoz.gen_ai.usage.input_tokens.cost and signoz.gen_ai.usage.cache_read.input_tokens.cost. AI Observability https://signoz.io/docs/ai-observability/ reads these attributes from your spans. A panel stays empty until your spans carry the attributes that it uses. Most names come from the OpenTelemetry GenAI semantic conventions https://opentelemetry.io/docs/specs/semconv/gen-ai/ . If your instrumentation uses other names, map them in Attribute Mapping https://signoz.io/docs/ai-observability-attribute-mapping/ . Span attributes | Attribute | Used by | |---|---| | gen ai.request.model | All LLM panels and the model filter. SigNoz counts a span with this attribute as an LLM call. | | gen ai.provider.name | Cost by provider and the provider filter. | | gen ai.usage.input tokens , gen ai.usage.output tokens | Token panels and cost. | | gen ai.usage.cache read.input tokens , gen ai.usage.cache creation.input tokens | Cache token panels, cache cost, and Prompt cache hit ratio . | | gen ai.server.ttft | TTFT p95 and Time to first token . Streaming instrumentations, such as OpenLIT, send this attribute in seconds. | | gen ai.response.finish reasons | Finish reasons . | | gen ai.tool.name | All Tool calls panels. SigNoz counts a span with this attribute as a tool call. | | gen ai.agent.name | Agent spans for the Per-trace usage panels. | An AI trace is a trace with at least one LLM, tool, or agent span. Error panels use the error status of the span, not an attribute. Resource attributes | Attribute | Used by | |---|---| | deployment.environment | The environment filter. | | service.name | The service name filter and Cost by service . | Tool spans do not carry a model. As a result, the model and provider filters do not affect the Tool calls panels or Calls per AI trace . Cost attributes You do not send cost. When SigNoz receives a span, it calculates cost from the token counts and the price of the model in Model pricing https://signoz.io/docs/ai-observability-model-pricing/ . SigNoz writes the total to signoz.gen ai.usage.tokens.cost , and one cost attribute for each token type: - signoz.gen ai.usage.input tokens.cost - signoz.gen ai.usage.output tokens.cost - signoz.gen ai.usage.cache read.input tokens.cost - signoz.gen ai.usage.cache write.input tokens.cost Next steps - AI Observability overview https://signoz.io/docs/ai-observability/ : see cost, tokens, latency, and tool calls on one dashboard. - Attribute Mapping https://signoz.io/docs/ai-observability-attribute-mapping/ : map other attribute names to the GenAI names. - LLM Observability integrations https://signoz.io/docs/llm-observability/ : instrument OpenAI, Anthropic, LiteLLM, CrewAI, and other frameworks. Get Help If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack https://signoz.io/slack/ . If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io mailto:cloud-support@signoz.io .