目录
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它都会更有价值。InfluxDB 是排名第一的时间序列平台,旨在通过 Telegraf 进行扩展。
查看入门方法
输入和输出集成概述
此插件收集并报告来自 HAProxy(一种流行的开源负载均衡器和代理服务器)的统计信息,以帮助监控和优化其性能。
此输出插件为将 Telegraf 收集的指标直接路由到 TimescaleDB 提供了一种可靠高效的机制。通过利用 PostgreSQL 强大的生态系统以及 TimescaleDB 的时间序列优化,它支持高性能数据摄取和高级查询功能。
集成详情
HAProxy
Telegraf 的 HAProxy 插件使用户能够通过其统计信息套接字或 HTTP 统计信息页面直接从 HAProxy 服务器收集统计信息。HAProxy 是一种广泛使用的软件负载均衡器和代理服务器,为 TCP 和 HTTP 应用程序提供高可用性和性能。通过与 HAProxy 集成,此插件允许用户实时监控和分析各种性能指标,例如活动服务器计数、请求速率、响应代码和会话状态,从而更好地进行决策并主动管理网络资源。主要功能包括支持基于 HTTP 和套接字的指标收集、与基本身份验证的兼容性以实现安全访问,以及用于指标字段命名的可配置选项,从而允许根据用户偏好进行自定义。
TimescaleDB
TimescaleDB 是一个开源时间序列数据库,作为 PostgreSQL 的扩展构建,旨在高效处理大规模、面向时间的数据。TimescaleDB 于 2017 年推出,是为了响应对强大、可扩展的解决方案日益增长的需求而诞生的,该解决方案可以管理大量数据,同时保持高插入速率和复杂查询。通过利用 PostgreSQL 熟悉的 SQL 接口并通过专门的时间序列功能对其进行增强,TimescaleDB 在希望将时间序列功能集成到现有关系数据库中的开发人员中迅速普及。其混合方法允许用户从 PostgreSQL 的灵活性、可靠性和生态系统中获益,同时为时间序列数据提供优化的性能。
该数据库在需要快速摄取数据点并对历史时期进行复杂分析查询的环境中尤其有效。TimescaleDB 具有许多创新功能,如透明地将数据划分为可管理块的超表和内置的连续聚合。这些功能可以显着提高查询速度和资源效率。
配置
HAProxy
[[inputs.haproxy]]
## List of stats endpoints. Metrics can be collected from both http and socket
## endpoints. Examples of valid endpoints:
## - http://myhaproxy.com:1936/haproxy?stats
## - https://myhaproxy.com:8000/stats
## - socket:/run/haproxy/admin.sock
## - /run/haproxy/*.sock
## - tcp://127.0.0.1:1936
##
## Server addresses not starting with 'http://', 'https://', 'tcp://' will be
## treated as possible sockets. When specifying local socket, glob patterns are
## supported.
servers = ["http://myhaproxy.com:1936/haproxy?stats"]
## By default, some of the fields are renamed from what haproxy calls them.
## Setting this option to true results in the plugin keeping the original
## field names.
# keep_field_names = false
## Optional TLS Config
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
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
输入和输出集成示例
HAProxy
-
动态负载调整:利用 HAProxy 插件实时监控流量模式,从而实现负载均衡算法的自动调整。通过持续收集服务器负载和请求速率的指标,系统管理员可以动态分配资源,确保没有单个服务器成为瓶颈,从而提高整体应用程序性能和可用性。
-
历史性能分析:将此插件与时间序列数据库集成,以收集一段时间内的 HAProxy 指标,从而使您能够分析历史性能和流量趋势。这有助于预测分析和容量规划,使企业能够深入了解流量高峰时段,并帮助识别未来潜在的资源需求。
-
异常告警:实施告警工作流程,以便在 HAProxy 指标中检测到异常模式时触发告警,例如错误率突然飙升或请求处理能力下降。通过利用此插件,运营团队可以及时收到通知,从而实现快速干预并最大限度地减少潜在停机对最终用户的影响。
TimescaleDB
-
实时物联网数据摄取:使用该插件实时收集和存储来自数千个物联网设备的传感器数据。此设置有助于立即分析,帮助组织监控运营效率并快速响应不断变化的条件。
-
云应用程序性能监控:利用该插件将来自分布式云应用程序的详细性能指标馈送到 TimescaleDB 中。此集成支持实时仪表板和告警,使团队能够快速识别和缓解性能瓶颈。
-
历史数据分析和报告:实施一个系统,将长期指标存储在 TimescaleDB 中,以进行全面的历史分析。这种方法允许企业执行趋势分析、生成详细报告,并根据存档的时间序列数据做出数据驱动的决策。
-
自适应告警和异常检测:将该插件与自动异常检测工作流程集成。通过将指标持续流式传输到 TimescaleDB,机器学习模型可以分析数据模式并在发生异常时触发告警,从而提高系统可靠性和主动维护能力。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。
强大的性能,无限的扩展能力
收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它都会更有价值。InfluxDB 是排名第一的时间序列平台,旨在通过 Telegraf 进行扩展。
查看入门方法