将该包添加到您的项目后,您必须初始化该库。这通常在 configure.swift
文件中完成。
import TelemetryDeck
app.telemetryDeck.initialise(appID: "<YOUR-APP-ID>")
有两种发送信号的方法。一种方法是从“系统”发送,它包含一个静态的用户标识符。
try await app.telemetryDeck.send("applicationStarted")
第二种选择是从请求发送,这将把用户标识符设置为请求 IP 地址的哈希版本。
try await request.telemetryDeck.send("homePage")
// for example:
app.get("home") { req async throws -> String in
try await req.telemetryDeck.send("homePage")
return "your page content"
}
您可以通过将 additionalPayload
添加到发送函数中,来将额外的有效负载数据附加到每个信号。
try await app.telemetryDeck.send("applicationStarted", additionalPayload: [
"host": "gcp"
])
您还可以使用默认属性字典配置 TelemetryDeck for Vapor,这些属性会随每个信号一起发送。
app.telemetryDeck.defaultParameters["key"] = "value"
对于每个信号,我们都会发送一个会话标识符,它是在初始化时生成的唯一 UUID。 它的目的是对于服务器的每个运行实例都是不同的,每次您重新启动服务器时都会更改。
如果您在非发布环境中启动 Vapor,信号将被标记为处于测试模式。 在 Telemetry Viewer 应用程序中,激活测试模式以查看这些信号。
该库目前不支持信号批处理。 这意味着当您调用这些函数时,信号会被发送到 TelemetryDeck。 在未来的版本中,我们可能会添加在内存中批量处理信号并在固定时间间隔发布信号的功能。