SwiftBox Metrics StatsD 是一个 StatsD 的 TCP/UDP 客户端和处理器。该处理器与官方的 swift-metrics API 兼容。
即将推出:使用官方 swift-log 替代 SwiftBoxLogging 的实现。
官方 swift-metrics API 的 SatsD 处理器。
支持的指标类型
import Metrics
import SwiftBoxMetricsStatsD
指标必须使用符合 MetricsFactory
协议的工厂引导。 默认的 StatsDMetricsFactory
接受 2 个参数
baseMetricsPath
:添加到每个记录的指标路径之前的路径handlerFactory
:返回 MetricsHandler
实现的工厂函数。// StatsD Handler initialization
let statsdClient = UDPStatsDClient(
config: UDPConnectionConfig(
host: "127.0.0.1",
port: 1234
)
)
MetricsSystem.bootstrap(
try StatsDMetricsFactory(
baseMetricPath: "com.allegro"
) { path in
StatsDMetricsHandler(
path: path,
client: statsdClient
)
}
)
详细的用法说明可以在官方 swift-metrics GitHub 仓库中找到。
用于将收集的指标打印到控制台的默认指标处理器。
MetricsSystem.bootstrap(
try StatsDMetricsFactory(
baseMetricPath: "com.allegro"
) { path in
LoggerMetricsHandler(path: path)
}
)
StatsD 指标处理器,负责将收集的日志发送到 StatsD 服务器。 支持 TCP 和 UDP 协议。 指标在单独的线程中发送,因此操作对于应用程序是非阻塞的。
StatsDMetricsHandler(
path: "com.allegro.counter",
client: UDPStatsDClient(
config: UDPConnectionConfig(
host: AppConfig.global.statsd.host!,
port: AppConfig.global.statsd.port!
)
)
)
path
是指标将被记录的路径。client
是一个 TCPStatsDClient
或 UDPStatsDClient
实例。要创建自定义处理器,请遵循 MetricsHandler
或 BaseMetricsHandler
协议。