The OpenObserve Kubernetes Operator provides a comprehensive set of features for managing OpenObserve Enterprise resources through Kubernetes-native Custom Resources. This document outlines all available features organized by category, including alerts, pipelines, functions, and configurations.
- Native Kubernetes Integration: Manage OpenObserve resources as standard Kubernetes Custom Resource Definitions (CRDs)
- GitOps Ready: Full support for GitOps workflows with version control and automated deployments
- Infrastructure as Code: Define and manage observability configurations alongside application deployments
- Multi-Instance Support: Manage multiple OpenObserve instances from a single Kubernetes cluster
- Comprehensive Resource Types: Manage alerts, alert templates, destinations, pipelines, functions, and configurations as code
- Resource Synchronization: Automatic sync between Kubernetes resources and OpenObserve configurations
- Status Tracking: Real-time monitoring of resource sync status with detailed condition reporting
- Generation Tracking: Tracks resource generations to ensure consistency between desired and actual states
- Finalizer Support: Proper cleanup of OpenObserve resources when Kubernetes resources are deleted
- Resource Types: Full lifecycle management for alerts, alert templates, destinations, pipelines, functions, and configurations
Manages connection configurations to OpenObserve instances.
Key Features:
- Secure Credential Management: Credentials stored as Kubernetes Secrets
- Multiple Instance Support: Configure connections to different OpenObserve environments (dev, test, prod)
- TLS Configuration: Optional TLS verification settings
- Organization Scoping: Organization-level configuration management
- Connection Validation: Automatic validation of endpoint connectivity
Configuration Options:
endpoint: OpenObserve API endpoint URLorganization: Target organization namecredentialsSecretRef: Reference to Kubernetes Secret containing API tokenstlsVerify: Enable/disable TLS certificate verification
Manages alert definitions with comprehensive monitoring capabilities.
Key Features:
- Multiple Query Types:
- Custom queries
- SQL-based queries
- PromQL queries for metrics
- Stream Support: Works with logs, metrics, and traces
- Aggregation Functions: Support for groupBy, having clauses, and various aggregation functions
- VRL Functions: Vector Remap Language function support
- Multi-Time Range: Compare data across different time windows
- Flexible Scheduling:
- Frequency-based triggers (minutes, hours, days)
- Cron expression support
- Time window configuration (period)
- Threshold Management:
- Multiple comparison operators (=, !=, >=, <=, >, <)
- Configurable thresholds
- Silence periods to prevent alert fatigue
- Advanced Options:
- Timezone support
- Tolerance settings (toleranceInSecs)
- Time alignment options
- Real-time Alerts: Support for real-time alert processing
- Deduplication:
- Fingerprint-based deduplication
- Configurable time windows
- Custom fingerprint fields
- Context Enrichment:
- Context attributes for additional metadata
- Row templates (String or JSON format)
- Custom template variables
- Folder Organization: Support for organizing alerts in folders
- Multiple Destinations: Up to 10 destination channels per alert
- Status Tracking:
- Alert enablement status
- Last sync time
- OpenObserve alert ID tracking
Manages alert notification templates for formatting alert messages across different channels.
Key Features:
- Multiple Template Types:
- HTTP templates for webhooks (Slack, PagerDuty, etc.)
- Email templates for email notifications
- Template Variables: Support for dynamic variables in templates
- Default Templates: Mark templates as default for automatic use
- Organization Scoping: Templates are created at the organization level
- Title Templates: Dynamic titles with variable substitution
- Body Templates:
- JSON format for HTTP webhooks
- HTML/text format for emails
- Support for complex nested structures
- Variable Placeholders:
{alert_name}: Name of the triggered alert{stream_name}: Source stream name{severity}: Alert severity level{triggered_at}: Timestamp when alert was triggered{org_name}: Organization name{threshold}: Configured threshold value- Custom variables from alert context
- Slack Notifications: Formatted messages with blocks and markdown
- PagerDuty Integration: Structured incident creation
- Email Alerts: Rich HTML email notifications
- Custom Webhooks: Tailored JSON payloads for any HTTP endpoint
- Microsoft Teams: Adaptive cards and formatted messages
- Generic HTTP: Flexible templates for any webhook service
Manages destinations for both alerts and pipelines, defining where data and notifications are sent.
Key Features:
- Destination Types:
- HTTP webhooks (Slack, PagerDuty, custom endpoints)
- Email (SMTP) destinations
- SNS (Amazon Simple Notification Service)
- Template Integration: Reference alert templates for message formatting
- Authentication Support:
- Bearer tokens
- API keys in headers
- Custom headers
- TLS Configuration: Optional TLS certificate verification
- Destination Types:
- OpenObserve instances (for data replication)
- Splunk
- New Relic
- Elasticsearch
- Dynatrace
- Datadog
- Custom HTTP endpoints
- Output Formats:
- JSON (standard or nested event format)
- Elasticsearch bulk format
- Custom formats per destination type
- Metadata Support: Additional metadata for destination configuration
- HTTP Configuration:
- URL endpoint
- HTTP method (POST, PUT, GET)
- Custom headers
- Request timeout settings
- Email Configuration:
- Multiple recipient emails
- Template selection
- SNS Configuration:
- AWS region
- SNS Topic ARN
- Action ID
- Skip TLS Verify: Development/testing with self-signed certificates
- Category Detection: Automatic categorization as alert or pipeline destination
- Error Handling: Detailed error reporting and retry logic
- Status Tracking: Real-time sync status with destination services
Manages VRL (Vector Remap Language) transformation functions for data processing.
Key Features:
- VRL Support: Write functions in Vector Remap Language for powerful data transformations
- Reusable Functions: Create centralized functions that can be used across multiple pipelines
- Organization Scoping: Functions are created at the organization level
- Name Validation: Enforced naming patterns for consistency
- Built-in Testing: Define test cases with input and expected output
- Test Execution: Automatic validation of function logic during deployment
- Error Reporting: Detailed error messages for failed tests
- Multiple Test Cases: Support for multiple test scenarios per function
- Data Transformation: Modify, enrich, or restructure log data
- Field Extraction: Parse and extract fields from unstructured data
- Data Enrichment: Add contextual information to events
- Format Conversion: Convert between different data formats
- Filtering: Implement complex filtering logic
- Aggregation: Perform custom aggregations on data streams
- Pipeline Integration: Functions can be referenced in pipelines for data processing
- Stream Compatibility: Works with logs, metrics, and traces
- Version Tracking: Generation tracking for function updates
- Status Monitoring: Real-time sync status with OpenObserve
Manages data processing pipelines with advanced transformation capabilities.
Key Features:
- Multiple Source Types:
- Real-time data sources
- Scheduled/batch sources
- Query-based sources
- Stream Types: Logs, metrics, and traces
- Flexible Scheduling:
- Cron expressions
- Frequency-based schedules
- Time-based triggers
- Node-Based Architecture:
- Modular node system for data processing
- Configurable node parameters
- Support for various transformation types
- Edge Connections:
- Define data flow between nodes
- Support for branching pipelines
- Multiple processing paths
- Version Control: Pipeline versioning support
- Pause/Resume: Ability to pause pipelines at specific points
- Error Handling: Detailed error tracking and reporting
- Delay Configuration: Configurable processing delays
- Timezone Support: Per-pipeline timezone configuration
Manages dashboard definitions with comprehensive visualization and interactivity.
Key Features:
- Declarative Dashboards: Define complete dashboards as Kubernetes resources
- Multi-Tab Support: Create dashboards with multiple tabs for organization
- Flexible Layout: Full control over panel positioning and sizing (x, y, w, h)
- Folder Organization: Organize dashboards in folders with automatic folder creation
- Title-Based Uniqueness: Enforces unique titles within org/folder combinations
- Smart Adoption: Adopts existing dashboards instead of creating duplicates
- Duplicate Cleanup: Automatically deletes all duplicate dashboards on resource deletion
- Chart Types:
- Area charts (area, area-stacked)
- Line charts (line)
- Bar charts (bar, h-bar, stacked, h-stacked)
- Pie/Donut charts (pie, donut)
- Metrics (metric, gauge)
- Data tables (table)
- Heatmaps (heatmap)
- Geographic visualizations (geomap, maps)
- Flow diagrams (sankey)
- Scatter plots (scatter)
- Content panels (html, markdown)
- Custom visualizations (custom_chart with ECharts)
- Query Types: SQL and PromQL query support in panels
- Field Mapping: Complete field configuration for x, y, z axes
- Breakdown Support: Group data by multiple dimensions
- Filtering: Advanced filter conditions with logical operators
- Aggregations: Support for count, sum, avg, min, max functions
- Custom Queries: Support for complex custom SQL queries
- Multi-Stream: Join support for querying multiple streams
- Variable Types:
query_values- Dynamic values populated from query resultsconstant- Static constant valuestextbox- Free text inputcustom- Dropdown with predefined options
- Multi-Select: Single and multi-select variable support
- Dynamic Filters: Toggle visibility of dynamic filters
- Variable Options: Custom labels, default values, and selection behavior
- Time Range: Default time range configuration (relative or absolute)
- Version Support: Dashboard schema version management (v8)
- Metadata: Dashboard owner, role, and creation tracking
- Status Tracking:
- Dashboard ID tracking
- Folder ID tracking
- Last sync time
- Ready conditions
Configuration Options:
title: Dashboard title (unique within org/folder, required)description: Dashboard description (optional)org: Organization name (defaults to "default")folderName: Folder name (defaults to "default", auto-created if needed)dashboard: Complete dashboard JSON structure including:version: Dashboard schema versiontabs: Array of tab objects with panelsvariables: Dashboard variables configurationdefaultDatetimeDuration: Default time range settings
- One-Command Deployment: Simple deployment script with customizable options
- Image Configuration: Support for custom container images and tags
- Namespace Management: Flexible namespace configuration
- RBAC Setup: Automatic creation of required roles and permissions
- ConfigMap-Based Configuration: Centralized configuration management for operator behavior
- Webhook Security:
- Auto-generated TLS certificates for webhooks
- Certificate rotation support
- Secure admission control
- Secret Management:
- Kubernetes-native secret handling
- Credential isolation per namespace
- RBAC Controls:
- Granular permission management
- Cluster and namespace-scoped roles
- Container Security:
- Runs as non-root user (UID 65534)
- Read-only root filesystem
- No privilege escalation allowed
- All capabilities dropped
- Seccomp profile enabled
- Pod Security:
- Security context properly configured
- Resource limits enforced
- Temporary directory size limits
- Status Reporting:
- Detailed condition tracking (Ready, Synced, Error states)
- Last sync timestamps
- Error messages and reasons
- Custom Printer Columns:
- Quick status overview in kubectl output
- Key field visibility (Stream, Enabled, Ready, Age)
- Generation Tracking: Version tracking for resource updates
- Health Probes:
- Liveness probe at
/healthzendpoint - Readiness probe at
/readyzendpoint - Startup probe for graceful initialization
- Liveness probe at
- Metrics Endpoint:
- Prometheus-compatible metrics at
/metricson port 8080 - Service annotations for automatic Prometheus discovery
- Operational metrics and controller performance data
- Prometheus-compatible metrics at
- Continuous Reconciliation: Ensures desired state matches actual state
- Error Recovery: Automatic retry with exponential backoff
- Drift Detection: Identifies and corrects configuration drift
- Resource Validation: Pre-flight validation before applying changes
- Production-Ready Deployment:
- Default high availability setup with 2 replicas
- Automatic leader election for active-passive operation
- Zero-downtime rolling updates
- Priority class for critical infrastructure components
- Dry Run Support: Preview changes before applying
- Uninstall Management:
- Complete cleanup with finalizer removal
- Ordered resource deletion (alerts, alert templates, destinations, pipelines, functions, configurations)
- Namespace cleanup
- Multi-Environment Support:
- Development, test, and production configurations
- Environment-specific templates
- Resource Management:
- Configurable resource requests and limits
- Default: 200m CPU / 256Mi memory (requests), 1 CPU / 1Gi memory (limits)
- Horizontal scaling capabilities
- Sample Templates: Comprehensive examples for all resource types (alerts, alert templates, destinations, pipelines, functions)
- Validation Webhooks: Input validation at admission time
- Status Subresources: Proper status update mechanisms
- Preserved Unknown Fields: Future compatibility for API extensions
- Flux Compatibility: Works with Flux CD for automated deployments
- ArgoCD Support: Compatible with ArgoCD for application management
- Helm Integration: Can be deployed via Helm charts
- Pipeline Integration: Integrates with CI/CD pipelines
- Automated Testing: Support for automated configuration testing
- Version Control: Full compatibility with Git workflows
- Multi-tenancy: Isolate resources by namespace
- Cross-namespace References: Support for referencing configs across namespaces
- Default Namespace: Configurable default namespace for resources
- Config References: Resources reference OpenObserveConfig for connection details
- Dependency Management: Proper handling of resource dependencies
- Cascading Updates: Updates propagate through dependent resources
- Stateless Operation: Operator maintains no local state
- Horizontal Scaling: Default deployment with 2 replicas for high availability
- Leader Election: Proper coordination for multiple instances
- PodDisruptionBudget: Ensures minimum availability during cluster maintenance
- Anti-Affinity Rules: Spreads replicas across different nodes for fault tolerance
- Topology Spread Constraints: Even distribution across availability zones
- Efficient Reconciliation: Optimized reconciliation loops
- Batch Processing: Bulk operations where applicable
- Resource Caching: Minimizes API calls to OpenObserve
- Configurable Concurrency: Tune controller concurrency for each resource type
- Rate Limiting: Configurable API rate limits to prevent overwhelming OpenObserve
- Connection Pooling: Efficient HTTP connection management with configurable pools
The operator provides extensive performance tuning options via ConfigMap (manifests/02-configmap.yaml):
- ALERT_CONTROLLER_CONCURRENCY: Controls parallel alert processing (default: 1, recommended: 1-20)
- TEMPLATE_CONTROLLER_CONCURRENCY: Controls alert template processing (default: 1, recommended: 1-10)
- DESTINATION_CONTROLLER_CONCURRENCY: Controls destination processing (default: 1, recommended: 1-20)
- PIPELINE_CONTROLLER_CONCURRENCY: Controls pipeline processing (default: 1, recommended: 1-10)
- FUNCTION_CONTROLLER_CONCURRENCY: Controls function processing (default: 1, recommended: 1-5)
- CONFIG_CONTROLLER_CONCURRENCY: Controls configuration processing (default: 1, recommended: 1-3)
- O2_RATE_LIMIT_RPS: Requests per second to OpenObserve API (default: 10, max: 100)
- O2_RATE_LIMIT_BURST: Burst capacity for API requests (default: 20, max: 200)
- O2_MAX_CONNS_PER_HOST: Maximum concurrent connections per host (default: 10)
- O2_MAX_IDLE_CONNS: Total maximum idle connections (default: 100)
- O2_MAX_IDLE_CONNS_PER_HOST: Maximum idle connections per host (default: 10)
- O2_IDLE_CONN_TIMEOUT: Idle connection timeout duration (default: 90s)
- O2_HTTP_TIMEOUT: HTTP request timeout (default: 30s)
- O2OPERATOR_LOG_LEVEL: Operator log verbosity (options: debug, info, error; default: info)
- SKIP_STREAM_VALIDATION: Skip stream validation in webhooks when needed
- Zero-Downtime Updates: Rolling updates for operator upgrades
- Backward Compatibility: API version compatibility management
- Migration Support: Tools for migrating between versions
- Detailed Logging: Comprehensive operator logs
- Event Recording: Kubernetes events for important operations
- Status Conditions: Detailed condition reporting for debugging
- Comprehensive Documentation:
- API references
- Troubleshooting guides
- Deployment instructions
- Sample Configurations: Ready-to-use examples for common scenarios
- Issue Tracking: GitHub integration for bug reports and features
- CRD Versioning: Support for multiple API versions
- Custom Fields: Preserved unknown fields for future extensions
- Plugin Architecture: Designed for future plugin support
- Resource Limits: Configurable limits (e.g., max 10 alert destinations)
- Pagination Support: Ready for large-scale deployments
- Bulk Operations: Designed for batch processing capabilities
The following features are currently under active development and will be available in upcoming releases:
While the OpenObserveDestination CRD is now available with support for basic alert and pipeline destinations, the following enhanced features are planned:
Additional Destination Types (Coming Soon):
-
Alert Destinations:
- OpsGenie
- Discord
- Telegram
- Microsoft Teams (native integration)
- Webhooks with custom authentication schemes
-
Advanced Features:
- Alert routing rules
- Severity-based filtering
- Time-based routing (business hours, on-call schedules)
- Alert aggregation and batching
- Escalation policies
- Acknowledgment tracking
- Two-way integrations
- Rate limiting and throttling
- Delivery confirmation tracking
An advanced Custom Resource for managing complex remote data destinations beyond the current OpenObserveDestination capabilities.
Planned Features:
-
Advanced Destination Types:
- Object storage (S3, GCS, Azure Blob Storage)
- Message queues (Kafka, RabbitMQ, Amazon SQS, Azure Service Bus)
- Time-series databases (InfluxDB, Prometheus, VictoriaMetrics)
- Data warehouses (Snowflake, BigQuery, Redshift)
- Grafana Cloud
-
Data Management:
- Batch and streaming modes
- Data format conversion (JSON, Parquet, Avro, CSV)
- Compression options (gzip, snappy, zstd)
- Partitioning strategies
- Schema management
- Data retention policies
-
Reliability Features:
- Dead letter queue support
- Circuit breaker patterns
- Automatic retries with exponential backoff
- Connection pooling
- Health checks and monitoring
- Automatic failover to backup destinations
- Data buffering and queuing
-
Security & Compliance:
- End-to-end encryption
- Authentication mechanisms (OAuth2, API keys, mTLS, IAM roles)
- Data masking and PII redaction
- Audit logging for data transfers
- Compliance metadata tagging
- Data residency controls
Integration with Pipelines:
- Reference remote destinations in pipeline outputs
- Share destinations across multiple pipelines
- Conditional routing based on data attributes
- Load balancing across multiple instances
- Data replication and fan-out patterns
We welcome community input on these upcoming features. Please share your use cases and requirements through:
- GitHub Issues for feature requests open an issue
- Community forums for discussions Start the conversation →
The OpenObserve Kubernetes Operator provides a robust, enterprise-ready solution for managing observability configurations at scale. With its comprehensive feature set, it enables teams to:
- Implement GitOps workflows for observability
- Maintain consistency across environments
- Automate operational tasks with alerts, pipelines, and functions
- Manage alert templates and destinations as code
- Ensure security and compliance
- Scale observability management efficiently
- Transform and enrich data with VRL functions
- Configure flexible notification channels and data routing
Whether you're managing a single OpenObserve instance or orchestrating a complex multi-environment setup, the operator provides the tools and capabilities needed for success.