Configuration Reference
siftlogd is configured via siftlog.yaml. All fields are optional except sources. siftlogd looks for the config in the current directory, then ~/.siftlog/siftlog.yaml, or use --config /path/to/config.yaml.
Top-level structure
sources: # required
correlation: # optional
signal: # optional
live: # optional
output: # optional
api: # optional -- REST API (coming soon)
sources
At least one source is required. Each source has a name (unique, used in signal output) and a type.
file
- name: my-service
type: file
path: /var/log/my-service.log
tail: true
seek_to_end: true
loki
- name: production-loki
type: loki
url: https://loki.internal
auth:
type: bearer
token_env: LOKI_TOKEN
labels:
env: production
cloudwatch
- name: ecs-services
type: cloudwatch
region: us-east-1
log_groups:
- /ecs/payment-service
- /ecs/order-service
Credentials resolved via standard AWS credential chain.
elasticsearch
- name: es-logs
type: elasticsearch
url: https://elasticsearch.internal:9200
query: "service: payment AND level: ERROR"
auth:
type: bearer
token_env: ES_TOKEN
datadog
- name: datadog-prod
type: datadog
url: https://api.datadoghq.com
query: "service:payment-service"
auth:
api_key: YOUR_DD_API_KEY
app_key_env: DD_APP_KEY
googlecloud
- name: gcp-logs
type: googlecloud
project: my-gcp-project
query: "severity>=WARNING"
Credentials resolved via Application Default Credentials.
correlation
correlation:
anchor: sender # sender | receiver
window_ms: 5000
drift_tolerance_ms: 200
- anchor:
sendertrusts timestamps in the log event.receiveruses ingestion time — use this if your services have unreliable clocks. - window_ms: How far apart two events can be and still be considered causally related. Default 5000.
- drift_tolerance_ms: Extra tolerance at the window boundary for minor clock differences. Default 200.
signal
signal:
cascade_detection: true
silence_detection: true
anomaly_threshold_multiplier: 10.0
silence_threshold_pct: 90.0
baseline_window_minutes: 5
- anomaly_threshold_multiplier: A service must exceed this multiple of its baseline error rate to trigger. Lower = more sensitive. Default 10.0.
- silence_threshold_pct: A service must drop this percentage below its baseline volume to trigger silence. Default 90.0.
- baseline_window_minutes: Rolling window for baseline calculation. Detection activates after this window elapses. Default 5.
api (coming soon)
api:
enabled: false # off by default
port: 8080
bind: 127.0.0.1 # localhost only by default
api_key: YOUR_KEY # required when enabled
The REST API is disabled by default. Users who never enable it have zero additional network surface. Required for the SiftLog Android companion app.
Environment variables
SIFTLOG_CORRELATION_WINDOW_MS=3000
SIFTLOG_SIGNAL_ANOMALY_THRESHOLD_MULTIPLIER=5.0
SIFTLOGD_LICENSE=YOUR-LICENSE-KEY
Next: Signal Detection
SiftLog Platform
Always-on log correlation daemon. Cascade, anomaly, and silence detection across every log source in your infrastructure.