集成 Telegraf 数据
#1. 数据流
#2. 配置 Telegraf
#2.1 安装 Telegraf
在 Telegraf 文档 (opens new window)中可了解相关背景知识。 如果你的集群中没有 Telegraf,可用如下步骤快速以 DaemonSet 方式部署 Telegraf:
# add helm chart
helm repo add influxdata https://helm.influxdata.com/
# install telegraf
helm upgrade --install telegraf influxdata/telegraf -n deepflow-telegraf-demo --create-namespace
# switch from deployment to daemonset
kubectl apply -f https://raw.githubusercontent.com/deepflowio/deepflow-demo/main/DeepFlow-Telegraf-Demo/deepflow-telegraf-demo.yaml
2
3
4
5
6
7
8
#2.2 配置 Telegraf 数据输出
我们需要修改 Telegraf 的配置,使 Telegraf 将数据发送给 DeepFlow Agent。
首先,我们需要确定 DeepFlow Agent 启动的数据监听服务的地址。在安装 DeepFlow Agent 后,
会显示 DeepFlow Agent Service 地址,它的默认值是 deepflow-agent.default
。
如果你修改了它,请根据实际的服务名称与命名空间填写到配置中。
接下来修改 Telegraf 的默认配置(假设它位于 deepflow-telegraf-demo
命名空间中):
kubectl edit cm -n deepflow-telegraf-demo telegraf
在 telegraf.conf
中,增加如下配置(请修改 DEEPFLOW_AGENT_SVC
为 deepflow-agent 的服务名):
[[outputs.http]]
url = "http://${DEEPFLOW_AGENT_SVC}/api/v1/telegraf"
data_format = "influx"
2
3
#3. 配置 DeepFlow
请参考 配置 DeepFlow 一节内容,完成 DeepFlow Agent 配置。
#4. 查看 Telegraf 数据
Telegraf 中的指标将会存储在 DeepFlow 的 ext_metrics
database 中。
为了降低 table 的数量,DeepFlow 会将所有 Measurement 存储在一个 ClickHouse Table 中,
当用户使用时仍然看到的是一系列对应到 Telegraf 原始 Measurement 的数据表。
Telegraf 指标原有的标签可通过 tag.XXX 引用,指标值通过 metrics.YYY 引用。
同时 DeepFlow 也会自动注入大量的 Meta Tag 和 Custom Tag,使得 Telegraf 采集的数据可以与其他数据源无缝关联。
使用 Grafana,选择 DeepFlow
数据源进行搜索时的展现图下图:
Telegraf 数据集成