Stay Updated

Get the latest OpenObserve insights delivered to your inbox

By subscribing, you agree to receive product and marketing related updates from OpenObserve.

Table of Contents
Version 16.1 Blog Image.png

Our team is thrilled to bring our users OpenObserve v0.16.1, an update that brings significant performance gains, a more polished UI, improved UX, and updates across the various products in our platform. Review all the changes below:

Core Features

Alert History

Why This Matters

Without execution history, teams can't tell if alerts are working correctly or why they failed. This makes debugging alert issues difficult and creates uncertainty about monitoring reliability. Alert History tracks every alert execution with full diagnostic information. You can now see when alerts ran, how long they took, whether they succeeded or failed, and view detailed error messages.

Key details:

  • Search and filter by alert name, time range, and status
  • View execution duration, retry attempts, and error details
  • Default 15-minute view with pagination (up to 1,000 records)
  • Detailed modal view showing timing data, configuration, and performance metrics

How to Use

  • Go to Alerts → Click "Alert History" A screenshot of the alert history page
  • Search for specific alerts or adjust the time range
  • View executions in the table (timestamp, status, duration, retries)
  • Click "View Details" for diagnostic execution details. Alert execution details page

Pipeline History

Why This Matters

Pipelines transform and enrich observability data, but without execution visibility, it's difficult to debug failures or identify performance issues. Pipeline History provides the same execution tracking for pipelines as Alert History does for alerts.

Key details:

  • View execution timeline with timestamps and status
  • See evaluation time, query duration, retries - similar to alerts history.
  • Distinguish between real-time and scheduled executions
  • Filter by time range and pipeline name
  • Identify silenced pipelines and source nodes

How to Use

  • Go to Pipelines → Click "Pipeline History" pipeline history
  • Select time range and filter by pipeline name
  • View executions showing timestamp, status, type, and retries
  • Click any execution for detailed diagnostics pipeline history

Log Patterns

Why This Matters

With millions of log lines generated daily, manually identifying patterns and anomalies is time-consuming. Pattern analysis helps you quickly understand what's happening in your logs without writing regex or scrolling through repetitive entries. OpenObserve now automatically extracts patterns from log data, grouping similar logs and highlighting structural variations.

Key details:

  • Extract patterns at query time or during ingestion
  • Enable/disable per stream via stream settings
  • Built-in recognition for common structures (timestamps, IPs, UUIDs)
  • Pattern counts showing frequency of each pattern
  • Integration with alerts for pattern-based monitoring

How to Use

Enable for a stream:

  • Go to Streams → Select your stream → Settings
  • Toggle "Enable Log Pattern Extraction"
  • Patterns are extracted automatically during ingestion stream log patterns

Extract during queries:

  • Run your log query
  • Look for the "Patterns" tab in top left corner log patterns during queries
  • Click patterns to see matching logs log pattern during queries

Example:

100,000 error logs showing individual messages get grouped into:

Pattern 1 (85,000): Connection timeout to database at <IP>
Pattern 2 (10,000): API request failed with status <CODE>
Pattern 3 (5,000): Memory allocation error in service <NAME>

This immediately shows that database connectivity is the primary issue.

Query Explain & Recommendation Features:

Why Query Explain Matters:

Visualizes query execution plans with explain and explain analyze functionality. Helps users understand and optimize query performance through visual representation of execution steps.

Why Query Recommendations matters:

Improve user queries with this background service that analyzes queries and provides optimization suggestions. Improves query performance by automatically identifying inefficient patterns.

User-defined Schema for Metrics & Traces

Why This Matters

