该库提供基于 Swift 的工具,用于将 InfluxDB 集成到您的应用程序中,以实现指标、日志记录、分析和追踪目的。
import InfluxDBMetrics
MetricsSystem.bootstrap(
InfluxDBMetricsFactory(
url: "https://:8086",
token: "your-token",
org: "your-org-name",
bucket: "your-bucket-name",
precision: .ms, // Optional
batchSize: 5000, // Optional
throttleInterval: 5, // Optional
dimensionsLabelsAsTags: .all // Optional
)
)
import InfluxDBLogs
LoggingSystem.bootstrap { name in
InfluxDBLogHandler(
name: name,
url: "https://:8086",
token: "your-token",
org: "your-org-name",
bucket: "your-bucket-name",
precision: .ms, // Optional
batchSize: 5000, // Optional
throttleInterval: 5, // Optional
metadataLabelsAsTags: .loggingDefault.union([.InfluxDBLogLabels.file]), // Optional
logLevel: .info, // Optional
)
}
import InfluxDBAnalytics
AnalyticsSystem.bootstrap(
InfluxDBAnalyticsHandler(
url: "https://:8086",
token: "your-token",
org: "your-org-name",
bucket: "your-bucket-name",
precision: .ms, // Optional
batchSize: 5000, // Optional
throttleInterval: 5, // Optional
parametersLabelsAsTags: .analyticsDefault.union([.InfluxDBAnalyticsLabels.file]), // Optional
)
)
import InfluxDBTracing
InstrumentationSystem.bootstrap(
InfluxDBTracer(
url: "https://:8086",
token: "your-token",
org: "your-org-name",
bucket: "your-bucket-name",
precision: .ms, // Optional
batchSize: 5000, // Optional
throttleInterval: 5, // Optional
)
)
// Metrics
Counter(label: "page_views", dimensions: ["type": "homepage"]).increment()
// Analytics
Analytics().send("page_view", parameters: ["type": "homepage"])
// Logs
Logger(label: "app").error("Something went wrong!")
// Traces
withSpan("operation") { span in
// Perform operation
}
创建一个 Package.swift
文件。
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "SomeProject",
dependencies: [
.package(url: "https://github.com/dankinsoid/swift-influxdb-telemetry.git", from: "1.10.0")
],
targets: [
.target(
name: "SomeProject",
dependencies: [
.product(name: "InfluxDBLogs", package: "swift-influxdb-telemetry"),
.product(name: "InfluxDBAnalytics", package: "swift-influxdb-telemetry"),
.product(name: "InfluxDBMetrics", package: "swift-influxdb-telemetry"),
.product(name: "InfluxDBTracing", package: "swift-influxdb-telemetry")
]
)
]
)
$ swift build
dankinsoid, voidilov@gmail.com
swift-influxdb-telemetry 根据 MIT 许可证提供。有关更多信息,请参见 LICENSE 文件。