目录
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 使用 InfluxDB,这是 #1 时序平台,旨在与 Telegraf 一起扩展。
查看入门方法
输入和输出集成概述
NSQ Telegraf 插件从 NSQD 消息传递系统读取指标,从而实现实时数据处理和监控。
此插件使用参数化的 SQL INSERT 语句将指标从 Telegraf 直接写入 MariaDB,从而提供了一种将指标存储在结构化关系表中的灵活方法。
集成详情
NSQ
NSQ 插件与实时消息传递平台 NSQ 接口,可以从 NSQD 读取消息。 此插件归类为服务插件,这意味着它主动侦听指标和事件,而不是定期轮询它们。 为了强调可靠性,它会跟踪未送达的消息,直到输出确认它们为止,从而防止数据丢失。 该插件允许进行配置,例如指定 NSQLookupd 端点、主题和通道,并且它支持多种数据格式,以实现数据处理的灵活性。
MariaDB
Telegraf 中的 SQL 输出插件可以通过执行参数化的 SQL 语句将指标直接写入与 SQL 兼容的数据库(如 MariaDB)。 通过支持 MySQL 驱动程序,该插件可以与 MariaDB 无缝集成,以实现可靠的结构化指标存储。 对于喜欢基于 SQL 的分析或希望将指标与业务数据一起存储以进行统一查询的用户来说,此设置是理想的选择。 MariaDB 是一个社区开发的、企业级的 MySQL 分支,它强调性能、安全性以及开放性。 该插件支持将时序指标插入到自定义模式中,从而可以使用 SQL 连接器灵活地进行分析并与 BI 工具(如 Metabase 或 Grafana)集成。
配置
NSQ
# Read metrics from NSQD topic(s)
[[inputs.nsq_consumer]]
## Server option still works but is deprecated, we just prepend it to the nsqd array.
# server = "localhost:4150"
## An array representing the NSQD TCP HTTP Endpoints
nsqd = ["localhost:4150"]
## An array representing the NSQLookupd HTTP Endpoints
nsqlookupd = ["localhost:4161"]
topic = "telegraf"
channel = "consumer"
max_in_flight = 100
## Max undelivered messages
## This plugin uses tracking metrics, which ensure messages are read to
## outputs before acknowledging them to the original broker to ensure data
## is not lost. This option sets the maximum messages to read from the
## broker that have not been written by an output.
##
## This value needs to be picked with awareness of the agent's
## metric_batch_size value as well. Setting max undelivered messages too high
## can result in a constant stream of data batches to the output. While
## setting it too low may never flush the broker's messages.
# max_undelivered_messages = 1000
## Data format to consume.
## Each data format has its own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
data_format = "influx"
MariaDB
[[outputs.sql]]
## Database driver
## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres),
## sqlite (SQLite3), snowflake (snowflake.com) clickhouse (ClickHouse)
driver = "mysql"
## Data source name
## The format of the data source name is different for each database driver.
## See the plugin readme for details.
data_source_name = "username:password@tcp(host:port)/dbname"
## Timestamp column name
timestamp_column = "timestamp"
## Table creation template
## Available template variables:
## {TABLE} - table name as a quoted identifier
## {TABLELITERAL} - table name as a quoted string literal
## {COLUMNS} - column definitions (list of quoted identifiers and types)
table_template = "CREATE TABLE {TABLE}({COLUMNS})"
## SQL INSERT statement with placeholders. Telegraf will substitute values at runtime.
## table_template = "INSERT INTO metrics (timestamp, name, value, tags) VALUES (?, ?, ?, ?)"
## Table existence check template
## Available template variables:
## {TABLE} - tablename as a quoted identifier
table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1"
## Initialization SQL
init_sql = "SET sql_mode='ANSI_QUOTES';"
## Maximum amount of time a connection may be idle. "0s" means connections are
## never closed due to idle time.
connection_max_idle_time = "0s"
## Maximum amount of time a connection may be reused. "0s" means connections
## are never closed due to age.
connection_max_lifetime = "0s"
## Maximum number of connections in the idle connection pool. 0 means unlimited.
connection_max_idle = 2
## Maximum number of open connections to the database. 0 means unlimited.
connection_max_open = 0
## NOTE: Due to the way TOML is parsed, tables must be at the END of the
## plugin definition, otherwise additional config options are read as part of the
## table
## Metric type to SQL type conversion
## The values on the left are the data types Telegraf has and the values on
## the right are the data types Telegraf will use when sending to a database.
##
## The database values used must be data types the destination database
## understands. It is up to the user to ensure that the selected data type is
## available in the database they are using. Refer to your database
## documentation for what data types are available and supported.
#[outputs.sql.convert]
# integer = "INT"
# real = "DOUBLE"
# text = "TEXT"
# timestamp = "TIMESTAMP"
# defaultvalue = "TEXT"
# unsigned = "UNSIGNED"
# bool = "BOOL"
# ## This setting controls the behavior of the unsigned value. By default the
# ## setting will take the integer value and append the unsigned value to it. The other
# ## option is "literal", which will use the actual value the user provides to
# ## the unsigned option. This is useful for a database like ClickHouse where
# ## the unsigned value should use a value like "uint64".
# # conversion_style = "unsigned_suffix"
输入和输出集成示例
NSQ
-
实时分析仪表板:将此插件与可视化工具集成,以创建一个仪表板,显示来自 NSQ 中各个主题的实时指标。 通过订阅特定主题,用户可以动态监控系统健康状况和应用程序性能,从而及时了解情况并及时响应任何异常。
-
事件驱动的自动化:将 NSQ 与无服务器架构相结合,以根据传入的消息触发自动化工作流程。 此用例可能涉及处理机器学习模型的数据或响应应用程序中的用户操作,从而简化操作并通过快速处理增强用户体验。
-
多服务通信中心:在分布式架构中,使用 NSQ 插件充当不同微服务之间的集中式消息传递中心。 通过使服务能够通过 NSQ 进行通信,开发人员可以确保可靠的消息传递,同时保持解耦的服务交互,从而显着提高可扩展性和弹性。
-
用于增强监控的指标聚合:在将指标发送到分析工具之前,实施 NSQ 插件以聚合来自多个来源的指标。 此设置使企业能够整合来自各种应用程序和服务的数据,从而创建统一的视图,以便更好地进行决策和战略规划。
MariaDB
-
商业智能集成:将应用程序性能指标直接存储到 MariaDB 中,并将其连接到 BI 工具(如 Metabase 或 Apache Superset)。 此设置允许将运营数据与业务 KPI 相结合,以获得统一的仪表板,从而提高跨部门的可见性。
-
具有历史指标的合规性报告:使用此插件将指标记录到 MariaDB 中,用于审计和合规性用例。 关系模型支持使用时间戳条目精确查询过去的绩效指标,从而支持监管文档。
-
基于 SQL 逻辑的自定义警报:将指标插入到 MariaDB 中,并使用自定义 SQL 查询来定义警报阈值或条件。 结合 cron 作业或计划脚本,这可以实现传统指标平台无法实现的高级警报工作流程。
-
物联网 (IoT) 传感器指标存储:通过 Telegraf 收集来自物联网 (IoT) 设备的数据,并使用规范化模式将其存储在 MariaDB 中。 这种方法经济高效,并且与现有的基于 SQL 的系统集成良好,可用于实时或历史分析。
反馈
感谢您成为我们社区的一份子! 如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提供意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 使用 InfluxDB,这是 #1 时序平台,旨在与 Telegraf 一起扩展。
查看入门方法