SigLens Configuration Guide
This guide provides a comprehensive overview of SigLens configuration options. SigLens uses a YAML configuration file (server.yaml
) to manage its settings.
The values shown in this guide represent the default configuration.
Basic Configuration
Server Settings
The following settings control the basic server configuration:
# Network settings
ingestListenIP: '0.0.0.0' # IP address for ingest server to listen on
queryListenIP: '0.0.0.0' # IP address for query server to listen on
ingestPort: 8081 # Port for receiving data/logs
queryPort: 5122 # Port for handling queries and UI access
queryHostname: '' # The domain name to access SigLens UI
# Example: If you have DNS configured for logs.company.com
# pointing to your SigLens server, then set the value
# to 'logs.company.com:5122'
#
# When to use:
# - Leave empty to access via localhost
# - Set when using a custom domain with DNS pointing to your SigLens server
#
# Note: This setting does not affect where the server runs (it will still
# run on the configured queryListenIP and queryPort). It only tells SigLens
# what domain name user will type in their browser to access the service.
ingestUrl: '' # The URL where clients/applications will send logs to SigLens
# If empty, defaults to http://localhost:8081
#
# Example: If using custom domain with queryHostname 'logs.company.com:5122',
# set this to 'http://logs.company.com:8081'
#
# Note: Make sure to use the same domain as queryHostname to maintain
# consistency in your setup
# Node configuration
queryNode: true # Enable query processing capabilities
ingestNode: true # Enable data ingestion capabilities
ssInstanceName: '' # For ephemeral servers (docker, k8s) set this variable to unique
# container name to persist data across restarts
# - If left empty: automatically uses system hostname
# - If set: uses the specified value as instance name (Example: 'sigsingle')
Data Management
Configure how SigLens handles data storage and retention:
dataPath: 'data/' # Where to store data files data
retentionHours: 360 # How long to keep data (Default: 15 days)
timeStampKey: 'timestamp' # Name of the timestamp field
dataDiskThresholdPercent: 85 # Stop ingesting data if disk usage exceeds this percentage
maxSegFileSize: 4294967296 # Maximum size for data segments (Default: 4GB)
maxAllowedColumns: 20000 # Maximum unique column names allowed across all indexes,
# data ingestion will be rejected if this limit is exceeded
Memory Configuration
SigLens implements sophisticated memory management with container awareness:
memoryConfig:
# Set to 0 to auto-detect from system/container limits
maxMemoryAllowedToUseInBytes: 0
# Percentage of available memory SigLens should use (Auto-limited to 50% if system has <8GB RAM )
maxUsagePercent: 80
# Memory distribution (must sum to 100%)
searchPercent: 30 # Memory for search operations
cmiPercent: 48 # Memory for column metadata indexes
metadataPercent: 20 # Memory for system metadata
metricsPercent: 2 # Memory for metrics collection
# Memory limit per query execution
bytesPerQuery: 209715200 # Memory allocation per concurrent query (Default: 200MB)
# Controls query concurrency: Lower values allow more concurrent queries
# but may impact complex query performance. Higher values improve complex
# query performance but reduce max concurrent queries.
# Enable optimizations for low-memory environments
lowMemoryMode: false # When enabled, reduces memory usage by:
# - Limiting parallelism to single-threaded
# Note: May impact query performance
Memory Management Features
SigLens implements a hierarchical memory management system:
-
Memory Limit Detection (in priority order):
- User-configured limit (
maxMemoryAllowedToUseInBytes
) - highest priority - Container memory limits (via cgroups) - checked if user limit is 0
- Host system total memory - fallback if container limits unavailable
- User-configured limit (
-
Container Environment Detection (in priority order):
- Automatic detection of cgroup v2
- Automatic detection of cgroup v1
- Additional Kubernetes-specific paths if running in K8s
- Fallback to host system if no container environment detected
-
Memory Optimization:
- Systems with <8GB RAM automatically limit to 50% usage
- Memory utilization controlled by
maxUsagePercent
(default 80%) - Garbage collection tuning via
GOGC
environment variable - Memory distribution validation (component percentages must sum to 100%)
Performance Settings
Configure performance-related parameters:
# Work In Progress (WIP) flush intervals
idleWipFlushIntervalSecs: 5 # How often to flush idle buffers (Range: 5-60 seconds)
maxWaitWipFlushIntervalSecs: 30 # Maximum time before forced flush (Range: 5-60 seconds)
# Query execution limits
queryTimeoutSecs: 300 # Maximum query execution time (Range: 60-1800 seconds)
Feature Flags
Enable or disable various SigLens capabilities:
# Development and Debugging
debug: false # Enable detailed debug logging
pprofEnabled: true # Enable Go pprof profiling endpoints
safeServerStart: false # Perform additional startup validations
# Query Features
pqsEnabled: true # Enable Persistent Query Store (saves query history)
analyticsEnabled: true # Enable usage analytics collection
agileAggsEnabled: true # Enable optimized aggregation processing
compressStatic: true # Enable compression of static assets
Security Configuration
TLS Configuration
tls:
enabled: false # Enable TLS/HTTPS
certificatePath: '' # Path to TLS certificate file
privateKeyPath: '' # Path to private key file
Logging Configuration
log:
logPrefix: '' # Directory for log files (Example: './logs/')
logFileRotationSizeMB: 100 # Size trigger for log rotation
compressLogFile: false # Compress rotated logs
Tracing Configuration
tracing:
serviceName: 'siglens' # Service name in traces
endpoint: '' # Where to send traces
# (Example: 'http://localhost:5122/otlp/v1/traces')
samplingPercentage: 1 # Percentage of operations to trace (0-100)
Environment Variables for Tracing
Override tracing configuration using:
TRACESTORE_ENDPOINT
: Tracing endpoint URLSIGLENS_TRACING_SERVICE_NAME
: Service nameTRACE_SAMPLING_PERCENTAGE
: Sampling rate (0-100)