Configuration file

openGeminiAbout 11 minAbout 3254 words

openGemini.conf 配置项解释,openGemini.single.conf亦可参考本内容

[common]

common是ts-sql、ts-store、ts-meta公共的配置项。

meta-join 必填

  • 类型: []string

  • 默认值:

  • SQL / STOR和META的RPC通信地址。比如:["127.0.0.1:8092", "127.0.0.2:8092", "127.0.0.3:8092"]

ha-enable

  • 类型: bool

  • 默认值: false

  • 基于共享存储的HA开关,目前仅支持共享存储可设置为true。

  • 生产环境不建议开启。

executor-memory-size-limit

  • 类型: string | toml.Size

  • 默认值: 0

  • 执行内存大小限制,比如 256GB0表示不限制。

executor-memory-wait-time

  • 类型: string | toml.Duration

  • 默认值: 0s

  • 执行内存等待时间,比如 120s0s表示不限制。

pprof-enabled

  • 类型: bool

  • 默认值: false

  • 是否开启go pprof服务,监控内存、CPU、goroutine等信息。

cpu-num建议

  • 类型: int

  • 默认值: 0

  • 可使用的cpu核心数,0表示自动获取,docker环境中建议手动设置。

memory-size

  • 类型: string | toml.Size

  • 默认值: 0

  • 可使用的内存大小,比如:256GB0表示不限制。

ignore-empty-tag

  • 类型: bool

  • 默认值: false

  • 是否忽略空tag。

report-enable

  • 类型: bool

  • 默认值: true

  • 是否上报遥测数据到openGemini服务器。

enable-tag-array

  • 类型: bool

  • 默认值: false

  • 写入是否支持tag数组。

[meta]

meta是ts-meta专属配置。

bind-address 必填

  • 类型: string

  • 默认值:

  • meta提供服务的地址,比如:127.0.0.1:8088

http-bind-address 必填

  • 类型: string

  • 默认值:

  • meta提供HTTP服务的地址,比如:127.0.0.1:8091。可外部访问。

rpc-bind-address 必填

  • 类型: string

  • 默认值:

  • meta提供RPC服务的地址,比如:127.0.0.1:8092。仅内部通信使用。

dir 必填

  • 类型: string

  • 默认值:

  • meta数据保存目录。

expand-shards-enable

  • 类型: bool

  • 默认值: false

  • 是否扩大shards。

retention-autocreate

  • 类型: bool

  • 默认值: true

  • 是否自动创建retention policy。

election-timeout

  • 类型: string | toml.Duration

  • 默认值: 1s

  • 选主超时时间。

heartbeat-timeout

  • 类型: string | toml.Duration
  • 默认值: 1s
  • 心跳超时时间。

