influxdb {"error":"partial write: max-values-per-tag limit exceeded (100009/100000)

本文探讨了InfluxDB中关于tag值数量限制的问题,解释了为何设置此限制及其潜在影响,并提供了如何调整该限制的方法。
部署运行你感兴趣的模型镜像

在用influxdb写数据的时候,突然出现如下的错误,我用的是到目前最新的版本1.2:

java.lang.RuntimeException: {"error":"partial write: max-values-per-tag limit exceeded (100009/100000): measurement=\"t1\" tag=\"openId\" value=\"oGeG_0emqmIf5xakHAZq5_NEbcJ0\"dropped=4"}

        at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:466)
        at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:267)
        at com.ihangmei.datapro.consumer.influxdb.InfluxdbInstance.writeInfluxdb(InfluxdbInstance.java:97)
        at com.ihangmei.datapro.consumer.kafka.WechatRunnable.run(WechatRunnable.java:50)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: {"error":"partial write: max-values-per-tag limit exceeded (100009/100000): measurement=\"t1\" tag=\"openId\" value=\"oGeG_0RngX2VL7c_wmzDNyacMQHI\"dropped=4"}

        at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:466)
        at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:267)
        at com.ihangmei.datapro.consumer.influxdb.InfluxdbInstance.writeInfluxdb(InfluxdbInstance.java:97)
        at com.ihangmei.datapro.consumer.kafka.WechatRunnable.run(WechatRunnable.java:50)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)


在官方文档中是这么说的:

max-values-per-tag = 100000

The maximum number of tag values allowed per tag key. The default setting is 100000. Change the setting to 0 to allow an unlimited number of tag values per tag key. If a tag value causes the number of tag values of a tag key to exceed max-values-per-tag InfluxDB will not write the point, and it returns a partial write error.

Any existing tag keys with tag values that exceed max-values-per-tag will continue to accept writes, but writes that create a new tag value will fail.

Environment variable: INFLUXDB_DATA_MAX_VALUES_PER_TAG


默认情况下每个tag key只允许最多有10w个tag values,如果超过了10w个就会出现如上的错误,当然在另一篇文章中,我们找到个这么做的原因:

influxdb增加了对tag的值的大小的校验,最大值是10000.若写入的数据的tag的值超限,则调用方会收到报错。用来防止写入到measurement的数据的series-cardinality(series-cardinality)过大。如果我们写入了大量的series-cardinality很高的数据,那么当我们删除数据的时候,InfluxDB会OOM。

原因是InfluxDB在内存中维护了系统中每个series数据的索引。随着具有唯一性的series数据数量的增长,RAM的使用也会增长。过高的series cardinality会导致操作系统kill掉InfluxDB进程,抛出OOM异常。


参考:https://docs.influxdata.com/influxdb/v1.2/administration/config#max-values-per-tag-100000

http://xiajunhust.github.io/2016/12/13/InfluxDB%E5%86%99%E5%85%A5%E5%A4%B1%E8%B4%A5-partial-write-max-values-per-tag-limit-exceeded/  

您可能感兴趣的与本文相关的镜像

FLUX.1-dev

FLUX.1-dev

图片生成
FLUX

FLUX.1-dev 是一个由 Black Forest Labs 创立的开源 AI 图像生成模型版本,它以其高质量和类似照片的真实感而闻名,并且比其他模型更有效率

