OpenObserve Kubernetes Operator Features
Overview
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.
Core Features
🎯 Declarative Resource Management
- 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
🔄 Automated Lifecycle Management
- 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
Custom Resource Definitions (CRDs)
1. OpenObserveConfig (o2config)
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
2. OpenObserveAlert (o2alert)
Manages alert definitions with comprehensive monitoring capabilities.
Key Features:
Query Capabilities
- 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
Trigger Conditions
- 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
Alert Management
- 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
Organization & Delivery
- 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
3. OpenObserveAlertTemplate (o2alerttemplate, alerttemplate)
Manages alert notification templates for formatting alert messages across different channels.
Key Features:
Template Management
- 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
Template Formatting
- 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
Use Cases
- 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
4. OpenObserveDestination (o2dest, o2destination)
Manages destinations for both alerts and pipelines, defining where data and notifications are sent.
Key Features:
Alert Destinations
- 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
Pipeline Destinations
- 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
Configuration Options
- 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
Advanced Features
- 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
5. OpenObserveFunction (o2function, o2func)
Manages VRL (Vector Remap Language) transformation functions for data processing.
Key Features:
Function Management
- 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
Testing & Validation
- 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
Use Cases
- 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
Integration
- 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
6. OpenObservePipeline (o2pipeline)
Manages data processing pipelines with advanced transformation capabilities.
Key Features:
Source Configuration
- 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
Pipeline Processing
- 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
Advanced Features
- 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
Deployment & Operations Features
🚀 Automated Deployment
- 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
🔐 Security Features
- 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
📊 Monitoring & Observability
- 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
Advanced Capabilities
🔄 Reconciliation Features
- 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
🎛️ Operational Features
- 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
🔧 Developer Features
- 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
Integration Capabilities
GitOps Integration
- 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
CI/CD Integration
- Pipeline Integration: Integrates with CI/CD pipelines
- Automated Testing: Support for automated configuration testing
- Version Control: Full compatibility with Git workflows
Resource Organization
Namespace Support
- Multi-tenancy: Isolate resources by namespace
- Cross-namespace References: Support for referencing configs across namespaces
- Default Namespace: Configurable default namespace for resources
Resource Relationships
- Config References: Resources reference OpenObserveConfig for connection details
- Dependency Management: Proper handling of resource dependencies
- Cascading Updates: Updates propagate through dependent resources
Operational Excellence
High Availability
- 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
Performance
- 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
Performance Tuning Configuration
The operator provides extensive performance tuning options via ConfigMap (manifests/02-configmap.yaml):
Controller Concurrency Settings
- 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)
API Rate Limiting
- 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)
HTTP Connection Pool Management
- 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)
Logging Configuration
- O2OPERATOR_LOG_LEVEL: Operator log verbosity (options: debug, info, error; default: info)
Optional Features
- SKIP_STREAM_VALIDATION: Skip stream validation in webhooks when needed
Maintenance
- Zero-Downtime Updates: Rolling updates for operator upgrades
- Backward Compatibility: API version compatibility management
- Migration Support: Tools for migrating between versions
Troubleshooting & Debugging
Diagnostic Features
- Detailed Logging: Comprehensive operator logs
- Event Recording: Kubernetes events for important operations
- Status Conditions: Detailed condition reporting for debugging
Documentation & Support
- 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
Future-Ready Design
Extensibility
- CRD Versioning: Support for multiple API versions
- Custom Fields: Preserved unknown fields for future extensions
- Plugin Architecture: Designed for future plugin support
Scalability
- Resource Limits: Configurable limits (e.g., max 10 alert destinations)
- Pagination Support: Ready for large-scale deployments
- Bulk Operations: Designed for batch processing capabilities
🚧 Development In-Progress
The following features are currently under active development and will be available in upcoming releases:
Enhanced Destination Features
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
OpenObserveRemoteDestinations (o2remotedest)
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
Community Feedback
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 →
Summary
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.
Last updated on
Manual Deployment
Manually deploy the OpenObserve Kubernetes operator with kubectl by applying the namespace, CRDs, RBAC, ConfigMap, deployment, and webhook manifests in order.
Troubleshooting Guide
Troubleshoot the OpenObserve operator with kubectl commands to list, patch, and delete stuck resources, remove finalizers, and fix reconciliation failures.