目录
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它都更有价值。InfluxDB 是排名第一的时间序列平台,旨在与 Telegraf 一起扩展。
查看入门方法
输入和输出集成概述
此插件从 Google Cloud PubSub 摄取指标,从而实现实时数据处理和集成到监控设置中。
此输出插件为将 Telegraf 收集的指标直接路由到 TimescaleDB 提供了一种可靠而高效的机制。通过利用 PostgreSQL 强大的生态系统以及 TimescaleDB 的时间序列优化,它支持高性能数据摄取和高级查询功能。
集成详情
Google Cloud PubSub
Google Cloud PubSub 输入插件旨在从 Google Cloud PubSub 摄取指标,Google Cloud PubSub 是一种消息服务,可促进不同系统之间的实时通信。它允许用户通过从 Google Cloud 项目中的指定订阅中拉取消息来创建和处理指标。此插件的关键功能之一是它能够作为服务输入运行,主动监听传入消息,而不是仅仅以设定的时间间隔轮询指标。通过各种配置选项,用户可以自定义消息摄取的行为,例如处理凭据、管理消息大小以及调整确认设置,以确保仅在成功处理后才确认消息。通过利用 Google PubSub 的优势,此插件与云原生架构无缝集成,使用户能够构建强大且可扩展的应用程序,这些应用程序可以实时响应事件。
TimescaleDB
TimescaleDB 是一个开源时间序列数据库,作为 PostgreSQL 的扩展构建,旨在高效处理大规模、面向时间的数据。TimescaleDB 于 2017 年推出,是为了响应对强大、可扩展的解决方案不断增长的需求而出现的,该解决方案可以管理大量数据,并具有高插入率和复杂查询。通过利用 PostgreSQL 熟悉的 SQL 接口并通过专门的时间序列功能对其进行增强,TimescaleDB 迅速在希望将时间序列功能集成到现有关系数据库中的开发人员中广受欢迎。它的混合方法允许用户从 PostgreSQL 的灵活性、可靠性和生态系统中受益,同时为时间序列数据提供优化的性能。
该数据库在需要快速摄取数据点并结合历史期间复杂分析查询的环境中尤其有效。TimescaleDB 具有许多创新功能,例如超表,它可以透明地将数据划分为可管理的块,以及内置的连续聚合。这些功能可以显着提高查询速度和资源效率。
配置
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"
TimescaleDB
# Publishes metrics to a TimescaleDB database
[[outputs.postgresql]]
## Specify connection address via the standard libpq connection string:
## host=... user=... password=... sslmode=... dbname=...
## Or a URL:
## postgres://[user[:password]]@localhost[/dbname]?sslmode=[disable|verify-ca|verify-full]
## See https://postgresql.ac.cn/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
##
## All connection parameters are optional. Environment vars are also supported.
## e.g. PGPASSWORD, PGHOST, PGUSER, PGDATABASE
## All supported vars can be found here:
## https://postgresql.ac.cn/docs/current/libpq-envars.html
##
## Non-standard parameters:
## pool_max_conns (default: 1) - Maximum size of connection pool for parallel (per-batch per-table) inserts.
## pool_min_conns (default: 0) - Minimum size of connection pool.
## pool_max_conn_lifetime (default: 0s) - Maximum connection age before closing.
## pool_max_conn_idle_time (default: 0s) - Maximum idle time of a connection before closing.
## pool_health_check_period (default: 0s) - Duration between health checks on idle connections.
# connection = ""
## Postgres schema to use.
# schema = "public"
## Store tags as foreign keys in the metrics table. Default is false.
# tags_as_foreign_keys = false
## Suffix to append to table name (measurement name) for the foreign tag table.
# tag_table_suffix = "_tag"
## Deny inserting metrics if the foreign tag can't be inserted.
# foreign_tag_constraint = false
## Store all tags as a JSONB object in a single 'tags' column.
# tags_as_jsonb = false
## Store all fields as a JSONB object in a single 'fields' column.
# fields_as_jsonb = false
## Name of the timestamp column
## NOTE: Some tools (e.g. Grafana) require the default name so be careful!
# timestamp_column_name = "time"
## Type of the timestamp column
## Currently, "timestamp without time zone" and "timestamp with time zone"
## are supported
# timestamp_column_type = "timestamp without time zone"
## Templated statements to execute when creating a new table.
# create_templates = [
# '''CREATE TABLE {{ .table }} ({{ .columns }})''',
# ]
## Templated statements to execute when adding columns to a table.
## Set to an empty list to disable. Points containing tags for which there is
## no column will be skipped. Points containing fields for which there is no
## column will have the field omitted.
# add_column_templates = [
# '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
# ]
## Templated statements to execute when creating a new tag table.
# tag_table_create_templates = [
# '''CREATE TABLE {{ .table }} ({{ .columns }}, PRIMARY KEY (tag_id))''',
# ]
## Templated statements to execute when adding columns to a tag table.
## Set to an empty list to disable. Points containing tags for which there is
## no column will be skipped.
# tag_table_add_column_templates = [
# '''ALTER TABLE {{ .table }} ADD COLUMN IF NOT EXISTS {{ .columns|join ", ADD COLUMN IF NOT EXISTS " }}''',
# ]
## The postgres data type to use for storing unsigned 64-bit integer values
## (Postgres does not have a native unsigned 64-bit integer type).
## The value can be one of:
## numeric - Uses the PostgreSQL "numeric" data type.
## uint8 - Requires pguint extension (https://github.com/petere/pguint)
# uint64_type = "numeric"
## When using pool_max_conns > 1, and a temporary error occurs, the query is
## retried with an incremental backoff. This controls the maximum duration.
# retry_max_backoff = "15s"
## Approximate number of tag IDs to store in in-memory cache (when using
## tags_as_foreign_keys). This is an optimization to skip inserting known
## tag IDs. Each entry consumes approximately 34 bytes of memory.
# tag_cache_size = 100000
## Cut column names at the given length to not exceed PostgreSQL's
## 'identifier length' limit (default: no limit)
## (see https://postgresql.ac.cn/docs/current/limits.html)
## Be careful to not create duplicate column names!
# column_name_length_limit = 0
## Enable & set the log level for the Postgres driver.
# log_level = "warn" # trace, debug, info, warn, error, none
输入和输出集成示例
Google Cloud PubSub
-
物联网设备的实时分析:利用 Google Cloud PubSub 插件聚合来自分散在各个位置的物联网设备的指标。通过将来自设备的数据流式传输到 Google PubSub 并使用此插件来摄取指标,组织可以创建一个集中式仪表板,用于实时监控和警报。此设置允许立即洞察设备性能,从而促进主动维护和运营效率。
-
动态日志处理和监控:通过 Google Cloud PubSub 将来自众多来源的日志摄取到 Telegraf 管道中,利用该插件来解析和分析日志消息。这可以帮助团队快速识别日志中的异常或模式,并简化跨分布式系统的问题排查过程。通过整合日志数据,组织可以增强其可观察性和响应能力。
-
事件驱动的工作流程集成:使用 Google Cloud PubSub 插件连接各种云函数或服务。每次有新消息推送到订阅时,都可以在云架构的其他部分触发操作,例如启动数据处理作业、通知,甚至更新报告。这种事件驱动的方法允许构建更具响应性的系统架构,可以适应不断变化的业务需求。
TimescaleDB
-
实时物联网数据摄取:使用该插件实时收集和存储来自数千个物联网设备的传感器数据。此设置有助于立即分析,帮助组织监控运营效率并快速响应不断变化的条件。
-
云应用程序性能监控:利用该插件将来自分布式云应用程序的详细性能指标馈送到 TimescaleDB 中。此集成支持实时仪表板和警报,使团队能够快速识别和缓解性能瓶颈。
-
历史数据分析和报告:实施一个系统,将长期指标存储在 TimescaleDB 中,以进行全面的历史分析。这种方法允许企业执行趋势分析、生成详细报告并根据存档的时间序列数据做出数据驱动的决策。
-
自适应警报和异常检测:将该插件与自动异常检测工作流程集成。通过将指标持续流式传输到 TimescaleDB,机器学习模型可以分析数据模式,并在发生异常时触发警报,从而提高系统可靠性和主动维护能力。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它都更有价值。InfluxDB 是排名第一的时间序列平台,旨在与 Telegraf 一起扩展。
查看入门方法