停止应用程序洞察,包括操作名称中的路径参数

Iai*_*ain 8 azure-application-insights

我们的ASP.NET MVC应用程序包含一些URI路径参数,例如:

https://example.com/api/query/14hes1017ceimgS2ESsIec

在Application Insights中,上面的URI成为Operation Name

GET /api/query/14hes1017ceimgS2ESsIec
Run Code Online (Sandbox Code Playgroud)

我们不希望这样的数百万个独特的操作; 它只是一种为所有人提供服务的代码方法(见下文).我们希望在像Operation这样的操作名称下滚动它们

GET /api/query/{path}
Run Code Online (Sandbox Code Playgroud)

这是代码方法 - 我认为App Insights可以检测到URI包含查询参数......但它没有.

    [Route("api/query/{hash}")]
    public HttpResponseMessage Get(string hash)
    {
        ...
Run Code Online (Sandbox Code Playgroud)

小智 5

Application Insights没有检测到您的Operation Name的后缀是参数的原因是因为SDK没有查看您的代码,并且出于所有实际目的,这是一个有效的URI.
获得您想要的两个选项:

  1. 更改您的API以传递查询字符串中的参数(从操作名称中删除)
  2. 实现自己的ITelemetryProcessor(详细解释可以在这里找到),并自己从操作名称中删除后缀哈希