On this page
Configuration
可以通过本地系统上的文件,命令行参数或两者的组合或两者来配置 OpenTSDB。
Configuration File
配置文件符合 Java 属性规范。配置名称是不带空格的小写点缀字符串。每个名称后跟一个等号,然后是属性的值。所有 OpenTSDB 属性都以tsd.
开头,或者无效的配置行被井号#
阻止。例如:
# List of Zookeeper hosts that manage the HBase cluster
tsd.storage.hbase.zk_quorum = 192.168.1.100
将配置 TSD 以连接到192.168.1.100
上的 Zookeeper。
当组合配置文件和命令行参数时,处理 Sequences 如下:
加载默认值
加载配置文件值,覆盖默认值
命令行参数已加载,覆盖配置文件和默认值
File Locations
您可以使用--config
命令行参数来指定配置文件的完整路径。否则,如果未指定,OpenTSDB 和某些命令行工具将尝试在以下位置搜索有效的配置文件:
./opentsdb.conf
/etc/opentsdb.conf
/etc/opentsdb/opentsdb.conf
/opt/opentsdb/opentsdb.conf
如果找不到有效的配置文件并且未设置所需的属性,则 TSD 将不会启动。请参阅下面的属性表,以获取必需的配置设置列表。
Properties
下表是所有工具的配置选项表。如果适用,将提供相应的命令行替代。请注意,各个命令行工具可能具有各自的值,因此请参阅其文档以获取详细信息。
Note
有关用于调整 AsyncHBaseClient 端的其他参数,请参阅AsyncHBase Configuration
Property | Type | Required | Description | Default | CLI |
---|---|---|---|---|---|
tsd.core.auto_create_metrics | Boolean | Optional | 具有新度量标准的数据点是否会将 UID 分配给该度量标准。如果为 false,则将拒绝具有不在数据库中的度量标准的数据点,并将引发异常。 | False | --auto-metric |
tsd.core.auto_create_tagks (2.1) | Boolean | Optional | 具有新标签名称的数据点是否会将 UID 分配给标签。如果为 false,则将拒绝标签名称不在数据库中的数据点,并引发异常。 | True | |
tsd.core.auto_create_tagvs (2.1) | Boolean | Optional | 具有新标签值的数据点是否会将 UID 分配给标签 v。如果为 false,则将拒绝标签值不在数据库中的数据点,并引发异常。 | True | |
tsd.core.connections.limit (2.3) | Integer | Optional | 设置 TSD 将处理的最大连接数,其他连接将立即关闭。 | 0 | |
tsd.core.enable_api (2.3) | Boolean | Optional | 是否允许 2.x HTTP API 起作用。禁用后,对诸如/api/query 或/api/suggest 之类的端点的调用将返回 404. |
True | --disable-api |
tsd.core.enable_ui (2.3) | Boolean | Optional | 是否允许内置的 GUI 和旧版 HTTP API 起作用。禁用后,对根端点或诸如/logs 或/suggest 之类的其他端点的调用将返回 404. |
True | --disable-ui |
tsd.core.histograms.config (2.4) | JSON/File Path | Optional | 直方图编解码器类名称到数字标识的 Map,用于存储多测量数据。对于简单的配置,该值可以是用引号转义的 JSONMap,例如{\"net.opentsdb.core.SimpleHistogramDecoder\": 0,\"net.opentsdb.core.CompactQuantilesSketchCodec\":1} 。如果该值以.json 结尾,则它将被视为文件路径,并且将打开并解析给定的文件。数字 ID 必须在 0 到 255 之间。 |
||
tsd.core.meta.cache.enable (2.3) | Boolean | Optional | 是否启用了元数据缓存插件。 | False | True |
tsd.core.meta.cache.plugin (2.3) | String | Optional | 实现元缓存接口的插件的类名。 | ||
tsd.core.meta.enable_realtime_ts | Boolean | Optional | 是否启用实时 TSMeta 对象创建。见Metadata | False | |
tsd.core.meta.enable_realtime_uid | Boolean | Optional | 是否启用实时 UIDMeta 对象创建。见Metadata | False | |
tsd.core.meta.enable_tsuid_incrementing | Boolean | Optional | 每次记录数据点时是否通过增加计数器来启用对 TSUID 的跟踪。请参阅Metadata(替代“ tsd.core.meta.enable_tsuid_tracking”) | False | |
tsd.core.meta.enable_tsuid_tracking | Boolean | Optional | 每次记录数据点时是否通过将1 与当前时间戳一起存储来启用 TSUID 跟踪。见Metadata |
False | |
tsd.core.plugin_path | String | Optional | TSD 启动时搜索插件的路径。如果路径无效,则 TSD 将无法启动。如果插件在 Classpath 中,则仍然可以启用它们。 | ||
tsd.core.preload_uid_cache (2.1) | Boolean | Optional | 启动 TSD 时启用 UID 缓存的预填充。 | False | |
tsd.core.preload_uid_cache.max_entries (2.1) | Integer | Optional | 要扫描以预装 UID 的行数。 | 300,000 | |
tsd.core.stats_with_port (2.3) | Boolean | Optional | 调用统计端点之一时,是否将 TSD 的侦听网络端口导出为带有统计信息的标记。 | False | True |
tsd.core.storage_exception_handler.enable (2.2) | Boolean | Optional | 是否启用已配置的存储异常处理程序插件。 | False | |
tsd.core.storage_exception_handler.plugin (2.2) | String | Optional | 您希望使用的存储异常处理程序插件的完整类名。 | ||
tsd.core.tag.allow_specialchars (2.3) | String | Optional | 度量标准名称,标记名称和标记键中允许使用的 ASCII 字符的可选列表,超过 TSDB 已经允许的范围。允许有空格。 | ! ~/ | |
tsd.core.timezone | String | Optional | 本地化的时区标识字符串,用于覆盖执行查询时将绝对时间转换为 UTC 时使用的本地系统时区。这不会影响传入的数据时间戳。例如。美国/洛杉矶 | System Configured | |
tsd.core.tree.enable_processing | Boolean | Optional | 是否启用通过树规则集处理新的/编辑的 TSMeta | false | |
tsd.core.uid.random_metrics (2.2) | Boolean | Optional | 创建新 Metrics 时是否将其随机分配给新 Metrics | false | |
tsd.core.bulk.allow_out_of_order_timestamps *(2.3.2) | Boolean | Optional | 从文本文件批量导入数据时是否允许无序值。 | false | |
tsd.core.authentication.enable *(2.4) | Boolean | Optional | 是否启用指定的身份验证插件 | false | |
tsd.core.authentication.plugin *(2.4) | String | Optional | 要实例化的身份验证插件的类名称。如果tsd.core.authentication.enable 设置为 false,则忽略此值。 |
||
tsd.http.cachedir | String | Required | 可以写入临时文件的位置的完整路径。例如。/tmp/opentsdb | --cachedir | |
tsd.http.query.allow_delete | Boolean | Optional | 在查询期间是否允许从存储中删除数据点。 | False | |
tsd.query.enable_fuzzy_filter | Boolean | Optional | 使用explicitTags 标志进行查询时是否为 HBase 启用 FuzzyRowFilter。 |
True | |
tsd.http.header_tag (2.4) | String | Optional | 可选的 HTTPHeaders,当传递到 HTTP/api/put API 时,将提取该 Headers 并将其添加到与内容一起发布的值的标记中。必须与 HTTPHeaders 完全匹配。 | X-CustomTag | |
tsd.http.request.cors_domains | String | Optional | 逗号分隔的域名列表,当 Client 端指定Origin Headers 时,允许访问 OpenTSDB。如果为空,则 CORS 请求将未经验证通过。该列表不能同时包含公共通配符* 和特定域。 |
||
tsd.http.request.cors_headers (2.1) | String | Optional | 执行 CORs 请求时发送给 Client 端的 Headers 的逗号分隔列表。此选项的字面值将传递给 Client 端。 | 授权,Content Type,接受,原始,用户代理,DNT,缓存控制,X-Mx-ReqToken,保持活动,X 请求使用,If-Modified-Since | |
tsd.http.request.enable_chunked | Boolean | Optional | 是否为 HTTP RPC 启用传入块支持 | false | |
tsd.http.request.max_chunk | Integer | Optional | 启用分块时支持传入 HTTP 请求的最大请求正文大小。 | 4096 | |
tsd.http.rpc.plugins (2.2) | String | Optional | 启动 TSD 时以逗号分隔的 RPC 插件列表。必须包含整个类名。 | ||
tsd.http.show_stack_trace | Boolean | Optional | 发生异常时是否返回带有 API 查询响应的堆栈跟踪。 | false | |
tsd.http.staticroot | String | Required | 静态文件(例如,Web 界面的 JavaScript 文件)所在目录的位置。例如。/opt/opentsdb/staticroot | --staticroot | |
tsd.mode (2.1) | String | Optional | TSD 是否允许写入数据点。必须为rw 以允许写入数据,或者为ro 以阻止数据点写入。注意,诸如 UID 之类的元数据仍然可以写入/修改。 |
rw | |
tsd.network.async_io | Boolean | Optional | 是否使用 NIO 或传统的阻塞 IO | True | --async-io |
tsd.network.backlog | Integer | Optional | 根据 os 的不同,已完成或未完成的连接请求的连接队列深度。默认值可能受“ somaxconn”内核设置的限制,或者由 Netty 设置为 3072. | See Description | --backlog |
tsd.network.bind | String | Optional | 绑定到传入请求的 IPv4 地址。默认为在所有接口上侦听。例如。 127.0.0.1 | 0.0.0.0 | --bind |
tsd.network.keep_alive | Boolean | Optional | 是否允许保持活动连接 | True | |
tsd.network.port | Integer | Required | 用于接受连接的 TCP 端口 | --port | |
tsd.network.reuse_address | Boolean | Optional | 是否允许重用 Netty 中的绑定端口 | True | |
tsd.network.tcp_no_delay | Boolean | Optional | 发送数据前是否禁用 TCP 缓冲 | True | |
tsd.network.worker_threads | Integer | Optional | Netty 的异步 IO 工作线程数 | #CPU 内核 2 * | --worker-threads |
tsd.no_diediedie (2.1) | Boolean | Optional | 启用或禁用diediedie HTML 和 ASCII 命令以关闭 TSD。 |
False | |
tsd.query.allow_simultaneous_duplicates (2.2) | Boolean | Optional | 是否允许来自同一主机的同时重复查询。如果禁用,则匹配已在运行中的第二个查询将收到异常。 | False | |
tsd.query.filter.expansion_limit (2.2) | Integer | Optional | 在扫描数据期间发送到存储的正则表达式中包含的最大标记值数量。较大的值表示在 HBase 区域服务器上进行更多的计算。 | 4096 | |
tsd.query.limits.bytes.allow_override,(2.4) | Boolean | Optional | 是否可以基于每个查询覆盖查询字节限制器。 | False | True |
tsd.query.limits.bytes.default (2.4) | Integer | Optional | 从存储中获取的字节数限制。达到此限制时,查询将返回异常。值为 0 将禁用限制器。 | 0 | 268435456 |
tsd.query.limits.data_points.allow_override (2.4) | Boolean | Optional | 是否可以基于每个查询覆盖查询数据点限制器。 | False | True |
tsd.query.limits.data_points.default (2.4) | Integer | Optional | 从存储中获取的数据点数的限制。达到此限制时,查询将返回异常。值为 0 将禁用限制器。 | 0 | 1000000 |
tsd.query.limits.overrides.interval (2.4) | Integer | Optional | 重新加载字节和数据点查询限制器插件配置的频率(以毫秒为单位)。 | 60000 | |
tsd.query.limits.overrides.config (2.4) | JSON/File Path | Optional | 查询限制配置的路径或完整配置,带有与度量标准名称匹配的选项。 | ||
tsd.query.multi_get.enable (2.4) | Boolean | Optional | 是否与搜索插件一起启用多获取查询。 | False | True |
tsd.query.multi_get.batch_size (2.4) | Integer | Optional | 单个请求中发送到存储的获取请求数。 | 1024 | |
tsd.query.multi_get.concurrent (2.4) | Integer | Optional | 在任何给定时间对多获取查询未完成的同时批处理的数量。 | 20 | |
tsd.query.multi_get.get_all_salts (2.4) | Boolean | Optional | 是否为每个盐桶都触发了获取请求,或者是否计算了正确的盐桶。更改盐析配置时使用。 | False | True |
tsd.query.skip_unresolved_tagvs (2.2) | Boolean | Optional | 当查询中包含尚未分配 UID 且可能不存在的标签值时是否 continue 查询。 | False | |
tsd.query.timeout (2.2) | Integer | Optional | 取消正在运行的查询之前的时间(以毫秒为单位)。值为 0 表示查询不会超时。 | 0 | |
tsd.rollups.config (2.4) | String | Optional | 详细描述可用汇总表和聚合的配置文件的路径。必须将tsd.rollups.enable 设置为true 才能解析此选项。见汇总和预聚合 |
rollup_config.json | |
tsd.rollups.enable (2.4) | Boolean | Optional | 是否启用汇总和预聚合存储和写入。 | false | |
tsd.rollups.tag_raw (2.4) | Boolean | Optional | 是否使用tsd.rollups.agg_tag_key 中配置的标记键和tsd.rollups.raw_agg_tag_value 中配置的值标记未汇总和未预汇总的值 |
false | |
tsd.rollups.agg_tag_key (2.4) | String | Optional | 写入存储时标记预聚合数据的特殊键 | _aggregate | |
tsd.rollups.raw_agg_tag_value (2.4) | String | Optional | 写入存储时用于非汇总和非预聚合数据的特殊标记值。 tsd.rollups.tag_raw 必须设置为 true。 |
RAW | |
tsd.rollups.block_derived (2.4) | Boolean | Optional | 是否阻止存储派生的聚合,例如AVG 和DEV 。 |
true | |
tsd.rpc.plugins | String | Optional | 启动 TSD 时以逗号分隔的 RPC 插件列表。必须包含整个类名。 | ||
tsd.rpc.telnet.return_errors (2.4) | Boolean | Optional | 通过put 或rollup 写入数据时是否向 Telnet 样式套接字返回错误 |
true | |
tsd.rtpublisher.enable | Boolean | Optional | 是否启用实时发布插件。如果为 true,则必须提供有效的tsd.rtpublisher.plugin 类名 |
False | |
tsd.rtpublisher.plugin | String | Optional | 要实例化的实时发布插件的类名。如果tsd.rtpublisher.enable 设置为 false,则忽略此值。例如。 net.opentsdb.tsd.RabbitMQPublisher |
||
tsd.search.enable | Boolean | Optional | 是否启用搜索功能。如果为 true,则必须提供有效的tsd.search.plugin 类名 |
False | |
tsd.search.plugin | String | Optional | 要实例化的搜索插件的类名。如果tsd.search.enable 设置为 false,则忽略此值。例如。 net.opentsdb.search.ElasticSearch |
||
tsd.stats.canonical | Boolean | Optional | FQDN 是否应随统计请求一起返回。默认统计信息以host=<hostname> 返回,不能保证执行查找并返回 FQDN。将此设置为 true 将执行名称查找并返回 FQDN(如果找到),否则可能返回 IP。统计信息输出应为fqdn=<hostname> |
false | |
tsd.startup.enable (2.3) | Boolean | Optional | 是否应在 TSD 之前加载 startu 插件。 | False | True |
tsd.startup.plugin (2.3) | String | Optional | 实现 StartupPlugin 接口的插件的名称。 | ||
tsd.storage.compaction.flush_interval (2.2) | Integer | Optional | 在压缩队列刷新调用之间 await 的时间(以秒为单位) | 10 | |
tsd.storage.compaction.flush_speed (2.2) | Integer | Optional | 一个乘数,用于确定尝试刷新压缩队列的速度。例如。值为 2 表示它将尝试在 30 分钟内刷新整个队列。值 1 将花费一个小时。 | 2 | |
tsd.storage.compaction.max_concurrent_flushes (2.2) | Integer | Optional | 在任何给定时间对 HBase 进行飞行的最大压缩调用次数 | 10000 | |
tsd.storage.compaction.min_flush_threshold (2.2) | Integer | Optional | 触发刷新之前必须超过的压缩队列大小 | 100 | |
tsd.storage.enable_appends (2.2) | Boolean | Optional | 写入数据点时是否将数据追加到列,而不是为每个值创建新列。避免在每个小时后进行压缩,但是可以在 HBase 上使用更多资源。 | False | |
tsd.storage.enable_compaction | Boolean | Optional | 是否启用压缩 | True | |
tsd.storage.fix_duplicates (2.1) | Boolean | Optional | 解析具有重复时间戳的数据点时是否接受最后写入的值。与压缩一起启用时,将使用最新数据点写入压缩列。 | False | |
tsd.storage.flush_interval | Integer | Optional | 刷新数据点存储写缓冲区的频率(以毫秒为单位) | 1000 | --flush-interval |
tsd.storage.get_date_tiered_compaction_start | Integer | Optional | 在 HBase 表上启用日期分层压缩时的 Unix Epoch 时间戳(以毫秒为单位)。这对于将现有 OpenTSDB 安装转移到 DTC 很有用。在此时间段之前开始的查询不会设置查询的时间范围。参见日期分层压缩。 | 0 | 1514764800000 |
tsd.storage.hbase.data_table | String | Optional | 存储数据点的 HBase 表的名称 | tsdb | --table |
tsd.storage.hbase.meta_table | String | Optional | 存储元数据的 HBase 表的名称 | tsdb-meta | |
tsd.storage.hbase.prefetch_meta (2.2) | Boolean | Optional | 在启动网络接口之前是否预取 TSDB 表的区域。这样可以提高性能。 | False | |
tsd.storage.hbase.scanner.maxNumRows (2.3) | Integer | Optional | 每次调用扫描仪的 nextRows()方法时,要从 HBase 获取的最大行数。 | 128 | 4096 |
tsd.storage.hbase.tree_table | String | Optional | 存储树数据的 HBase 表的名称 | tsdb-tree | |
tsd.storage.hbase.uid_table | String | Optional | 存储 UID 信息的 HBase 表的名称 | tsdb-uid | --uidtable |
tsd.storage.hbase.zk_basedir | String | Optional | -ROOT-区域的 znode 所在的路径 | /hbase | --zkbasedir |
tsd.storage.hbase.zk_quorum | String | Optional | 用逗号分隔的 ZooKeeper 主机列表,可连接或不连接端口说明符。例如。 192.168.1.1:2181,192.168.1.2:2181 |
localhost | --zkquorum |
tsd.storage.repair_appends (2.2) | Boolean | Optional | 当列中包含重复或无序数据时,是否在查询时重写附加数据点列。 | False | |
tsd.storage.max_tags (2.2) | Integer | Optional | 每个数据点允许的最大标签数。创建集群后可以更改此值。 注意 请注意过度使用标签写入的性能折衷 | 8 | |
tsd.storage.salt.buckets (2.2) | Integer | Optional | 用于在各个区域之间分配负载的盐桶数量。 注意 写入数据后更改此值可能会导致基于 TSUID 的查询失败。 | 20 | |
tsd.storage.salt.width (2.2) | Integer | Optional | 盐前缀的宽度(以字节为单位),用于指示时间序列所属的存储桶。值 0 表示禁用盐析。 警告 将数据写入 HBase 后请勿更改,否则将破坏表并且无法再查询。 | 0 | |
tsd.timeseriesfilter.enable (2.3) | Boolean | Optional | 是否启用了数据写入过滤器插件。 | False | True |
tsd.timeseriesfilter.plugin (2.3) | String | Optional | 插件的 Classpath,该插件实现 WriteableDataPointFilterPlugin 接口以过滤写入时的时间序列。 | ||
tsd.storage.uid.width.metric (2.2) | Integer | Optional | 度量标准 UID 的宽度(以字节为单位)。最大值为 7. 警告 将数据写入 HBase 后请勿更改,否则将损坏表并且无法再查询。 | 3 | |
tsd.storage.uid.width.tagk (2.2) | Integer | Optional | 标签名称 UID 的宽度(以字节为单位)。最大值为 7. 警告 将数据写入 HBase 后请勿更改,否则将损坏表并且无法再查询。 | 3 | |
tsd.storage.uid.width.tagv (2.2) | Integer | Optional | 标签值 UID 的宽度(以字节为单位)。最大值为 7. 警告 将数据写入 HBase 后请勿更改,否则将损坏表并且无法再查询。 | 3 | |
tsd.storage.use_max_value (2.4) | Boolean | Optional | 找到重复项并且 tsd.storage.use_otsdb_timestamp 时是否在 TSDB 压缩期间选择较大的数值已设置为 true。 | True | False |
tsd.storage.use_otsdb_timestamp (2.4) | Boolean | Optional | 将数据点的时间戳用于存储中的编辑,而不是现在的默认值。参见日期分层压缩。 | False | True |
tsd.uidfilter.enable (2.3) | Boolean | Optional | 是否启用了 UID 分配插件过滤器。 | False | True |
tsd.uidfilter.plugin (2.3) | String | Optional | 一个实现 UniqueIdFilterPlugin 接口的插件。 | ||
tsd.uid.lru.enable (2.4) | Boolean | Optional | 将 UID 缓存从无限制 Map 更改为 LRU 缓存。 | False | True |
tsd.uid.lru.id.size (2.4) | Integer | Optional | 反向 UID 到字符串 Map 中的条目总数。将其乘以 3 可获得可用条目的总数,每种 UID 类型(度量,标记键,标记值)一个。 | 5000000 | 1000000 |
tsd.uid.lru.name.size (2.4) | Integer | Optional | UID 转发字符串 Map 中的条目总数。将其乘以 3 可获得可用条目的总数,每种 UID 类型(度量,标记键,标记值)一个。 | 5000000 | 1000000 |
tsd.uid.use_mode (2.4) | Boolean | Optional | 确定是否应基于 tsd.mode 设置填充名称和/或 ID 缓存。 | False | True |
Data Types
一些配置值需要特别考虑:
布尔值-以下 Literals 将解析为
True
:1
true
yes
其他任何值都将产生False
。解析不区分大小写
字符串-字符串,即使是带有空格的字符串也不需要引号,但是需要考虑以下几点:
特殊字符必须以反斜杠转义,包括:
#
,!
,=
和:
例如:
my.property = Hello World\!
- Unicode 字符必须以十六进制表示形式转义,例如:
my.property = \u0009