SwiftBox Metrics StatsD

SwiftBox Metrics StatsD 是一个 StatsD 的 TCP/UDP 客户端和处理器。该处理器与官方的 swift-metrics API 兼容。

即将推出:使用官方 swift-log 替代 SwiftBoxLogging 的实现。

Build Status Swift 4.1 Linux MacOS

SwiftBoxMetricsStatsD

官方 swift-metrics API 的 SatsD 处理器。

支持的指标类型

用法

1. 导入

import Metrics
import SwiftBoxMetricsStatsD

2. 引导

指标必须使用符合 MetricsFactory 协议的工厂引导。 默认的 StatsDMetricsFactory 接受 2 个参数

// 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
        )
    }
)

3. 用法

详细的用法说明可以在官方 swift-metrics GitHub 仓库中找到。

处理器

LoggerMetricsHandler

用于将收集的指标打印到控制台的默认指标处理器。

MetricsSystem.bootstrap(
    try StatsDMetricsFactory(
            baseMetricPath: "com.allegro"
    ) { path in
        LoggerMetricsHandler(path: path)
    }
)

StatsDMetricsHandler

StatsD 指标处理器,负责将收集的日志发送到 StatsD 服务器。 支持 TCP 和 UDP 协议。 指标在单独的线程中发送,因此操作对于应用程序是非阻塞的。

StatsDMetricsHandler(
    path: "com.allegro.counter",
    client: UDPStatsDClient(
        config: UDPConnectionConfig(
            host: AppConfig.global.statsd.host!,
            port: AppConfig.global.statsd.port!
        )
    )
)

自定义处理器

要创建自定义处理器,请遵循 MetricsHandlerBaseMetricsHandler 协议。