目录
输入和输出集成概述
StatsD 输入插件通过在后台运行侦听器服务,从 StatsD 服务器捕获指标,从而实现全面的性能监控和指标聚合。
Graphite 插件使用户能够通过 TCP 将 Telegraf 收集的指标发送到 Graphite 中。此集成允许使用 Graphite 的强大功能高效地存储和可视化时序数据。
集成详情
StatsD
StatsD 输入插件旨在通过在 Telegraf 处于活动状态时运行后台 StatsD 侦听器服务,从 StatsD 服务器收集指标。此插件利用原始 Etsy 实现建立的 StatsD 消息格式,该格式允许各种类型的指标,包括仪表、计数器、集合、计时、直方图和分布。StatsD 插件的功能扩展到解析标签,并使用适应 InfluxDB 标记系统的功能扩展标准协议。它可以处理通过不同协议(UDP 或 TCP)发送的消息,有效地管理多个指标,并提供高级配置以实现最佳指标处理,例如百分位数计算和数据转换模板。这种灵活性使用户能够全面跟踪应用程序性能,使其成为强大监控设置的重要工具。
Graphite
此插件通过原始 TCP 将指标写入 Graphite,从而将 Telegraf 收集的指标无缝集成到 Graphite 生态系统中。借助此插件,用户可以配置多个 TCP 端点以进行负载均衡,从而确保指标传输的高可用性和可靠性。使用前缀自定义指标命名以及利用各种模板选项的能力增强了数据在 Graphite 中表示方式的灵活性。此外,对 Graphite 标签的支持以及对指标名称进行严格清理的选项允许进行强大的数据管理,满足用户的各种需求。对于希望利用 Graphite 强大的指标存储和可视化功能,同时保持对数据表示的控制的企业而言,此功能至关重要。
配置
StatsD
[[inputs.statsd]]
## Protocol, must be "tcp", "udp4", "udp6" or "udp" (default=udp)
protocol = "udp"
## MaxTCPConnection - applicable when protocol is set to tcp (default=250)
max_tcp_connections = 250
## Enable TCP keep alive probes (default=false)
tcp_keep_alive = false
## Specifies the keep-alive period for an active network connection.
## Only applies to TCP sockets and will be ignored if tcp_keep_alive is false.
## Defaults to the OS configuration.
# tcp_keep_alive_period = "2h"
## Address and port to host UDP listener on
service_address = ":8125"
## The following configuration options control when telegraf clears it's cache
## of previous values. If set to false, then telegraf will only clear it's
## cache when the daemon is restarted.
## Reset gauges every interval (default=true)
delete_gauges = true
## Reset counters every interval (default=true)
delete_counters = true
## Reset sets every interval (default=true)
delete_sets = true
## Reset timings & histograms every interval (default=true)
delete_timings = true
## Enable aggregation temporality adds temporality=delta or temporality=commulative tag, and
## start_time field, which adds the start time of the metric accumulation.
## You should use this when using OpenTelemetry output.
# enable_aggregation_temporality = false
## Percentiles to calculate for timing & histogram stats.
percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0]
## separator to use between elements of a statsd metric
metric_separator = "_"
## Parses tags in the datadog statsd format
## http://docs.datadoghq.com/guides/dogstatsd/
## deprecated in 1.10; use datadog_extensions option instead
parse_data_dog_tags = false
## Parses extensions to statsd in the datadog statsd format
## currently supports metrics and datadog tags.
## http://docs.datadoghq.com/guides/dogstatsd/
datadog_extensions = false
## Parses distributions metric as specified in the datadog statsd format
## https://docs.datadoghq.com/developers/metrics/types/?tab=distribution#definition
datadog_distributions = false
## Keep or drop the container id as tag. Included as optional field
## in DogStatsD protocol v1.2 if source is running in Kubernetes
## https://docs.datadoghq.com/developers/dogstatsd/datagram_shell/?tab=metrics#dogstatsd-protocol-v12
datadog_keep_container_tag = false
## Statsd data translation templates, more info can be read here:
## https://github.com/influxdata/telegraf/blob/master/docs/TEMPLATE_PATTERN.md
# templates = [
# "cpu.* measurement*"
# ]
## Number of UDP messages allowed to queue up, once filled,
## the statsd server will start dropping packets
allowed_pending_messages = 10000
## Number of worker threads used to parse the incoming messages.
# number_workers_threads = 5
## Number of timing/histogram values to track per-measurement in the
## calculation of percentiles. Raising this limit increases the accuracy
## of percentiles but also increases the memory usage and cpu time.
percentile_limit = 1000
## Maximum socket buffer size in bytes, once the buffer fills up, metrics
## will start dropping. Defaults to the OS default.
# read_buffer_size = 65535
## Max duration (TTL) for each metric to stay cached/reported without being updated.
# max_ttl = "10h"
## Sanitize name method
## By default, telegraf will pass names directly as they are received.
## However, upstream statsd now does sanitization of names which can be
## enabled by using the "upstream" method option. This option will a) replace
## white space with '_', replace '/' with '-', and remove characters not
## matching 'a-zA-Z_\-0-9\.;='.
#sanitize_name_method = ""
## Replace dots (.) with underscore (_) and dashes (-) with
## double underscore (__) in metric names.
# convert_names = false
## Convert all numeric counters to float
## Enabling this would ensure that both counters and guages are both emitted
## as floats.
# float_counters = false
Graphite
# Configuration for Graphite server to send metrics to
[[outputs.graphite]]
## TCP endpoint for your graphite instance.
## If multiple endpoints are configured, the output will be load balanced.
## Only one of the endpoints will be written to with each iteration.
servers = ["localhost:2003"]
## Local address to bind when connecting to the server
## If empty or not set, the local address is automatically chosen.
# local_address = ""
## Prefix metrics name
prefix = ""
## Graphite output template
## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
template = "host.tags.measurement.field"
## Strict sanitization regex
## This is the default sanitization regex that is used on data passed to the
## graphite serializer. Users can add additional characters here if required.
## Be aware that the characters, '/' '@' '*' are always replaced with '_',
## '..' is replaced with '.', and '\' is removed even if added to the
## following regex.
# graphite_strict_sanitize_regex = '[^a-zA-Z0-9-:._=\p{L}]'
## Enable Graphite tags support
# graphite_tag_support = false
## Applied sanitization mode when graphite tag support is enabled.
## * strict - uses the regex specified above
## * compatible - allows for greater number of characters
# graphite_tag_sanitize_mode = "strict"
## Character for separating metric name and field for Graphite tags
# graphite_separator = "."
## Graphite templates patterns
## 1. Template for cpu
## 2. Template for disk*
## 3. Default template
# templates = [
# "cpu tags.measurement.host.field",
# "disk* measurement.field",
# "host.measurement.tags.field"
#]
## timeout in seconds for the write connection to graphite
# timeout = "2s"
## 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
输入和输出集成示例
StatsD
-
实时应用程序性能监控:利用 StatsD 输入插件实时监控应用程序性能指标。通过配置您的应用程序以将各种指标发送到 StatsD 服务器,团队可以利用此插件来动态分析性能瓶颈、跟踪用户活动并确保资源优化。历史指标和实时指标的结合可以实现主动故障排除,并提高问题解决流程的响应速度。
-
跟踪 Web 应用程序中的用户参与度指标:使用 StatsD 插件收集用户参与度统计信息,例如页面浏览量、点击事件和交互时间。通过将这些指标发送到 StatsD 服务器,企业可以深入了解用户行为,从而能够根据定量反馈做出数据驱动的决策,以改善用户体验和界面设计。这可以显着提高营销策略和产品开发工作的有效性。
-
基础设施健康监控:部署 StatsD 插件,通过跟踪资源利用率、服务器响应时间和网络性能等指标来监控服务器基础设施的健康状况。通过这种设置,DevOps 团队可以详细了解系统性能,有效预测问题,避免问题升级。这使得能够采取主动的基础设施管理方法,最大限度地减少停机时间并确保最佳的服务交付。
-
创建全面的服务仪表板:将 StatsD 与可视化工具集成,以创建全面的仪表板,反映整个架构中服务的状态和运行状况。例如,组合通过 StatsD 记录的来自多个服务的数据可以将原始指标转换为可操作的见解,从而展示系统性能随时间变化的趋势。这种能力使利益相关者能够保持监督,并根据可视化数据集推动决策,从而提高整体运营透明度。
Graphite
-
动态指标可视化:Graphite 插件可用于将来自各种来源的实时指标(例如应用程序性能数据或服务器运行状况指标)馈送到 Graphite 中。这种动态集成使团队能够创建交互式仪表板,可视化关键绩效指标,跟踪随时间变化的趋势,并做出数据驱动的决策以增强系统性能。
-
负载均衡指标收集:通过在插件中配置多个 TCP 端点,组织可以为指标传输实施负载均衡。此用例确保指标交付既具有弹性又高效,从而降低了高流量期间数据丢失的风险,并保持了向 Graphite 的可靠信息流。
-
自定义指标标记:借助对 Graphite 标签的支持,用户可以使用 Graphite 插件来增强指标的粒度。使用相关信息(例如应用程序环境或服务类型)标记指标可以进行更精细的查询和分析,使团队能够深入研究感兴趣的特定领域,从而获得更好的运营见解。
-
增强的数据清理:利用插件的严格清理选项,用户可以确保其指标名称符合 Graphite 的要求。这种主动措施消除了指标名称中无效字符可能引起的问题,从而实现了更清晰的数据管理和更准确的可视化。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。