使用 HTTP POST 将 OpenTSDB 写入 Bigtable 不起作用(使用 Kubernetes(

Posted

技术标签:

【中文标题】使用 HTTP POST 将 OpenTSDB 写入 Bigtable 不起作用(使用 Kubernetes(【英文标题】:Writing OpenTSDB to Bigtable with HTTP POST not working (using Kubernetes( 【发布时间】:2019-05-28 16:36:03 【问题描述】:

更新了更多信息

我正在尝试按照本指南在 Bigtable 上设置 OpenTSDB: https://cloud.google.com/solutions/opentsdb-cloud-platform

效果很好,一切都很好。

现在我尝试使用 LoadBalancer(类型)打开 opentsdb-write 服务。似乎也很好用。

注意:使用 GCP 负载平衡器。

然后我使用 insomnia 将 POST 发送到 ./api/put 端点 - 我得到了预期的 204(此外,使用 ?details 没有显示错误,?sync 也没有显示错误)(参见 @ 987654322@)

查询数据时(./api/query 上的 GET),我看不到数据(在 grafana 中效果相同)。另外,我没有看到在 bigtable 的 tsdb 表中添加了任何数据。

我的结论:没有数据写入 Bigtable,虽然 tsd 返回 204。

有趣的事实:metric 已创建(我可以在 Bigtable (cbt read tsdb-uid) 中看到它,并且 opentsdb-ui(和 grafana)中的自动完成功能会立即选择指标。但是没有数据。

当我在教程中使用 Heapster-Example 时,一切正常。

还有有趣的部分(对我来说):

注意:数据出现了几次,有大量延迟或在停止/重新启动 kubernetes 集群之后。突然。我目前无法重现。

我一定错过了一些非常简单的东西。

注意:我在日志 (stackdriver) 和 UI (opentsdb UI)、bigtable 和 Kubernetes 中都没有看到任何错误,也没有我能想到的任何错误。

注意:我使用的配置与教程中的链接相同。

我正在使用的 put(参见 204):

如果我添加?details,则表示成功:

【问题讨论】:

我们遇到了同样的错误,并发现当编写一个指标大约 25 次时,它会莫名其妙地出现。但是我们还没有发现问题。 感谢@dbankk 的评论 - 我刚刚发现相同的,必须在某个地方保留。一旦它有大约 10 个数据点,它就会将它们写入 bigtable。到目前为止,我看不到 (1.) 数据在此过程中丢失以及 (2.) 如何解决它。将调查更多 【参考方案1】:

我的猜测是这与 opentsdb 刷新频率有关。当 tsdb 集群关闭时,会自动刷新。我不是 100% 确定,但我认为 tsd.storage.flush_interval 配置管理该过程。

您可以通过 google-cloud-bigtable-discuss 小组联系维护库的团队,您可以通过Cloud Bigtable support page 联系该小组,以进行更多细致入微的讨论。

作为一个仅供参考,我们 (Google) 正在积极地将 https://cloud.google.com/solutions/opentsdb-cloud-platform 更新到最新版本的 OpenTSDB 和 AsyncBigtable,这应该会提高大量性能。

【讨论】:

感谢您的解释 - 我会调查一下。目前,写入更多数据,我们不再遇到问题。但出于好奇,我会看看。另外,感谢您的 FYI 以及您和团队的巨大努力! fyi,这个可能是相关的:***.com/questions/31383406/… -- 对此问题/答案添加了评论 @AntonLitvinenko 我一开始写大量数据,问题就消失了。如果我只发送一个点左右,它会感觉没有响应(由于一些冲洗频率,可能就像上面的答案)。

以上是关于使用 HTTP POST 将 OpenTSDB 写入 Bigtable 不起作用(使用 Kubernetes(的主要内容,如果未能解决你的问题,请参考以下文章

OpenTSDB原理系列-线程模型

OpenTSDB HTTP API 概述

OpenTSDB HTTP API之/api/query

时间序列数据库OpenTSDB设计

opentsdb basic install

工具篇-OpenTSDB的使用