java - 在 ApplicationInsights V3 无代码方法中抑制遥测类型

标签 java azure monitoring azure-application-insights

各位,

我在 Wildfly 应用程序服务器上使用 v3.2.4 版的 applicationinsights.jar,并且能够看到进入 Azure(Application Insights)门户的所有信息。

https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-in-process-agent

但是,我需要对许多应用程序实例执行此操作,并且我认为抑制某些类型的遥测类型(例如依赖项作为一个示例)可能是明智的,因为它会产生大量噪音和数据。

是否可以通过 applicationinsights.json 文件执行此操作?

对此的任何指导表示赞赏!

更新(2022 年 1 月 5 日):我使用无代码解决方案,所有配置和抑制都在 .json 文件中完成。

涉及通过 C#/java 的 v2 方法的解决方案超出了范围(尽管这是我过去使用过的)。

https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-telemetry-processors显示了一些想法,但对于某些类型的抑制并不明确,因为默认方法似乎将太多数据推送到 Azure。

最佳答案

您可以尝试使用采样和 sampling overrides (preview)达到预期的结果。尽管我不确定您是否可以轻松地仅匹配某些属性的依赖项调用。出于成本原因,采样覆盖是过滤遥测数据的推荐方法。

Example: Suppress collecting telemetry for a noisy dependency call

This will suppress collecting telemetry for all GET my-noisy-key redis calls.

{
  "connectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000",
  "preview": {
    "sampling": {
      "overrides": [
        {
          "attributes": [
            {
              "key": "db.system",
              "value": "redis",
              "matchType": "strict"
            },
            {
              "key": "db.statement",
              "value": "GET my-noisy-key",
              "matchType": "strict"
            }
          ],
          "percentage": 0
        }
      ]
    }
  }
}

您还可以禁用某些遥测源,但我承认这与您所要求的并不完全相同:

{
  "instrumentation": {
    "azureSdk": {
      "enabled": false
    },
    "cassandra": {
      "enabled": false
    },
    "jdbc": {
      "enabled": false
    },
    "jms": {
      "enabled": false
    },
    "kafka": {
      "enabled": false
    },
    "micrometer": {
      "enabled": false
    },
    "mongo": {
      "enabled": false
    },
    "rabbitmq": {
      "enabled": false
    },
    "redis": {
      "enabled": false
    },
    "springScheduling": {
      "enabled": false
    }
  }
}

关于java - 在 ApplicationInsights V3 无代码方法中抑制遥测类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70585628/

相关文章:

c# - 没有 MediaTypeFormatter 可用于从媒体类型为 'HttpRequestMessage' 的内容中读取类型为 'multipart/form-data' 的对象

kubernetes - 获取信息 Kubernetes 命名空间

java - 在 JSF2 中填充 selectonemenu 时无法实例化类

java - 我可以自动下载带链的 X.509 证书吗?

java - 从 Java 执行时 shell 命令执行失败

java - 当我有一个使用 @RunWith 的测试套件时,如何获得更多日志记录反馈?

sql-server - Azure VM 不会使用 vnet 规则和服务终结点连接到 Azure SQL DB

c# - 通过 Windows Azure 发布后无法加载文件或程序集 System.Runtime.Serialization

linux - Gnuplot - 如何仅使用公共(public)数据连接两个文件

filesystems - 像 Sysinternals 的 ProcMon 一样监控 IO