博客/工程

如何使用碳中继流石墨度量到Grafana云

2020年8月3日5分钟

在这篇文章中,我们将向您展示如何轻松地将现有的Graphite指标交付到Grafana的托管指标产品carbon-relay-ng

carbon-relay -ng是一个快速的、基于go的碳中继替代品,允许您轻松地聚合、过滤和路由您的石墨指标。这篇文章假设你有一个本地carbon-relay-ng二进制文件。你可以从发布页面并找到Docker映像、Linux包以及如何自己构建的文档在这里

Grafana Cloud是Grafana Labs提供的一套托管服务,包括度量(Graphite和bob电竞频道Prometheus)、日志(via洛基),当然,还有用于可视化和提醒的Grafana。

创建一个Grafana Cloud实例

如果你还没有使用过Grafana Cloud,你也可以注册免费试用吧

1.从Grafana Cloud页面点击“开始免费试用”。

开始试验
开始试验

2.为您的实例选择一个名称。

选择实例名
选择实例名

3.如果您还没有登录,请登录到grafana.net。

登录
登录

4.输入你的信用卡信息。在30天的试用期内,你不会收到任何账单。

信用卡
信用卡

5.您的实例现在已经配置好了,您可以通过单击“Take me to my Grafana Cloud”按钮来查看它。

查看Grafana Cloud实例
查看Grafana Cloud实例

6.现在您只需要生成一个角色为的API密钥MetricsPublisher,然后可以继续配置carbon-relay-ng。要做到这一点,导航到安全-> API密钥,然后单击“+添加API密钥”。

API密匙
API密匙

配置carbon-relay-ng

现在,您已经启动并运行了一个Graphite数据源以及发布的凭据,您可以配置本地碳中继ng实例,开始向Grafana Cloud发布指标。

度量实例配置页面包含示例carbon-relay-ng配置文件,您可以将其用于初始配置。要查看它们,请访问Grafana Cloud -> Metrics -> Details在您的Graphite实例上。

度量实例
度量实例

carbon-relay-ng.conf

##全局设置##实例id区分多个中继的统计信息#不运行多个具有相同实例id的中继。#支持的变量:# ${HOST}: hostname instance = "${HOST}" ##系统## #此设置可用于覆盖默认的GOMAXPROCS逻辑。pid" # spool文件目录spool_dir = "spool" ##日志##跟踪调试信息警告错误致命恐慌#见docs/ Logging。注意:如果你以前使用“notice”,你现在应该使用“info”。log_level = "信息"输入# # # # # # # # # # listen_addr明文碳=“0.0.0.0:2003”#近入站明文连接如果他们已经闲置了这么久(“0”禁用)plain_read_timeout =“2 m”碳# # # # # #酸洗pickle_addr =“0.0.0.0:2013”#近入站泡菜连接如果他们已经闲置了这么久(“0”禁用)pickle_read_timeout =“2 m”# #验证输入# # #也可以验证每个系列都有增加时间戳validate_order = false #多久跟踪已看到的无效度量#有用的时间单位是“s”,“m”,“h”bad_metrics_max_age =“24h”[[route]] key = 'grafanaNet' type = 'grafanaNet' addr = 'https://graphite-us-central1.grafana.net/metrics' apikey = '<用户>:<您的Grafana.com API key >' schemasFile = '/etc/carbon-中继-ng/storage-schema .conf' ##仪器仪表##[仪器仪表]#除了通过expvar提供内部度量外,您还可以将它们发送给石墨/碳#重要:将此设置为“”将禁用刷新,并且指标将堆积起来并导致OOM #参见https://github.com/grafana/carbon-relay-ng/issues/50 #,所以现在你必须将它们发送到某个地方。对不起。#(如果你使用Grafana Cloud,这里的间隔必须与你在storage-schema .conf中的设置相对应)graphite_addr = "localhost:2003" graphite_interval = 10000 # in ms

storage-schemas.conf

[default] pattern = .* retention = 10s:1d #注意,如果你更新了carbon-relay-ng 'graphite_interval'参数,而不是默认的10,000ms (10s), #你也应该在这里设置新的值[crng-service] pattern = ^service_is_carbon-relay-ng retention = 10s:1d [crng-stats] pattern = carbon-relay-ng。数据留存= 10秒:1秒

对配置所做的最重要的修改是插入用户和生成的API密钥,并确保schemasFile属性指向您的storage-schemas.conf文件。

如果您不希望将您的Grafana Cloud证书包含在您的carbon-relay-ng.conf文件,0.13或更高版本将允许您通过GRAFANA_NET_USER_ID而且GRAFANA_NET_API_KEY环境变量。为此,请更新您的[[路线]]节来包含这一行:apikey = '${GRAFANA_NET_USER_ID}:${GRAFANA_NET_API_KEY}'

您现在可以启动carbon-relay,它将立即开始向您的Grafana Cloud Graphite实例发布其自我监控指标。使用本地二进制文件时,您将使用。/ carbon-relay-ng carbon-relay-ng.conf,或者取决于你如何安装它,你可以使用init系统,如systemd。

现在,由应用程序(如statsd、collectd或diamond)发布的任何数据将碳数据发送到我们的套接字(正在监听)localhost: 2003)也会出现在Grafana Cloud上。

有关配置碳中继ng的详细信息,请参阅配置文档,包括如何删除、重命名和聚合指标的信息,以及如何将它们发送到备用位置(如Kafka或Amazon Cloudwatch)。

如果您开始在carbon-relay-ng上遇到伸缩性问题,或者需要确保您的carbon-relay-ng实例是高可用的,您可以找到关于如何管理多实例和HA carbon-relay-ng设置的文档Grafana Cloud Graphite文档的数据摄取页面

查询您的指标

现在,您的指标已经流向了Grafana Cloud,是时候查询它们了。

虽然您可以从本地的Grafana实例中查询指标,但我们假设您想使用Grafana Cloud Grafana实例。

如果您遵循本节中描述的注册流程创建一个Grafana Cloud实例,则您的Grafana实例已经创建。您可以通过点击Grafana Cloud -> Grafana ->登录按钮从您的个人页面访问它。

去格拉夫纳
去格拉夫纳

最后,您可以通过单击侧边栏上的指南针图标并选择新的Graphite数据源,从Explore视图中查询您的指标。

查看指标
查看指标

现在,您已经准备好向中继发送更多数据,创建(或进口) Grafana仪表板,以及创建警报规则

最后一点注意:我建议导入Carbon-relay-ng仪表板到你的Grafana实例中,看看碳继电器本身是如何执行的。

Carbon-relay-ng仪表板
Carbon-relay-ng仪表板