我有一个在 OpenShift 中运行的 EAP7 应用程序,其中带有附加了应用程序洞察 (Azure) 的 javaagent。我已按照指南过滤遥测并使用指南配置代理:https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-config和https:/ /learn.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-sampling-overrides
我的 applicationinsights.json 文件如下所示:
{
"sampling": {
"percentage": 100,
"overrides": [
{
"telemetryType": "request",
"attributes": [
{
"key": "http.url",
"value": "https?://[^/]+/health.*",
"matchType": "regexp"
}
],
"percentage": 0
},
{
"telemetryType": "request",
"attributes": [
{
"key": "http.url",
"value": "https?://[^/]+/metrics.*",
"matchType": "regexp"
}
],
"percentage": 0
},
{
"telemetryType": "request",
"attributes": [
{
"key": "http.request.method",
"value": "HEAD",
"matchType": "strict"
}
],
"percentage": 0
},
{
"telemetryType": "trace",
"percentage": 0
},
]
},
"instrumentation": {
"jdbc": {
"masking": {
"enabled": false
}
}
}
}
适用于指标和健康端点。 但是我面临着具有一定依赖性的问题:
我尝试过许多过滤器,例如:
{
"notWorkingFilters": [
{
"telemetryType": "dependency",
"attributes": [
{
"key": "message",
"value": "GET \/",
"matchType": "strict"
}
],
"percentage": 0
},
{
"telemetryType": "dependency",
"attributes": [
{
"key": "message",
"value": ".*localhost:5778.*",
"matchType": "regexp"
}
],
"percentage": 0
},
{
"telemetryType": "dependency",
"attributes": [
{
"key": "name",
"value": "GET \/",
"matchType": "strict"
}
],
"percentage": 0
},
{
"telemetryType": "dependency",
"attributes": [
{
"key": "name",
"value": ".*localhost:5778.*",
"matchType": "regexp"
}
],
"percentage": 0
},
{
"telemetryType": "dependency",
"attributes": [
{
"key": "http.url",
"value": "http://localhost:5778.*",
"matchType": "regexp"
}
],
"percentage": 0
},
{
"telemetryType": "dependency",
"attributes": [
{
"key": "http.url",
"value": ".*5778.*",
"matchType": "regexp"
}
],
"percentage": 0
}
]
}
这只是出于格式原因,我添加了“notWorkingFilters”:-)
他们都没有过滤掉这种依赖性。知道我缺少什么以及我可以做什么来删除它吗?
我还尝试将它们添加为 telemetryType“request”并在 HTTP 级别上指定它,但没有运气。
当您想要通过应用程序洞察过滤依赖项遥测时,您所遵循的方法和依赖项会准确给出。检查以下方法尝试解决问题。
根据MSDoc,
当调用外部服务时,您需要知道该服务器的身份,以便您可以适当地设置
字段。dependency.target
如上所述,尝试在遥测依赖项下提供
target
键类型,如下所示。
applicationinsights.json
过滤器
target
{
"telemetryType": "dependency",
"attributes": [
{
"key": "target",
"value": ".*localhost:5778.*",
"matchType": "regexp"
}
],
"percentage": 0
}
此外,这里的依赖关系可以记录为
HTTP
、SQL
或其他类型,并且它可能会根据其进行的外部调用而有所不同。如果依赖关系与 HTTP
相关,请尝试通过 type
属性过滤它。这些都是您可以尝试解决冲突的几种方法,因为这些见解没有发现确切的问题Json
。
注意:还要检查缓存问题是否被代理正确加载。