This week was a big one for Axiom! We introduced support for OpenTelemetry metrics. In other news, we improved parsing of GenAI attributes in OpenTelemetry traces and improved the user interface for several other features.
Metrics
Axiom introduces support for OpenTelemetry metrics through a powerful visual query builder. The new interface provides an intuitive way to filter, transform, and aggregate metrics.
What’s new
The metrics query builder in the Console lets you:
- Select the data source in a familiar visual interface: Choose your dataset and metric in the Builder, similarly to how you would query logs and traces.
- Filter by tags: Use the Where section to filter series based on tag values with familiar operators.
- Transform data: Apply transformations like rate calculations, interpolation, and value filling to prepare your data for analysis.
- Aggregate over time: Use the align transformation to aggregate metrics into time windows.
- Group by dimensions: Combine series by tags using the group transformation to analyze metrics across different dimensions.
Build your first query
To get started:
- Ingest metrics data to Axiom using the OpenTelemetry Collector.
- Go to the Query tab and click Builder.
- Select your OTel metrics dataset and the metric you want to query.
- Add filters in the Where section to focus on specific series.
- Apply transformations to calculate rates, aggregate over time, or group by tags.
- Click Run to see your results.
The builder supports all the core operations you need for metrics analysis, from simple filtering to complex aggregations. Whether you’re tracking request rates, analyzing latency distributions, or monitoring system health, the visual interface makes it straightforward to extract insights from your metrics data.
Example query and results
For more information, see the blog and the documentation.
Better parsing of GenAI attributes
OpenTelemetry GenAI attributes are now handled more intelligently. Previously, attributes with JSON content were represented as strings. These attributes are now parsed and represented as array types. This allows for a better structure and queryable format.
For example, gen_ai.input.messages and gen_ai.output.messages are now parsed as arrays:
{
"gen_ai.input.messages": [{"role": "user", "content": "What is the weather?"}],
"gen_ai.output.messages": [{"role": "assistant", "content": "I need more information about your location."}]
}This makes it easier to query and analyze message history directly in your traces.
If you’re monitoring LLM applications or AI workloads, you'll see richer detail in your traces without any changes to your instrumentation. For more information on observability for AI apps, see the documentation.
RBAC permission enforcement
RBAC permission enforcement has been strengthened for some endpoints. Custom roles now require explicit read permissions to access billing info, datasets fields schemas, and field information. If you have custom roles that previously accessed these endpoints without read permissions, update the role configuration to grant read access. Axiom’s built-in roles already include appropriate permissions and aren’t affected by this change.
More of our favorite changes
- Fixed heatmap coloring to properly highlight the smallest bucket when only two buckets exist.
- Improved side panel behavior in dataset settings.
- Fixed several UI issues in the APL editor’s Validate & Save workflow.