AI Observability Attribute Mapping - Remap LLM Spans SigNoz's AI Observability feature now lets Admins remap LLM, agent, and tool span attributes to OpenTelemetry GenAI semantic convention names through an Attribute Mapping tab, with default groups gen_ai.llm, gen_ai.agent, and gen_ai.tool covering libraries such as OpenInference and the Vercel AI SDK. Each mapping writes the first matching source attribute to a target attribute and supports Copy or Move operations, and a Test tab validates sample spans against unsaved changes before saving. The AI Observability panels expect LLM, agent, and tool attributes to use the OpenTelemetry GenAI https://opentelemetry.io/docs/specs/semconv/gen-ai/ names. If your instrumentation library uses other names, map them in the Attribute Mapping tab of AI Observability https://signoz.io/docs/ai-observability/ . SigNoz includes default mappings for common LLM libraries, and you can add your own. For prerequisites, see the AI Observability overview https://signoz.io/docs/ai-observability/ prerequisites . To open the tab, select More AI Observability in the side navigation, then select the Attribute Mapping tab. How groups and mappings work A group holds a set of mappings and the conditions that decide which spans the group runs on. A group runs on a span when a span attribute key or a resource key contains the text of one of its conditions. For example, the default gen ai.llm group has the condition model , so it runs on spans with keys such as llm.model name or ai.model.id . A mapping names one target attribute and one or more source attributes. For each span, SigNoz takes the first source attribute that exists on the span and writes its value to the target attribute. If the span already has the target attribute, SigNoz does not change it. For example, the default mapping for gen ai.request.model starts with llm.model name , then llm.request.model , then ai.model.id . Each source has an operation: - Copy default keeps the source attribute on the span. - Move removes the source attribute after SigNoz writes the target. To see the condition keys of a group, hover over its condition count. To edit or delete a mapping, open its menu ⋮ . Default groups SigNoz creates three default groups: gen ai.llm , gen ai.agent , and gen ai.tool . They map the attributes of common LLM libraries, such as OpenInference and the Vercel AI SDK, to the GenAI names. In a default group, you can turn the group and its mappings on or off. You can also add your own conditions, mappings, and sources. You cannot rename or delete a default group or a default mapping, and you cannot change the key or the operation of a default source. Add a group Only Admins can add, edit, or delete groups and mappings. 1. On the Attribute Mappings tab, select Add a new group . 2. In Group Name , type a name for the group. 3. Add at least one condition in Condition · span attribute keys or Condition · resource keys . SigNoz does not save a group without one. 4. Select Create group . To edit a group later, open the menu ⋮ on the group row and select Edit . Add a mapping 1. Expand the group and select Add mapping . 2. In Target attribute , type the attribute to write, for example gen ai.usage.input tokens . You cannot change the target attribute after you create the mapping. 3. In Write target to , select Span attribute or Resource . 4. In Source attributes , add the attribute that your instrumentation sends. 5. Select Attribute or Resource for the source. 6. Select Copy or Move for the source. 7. If you need a fallback, select Add another source . Drag the sources into priority order. 8. Select Create mapping . Test your mappings Before you save, use the Test tab to check that a sample span gets the attributes that you expect. The test uses your current groups and mappings, including unsaved changes. 1. Paste a span as JSON into the editor. The span can have attributes and resource objects, or it can be one attributes object. You can paste a full span export. The test ignores top-level keys other than attributes and resource , such as name , spanId , or kind . 2. Select Run Test . 3. In the result panel, look at Resulting attributes and Resulting resource . A badge shows each attribute that a mapping populated, remapped, or moved out. To restore the sample span, select Reset to Default Span . Save your changes SigNoz does not apply a new group, a new mapping, or an edit until you save it. When you have unsaved changes, the tab bar shows Unsaved changes and two buttons: - Select Save changes to apply all the changes. - Select Discard to remove all the changes. To confirm, select Discard changes . Saved mappings apply only to spans that SigNoz receives after you save. Stored spans do not change. Validate 1. Send a new span from your application. 2. In the Explorer https://signoz.io/docs/ai-observability-explorer/ List View , run a filter on the target attribute, for example gen ai.request.model EXISTS . 3. Select a span. The span opens in Trace Details. 4. In the span attributes, or in the resource attributes if you selected Resource in Write target to , make sure that the target attribute has the value of the source attribute. Next steps - AI Observability overview https://signoz.io/docs/ai-observability/ : see cost, tokens, latency, and tool calls on one dashboard. - Explorer https://signoz.io/docs/ai-observability-explorer/ : query your LLM and agent traces. - Model pricing https://signoz.io/docs/ai-observability-model-pricing/ : set the price for each model. - Telemetry Requirements https://signoz.io/docs/ai-observability-telemetry-requirements/ : check the attributes that each panel and filter needs. - 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 .