核心配置选项编辑

Recording ( [1.7.0] 添加于 1.7.0 版本。 )编辑

dynamic config

一个布尔值,指定代理是否应该进行记录。当记录时,代理会捕获 HTTP 请求、跟踪错误,并收集和发送指标。当不记录时,代理将作为无操作运行,除了轮询中央配置端点外,它不会收集数据或与 APM 服务器通信。这是一个可逆开关,因此代理线程在停用时不会被终止,但它们在此状态下将大部分处于空闲状态,因此开销应该可以忽略不计。

使用此设置可以在运行时动态禁用 Elastic APM。

Recording 设置为 false 会影响 公共 API 的行为。当代理未激活时,它不会跟踪事务、跨度和任何相关属性。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_RECORDING

ElasticApm:Recording

默认值 类型

true

布尔值

Enabled ( [1.7.0] 添加于 1.7.0 版本。 )编辑

将其设置为 false 将完全禁用代理,包括检测和远程配置轮询。如果要动态更改代理的状态,请改用 recording

Enabled 设置为 false 会影响 公共 API 的行为。当代理未激活时,它不会跟踪事务、跨度和任何相关属性。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_ENABLED

ElasticApm:Enabled

默认值 类型

true

布尔值

ServiceName编辑

这用于将您的服务的所有错误和事务保持在一起,并且是 Elastic APM 用户界面中的主要过滤器。

服务名称必须符合以下正则表达式: ^[a-zA-Z0-9 _-]+$。换句话说,您的服务名称只能包含来自 ASCII 字母表、数字、破折号、下划线和空格的字符。服务名称中与正则表达式不匹配的字符将替换为 _ 符号。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_SERVICE_NAME

ElasticApm:ServiceName

默认值 类型

入口程序集的名称

字符串

ServiceNodeName ( [1.3] 添加于 1.3 版本。 )编辑

这是一个可选名称,用于区分服务中的节点。如果未设置,则数据聚合将基于容器 ID(如果有效)或报告的主主机名(自动发现)。

此功能需要 APM 服务器版本 >= 7.5

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_SERVICE_NODE_NAME

ElasticApm:ServiceNodeName

默认值 类型

<无>

字符串

ServiceVersion编辑

当前部署的服务版本的版本字符串。如果您没有对部署进行版本控制,则此字段的建议值是已部署修订的提交标识符,例如 git rev-parse HEAD 的输出。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_SERVICE_VERSION

ElasticApm:ServiceVersion

默认值 类型

入口程序集的信息版本

字符串

HostName ( [1.7] 添加于 1.7 版本。 )编辑

这允许手动指定报告的主机名。如果未设置,则将查找主机名。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_HOSTNAME

ElasticApm:HostName

默认值 类型

<无>

字符串

Environment ( [1.1] 添加于 1.1 版本。 )编辑

部署此服务的环境的名称,例如“生产”或“测试”。

环境允许您在 APM 应用程序中轻松地在全局级别过滤数据。在跨代理命名环境时保持一致性非常重要。有关更多信息,请参阅 Kibana UI 中的 环境选择器

此功能在 Kibana 版本 >= 7.2 的 APM 应用程序中完全受支持。在 7.2 之前的版本中,您必须使用查询栏来过滤特定环境。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_ENVIRONMENT

ElasticApm:Environment

默认值 类型

请参阅下面的注释

字符串

在 ASP.NET Core 应用程序上,代理使用 IHostingEnvironment 中的 EnvironmentName 作为默认环境名称。

TransactionSampleRate编辑

dynamic config

默认情况下,代理会对每个事务(例如,对服务的请求)进行采样。要减少开销和存储需求,请将采样率设置为 0.0 到 1.0 之间的值。代理仍将记录未采样事务的总时间和结果,但不会记录上下文信息、标签或跨度。

解析此选项的值时,代理不会考虑当前区域性。它还期望使用句点 (.) 来分隔浮点数的整数和小数部分。

此设置可以在代理启动后更改。

环境变量名称 IConfiguration 或 Web.config 键

ELASTIC_APM_TRANSACTION_SAMPLE_RATE

ElasticApm:TransactionSampleRate

默认值 类型

1.0

双精度浮点数

TransactionMaxSpans(性能) ( [1.1.1] 添加于 1.1.1 版本。 )编辑

dynamic config

这限制了每个事务记录的跨度数量。当一个事务创建大量的跨度时,例如数千个 SQL 查询,这将非常有用。设置上限有助于防止在这些边缘情况下代理和 APM 服务器过载。

0 值表示永远不会收集跨度。设置 -1 表示永远不会丢弃跨度。如果将值设置为低于 -1,则代理将恢复为默认值。

此设置可以在代理启动后更改。

环境变量名称 IConfiguration 键

ELASTIC_APM_TRANSACTION_MAX_SPANS

ElasticApm:TransactionMaxSpans

默认值 类型

500

整数

CentralConfig ( [1.1] 添加于 1.1 版本。 )编辑

如果设置为 true,则代理会定期向 APM 服务器发出请求,以获取最新的 APM 代理配置

环境变量名称 IConfiguration 键

ELASTIC_APM_CENTRAL_CONFIG

ElasticApm:CentralConfig

默认值 类型

true

布尔值

SanitizeFieldNames ( [1.2] 添加于 1.2 版本。 )编辑

