配置
编辑配置
编辑使用 AgentConfigBuilder
配置代理,将 AgentConfiguration
传递给 start
函数。
let config = AgentConfigBuilder() .withServerUrl(URL(string: "https://127.0.0.1:8200")) .withSecretToken("<Token>") .build() ElasticApmAgent.start(with:config)
配置选项
编辑可以使用以下函数配置 AgentConfigBuilder
withServerUrl
编辑- 类型: URL
-
默认值:
http://127.0.0.1:8200
withSecretToken
编辑- 类型: 字符串
- 默认值: nil
-
Env:
OTEL_EXPORTER_OTLP_HEADERS
设置连接到已认证的 APM 服务器的密钥令牌。如果使用 env-var,则必须按照 OpenTelemetry 协议导出器配置定义整个标头映射(例如:OTEL_EXPORTER_OTLP_HEADERS="Authorization=bearer <密钥令牌>"
)
此设置与 withApiKey
互斥
withApiKey
编辑- 类型: 字符串
- 默认值: nil
-
Env:
OTEL_EXPORTER_OTLP_HEADERS
设置连接到已认证的 APM 服务器的 API 令牌。如果使用 env-var,则必须按照 OpenTelemetry 协议导出器配置定义整个标头映射(例如:OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey <key>"
)
此设置与 withSecretToken
互斥
disableAgent() -> Self
编辑禁用 Elastic 代理。这对于在开发期间禁用代理而无需完全删除 Elastic 代理非常有用。日志将报告 "Elastic APM 代理已被禁用。"
addSpanFilter
编辑- 类型: @escaping (ReadableSpan) → Bool
- 默认值: nil
添加一个匿名函数,该函数将在跨度处理器中的每个跨度上执行,以决定是否应将该跨度发送到后端。
addMetricFilter
编辑- 类型: @escaping (Metric) → Bool
- 默认值: nil
添加一个匿名函数,该函数将在跨度处理器中的每个指标上执行,以决定是否应将该指标发送到后端。
addLogFilter
编辑- 类型: @escaping (ReadableLogRecord) → Bool
- 默认值: nil
添加一个匿名函数,该函数将在跨度处理器中的每个日志上执行,以决定是否应将该日志发送到后端。
插桩配置
编辑ElasticApmAgent.start
提供了一个额外的可选参数来配置插桩。在下面的示例中,插桩配置以默认值传递给 Agent.start
。这等效于调用没有传递插桩配置的 ElasticApmAgent.start
。
let config = ... let instrumentationConfig = InstrumentationConfigBuilder().build() ElasticApmAgent.start(with:config, instrumentationConfig)
插桩配置选项
编辑可以使用以下函数配置 InstrumentationConfigBuilder
。
withCrashReporting(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用代理的崩溃报告功能。
withURLSessionInstrumentation(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用网络跟踪插桩。
withViewControllerInstrumentation(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用视图控制器跟踪插桩。
withAppMetricInstrumentation(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用 MetricKit 插桩。
withSystemMetrics(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用系统指标插桩(CPU 和内存使用情况)。
withLifecycleEvents(_ enable: Bool) -> Self
编辑- 类型: 布尔值
-
默认值:
true
此选项可用于启用/禁用生命周期事件。
withPersistentStorageConfiguration(_ config: PersistencePerformancePreset) -> Self
编辑-
类型:
PersistencePerformancePreset
-
默认值:
.lowRuntimeImpact
此选项可用于配置跟踪、指标和日志的持久化存储的行为。
资源属性注入
编辑在 v0.5.0 中,代理提供了一种使用 OTEL_RESOURCE_ATTRIBUTES
env-var 设置资源属性的方法。此 env-var 也可通过应用程序 plist 工作。任何资源属性都可以使用此方法覆盖,因此应小心,因为某些属性对于 kibana UI 的功能至关重要。
deployment.environment
编辑部署环境设置为 default
。可以使用部署 plist 中设置的 OTEL_RESOURCE_ATTRIBUTES
覆盖此设置。使用字段键作为 OTEL_RESOURCE_ATTRIBUTES
,值作为 deployment.environment=staging
动态配置
编辑动态配置可通过 kibana UI 获得,代理远程读取动态配置,以在现场部署的所有活动代理上应用配置。有关动态配置的更多信息,请参见代理配置。
记录
编辑一个布尔值,指定代理是否应进行记录。记录时,代理会检测传入的 HTTP 请求、跟踪错误并收集和发送指标。不记录时,代理充当 noop,不收集数据,也不与 APM 服务器通信,但会轮询中央配置端点。由于这是一个可逆开关,因此在停用时不会终止代理线程,但它们在此状态下大多处于空闲状态,因此开销应可忽略不计。
您可以将此设置设置为在运行时动态禁用 Elastic APM
默认值 | 类型 | 动态 |
---|---|---|
|
布尔值 |
true |
会话采样率
编辑一个双精度值,指定在特定设备上应记录会话期间生成的所有数据的可能性。值的范围可以介于 0 和 1 之间。1 表示 100% 的可能性,0 表示 0% 的可能性。每次新会话开始时,此值将与 0 到 1 之间的随机数进行检查,并且如果该随机数低于设置的会话采样率,则将采样该会话中记录的所有数据。
这种以会话为中心的采样技术是为了保留相关的数据点,而不是按信号采样,这样可能会丢失有价值的上下文。
您可以在运行时动态设置此值。
默认值 | 类型 | 动态 |
---|---|---|
|
双精度 |
true |