設定選項:適用於 Java 的 Azure 監視器 Application Insights
本文說明如何設定適用於 Java 的 Azure 監視器 Application Insights。
連接字串和角色名稱
連接字串和角色名稱是開始使用所需的最常見設定:
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
}
}
需要連接字串。 每當您將不同應用程式的資料傳送到相同的 Application Insights 資源時,角色名稱就很重要。
下列各章節有更多詳細資訊和設定選項。
JSON 組態設定
預設的組態
根據預設,Application Insights Java 3 預期組態檔會命名為 applicationinsights.json,並位於與 applicationinsights-agent-3.6.2.jar 相同的目錄中。
替代設定
自訂組態檔
您可以使用 指定自訂組態檔
- APPLICATIONINSIGHTS_CONFIGURATION_FILE環境變數,或
- applicationinsights.configuration.file system 屬性
如果您提供相對路徑,它會相對於applicationinsights-agent-3.6.0.jar所在的目錄解析。
JSON 設定
您可以使用下列項目來設定整個 JSON 組態,而不是使用組態檔:
- APPLICATIONINSIGHTS_CONFIGURATION_CONTENT環境變數,或
- applicationinsights.configuration.content 系統屬性
Connection string
需要連接字串。 您可以在 Application Insights 資源中找到連接字串。
{
"connectionString": "..."
}
您也可以使用環境變數 APPLICATIONINSIGHTS_CONNECTION_STRING
來設定連接字串。 然後,它的優先順序會高於 JSON 設定中指定的連接字串。
或者,您可以使用 JAVA 系統屬性 applicationinsights.connection.string
來設定連接字串。 它的優先順序也會高於 JSON 設定中指定的連接字串。
您也可以指定要從中載入連接字串的檔案來設定連接字串。
如果您指定相對路徑,它會相對於 applicationinsights-agent-3.6.2.jar
所在的目錄進行解析。
{
"connectionString": "${file:connection-string-file.txt}"
}
此檔案應該只包含連接字串而已。
未設定連接字串將會停用 Java 代理程式。
如果您在相同的 Java 虛擬機器 (JVM) 中部署了多個應用程式,並想要將遙測傳送至不同的連接字串,請參閱連接字串覆寫 (預覽)。
雲端角色名稱
雲端角色名稱是用來標記應用程式對應上的元件。
如果您想要設定雲端角色名稱:
{
"role": {
"name": "my cloud role name"
}
}
如果未設定雲端角色名稱,則會使用 Application Insights 資源的名稱來標記應用程式對應上的元件。
您也可以使用環境變數 APPLICATIONINSIGHTS_ROLE_NAME
來設定雲端角色名稱。 然後,它的優先順序會高於 JSON 設定中指定的雲端角色名稱。
或者,您可以使用 JAVA 系統屬性 applicationinsights.role.name
來設定雲端角色名稱。 它的優先順序也會高於 JSON 設定中指定的雲端角色名稱。
如果您在相同的 JVM 中部署了多個應用程式,並且要使其將遙測傳送至不同的雲端角色名稱,請參閱雲端角色名稱覆寫 (預覽)。
雲端角色執行個體
雲端角色執行個體預設為電腦名稱。
如果您想要將雲端角色執行個體設定為電腦名稱以外的項目:
{
"role": {
"name": "my cloud role name",
"instance": "my cloud role instance"
}
}
您也可以使用環境變數 APPLICATIONINSIGHTS_ROLE_INSTANCE
來設定雲端角色執行個體。 然後,它的優先順序會高於 JSON 設定中指定的雲端角色執行個體。
或者,您可以使用 JAVA 系統屬性 applicationinsights.role.instance
來設定雲端角色執行個體。
它的優先順序也會高於 JSON 設定中指定的雲端角色執行個體。
取樣
注意
取樣可能是降低 Application Insights 成本的絕佳方式。 請務必為使用案例適當地設定取樣設定。
取樣是以要求為基礎,這表示若擷取要求 (取樣),則也會擷取其相依性、記錄與例外狀況。
取樣是以追蹤識別碼為基礎,以協助確保不同服務之間的一致取樣決策。
取樣僅適用於要求內的記錄。 預設一律會收集不在要求內的記錄 (例如啟動記錄)。 如果您要取樣這些記錄,您可以使用 取樣覆寫。
速率限制取樣
自 3.4.0 版本起,即可使用速率限制取樣,且目前為預設值。
若未設定取樣,則現在的預設為速率限制取樣,設定為每秒最多擷取 (大約) 五個要求,以及這些要求的所有相依性和記錄。
此設定會取代先前的預設值 (擷取所有要求)。 若您仍想要擷取所有要求,請使用固定百分比取樣,並將取樣百分比設定為 100。
注意
速率限制取樣為近似值,因為內部必須隨著時間調整「固定」取樣百分比,才能在每個遙測記錄上發出精確的項目計數。 速率限制取樣在內部經過微調後,可快速 (0.1 秒) 適應新的應用程式負載。 因此,您應該不會看到它超過設定的速率太多或時間太久。
此範例會說明如何設定取樣才能每秒最多擷取 (大約) 一個要求:
{
"sampling": {
"requestsPerSecond": 1.0
}
}
requestsPerSecond
可以是小數點,因此若有需要,您可以將其設定為每秒擷取少於一個請求。 例如,0.5
值表示每隔 2 秒最多擷取一個要求。
您也可以使用環境變數 APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECOND
來設定取樣百分比。 然後,它的優先順序會高於 JSON 設定中指定的速率限制。
固定百分比取樣
此範例說明如何設定取樣以擷取所有要求的大約三分之一:
{
"sampling": {
"percentage": 33.333
}
}
您也可以使用環境變數 APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE
來設定取樣百分比。 然後,它的優先順序會高於 JSON 設定中指定的取樣百分比。
注意
針對取樣百分比,選擇接近 100/N 的百分比,其中 N 是整數。 目前,取樣並不支援其他值。
取樣覆寫
取樣覆寫可讓您覆寫預設取樣百分比。 例如,您可以:
- 將取樣百分比設定為 0 (或某些較小的值) 來進行雜訊健康情況檢查。
- 將取樣百分比設定為 0 (或某些較小的值) 來進行雜訊相依性呼叫。
- 針對重要的要求類型,將取樣百分比設定為 100。 例如,即使您已將預設取樣設定為較低的值,也可以使用
/login
。
如需詳細資訊,請參閱取樣覆寫文件。
Java 管理延伸模組計量
如果您要收集一些其他 Java 管理延伸模組 (JMX) 計量:
{
"jmxMetrics": [
{
"name": "JVM uptime (millis)",
"objectName": "java.lang:type=Runtime",
"attribute": "Uptime"
},
{
"name": "MetaSpace Used",
"objectName": "java.lang:type=MemoryPool,name=Metaspace",
"attribute": "Usage.used"
}
]
}
在上述設定範例中:
name
是將指派給此 JMX 計量的計量名稱 (可以是任何值)。objectName
是您想要收集之JMX MBean
的物件名稱。 支援萬用字元星號 (*)。attribute
是您想要收集之JMX MBean
中的屬性名稱。
支援數值和布林值 JMX 計量值。 布林值 JMX 計量會對應至 0
(表示 false) 和 1
(表示 true)。
如需詳細資訊,請參閱 JMX 計量文件。
自訂維度
如果您想要將自訂維度新增至所有遙測:
{
"customDimensions": {
"mytag": "my value",
"anothertag": "${ANOTHER_VALUE}"
}
}
您可以在啟動時使用 ${...}
從指定的環境變數讀取值。
注意
從 3.0.2 版開始,如果您新增名為 service.version
的自訂維度,該值會儲存在 Application Insights 記錄資料表的 application_Version
資料行中,而不是自訂維度。
繼承的屬性 (預覽)
從 3.2.0 版開始,您可以在您的要求遙測上以程式設計方式設定自訂維度。 它會確保依相依性和記錄遙測的繼承。 會在該要求的內容中擷取全部。
{
"preview": {
"inheritedAttributes": [
{
"key": "mycustomer",
"type": "string"
}
]
}
}
然後,在各個要求開始時,呼叫:
Span.current().setAttribute("mycustomer", "xyz");
請亦參閲: 將自訂屬性新增至範圍。
連接字串覆寫 (預覽)
從 3.4.0 版本開始,這項功能處於預覽狀態。
連接字串覆寫可讓您覆寫預設連接字串。 例如,您可以:
- 針對一個 HTTP 路徑前置詞
/myapp1
,設定一個連接字串。 - 針對另一個 HTTP 路徑前置詞
/myapp2/
,設定另一個連接字串。
{
"preview": {
"connectionStringOverrides": [
{
"httpPathPrefix": "/myapp1",
"connectionString": "..."
},
{
"httpPathPrefix": "/myapp2",
"connectionString": "..."
}
]
}
}
雲端角色名稱覆寫 (預覽)
從 3.3.0 開始,這項功能處於預覽狀態。
雲端角色名稱覆寫可讓您覆寫預設雲端角色名稱。 例如,您可以:
- 針對一個 HTTP 路徑前置詞
/myapp1
,設定一個雲端角色名稱。 - 針對另一個 HTTP 路徑前置詞
/myapp2/
,設定另一個雲端角色名稱。
{
"preview": {
"roleNameOverrides": [
{
"httpPathPrefix": "/myapp1",
"roleName": "Role A"
},
{
"httpPathPrefix": "/myapp2",
"roleName": "Role B"
}
]
}
}
在執行階段設定的連接字串
從 3.4.8 版開始,如果您需要能夠在執行階段設定連接字串,請將此屬性新增至您的 JSON 設定:
{
"connectionStringConfiguredAtRuntime": true
}
將 applicationinsights-core
新增至您的應用程式:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
在類別 com.microsoft.applicationinsights.connectionstring.ConnectionString
中使用靜態 configure(String)
方法。
注意
在設定連接字串之前擷取的任何遙測都會卸除,因此最好盡早在應用程式啟動時進行設定。
自動收集 InProc 相依性 (預覽)
從 3.2.0 版開始,如果您想要擷取控制器 "InProc" 相依性,請使用下列設定:
{
"preview": {
"captureControllerSpans": true
}
}
瀏覽器 SDK 載入器 (預覽)
此功能會自動將 瀏覽器 SDK 載入器 插入應用程式的 HTML 頁面中,包括設定適當的連接字串。
例如,當您的 Java 應用程式傳回如下的回應時:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
</body>
</html>
它會自動修改以傳回:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
!function(v,y,T){var S=v.location,k="script"
<!-- Removed for brevity -->
connectionString: "YOUR_CONNECTION_STRING"
<!-- Removed for brevity --> }});
</script>
<title>Title</title>
</head>
<body>
</body>
</html>
此指令碼旨在協助客戶追蹤 Web 使用者資料,並將收集伺服器端遙測傳回使用者的 Azure 入口網站。 如需詳細資訊,請參閱 ApplicationInsights-JS。
如果您要啟用此功能,請新增下列設定選項:
{
"preview": {
"browserSdkLoader": {
"enabled": true
}
}
}
遙測處理器 (預覽版)
您可以使用遙測處理器以設定將套用至要求、相依性和追蹤遙測的規則。 例如,您可以:
- 遮罩敏感性資料。
- 有條件地新增自訂維度。
- 更新 Azure 入口網站中用來彙總類似遙測資料的範圍名稱。
- 卸除特定的範圍屬性,以控制擷取成本。
如需詳細資訊,請參閱遙測處理器文件。
注意
如果您要卸除特定 (整個) 範圍以控制擷取成本,請參閱取樣覆寫。
自訂檢測 (預覽)
從 3.3.1 版開始,您可以為應用程式中的方法擷取範圍:
{
"preview": {
"customInstrumentation": [
{
"className": "my.package.MyClass",
"methodName": "myMethod"
}
]
}
}
在本機停用擷取取樣 (預覽)
根據預設,當 Java 代理程式中的有效取樣百分比為 100%,且您的 Application Insights 資源上已設定擷取取樣時,則會套用擷取取樣百分比。
請注意,此行為既適用於 100% 的固定速率取樣,當要求速率未超過速率限制時,此行為也適用於有速率限制的取樣 (在持續滑動時間視窗期間,會有效擷取 100%)。
從 3.5.3 開始,您可以停用此行為 (即使您的 Application Insights 資源上已設定擷取取樣時,仍會在這些情況下保留 100% 的遙測):
{
"preview": {
"sampling": {
"ingestionSamplingEnabled": false
}
}
}
自動收集的記錄
系統會自動檢測 Log4j、Logback、JBoss Logging 和 java.util.logging。 系統會自動收集透過這些記錄架構執行的記錄。
只有在下列情況才會擷取記錄:
- 符合記錄架構的已設定層級。
- 也符合 Application Insights 的已設定層級。
例如,如果您的記錄架構設定為從套件 com.example
記錄 WARN
(而且設定方式如先前所述),且 Application Insights 設定為擷取 INFO
(且設定方式如所述),則 Application Insights 只會從套件 com.example
擷取 WARN
(以及更嚴重的項目)。
針對 Application Insights 設定的預設等級為 INFO
。 如果您想要變更此層級:
{
"instrumentation": {
"logging": {
"level": "WARN"
}
}
}
您也可以使用環境變數 APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL
來設定層級。 然後,它的優先順序會高於 JSON 設定中指定的層級。
您可以使用這些有效的 level
值在 applicationinsights.json
檔案中指定。 下表顯示這些值如何對應至不同記錄架構中的記錄層級。
層級 | Log4j | Logback | JBoss | 7 月 |
---|---|---|---|---|
OFF | OFF | OFF | OFF | OFF |
FATAL | FATAL | 錯誤 | FATAL | SEVERE |
ERROR (或 SEVERE) | 錯誤 | 錯誤 | 錯誤 | SEVERE |
WARN (或 WARNING) | WARN | WARN | WARN | 警告 |
INFO | INFO | INFO | INFO | INFO |
CONFIG | 偵錯 | 偵錯 | 偵錯 | CONFIG |
DEBUG (或 FINE) | 偵錯 | 偵錯 | 偵錯 | FINE |
FINER | 偵錯 | 偵錯 | 偵錯 | FINER |
TRACE (或 FINEST) | TRACE | TRACE | TRACE | FINEST |
ALL | ALL | ALL | ALL | ALL |
注意
如果例外狀況物件傳遞至記錄器,則記錄訊息 (和例外狀況物件詳細資料) 會顯示在 exceptions
資料表底下的 Azure 入口網站 (而不是 traces
資料表)。 若您想要同時查看 traces
與 exceptions
資料表的記錄訊息,可以撰寫記錄 (Kusto) 查詢加以聯集。 例如:
union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType
記錄標記 (預覽)
自 3.4.2 開始,您可以擷取 Logback 和 Log4j 2 的記錄標記:
{
"preview": {
"captureLogbackMarker": true,
"captureLog4jMarker": true
}
}
Logback 的其他記錄屬性 (預覽)
自 3.4.3 開始,您可以擷取 Logback 的 FileName
、ClassName
、MethodName
和 LineNumber
:
{
"preview": {
"captureLogbackCodeAttributes": true
}
}
警告
擷取程式碼屬性可能會增加效能額外負荷。
作為自訂維度的記錄層級
自 3.3.0 版起,根據預設,LoggingLevel
不會擷取為追蹤自訂維度的一部分,因為該資料已在 SeverityLevel
欄位中進行擷取。
如有需要,您可以暫時重新啟用先前的行為:
{
"preview": {
"captureLoggingLevelAsCustomDimension": true
}
}
自動收集的 Micrometer 計量 (包括 Spring Boot 傳動器計量)
如果您的應用程式使用 Micrometer,則會自動收集傳送至 Micrometer 全域登錄的計量。
此外,如果您的應用程式使用 Spring Boot 傳動器,則也會自動收集 Spring Boot 傳動器所設定的計量。
使用 Micrometer 傳送自訂計量
將 Micrometer 新增至您的應用程式,如下列範例所示。
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>1.6.1</version> </dependency>
使用 Micrometer 全域登錄來建立計量,如下列範例所示。
static final Counter counter = Metrics.counter("test.counter");
使用計數器來記錄計量,方法是使用下列命令。
counter.increment();
計量與
customDimensions
資料行中所擷取的標記會內嵌至 customMetrics 資料表。 您也可以在 計量總管 的Log-based metrics
計量命名空間下檢視計量。注意
Application Insights Java 會以底線取代 Micrometer 計量名稱中的所有非英數字元 (虛線除外)。 因此,上述
test.counter
計量會顯示為test_counter
。
若要停用自動收集的 Micrometer 計量和 Spring Boot 傳動器計量:
注意
自訂計量會個別計費,而且可能會產生額外的成本。 請務必檢查定價資訊。 若要停用 Micrometer 和 Spring Boot 傳動器計量,請將下列設定新增至設定檔。
{
"instrumentation": {
"micrometer": {
"enabled": false
}
}
}
Java 資料庫連線查詢遮罩
Java 資料庫連線 (JDBC) 查詢中的常值預設會遮罩,以避免意外擷取敏感性資料。
自 3.4.0 版本起,可以停用此行為。 例如:
{
"instrumentation": {
"jdbc": {
"masking": {
"enabled": false
}
}
}
}
Mongo 查詢遮罩
Mongo 查詢中的常值預設會遮罩,以避免意外擷取敏感性資料。
自 3.4.0 版本起,可以停用此行為。 例如:
{
"instrumentation": {
"mongo": {
"masking": {
"enabled": false
}
}
}
}
HTTP 標頭
從 3.3.0 版開始,您可以在伺服器 (要求) 遙測上擷取要求和回應標頭:
{
"preview": {
"captureHttpServerHeaders": {
"requestHeaders": [
"My-Header-A"
],
"responseHeaders": [
"My-Header-B"
]
}
}
}
標頭名稱區分大小寫。
會在屬性名稱 http.request.header.my_header_a
和 http.response.header.my_header_b
下擷取上述範例。
同樣地,您可以在用戶端 (相依性) 遙測上擷取要求和回應標頭:
{
"preview": {
"captureHttpClientHeaders": {
"requestHeaders": [
"My-Header-C"
],
"responseHeaders": [
"My-Header-D"
]
}
}
}
同樣地,標頭名稱區分大小寫。 會在屬性名稱 http.request.header.my_header_c
和 http.response.header.my_header_d
下擷取上述範例。
HTTP 伺服器 4xx 回應碼
根據預設,產生 4xx 回應碼的 HTTP 伺服器要求會擷取為錯誤。
自 3.3.0 版開始,您可以變更此行為,以將其擷取為成功:
{
"preview": {
"captureHttpServer4xxAsError": false
}
}
隱藏特定自動收集的遙測
從 3.0.3 版開始,可以使用下列設定選項來隱藏特定的自動收集遙測:
{
"instrumentation": {
"azureSdk": {
"enabled": false
},
"cassandra": {
"enabled": false
},
"jdbc": {
"enabled": false
},
"jms": {
"enabled": false
},
"kafka": {
"enabled": false
},
"logging": {
"enabled": false
},
"micrometer": {
"enabled": false
},
"mongo": {
"enabled": false
},
"quartz": {
"enabled": false
},
"rabbitmq": {
"enabled": false
},
"redis": {
"enabled": false
},
"springScheduling": {
"enabled": false
}
}
}
您也可以將這些環境變數設定為 false
來隱藏這些檢測:
APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED
然後,這些變數的優先順序會高於 JSON 設定中指定的已啟用變數。
注意
如果您要尋找更精細的控制,例如,若要隱藏一些 redis 呼叫 (但並非所有 Redis 呼叫),請參閱取樣覆寫。
預覽檢測
自 3.2.0 版開始,可以啟用下列預覽檢測:
{
"preview": {
"instrumentation": {
"akka": {
"enabled": true
},
"apacheCamel": {
"enabled": true
},
"grizzly": {
"enabled": true
},
"ktor": {
"enabled": true
},
"play": {
"enabled": true
},
"r2dbc": {
"enabled": true
},
"springIntegration": {
"enabled": true
},
"vertx": {
"enabled": true
}
}
}
}
注意
自 3.2.2 版開始,可以取得 Akka 檢測。 自 3.3.0 版開始,可以取得 Vertx HTTP 程式庫檢測。
計量間隔
根據預設,計量會每隔 60 秒擷取一次。
從 3.0.3 版開始,您可以變更此間隔:
{
"metricIntervalSeconds": 300
}
從 3.4.9 GA 開始,您也可以使用環境變數 APPLICATIONINSIGHTS_METRIC_INTERVAL_SECONDS
來設定 metricIntervalSeconds
。 然後,它的優先順序會高於 JSON 設定中指定的metricIntervalSeconds
。
此設定適用於下列計量:
- 預設效能計數器:例如 CPU 和記憶體
- 預設自訂計量:例如記憶體回收計時
- 已設定 JMX 計量:請參閱 JMX 計量一節
- Micrometer 計量: 請參閱自動收集的 Micrometer 計量章節
活動訊號
根據預設,Application Insights Java 3.x 每隔 15 分鐘傳送一次活動訊號計量。 如果您使用活動訊號計量來觸發警示,您可以增加此活動訊號的頻率:
{
"heartbeat": {
"intervalSeconds": 60
}
}
注意
您無法將間隔增加到超過 15 分鐘,因為活動訊號資料也會用來追蹤 Application Insights 使用方式。
驗證
注意
由 3.4.17 版開始,驗證功能為正式發行。
您可以使用驗證來設定代理程式,以產生 Microsoft Entra 驗證所需的權杖認證。 如需詳細資訊,請參閱驗證文件。
HTTP Proxy
如果您的應用程式位於防火牆後方,且無法直接連線到 Application Insights,請參閱 Application Insights 所使用的 IP 位址。
若要解決此問題,您可以將 Application Insights Java 3.x 設定為使用 HTTP Proxy。
{
"proxy": {
"host": "myproxy",
"port": 8080
}
}
您也可以使用環境變數 APPLICATIONINSIGHTS_PROXY
來設定 HTTP Proxy,其格式為 https://<host>:<port>
。 然後,它的優先順序會高於 JSON 設定中指定的 Proxy。
您可以使用 APPLICATIONINSIGHTS_PROXY
環境變數,為 Proxy 提供使用者和密碼:https://<user>:<password>@<host>:<port>
。
Application Insights Java 3.x 也需遵守全域 https.proxyHost
和 https.proxyPort
系統屬性 (如果已設定) (在需要時則為 http.nonProxyHosts
)。
在擷取失敗後復原
將遙測傳送至 Application Insights 服務時若失敗,Application Insights Java 3.x 會將遙測儲存到磁碟,並繼續從磁碟重試。
磁碟持續性的預設限制為 50 Mb。 如果您的遙測量較大,或必須能夠在經歷較長的網路或擷取服務中斷後復原,自 3.3.0 版起,您已可提高此限制:
{
"preview": {
"diskPersistenceMaxSizeMb": 50
}
}
自我診斷
「自我診斷」是指 Application Insights Java 3.x 的內部記錄。 這項功能有助於找出和診斷 Application Insights 本身的問題。
根據預設,Application Insights Java 3.x 在等級 INFO
同時記錄至檔案 applicationinsights.log
和主控台 (對應至此設定):
{
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}
在上述設定範例中:
level
可以是OFF
、ERROR
、WARN
、INFO
、DEBUG
或TRACE
其中一項。path
可以是絕對或相對路徑。 會根據applicationinsights-agent-3.6.2.jar
所在的目錄解析相對路徑。
自 3.0.2 版開始,您也可以使用環境變數 APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL
來設定自我診斷 level
。 然後,它的優先順序會高於 JSON 設定中指定的自我診斷層級。
自 3.0.3 版開始,您也可以使用環境變數 APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_FILE_PATH
來設定自我診斷檔案位置。 然後,它的優先順序會高於 JSON 設定中指定的自我診斷檔案路徑。
遙測相互關聯
預設會啟用遙測相互關聯,但您可以在組態中將其停用。
{
"preview": {
"disablePropagation": true
}
}
範例
此範例說明設定檔與多個元件的外觀。 根據您的需求設定特定選項。
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
},
"sampling": {
"percentage": 100
},
"jmxMetrics": [
],
"customDimensions": {
},
"instrumentation": {
"logging": {
"level": "INFO"
},
"micrometer": {
"enabled": true
}
},
"proxy": {
},
"preview": {
"processors": [
]
},
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}