dynamic config

有时,需要对发送到 Elastic APM 的敏感数据进行清理(即编辑)。此配置接受应清理的字段名称的逗号分隔的通配符模式列表。这些模式适用于请求和响应的 HTTP 标头、cookie 和 application/x-www-form-urlencoded 数据。

此设置仅适用于代理自动捕获的值。如果您使用公共 API 手动捕获请求正文,则此配置不适用,并且代理不会清理正文。

通配符 * 匹配零个或多个字符,默认情况下匹配不区分大小写。在元素前面加上 (?-i) 使匹配区分大小写。示例:/foo/*/bar/*/baz**foo*

请仔细查看 Elastic APM 捕获的数据,以确保它不包含敏感信息。如果在 Elasticsearch 索引中找到敏感数据,请在此列表中添加一个附加条目。在此处设置值将覆盖默认值,因此请确保也包含默认条目。

不应在查询字符串中发送敏感信息。查询字符串中的数据被视为非敏感数据。有关更多信息,请参阅 owasp.org

Cookie 标头清理

对于传入的 HTTP 请求事务,Cookie 标头会自动编辑。代理会解析来自 Cookie 标头的每个名称-值对,并将其发送到 APM 服务器。在记录名称-值对之前,将根据 SanitizeFieldNames 配置对其进行清理。可以通过将 cookie 的名称添加到逗号分隔列表中来编辑其值中包含敏感数据的 cookie。

环境变量名称 IConfiguration 键

ELASTIC_APM_SANITIZE_FIELD_NAMES

ElasticApm:SanitizeFieldNames

默认值 类型

password, passwd, pwd, secret, *key, *token*, *session*, *credit*, *card*, *auth*, set-cookie, *principal*

逗号分隔的字符串

GlobalLabels ( [1.2] 1.2 版本新增。 )编辑

标签将以 key=value[,key=value[,...]] 格式添加到所有事件中。应用程序通过代理的公共 API 设置的任何标签都将覆盖具有相同键的全局标签。

环境变量名称 IConfiguration 键

ELASTIC_APM_GLOBAL_LABELS

ElasticApm:GlobalLabels

默认值 类型

<空映射>

字符串到字符串的映射

此选项需要 APM Server 7.2 或更高版本。它对旧版本无效。

SpanCompressionEnabled ( [1.14] 1.14 版本新增。 )编辑

dynamic config

将此选项设置为 true 将启用 span 压缩功能。span 压缩可以减少收集、处理和存储开销,并消除 UI 中的混乱。缺点是不会收集某些信息,例如所有压缩 span 的数据库语句。

环境变量名称 IConfiguration 键

ELASTIC_APM_SPAN_COMPRESSION_ENABLED

ElasticApm:SpanCompressionEnabled

默认值 类型

true

布尔值

SpanCompressionExactMatchMaxDuration ( [1.14] 1.14 版本新增。 )编辑

dynamic config

完全匹配且低于此阈值的连续 span 将被压缩为一个组合 span。此选项不适用于组合 span。这可以减少收集、处理和存储开销,并消除 UI 中的混乱。缺点是不会收集所有压缩 span 的数据库语句。

环境变量名称 IConfiguration 键

ELASTIC_APM_SPAN_COMPRESSION_EXACT_MATCH_MAX_DURATION

ElasticApm:SpanCompressionExactMatchMaxDuration

默认值 类型

50 毫秒

TimeDuration

SpanCompressionSameKindMaxDuration ( [1.14] 1.14 版本新增。 )编辑

dynamic config

到同一目标且低于此阈值的连续 span 将被压缩为一个组合 span。此选项不适用于组合 span。这可以减少收集、处理和存储开销,并消除 UI 中的混乱。缺点是不会收集所有压缩 span 的数据库语句。

环境变量名称 IConfiguration 键

ELASTIC_APM_SPAN_COMPRESSION_SAME_KIND_MAX_DURATION

ElasticApm:SpanCompressionSameKindMaxDuration

默认值 类型

0 毫秒

TimeDuration

ExitSpanMinDuration ( [1.14] 1.14 版本新增。 )编辑

dynamic config

设置退出 span 的最短持续时间。将尝试丢弃持续时间小于此阈值的退出 span。如果退出 span 等于或大于阈值,则应保留。在某些情况下,无法丢弃退出 span。例如,将跟踪上下文传播到下游服务的 span(例如传出 HTTP 请求)无法丢弃。但是,可以使用此阈值丢弃不传播上下文的外部调用,例如对数据库的调用。此外,导致错误的 span 也无法丢弃。

环境变量名称 IConfiguration 键

ELASTIC_APM_EXIT_SPAN_MIN_DURATION

ElasticApm:ExitSpanMinDuration

默认值 类型

0 毫秒

TimeDuration

OpentelemetryBridgeEnabled ( [1.13] 1.13 版本新增。 )编辑

将此选项设置为 false 将禁用 OpenTelemetry 桥接。这将禁用使用供应商中立的 OpenTelemetry Tracing API(.NET 中的 Activity API)来手动检测代码,并让 Elastic .NET APM 代理处理这些 API 调用。

环境变量名称 IConfiguration 键

ELASTIC_APM_OPENTELEMETRY_BRIDGE_ENABLED

ElasticApm:OpentelemetryBridgeEnabled

默认值 类型

true

布尔值