leader-lease-timeout

  • 类型: string | toml.Duration
  • 默认值: 60s`
  • leader租赁超时时间。

commit-timeout

  • 类型: string | toml.Duration
  • 默认值: 50ms
  • 事件提交超时时间。

cluster-tracing

  • 类型: bool

  • 默认值: true

  • 是否记录trace日志。

logging-enabled

  • deprecated

lease-duration

  • 类型: string | toml.Duration
  • 默认值: 1m
  • 租赁期限。

meta-version

  • 类型: int
  • 默认值: 2
  • meta版本。

split-row-threshold

  • 类型: int
  • 默认值: 10000
  • row最大行数分裂阈值。

imbalance-factor

  • 类型: float
  • 默认值: 0.3
  • 不平衡因子。

auth-enabled

  • 类型: bool

  • 默认值: false

  • 是否开启鉴权。

https-enabled

  • 类型: bool

  • 默认值: false

  • 是否开启HTTPS。

https-certificate

  • 类型: string

  • 默认值: ""

  • 开启HTTPS后,证书路径。

https-private-key

  • 类型: string

  • 默认值: ""

  • 开启HTTPS后,私钥路径。

ptnum-pernode

  • 类型: int

  • 默认值: 1

  • 每个store节点的PT的数量。

[coordinator]

ts-sql的配置,用于和ts-store通信相关。

write-timeout

  • 类型: string | toml.Duration
  • 默认值: 120s
  • 数据写入超时时间。

shard-writer-timeout

  • 类型: string | toml.Duration
  • 默认值: 30s
  • 数据写入shard内超时时间。

shard-mapper-timeout

  • 类型: string | toml.Duration
  • 默认值: 10s
  • 数据打散到指定shard的超时时间。

shard-tier

  • 类型: string
  • 默认值: warm
  • 数据形态,可选值:warm, hot
  • hot模式会比较耗内存。

rp-limit

  • 类型: int
  • 默认值: 100
  • 所有database,可以创建的retention policy的上限。

force-broadcast-query

  • 类型: bool

  • 默认值: false

  • 是否强制使用广播到所有节点进行查询。

time-range-limit

  • 类型: []string
  • 默认值: ["0s", "0s"]
  • 限制写的时间范围。比如:["72h", "48h"],表示仅支持写入3天前到2天后之间的数据。如果是默认值,则表示不限制。

[http]

ts-sql专属配置。

bind-address 必填

  • 类型: string

  • 默认值:

  • sql提供服务的地址,比如:127.0.0.1:8086

auth-enabled 建议

  • 类型: bool
  • 默认值: false
  • 是否开启身份校验功能。

weakpwd-path

  • 类型: string
  • 默认值: /tmp/openGemini/weakpasswd.properties
  • 此路径是常见弱密码的文件路径,这里open in new window提供了常用的弱密码,仅供参考。

pprof-enabled

  • 类型: bool

  • 默认值: false

  • 是否开启go pprof服务,监控内存、CPU、goroutine等信息。

max-connection-limit

  • 类型: int
  • 默认值: 0
  • ts-sql的最大连接数限制。0表示不限制。

max-concurrent-write-limit

  • 类型: int
  • 默认值: 0
  • 最大写并发限制。0表示不限制。

max-enqueued-write-limit

  • 类型: int
  • 默认值: 0
  • 最大写队列数限制。0表示不限制。

enqueued-write-timeout

  • 类型: string | toml.Duration
  • 默认值: 30s
  • 写队列中,等待超时时间。

max-concurrent-query-limit

  • 类型: int
  • 默认值: 0
  • 最大读并发限制。0表示不限制。

max-enqueued-query-limit

  • 类型: int
  • 默认值: 0
  • 最大读队列数限制。0表示不限制。

enqueued-query-timeout

  • 类型: string | toml.Duration
  • 默认值: 5m
  • 读队列中,等待超时时间。

chunk-reader-parallel

  • 类型: int
  • 默认值: 0
  • 单个查询,并发度数量。0表示不限制。

max-body-size

  • 类型: int
  • 默认值: 25e6
  • 写入的数据body体最大限制,单位byte。0表示不限制。

https-enabled 建议

  • 类型: bool
  • 默认值: false
  • 是否开启HTTPS。

https-certificate

  • 类型: string

  • 默认值: ""

  • 开启HTTPS后,证书路径。

https-private-key

  • 类型: string

  • 默认值: ""

  • 开启HTTPS后,私钥路径。

[data]

ts-store专属配置。

store-ingest-addr 必填

  • 类型: string

  • 默认值:

  • 数据接入的RPC地址,比如:127.0.0.1:8400

store-select-addr 必填

  • 类型: string

  • 默认值:

  • 数据查询的RPC地址,比如:127.0.0.1:8401

store-data-dir 必填

  • 类型: string

  • 默认值:

  • 主要数据存储目录。

store-wal-dir 必填

  • 类型: string
  • 默认值:
  • 写前日志WAL存储目录。

Tips

建议和store-data-dir 不同硬盘,防止IO带宽不足。

store-meta-dir

Note

deprecated

wal-enabled

  • 类型: bool
  • 默认值: true
  • 是否开启WAL功能。

wal-sync-interval

  • 类型: string | toml.Duration
  • 默认值: 100ms
  • WAL定时刷盘时间周期。

wal-replay-parallel

  • 类型: bool
  • 默认值: false
  • 是否并发回放WAL。

wal-replay-async

  • 类型: bool
  • 默认值: false
  • 是否异步回放WAL。

imm-table-max-memory-percentage

  • 类型: int
  • 默认值: 10
  • immutable最大占用内存百分比。

write-cold-duration

  • 类型: string | toml.Duration
  • 默认值: 5s
  • 数据写冷(下盘)周期。

shard-mutable-size-limit

  • 类型: string | toml.Size
  • 默认值: memorySize/256,并强制介于 8MB - 1GB 之间。
  • 单个shard中数据占用内存大小限制。

node-mutable-size-limit

  • 类型: string | toml.Size
  • 默认值: memory-size/16,并强制介于 32MB - 16GB 之间。
  • 节点中数据占用内存大小限制。

max-write-hang-time

  • 类型: string | toml.Duration
  • 默认值: 15s
  • 数据hang住,最大时间。

max-concurrent-compactions

  • 类型: int
  • 默认值: cpu-num数,并介于 2-32之间。
  • 最大并发compaction数量。0表示执行上面默认值的算法。

compact-full-write-cold-duration

  • 类型: string | toml.Duration
  • 默认值: 1h
  • 下盘数据执行full compaction周期。

max-full-compactions

  • 类型: int
  • 默认值: 1
  • 最大并发compaction数量。0表示执行如下算法:cpu-num数,并介于 1-32之间。

compact-throughput

  • 类型: string | toml.Size
  • 默认值: 80m
  • compact吞吐量。

compact-throughput-burst

  • 类型: string | toml.Size
  • 默认值: 90m
  • compact吞吐量突发。

compact-recovery

  • 类型: bool
  • 默认值: false
  • 是否开启compact失败后自动恢复,防止进程Panic。

snapshot-throughput

  • 类型: string | toml.Size
  • 默认值: 64m
  • 打快照吞吐量。

snapshot-throughput-burst

  • 类型: string | toml.Size
  • 默认值: 64m
  • 打快照突发吞吐量。

cache-table-data-block

  • 类型: bool
  • 默认值: false
  • 是否缓存查询出来的数据。

cache-table-meta-block

  • 类型: bool
  • 默认值: false
  • 是否缓存查询出来的元数据。

enable-mmap-read

  • 类型: bool
  • 默认值: false
  • 是否开启mmap。

Warning

目前建议不要开启,会占用比较多的内存。

read-cache-limit

  • 类型: int
  • 默认值: 0
  • 读缓存大小限制,单位byte。

write-concurrent-limit

  • 类型: int
  • 默认值: 0
  • 写并发数限制。

open-shard-limit

  • 类型: int
  • 默认值: 0
  • ts-store启动同时打开shard的数量限制。0表示不限制。

readonly

  • 类型: bool
  • 默认值: false
  • ts-store只读功能是否打开。

downsample-write-drop

  • 类型: bool
  • 默认值: false
  • 是否支持将采样丢点,仅在ts-store只读功能打开情况下可用。

max-wait-resource-time

  • 类型: string | toml.Duration
  • 默认值: 0s
  • TODO

max-series-parallelism-num

  • 类型: int
  • 默认值: 0
  • 时间线并发度最大限制。0表述不限制。

max-shards-parallelism-num

  • 类型: int
  • 默认值: 0
  • shard并发度最大限制。0表述不限制。

chunk-reader-threshold

  • 类型: int
  • 默认值: 0
  • chunk reader阈值。0表述不限制。

min-chunk-reader-concurrency

  • 类型: int
  • 默认值: 0
  • 最小chunk reader并发度。0表述不限制。

min-shards-concurrency

  • 类型: int
  • 默认值: 0
  • 最小shard并发度。0表述不限制。

max-downsample-task-concurrency

  • 类型: int
  • 默认值: 0
  • 最大将采样任务并发度。0表述不限制。

max-series-per-database

  • 类型: int
  • 默认值: 0
  • 限制每个database中时间线数量,0表述不限制

[data.ops-monitor]

该项为云服务配置,可忽略

[retention]

retention policy(保留策略)配置。

enabled = true

  • 类型: bool
  • 默认值: true
  • 是否开启。

check-interval = "30m"

  • 类型: string | toml.Duration
  • 默认值: 30m
  • 检测周期。

[downsample]

多级将采样配置。

enable = true

  • 类型: bool
  • 默认值: true
  • 是否开启。

check-interval = "30m"

  • 类型: string | toml.Duration
  • 默认值: 30m
  • 检测周期。

[logging]

日志全局配置。

format

  • 类型: string
  • 默认值: auto
  • 输出格式样式。

level

  • 类型: string
  • 默认值: info
  • 日志记录的级别。可选值:debug, info, warn, error, panic

path 必填

  • 类型: string
  • 默认值: 无
  • 日志输出目录。

max-size

  • 类型: string | toml.Size
  • 默认值: 64m
  • 日志单个文件最大大小。

max-num

  • 类型: int
  • 默认值: 16
  • 日志最多保存的文件数。

max-age

  • 类型: int
  • 默认值: 16
  • 日志最多保存的周期,单位天。

compress-enabled

  • 类型: bool
  • 默认值: true
  • 是否压缩。

[tls]

tsl全局配置。

min-version

  • 类型: string
  • 默认值: 无
  • tls最小版本。建议:"TLS1.2"

ciphers

  • 类型: []string
  • 默认值: 无
  • ciphers。建议:
ciphers = [
  "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
]

[monitor]

ts-sql, ts-store, ts-meta 自身监控相关配置。

pushers

  • 类型: string
  • 默认值: ""
  • 监控指标推送方式,可选值:http, file

store-enabled

  • 类型: bool
  • 默认值: false
  • 是否开启monitor数据存储。

store-database

  • 类型: string
  • 默认值: _internal
  • 监控指标保存到database名称。仅在pushers="http"可用。

store-interval

  • 类型: string | toml.Duration
  • 默认值: 10s
  • 数据保存周期。

store-path

  • 类型: string
  • 默认值: 无
  • 监控指标保存路径和文件名称模板。仅在pushers="file"可用。比如:/tmp/openGemini/metric/metric.data

compress

  • 类型: bool
  • 默认值: false
  • 监控指标保存到文件是否压缩。仅在pushers="file"可用。

Tips

目前不建议打开

http-endpoint

  • 类型: string
  • 默认值: 无
  • 监控指标通过http发送到的endpoint。仅在pushers="http"可用。比如:127.0.0.1:8086

username

  • 类型: string
  • 默认值: 空
  • 监控指标通过http发送到的endpoint的用户名。仅在pushers="http"可用。

password

  • 类型: string
  • 默认值: 空
  • 监控指标通过http发送到的endpoint的密码。仅在pushers="http"可用。

[gossip]

ts-store,ts-meta的gossip配置,用于检测集群各节点是否健康。

enabled

  • 类型: bool
  • 默认值: 集群:true,单机:false
  • 是否开启gossip。

log-enabled

  • 类型: bool
  • 默认值: true
  • 是否开启gossip日志输出。

bind-address

  • 类型: string
  • 默认值: 无
  • gossip绑定的地址。比如: 127.0.0.1

Warning

集群必填

store-bind-port

  • 类型: int
  • 默认值: 8011
  • ts-store端的gossip,绑定的端口。比如:8011

meta-bind-port

  • 类型: int
  • 默认值: 8010
  • ts-meta端的gossip,绑定的端口。比如:8010

prob-interval

  • 类型: string | toml.Duration
  • 默认值: 1s
  • 探测周期。

suspicion-mult

  • 类型: int
  • 默认值: 4
  • 怀疑多个。

members

  • 类型: []string

  • 默认值:

  • META的gossip地址。比如:["127.0.0.1:8010", "127.0.0.2:8010", "127.0.0.3:8010"]

Warning

集群必填

[spdy]

连接复用专用配置,一般不需要修改

[castor]

时序数据异常检测专用配置。

enabled = false
pyworker-addr = ["127.0.0.1:6666"]
connect-pool-size = 30
result-wait-timeout = 10 # unit: second

[castor.detect]

algorithm= ['BatchDIFFERENTIATEAD','DIFFERENTIATEAD','IncrementalAD','ThresholdAD','ValueChangeAD']

config_filename = ['detect_base']

[castor.fit_detect]

algorithm= ['BatchDIFFERENTIATEAD','DIFFERENTIATEAD','IncrementalAD','ThresholdAD','ValueChangeAD']

config_filename = ['detect_base']

[sherlock]

sherlock,自动导出pprof文件功能相关配置。
sherlock-enable = false
collect-interval = "10s"
cpu-max-limit = 95
dump-path = "/tmp"

[sherlock.cpu]

enable = false
min = 30
diff = 25
abs = 70
cool-down = "10m"

[sherlock.memory]

enable = false
min = 25
diff = 25
abs = 80
cool-down = "10m"

[sherlock.goroutine]

enable = false
min = 10000
diff = 20
abs = 20000
max = 100000
cool-down = "30m"

[record-write]

Controls how the record-write service are configured within openGemini.

enabled

  • Type: bool
  • Default: true
  • Determines whether the record write service is enabled.

auth-enabled

  • Type: bool
  • Default: false
  • Determines whether the username/password auth in record write service is enabled.

max-message-size

  • Type: int
  • Default: 4194304
  • The maximum message size of record write service counted in Bytes. By default, it is 4194304 Bytes.(4 MB)

rpc-address

  • Type: string
  • Default: 127.0.0.1:8305
  • The rpc bind address of record write service.

[record-write.TLS]

some TLS-releted configs in record-write service.

enabled

  • Type: bool
  • Default: false
  • Determines whether the TLS in record write service is enabled. If TLS is enabled, then key-file and cert-file MUST be provided.

mTLS-enabled

  • Type: bool
  • Default: false
  • Determines whether the mutal-TLS in record write service is enabled. If mutual-TLS is enabled, then the CA-root MUST be provided.

key-file

  • Type: string
  • Default: None
  • The path to TLS key file.

cert-file

  • Type: string
  • Default: None
  • The path to TLS cert file.

CA-root

  • Type: string
  • Default: None
  • The path to CA root file.