Telegraf 从各种输入收集指标,并将它们写入各种输出。它由插件驱动,用于收集和输出数据,因此它是可扩展的。它使用 Go 编写,这意味着它是一个编译的独立二进制文件,可以在任何系统上运行,无需外部依赖关系或包管理工具。
Telegraf 是一个开源工具。它包含 200 多个用于收集和写入不同类型数据的插件,由使用这些数据的人员编写。
在开始之前,请确保您已
- 安装 Telegraf 在您要收集指标的系统上。
- 创建了 Timescale 服务.
- 收集了 您的服务 的连接详细信息。
- 安装了 Grafana.
检查您安装的 Telegraf 版本
telegraf --version使用以下方法为 Telegraf 生成示例配置文件
telegraf --input-filter=cpu --output-filter=postgresql config > telegraf.conf示例配置文件启用一个 CPU 输入插件,该插件对 CPU 使用情况的各种指标进行采样,以及 PostgreSQL 输出插件。该文件还包含所有可用的输入、输出、处理器和聚合器插件。这些默认情况下被注释掉了。您可以根据需要启用它们。
测试您生成的示例配置文件
telegraf.conf
telegraf --config telegraf.conf --test将显示类似于以下内容的输出
2022-11-28T12:53:44Z I! Starting Telegraf 1.24.32022-11-28T12:53:44Z I! Available plugins: 208 inputs, 9 aggregators, 26 processors, 20 parsers, 57 outputs2022-11-28T12:53:44Z I! Loaded inputs: cpu2022-11-28T12:53:44Z I! Loaded aggregators:2022-11-28T12:53:44Z I! Loaded processors:2022-11-28T12:53:44Z W! Outputs are not used in testing mode!2022-11-28T12:53:44Z I! Tags enabled: host=localhost> cpu,cpu=cpu0,host=localhost usage_guest=0,usage_guest_nice=0,usage_idle=90.00000000087311,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=6.000000000040018,usage_user=3.999999999996362 1669640025000000000> cpu,cpu=cpu1,host=localhost usage_guest=0,usage_guest_nice=0,usage_idle=92.15686274495818,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=5.882352941192206,usage_user=1.9607843136712912 1669640025000000000> cpu,cpu=cpu2,host=localhost usage_guest=0,usage_guest_nice=0,usage_idle=91.99999999982538,usage_iowait=0,usage_irq=0,usage_nice=0,usage_softirq=0,usage_steal=0,usage_system=3.999999999996362,usage_user=3.999999999996362 1669640025000000000
在您首选的文本编辑器中打开
telegraf.conf
文件,并将[[outputs.postgresql]]
部分中的connection
参数设置为您创建的 Timescale 服务的<SERVICE URL>
connection = "<SERVICE URL>"通过在配置文件中添加
table_template
参数来创建超表,以便在创建新表时执行。您可以在以注释## Templated statements to execute when creating a new table.
开头的部分中添加此参数。添加table_template
参数后,配置文件中的部分将如下所示## Templated statements to execute when creating a new table.# create_templates = [# '''CREATE TABLE {{ .table }} ({{ .columns }})''',# ]# table_template=`CREATE TABLE IF NOT EXISTS {TABLE}({COLUMNS}); SELECT create_hypertable({TABLELITERAL},by_range('time', INTERVAL '1 week'),if_not_exists := true);`注意
by_range
维度生成器是 TimescaleDB 2.13 的新增功能。
运行 Telegraf 以收集指标
telegraf --config telegraf.conf输出使用加载的输入
cpu
和输出postgresql
以及global tags
,以及代理从输入中收集数据并刷新到输出的间隔。将显示类似于以下内容的输出
2022-12-05T12:32:00Z I! Starting Telegraf 1.24.32022-12-05T12:32:00Z I! Available plugins: 208 inputs, 9 aggregators, 26 processors, 20 parsers, 57 outputs2022-12-05T12:32:00Z I! Loaded inputs: cpu2022-12-05T12:32:00Z I! Loaded aggregators:2022-12-05T12:32:00Z I! Loaded processors:2022-12-05T12:32:00Z I! Loaded outputs: postgresql2022-12-05T12:32:00Z I! Tags enabled: host=test2022-12-05T12:32:00Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"test", Flush Interval:10s在大约 15 到 20 秒后停止运行 Telegraf 以收集指标。
连接到 Timescale 并提供
tsdbadmin
的<PASSWORD>
psql <SERVICE URL>Password for user tsdbadmin: <PASSWORD>查看
tsdb
中cpu
表中收集的指标SELECT*FROM cpu;将显示类似于以下内容的输出
time | cpu | host | usage_guest | usage_guest_nice | usage_idle | usage_iowait | usage_irq | usage_nice | usage_softirq | usage_steal | usage_system | usage_user---------------------+-----------+----------------------------------+-------------+------------------+-------------------+--------------+-----------+------------+---------------+-------------+---------------------+---------------------2022-12-05 12:25:20 | cpu0 | hostname | 0 | 0 | 83.08605341237833 | 0 | 0 | 0 | 0 | 0 | 6.824925815961274 | 10.0890207714444812022-12-05 12:25:20 | cpu1 | hostname | 0 | 0 | 84.27299703278959 | 0 | 0 | 0 | 0 | 0 | 5.934718100814769 | 9.7922848663956472022-12-05 12:25:20 | cpu2 | hostname | 0 | 0 | 87.53709198848934 | 0 | 0 | 0 | 0 | 0 | 4.747774480755411 | 7.7151335312410372022-12-05 12:25:20 | cpu3 | hostname| 0 | 0 | 86.68639053296472 | 0 | 0 | 0 | 0 | 0 | 4.43786982253345 | 8.8757396450399922022-12-05 12:25:20 | cpu4 | hostname | 0 | 0 | 96.15384615371369 | 0 | 0 | 0 | 0 | 0 | 1.1834319526667423 | 2.6627218934917614要查看每个 CPU 内核的平均使用情况,请使用
SELECT cpu, avg(usage_user) FROM cpu GROUP BY cpu;将显示类似于以下内容的输出
cpu | avg-----------+---------------------cpu7 | 0.36239363864003277cpu-total | 2.7778985775548013cpu4 | 1.9990184779524285cpu2 | 4.083993994915682cpu0 | 5.281711648540422cpu1 | 4.9013756546309155cpu6 | 0.6719913538159535cpu5 | 1.0512637475474937cpu3 | 3.871919066617788
有关您可以在 Telegraf 中配置的选项的更多信息,请参阅 PostgreQL 输出插件.
您可以使用 Grafana 直接从 Timescale 数据库可视化查询。
在开始之前,请确保您已
- 创建了 Timescale Cloud 服务。
- 安装了自托管的 Grafana 帐户,或注册了 Grafana Cloud.
- 找到了要作为数据源使用的数据库的连接详细信息。这些详细信息包含在您创建服务时下载的备忘单中。
- 在您的 Web 浏览器中,登录到 Grafana 仪表板,地址为
http://localhost:3000/
。默认用户名为admin
,默认密码为admin
。 - 在 Grafana 仪表板中,导航到
Configuration
→Data sources
。单击Add data source
。 - 在
Add data source
页面中,搜索 PostgreSQL 并选择它。 - 使用您的连接详细信息配置数据源
- 在
Name
字段中,键入要用于数据集的名称。 - 在
Host
字段中,键入您的连接的主机和端口,格式如下:<HOST>:<PORT>
。例如,example.tsdb.cloud.timescale.com:35177
。 - 在
Database
字段中,键入tsdb
。 - 在
User
字段中,键入tsdbadmin
或其他特权用户。 - 在
Password
字段中,键入密码。 - 在
TLS/SSL Mode
字段中,选择require
- 在
PostgreSQL details
部分中,将TimescaleDB
切换为开启。 - 所有其他字段可以保留默认值。
- 在
- 单击
Save & test
以检查您的详细信息是否已正确设置。
在 Grafana 中配置 Timescale 作为数据源后,您可以创建使用 SQL 填充数据的面板。
关键词
在这个页面上发现问题了吗?报告问题 或 在 GitHub 上编辑此页面。