StatsD 和 SQLite 集成
强大的性能和简单的集成,由 InfluxData 构建的开源数据连接器 Telegraf 提供支持。
50 亿+
Telegraf 下载量
#1
时序数据库
来源:DB Engines
10 亿+
InfluxDB 下载量
2,800+
贡献者
目录
输入和输出集成概述
StatsD 输入插件通过在后台运行侦听器服务来捕获来自 StatsD 服务器的指标,从而实现全面的性能监控和指标聚合。
Telegraf 的 SQL 输出插件通过为每种指标类型动态创建表,将指标存储在 SQL 数据库中。当配置为 SQLite 时,它使用基于文件的 DSN 和为轻量级嵌入式数据库使用量身定制的最小 SQL 模式。
集成详情
StatsD
StatsD 输入插件旨在通过在 Telegraf 激活时运行后台 StatsD 侦听器服务,从 StatsD 服务器收集指标。此插件利用原始 Etsy 实现建立的 StatsD 消息格式,该格式允许各种类型的指标,包括仪表、计数器、集合、计时、直方图和分布。StatsD 插件的功能扩展到解析标签,并使用适应 InfluxDB 标记系统的功能扩展标准协议。它可以处理通过不同协议(UDP 或 TCP)发送的消息,有效地管理多个指标,并提供用于优化指标处理的高级配置,例如百分位数计算和数据转换模板。这种灵活性使户能够全面跟踪应用程序性能,使其成为强大监控设置的必备工具。
SQLite
SQL 输出插件使用动态模式将 Telegraf 指标写入 SQL 数据库,其中每种指标类型对应于一个表。对于 SQLite,该插件使用 modernc.org/sqlite 驱动程序,并且需要文件 URI 格式的 DSN(例如,“file:/path/to/telegraf.db?cache=shared”)。此配置利用标准 ANSI SQL 进行表创建和数据插入,确保与 SQLite 的功能兼容。
配置
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
SQLite
[[outputs.sql]]
## Database driver
## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres),
## sqlite (SQLite3), snowflake (snowflake.com), clickhouse (ClickHouse)
driver = "sqlite"
## Data source name
## For SQLite, the DSN is a filename or URL with the scheme "file:".
## Example: "file:/path/to/telegraf.db?cache=shared"
data_source_name = "file:/path/to/telegraf.db?cache=shared"
## 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} - table name as a quoted identifier
table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1"
## Initialization SQL (optional)
init_sql = ""
## 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
## 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 SQL types used when writing to SQLite.
#[outputs.sql.convert]
# integer = "INT"
# real = "DOUBLE"
# text = "TEXT"
# timestamp = "TIMESTAMP"
# defaultvalue = "TEXT"
# unsigned = "UNSIGNED"
# bool = "BOOL"
输入和输出集成示例
StatsD
-
实时应用程序性能监控:利用 StatsD 输入插件来实时监控应用程序性能指标。通过配置您的应用程序将各种指标发送到 StatsD 服务器,团队可以利用此插件来分析性能瓶颈、跟踪用户活动并动态确保资源优化。历史指标和实时指标的结合可以实现主动故障排除,并提高问题解决过程的响应速度。
-
跟踪 Web 应用程序中的用户参与度指标:使用 StatsD 插件收集用户参与度统计信息,例如页面浏览量、点击事件和互动时间。通过将这些指标发送到 StatsD 服务器,企业可以获得关于用户行为的宝贵见解,从而能够根据量化反馈做出数据驱动的决策,以改善用户体验和界面设计。这可以显著提高营销策略和产品开发工作的有效性。
-
基础设施健康监控:部署 StatsD 插件,通过跟踪资源利用率、服务器响应时间和网络性能等指标来监控服务器基础设施的健康状况。通过此设置,DevOps 团队可以详细了解系统性能,有效预测问题在升级之前。这使得能够采取主动的基础设施管理方法,最大限度地减少停机时间并确保最佳服务交付。
-
创建全面的服务仪表板:将 StatsD 与可视化工具集成,以创建反映整个架构中服务状态和健康状况的全面仪表板。例如,结合通过 StatsD 记录的来自多个服务的数据可以将原始指标转换为可操作的见解,从而展示系统性能随时间变化的趋势。这种能力使利益相关者能够保持监督,并根据可视化数据集驱动决策,从而提高整体运营透明度。
SQLite
- 本地监控存储:配置插件以将指标写入本地 SQLite 数据库文件。这对于不需要设置全规模数据库服务器的轻量级部署非常理想。
- 嵌入式应用程序:将 SQLite 用作嵌入在边缘设备中的应用程序的后端,受益于其基于文件的架构和最低资源需求。
- 快速设置进行测试:利用 SQLite 的易用性快速为 Telegraf 指标收集设置测试环境,而无需外部数据库服务。
- 自定义模式管理:如果您需要特定的列类型或索引,请调整表创建模板以预定义您的模式,从而确保与您的应用程序需求兼容。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。