配置
编辑配置编辑
使用 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
-
环境变量:
OTEL_EXPORTER_OTLP_HEADERS
设置连接到已验证 APM 服务器的密钥令牌。如果使用环境变量,则必须根据 OpenTelemetry 协议导出器配置 定义整个标头映射(例如:OTEL_EXPORTER_OTLP_HEADERS="Authorization=bearer <secret token>"
)
此设置与 withApiKey
互斥
withApiKey
编辑
- 类型: 字符串
- 默认值: nil
-
环境变量:
OTEL_EXPORTER_OTLP_HEADERS
设置连接到已验证 APM 服务器的 API 令牌。如果使用环境变量,则必须根据 OpenTelemetry 协议导出器配置 定义整个标头映射(例如:OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey <key>"
)
此设置与 withSecretToken
互斥
disableAgent() -> Self
编辑
禁用 Elastic 代理。这在开发过程中禁用代理而不必完全删除 Elastic 代理时很有用。日志将报告 "Elastic APM Agent has been disabled."
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
环境变量设置 资源属性 的方法。此环境变量也通过应用程序 plist 工作。可以使用此方法覆盖任何资源属性,因此应谨慎操作,因为某些属性对于 kibana UI 的正常运行至关重要。
deployment.environment
编辑
部署环境设置为 default
。这可以使用在部署的 plist 中设置的 OTEL_RESOURCE_ATTRIBUTES
覆盖。使用字段键作为 OTEL_RESOURCE_ATTRIBUTES
,并将值设置为 deployment.environment=staging
动态配置 编辑
动态配置可通过 kibana UI 获得,并由代理远程读取,以对现场部署的所有活动代理应用配置。有关动态配置的更多信息,请参阅 代理配置。
录制编辑
一个布尔值,指定代理是否应录制。录制时,代理会对传入的 HTTP 请求进行代码插桩,跟踪错误并收集和发送指标。不录制时,代理将作为无操作工作,不收集数据也不与 APM 服务器通信,除了轮询中央配置端点。由于这是一个可逆的开关,因此代理线程在停用时不会被杀死,但它们在这种状态下将大部分处于空闲状态,因此开销应该可以忽略不计。
您可以设置此设置以在运行时动态禁用 Elastic APM
默认值 | 类型 | 动态 |
---|---|---|
|
布尔值 |
true |
会话采样率编辑
一个双精度值,指定在特定设备上应录制特定会话期间生成的所有数据的可能性。值可能介于 0 和 1 之间。1 表示 100% 可能性,0 表示 0% 可能性。每次新会话开始时,都会将此值与 0 到 1 之间的随机数进行比较,如果随机数低于设置的会话采样率,则会对该会话中记录的所有数据进行采样。
这种以会话为中心的采样技术是为了保留相关数据点,而不是按信号采样,因为在按信号采样时可能会丢失有价值的上下文。
您可以在运行时动态设置此值。
默认值 | 类型 | 动态 |
---|---|---|
|
双精度值 |
true |