首页 > 解决方案 > Elastic-APM TransactionIgnoreUrls

问题描述

为了降低 apm 日志记录的负载,我们希望排除我们的监控 URL。我试图在 de config 中使用 TransactionIgnoreUrls 来实现这一点,但由于某种原因,我无法让它工作。根据文档,我应该提供一个字符串列表。以下是我使用的配置(我的尝试之一)。我想做的是排除初学者的 ping 端点,但最终以包含/status/在 url 中的所有端点结束

"ElasticApm__TransactionSampleRate": "1.0",
"ElasticApm__Enabled": "true",
"ElasticApm__Environment": "Development",
"ElasticApm__SecretToken": "some token",
"ElasticApm__ServerUrls": "serverurl",
"ElasticApm__VerifyServerCert": "FALSE",
"ElasticApm__ServiceName": "MyApi"
"ElasticApm__TransactionIgnoreUrls": [
  "*pin*"
],

启动.cs

app.UseAllElasticApm(Configuration);

上面没有过滤掉我们的端点(也尝试过"ping", "/ping",和许多其他可能性) "status""/status"因为它在 apm 仪表板中仍然可见。

在此处输入图像描述

我可能做错了什么,但我不知道它可能是什么。

标签: c#asp.net-coreelastic-apm

解决方案


  1. 配置应该是一个逗号分隔的字符串。我只是查看了文档,确实有点令人困惑。所以它必须是"UrlToIgnore1, UrlToIgnore2"(代理将在内部解析它)而不是像["UrlToIgnore1", "UrlToIgnore2"]. 因此,在您的情况下,它应该是公正的"*pin*",如果您想附加另一个要忽略的值,只需在逗号 ( ,) 之后将其添加到字符串中。
  2. 你把你粘贴在这里的配置放在哪里?这种双下划线格式是您设置的环境变量,对吗?如果是这样,只需放入"*pin*"ElasticApm__TransactionIgnoreUrls如果您使用appsettings.json这里,它应该是这样的:
"ElasticApm": {
  "TransactionIgnoreUrls": "*pin*"
}

推荐阅读