<think>我们正在处理用户关于HTML注释和部分视图的问题。根据引用[1]和[2],用户提供了关于Html.Partial和Html.RenderPartial的区别以及HTML注释标记的信息。此外,用户还提供了关于一个自定义模板的引用[3]和一个关于爱心动画的引用[4],但这些似乎与当前问题关系不大。 用户当前的问题是:`我想了解 <!-- partial:index.partial.html --> 代码的含义` 根据引用[1]和[2],我们可以知道: 1. HTML注释标记:`<!-- ... -->` 用于在HTML代码中添加注释,这些注释不会显示在浏览器中。 2. 在引用[1]中提到了`Html.Partial`和`Html.RenderPartial`,它们是服务器端渲染部分视图的方法,但在客户端HTML中,我们通常不会看到这样的标记。 然而,用户提到的`<!-- partial:index.partial.html -->`看起来像是一个注释,但它并不是标准的HTML注释用于说明,而是可能被某些模板引擎或静态网站生成器用作特殊指令。 在引用[3]中,用户提到了Hugo主题(hugo-theme-stack)中创建的自定义模板,并提到了一些HTML文件。Hugo是一个静态网站生成器,它使用Go模板。在Hugo中,我们可以使用部分模板(partial templates),这些模板通常存储在`layouts/partials`目录下。 在Hugo中,引入部分模板的语法是: ```go {{ partial "header.html" . }} ``` 但是,用户提供的示例是:`<!-- partial:index.partial.html -->`,这看起来像是一个注释,而不是Hugo的模板语法。然而,它可能是某种构建工具(如gulp、grunt)或静态网站生成器(如Hugo)的特定注释,用于指示在构建过程中将部分模板(partial)插入到该位置。 具体来说,一些构建工具允许你在HTML文件中放置特殊注释来包含其他文件。例如,使用gulp-inject插件,你可以在HTML中写: ```html <!-- inject:partial:filename.html --> <!-- endinject --> ``` 因此,`<!-- partial:index.partial.html -->`可能是类似这样的指令,表示在构建过程中,工具会将`index.partial.html`文件的内容插入到该位置。这样,在开发时,你可以将页面拆分成多个部分,然后通过构建工具将它们组合起来。 总结: `<!-- partial:index.partial.html -->` 是一条特殊注释,通常用于构建工具或静态网站生成器(如Hugo)中,指示在该位置插入名为`index.partial.html`的部分模板(partial template)的内容。在最终构建生成的HTML文件中,这个注释会被替换为实际的部分模板内容。 注意:这个语法不是标准HTML的一部分,而是特定工具的自定义语法。 基于以上分析,我们回答用户的问题。 </think>`<!-- partial:index.partial.html -->` 是**构建工具或模板引擎的特殊指令**,用于在编译/渲染过程中动态插入外部 HTML 片段。其核心含义和作用如下: ### 1. **功能解析** - **占位符作用**:该注释标记会被构建工具识别,表示此处需要插入外部文件 `index.partial.html` 的内容。 - **编译时替换**:在最终生成的 HTML 中,该注释会被替换为 `index.partial.html` 文件的实际内容(如图)。 - **模块化开发**:允许将大型 HTML 拆分成多个可复用组件(如页头、页脚),便于协作和维护[^1][^3]。 ```html <!-- 编译前 --> <body> <!-- partial:header.partial.html --> <!-- partial:index.partial.html --> <!-- partial:footer.partial.html --> </body> <!-- 编译后 --> <body> <header>...</header> <!-- 来自header.partial.html --> <main>...</main> <!-- 来自index.partial.html --> <footer>...</footer> <!-- 来自footer.partial.html --> </body> ``` ### 2. **典型使用场景** - **静态站点生成器**(如 Hugo): 在模板文件(如 `daily_info.html`)中引入部分视图,实现布局复用[^3]。 - **前端构建工具**(如 Gulp/Webpack): 通过插件(如 `gulp-inject`)自动合并 HTML 片段。 - **服务端渲染**: 类似 ASP.NET MVC 的 `@Html.Partial("_View")` 机制,但此语法更通用[^1]。 ### 3. **与普通注释的区别** | **特性** | `<!-- partial:x.html -->` | 普通 `<!-- ... -->` | |------------------|--------------------------------|----------------------------| | 是否显示在浏览器 | ❌(编译后消失) | ❌(始终隐藏) | | 是否触发工具操作 | ✅(触发文件插入) | ❌(仅注释用途) | | 典型用途 | 模块化开发、动态内容拼接 | 代码说明、临时禁用代码[^2] | ### 4. **为什么用这种语法?** - **兼容性**:以注释形式编写,确保未处理的原始文件仍能在浏览器中正常显示(不破坏布局)。 - **工具无侵入**:构建工具通过正则匹配识别指令,无需修改 HTML 标准[^4]。 > ⚠️ **注意**:该语法本身不属 HTML 规范,效果完全依赖构建工具(如 Hugo/Gulp)的支持。需检查项目配置是否启用了部分视图(partials)功能[^1][^3]。 --- ### 相关问题 1. 如何在 Hugo 中正确创建和使用部分视图(partials)? 2. 有哪些工具可以实现 HTML 文件的模块化拆分与合并? 3. 服务端渲染(如 ASP.NET)和静态站点生成器(如 Hugo)处理部分视图有何异同? 4. 如何在前端构建流程(Webpack/Gulp)中自动注入 HTML 片段? [^1]: 引用关于 `Html.Partial` 与模块化视图的描述。 [^2]: 引用关于 HTML 注释标记的标准用途。 [^3]: 引用 Hugo 模板中自定义部分视图的实践。 [^4]: 引用构建工具动态生成内容的实现逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值