Streams with thousands of fields cause performance problems. When traces contain 80,000+ fields (we've seen this in production), queries become slow and systems run out of memory. Processing every field - even ones you never query - creates unnecessary overhead.

Previously, User Defined Schema (UDS) was only available for logs. This release extends UDS support to metrics and traces streams. With UDS, you define which fields matter for your queries. OpenObserve then indexes only those fields, improving query performance and preventing out-of-memory errors.

Key details:

  • Select the specific fields you query regularly (e.g., 50 out of 80,000)
  • Unused fields are preserved in _all but not indexed
  • Automatic UDS application when field count exceeds threshold(1K fields)
  • Fields can be added to the schema later if needed
  • Query performance improvements of 10-100x depending on field reduction

How to Use

Enable UDS: ZO_ALLOW_USER_DEFINED_SCHEMAS=true

Configure for your stream:

  • Go to Streams → Select your metrics or traces stream
  • Navigate to Stream Settings
  • Select fields you regularly query (e.g., application_id, http.status_code, trace_id, duration) -> Add to Defined Schema User-defined Schema for Metrics & Traces
  • Save your settings.

Queries will now process only the defined fields. Auto-protection: If a stream exceeds the field limit, UDS is automatically applied to prevent system instability.

UI/UX Improvements

Why This Matters:

Visual refinements to improve readability and usability.

Key details:

  • Enhanced color contrast for better readability
  • Improved hover states for interactive elements
  • Consistent spacing and typography

Additional Feature Updates:

Performance Enhancements

  • Tantivy Index for Multi-Stream: Implements full-text search indexing across multiple streams (phase 1 and 2). Significantly improves search performance for complex multi-stream queries.
  • Broadcast Join Implementation: Optimizes join operations for enrichment tables and certain query types. Reduces memory usage and improves performance for join-heavy workloads.
  • Index Optimizer for Joins/Subqueries: Enhances query performance for complex operations involving joins and subqueries across single and multi streams. Enables faster execution of sophisticated analytical queries.
  • Cache Improvements for Histogram Queries: Enables caching for histogram queries with non-timestamp order-by columns. Reduces repeated computation overhead for frequently-run visualizations.
  • Shared Memtable for Multiple Organizations: Optimizes memory usage by sharing memory tables across organizations. Improves resource efficiency in multi-tenant deployments.

User Experience

  • Create Alerts from Dashboards: Allows users to directly create alerts from dashboard panels with pre-configured queries and thresholds. Streamlines the alert creation workflow by leveraging existing visualizations.
  • Dashboard Custom Chart Support for PromQL: Extends dashboard visualization capabilities to support Prometheus query language. Enables users familiar with PromQL to create custom visualizations.
  • Dashboard Legends and Gridlines Configuration: Adds customization options for legend types and gridline visibility on dashboard panels. Improves visualization clarity and customization flexibility.
  • Logs Page Highlighting: Enhances visual identification of important log entries and search terms. Improves log readability and faster issue identification.

Data Management

  • Per-Stream Flatten Level Configuration: Allows customization of JSON flattening depth on a per-stream basis. Provides flexibility in handling nested data structures based on specific use cases.
  • Update Fields API: Enables dynamic field updates for stream schemas. Allows schema evolution without data re-ingestion.
  • Hash Replace in Sensitive Data Redaction: Implements hashing strategy for sensitive data with searchable hashed values using match_all_hash. Maintains data privacy while preserving searchability.
  • Built-in Regex Patterns: Provides pre-configured regex patterns for common use cases. Simplifies pattern matching without requiring regex expertise.

Infrastructure & Operations

  • Custom Config File Path and Live Reload: Supports custom configuration file locations with real-time reload capabilities. Enables dynamic configuration updates without service restarts.
  • NATS Queue for Cluster Coordination: Replaces etcd with NATS for cluster coordination with TTL marker support. Improves cluster reliability and reduces operational complexity.
  • Remove etcd Support: Eliminates etcd dependency from the architecture. Simplifies deployment and reduces infrastructure requirements.
  • Remove Syslog Support: Deprecates syslog ingestion in favor of more modern protocols. Streamlines codebase and focuses on higher-performance ingestion methods.
  • Pipeline Errors UI: Displays pipeline execution errors directly in the user interface. Enables quick identification and resolution of data pipeline issues.
  • Bulk Enable/Disable for Alerts and Pipelines: Allows mass management of alerts and pipelines states. Simplifies maintenance operations and incident response.

Observability & Monitoring

  • Rate, Errors, Duration (RED) Metrics on Traces: Displays key performance indicators directly on the traces list page. Provides immediate visibility into service health without deep diving into individual traces.
  • Tokio Runtime Metrics Collection: Captures async runtime performance metrics. Essential for understanding and optimizing async task execution performance.
  • Improved RemoteScanExec Metrics: Enhanced metrics for remote data scanning operations. Better visibility into distributed query execution performance.
  • Pipeline Usage Tracking: Monitors pipeline execution and resource consumption. Helps identify costly or inefficient pipelines.

Developer Experience

  • MCP Protocol Support: Implements Model Context Protocol endpoints and client support with aud validation skip for MCP requests. Enables AI assistant integrations and context-aware interactions.
  • UUID v7 for Internal Trace IDs: Uses time-ordered UUIDs for trace identification. Improves trace sorting and time-based queries.
  • HTTP Access Log Custom Format: Allows customization of access log formats. Enables compliance with specific logging standards and requirements.
  • Multi-Stream Search v2 API: Deprecates older HTTP API in favor of improved multi-stream search interface. Provides better performance and more features for cross-stream queries.
  • $__range Variable for Dashboards: Adds time range variable support in dashboard queries. Enables dynamic time-based calculations in visualizations.

Resources

Full Changelog Documentation Community Slack GitHub

Get Started with OpenObserve Today! Sign up for a 14 day cloud trial. Check out our GitHub repository for self-hosting and contribution opportunities.

About the Authors

Jake Swiss

Jake Swiss

LinkedIn

Jake leads marketing at OpenObserve. Jake spent years as a product marketer in observability, and brings a background in open source technology and reliability engineering to the role.

Manas Sharma

Manas Sharma

TwitterLinkedIn

Manas is a passionate Dev and Cloud Advocate with a strong focus on cloud-native technologies, including observability, cloud, kubernetes, and opensource. building bridges between tech and community.

Latest From Our Blogs

View all posts