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

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

Data Types

一些配置值需要特别考虑:

  • 布尔值-以下 Literals 将解析为True

  • 1

    • true

    • yes

其他任何值都将产生False。解析不区分大小写

  • 字符串-字符串,即使是带有空格的字符串也不需要引号,但是需要考虑以下几点:

  • 特殊字符必须以反斜杠转义,包括:#!=:例如:

my.property = Hello World\!
  • Unicode 字符必须以十六进制表示形式转义,例如:
my.property = \u0009