Google Cloud PubSub 和 MySQL 集成

由 InfluxData 构建的开源数据连接器 Telegraf 提供支持,易于集成,性能强大。

info

对于大规模实时查询,这不是推荐的配置。 为了进行查询和压缩优化、高速摄取和高可用性,您可能需要考虑 Google Cloud PubSub 和 InfluxDB

50 亿+

Telegraf 下载量

#1

时序数据库
来源:DB Engines

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

强大性能,无限扩展

收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 InfluxDB 是排名第一的时序平台,旨在与 Telegraf 一起扩展。

了解入门方法

输入和输出集成概述

此插件从 Google Cloud PubSub 摄取指标,从而实现实时数据处理并集成到监控设置中。

Telegraf SQL 插件允许您将来自 Telegraf 的指标直接存储到 MySQL 数据库中,从而更轻松地分析和可视化收集的指标。

集成详情

Google Cloud PubSub

Google Cloud PubSub 输入插件旨在从 Google Cloud PubSub 摄取指标,Google Cloud PubSub 是一种消息传递服务,可促进不同系统之间的实时通信。 它允许用户通过从 Google Cloud 项目中的指定订阅中拉取消息来创建和处理指标。 此插件的关键功能之一是其作为服务输入运行的能力,主动侦听传入消息,而不是仅以设定的时间间隔轮询指标。 通过各种配置选项,用户可以自定义消息摄取的行为,例如处理凭据、管理消息大小以及调整确认设置,以确保仅在成功处理后才确认消息。 通过利用 Google PubSub 的优势,此插件与云原生架构无缝集成,使用户能够构建强大且可扩展的应用程序,这些应用程序可以实时响应事件。

MySQL

Telegraf 的 SQL 输出插件旨在通过基于传入指标动态创建表和列,将指标数据无缝写入 SQL 数据库。 当配置为 MySQL 时,该插件利用 go-sql-driver/mysql,这需要启用 ANSI_QUOTES SQL 模式以确保正确处理带引号的标识符。 这种动态模式创建方法确保每个指标都存储在自己的表中,其结构源自其字段和标签,从而提供系统性能的详细、带时间戳的记录。 该插件的灵活性使其能够处理高吞吐量环境,使其成为需要强大、精细的指标日志记录和历史数据分析的场景的理想选择。

配置

Google Cloud PubSub

[[inputs.cloud_pubsub]]
  project = "my-project"
  subscription = "my-subscription"
  data_format = "influx"
  # credentials_file = "path/to/my/creds.json"
  # retry_delay_seconds = 5
  # max_message_len = 1000000
  # max_undelivered_messages = 1000
  # max_extension = 0
  # max_outstanding_messages = 0
  # max_outstanding_bytes = 0
  # max_receiver_go_routines = 0
  # base64_data = false
  # content_encoding = "identity"
  # max_decompression_size = "500MB"

MySQL

[[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})"

  ## 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"

输入和输出集成示例

Google Cloud PubSub

  1. 物联网设备实时分析:利用 Google Cloud PubSub 插件聚合来自分布在不同位置的物联网设备的指标。 通过将设备数据流式传输到 Google PubSub 并使用此插件摄取指标,组织可以创建一个集中式仪表板,用于实时监控和警报。 此设置可以立即洞察设备性能,从而促进主动维护和运营效率。

  2. 动态日志处理和监控:通过 Google Cloud PubSub 将来自众多来源的日志摄取到 Telegraf 管道中,利用该插件解析和分析日志消息。 这可以帮助团队快速识别日志中的异常或模式,并简化跨分布式系统的问题排查过程。 通过整合日志数据,组织可以增强其可观察性和响应能力。

  3. 事件驱动的工作流集成:使用 Google Cloud PubSub 插件连接各种云函数或服务。 每次有新消息推送到订阅时,都可以在云架构的其他部分触发操作,例如启动数据处理作业、通知,甚至更新报告。 这种事件驱动的方法允许构建更具反应性的系统架构,可以适应不断变化的业务需求。

MySQL

  1. 实时 Web 分析存储:利用该插件捕获网站性能指标并将其存储在 MySQL 中。 此设置使团队能够监控用户交互、分析流量模式,并根据实时数据洞察动态调整站点功能。

  2. 物联网设备监控:利用该插件从物联网传感器网络收集指标,并将它们记录到 MySQL 数据库中。 此用例支持对设备健康状况和性能的持续监控,从而实现预测性维护和对异常的即时响应。

  3. 金融交易日志记录:记录具有精确时间戳的高频金融交易数据。 这种方法支持强大的审计跟踪、实时欺诈检测以及用于合规性和报告的全面历史分析。

  4. 应用程序性能基准测试:将该插件与应用程序性能监控系统集成,以将指标记录到 MySQL 中。 这有助于随着时间的推移进行详细的基准测试和趋势分析,使组织能够有效地识别性能瓶颈并优化资源分配。

反馈

感谢您成为我们社区的一份子! 如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提出意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。

强大性能,无限扩展

收集、组织和处理海量高速数据。 当您将任何数据视为时序数据时,它都更有价值。 InfluxDB 是排名第一的时序平台,旨在与 Telegraf 一起扩展。

了解入门方法

相关集成

HTTP 和 InfluxDB 集成

HTTP 插件从一个或多个 HTTP(S) 端点收集指标。 它支持各种身份验证方法和数据格式的配置选项。

查看集成

Kafka 和 InfluxDB 集成

此插件从 Kafka 读取消息,并允许基于这些消息创建指标。 它支持各种配置,包括不同的 Kafka 设置和消息处理选项。

查看集成

Kinesis 和 InfluxDB 集成

Kinesis 插件允许从 AWS Kinesis 流中读取指标。 它支持多种输入数据格式,并为可靠的消息处理提供带有 DynamoDB 的检查点功能。

查看集成