Diagnostic - Create Or Update

建立新的診斷或更新現有的診斷。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/diagnostics/{diagnosticId}?api-version=2022-08-01

URI 參數

名稱 位於 必要 類型 Description
diagnosticId
path True

string

診斷標識碼。 在目前 API 管理 服務實例中必須是唯一的。

Regex pattern: ^[^*#&+:<>?]+$

resourceGroupName
path True

string

資源群組的名稱。 名稱不區分大小寫。

serviceName
path True

string

API 管理 服務的名稱。

Regex pattern: ^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$

subscriptionId
path True

string

目標訂用帳戶的標識碼。

api-version
query True

string

用於此作業的 API 版本。

要求標頭

名稱 必要 類型 Description
If-Match

string

實體的 ETag。 建立實體時不需要,但在更新實體時則為必要專案。

要求本文

名稱 必要 類型 Description
properties.loggerId True

string

目標記錄器的資源識別碼。

properties.alwaysLog

AlwaysLog

指定不應該套用哪種類型的訊息取樣設定。

properties.backend

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至後端的診斷設定

properties.frontend

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至閘道的診斷設定。

properties.httpCorrelationProtocol

HttpCorrelationProtocol

設定要用於Application Insights診斷的相互關聯通訊協定。

properties.logClientIp

boolean

記錄 ClientIP。 預設值為 false。

properties.metrics

boolean

透過發出計量原則發出自定義計量。 僅適用於 Application Insights 診斷設定。

properties.operationNameFormat

OperationNameFormat

Application Insights 遙測的作業名稱格式。 預設值為 Name。

properties.sampling

SamplingSettings

診斷的取樣設定。

properties.verbosity

Verbosity

套用至追蹤原則所發出之追蹤的詳細資訊層級。

回應

名稱 類型 Description
200 OK

DiagnosticContract

診斷已成功更新

Headers

ETag: string

201 Created

DiagnosticContract

已成功建立診斷。

Headers

ETag: string

Other Status Codes

ErrorResponse

描述作業失敗原因的錯誤回應。

安全性

azure_auth

Azure Active Directory OAuth2 Flow。

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

名稱 Description
user_impersonation 模擬您的用戶帳戶

範例

ApiManagementCreateDiagnostic

Sample Request

PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/diagnostics/applicationinsights?api-version=2022-08-01

{
  "properties": {
    "alwaysLog": "allErrors",
    "loggerId": "/loggers/azuremonitor",
    "sampling": {
      "samplingType": "fixed",
      "percentage": 50
    },
    "frontend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    },
    "backend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    }
  }
}

Sample Response

{
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/diagnostics/applicationinsights",
  "type": "Microsoft.ApiManagement/service/diagnostics",
  "name": "applicationinsights",
  "properties": {
    "alwaysLog": "allErrors",
    "loggerId": "/loggers/azuremonitor",
    "sampling": {
      "samplingType": "fixed",
      "percentage": 50
    },
    "frontend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    },
    "backend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    }
  }
}
{
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/diagnostics/applicationinsights",
  "type": "Microsoft.ApiManagement/service/diagnostics",
  "name": "applicationinsights",
  "properties": {
    "alwaysLog": "allErrors",
    "loggerId": "/loggers/applicationinsights",
    "sampling": {
      "samplingType": "fixed",
      "percentage": 50
    },
    "frontend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    },
    "backend": {
      "request": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      },
      "response": {
        "headers": [
          "Content-type"
        ],
        "body": {
          "bytes": 512
        }
      }
    }
  }
}

定義

名稱 Description
AlwaysLog

指定不應該套用哪種類型的訊息取樣設定。

BodyDiagnosticSettings

本文記錄設定。

DataMasking
DataMaskingEntity
DataMaskingMode

數據遮罩模式。

DiagnosticContract

診斷詳細數據。

ErrorFieldContract

錯誤欄位合約。

ErrorResponse

錯誤回應。

HttpCorrelationProtocol

設定要用於Application Insights診斷的相互關聯通訊協定。

HttpMessageDiagnostic

Http 訊息診斷設定。

OperationNameFormat

Application Insights 遙測的作業名稱格式。 預設值為 Name。

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至閘道的診斷設定。

SamplingSettings

診斷的取樣設定。

SamplingType

取樣類型。

Verbosity

套用至追蹤原則所發出之追蹤的詳細資訊層級。

AlwaysLog

指定不應該套用哪種類型的訊息取樣設定。

名稱 類型 Description
allErrors

string

不論取樣設定為何,一律記錄所有錯誤要求。

BodyDiagnosticSettings

本文記錄設定。

名稱 類型 Description
bytes

integer

要記錄的要求本文字節數目。

DataMasking

名稱 類型 Description
headers

DataMaskingEntity[]

標頭的遮罩設定

queryParams

DataMaskingEntity[]

Url 查詢參數的遮罩設定

DataMaskingEntity

名稱 類型 Description
mode

DataMaskingMode

數據遮罩模式。

value

string

要遮罩的實體名稱 (例如標頭的名稱或查詢參數) 。

DataMaskingMode

數據遮罩模式。

名稱 類型 Description
Hide

string

隱藏實體是否存在。

Mask

string

遮罩實體的值。

DiagnosticContract

診斷詳細數據。

名稱 類型 Description
id

string

資源的完整資源識別碼。 Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

name

string

資源的名稱

properties.alwaysLog

AlwaysLog

指定不應該套用哪種類型的訊息取樣設定。

properties.backend

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至後端的診斷設定

properties.frontend

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至閘道的診斷設定。

properties.httpCorrelationProtocol

HttpCorrelationProtocol

設定要用於Application Insights診斷的相互關聯通訊協定。

properties.logClientIp

boolean

記錄 ClientIP。 預設值為 false。

properties.loggerId

string

目標記錄器的資源識別碼。

properties.metrics

boolean

透過發出計量原則發出自定義計量。 僅適用於 Application Insights 診斷設定。

properties.operationNameFormat

OperationNameFormat

Application Insights 遙測的作業名稱格式。 預設值為 Name。

properties.sampling

SamplingSettings

診斷的取樣設定。

properties.verbosity

Verbosity

套用至追蹤原則所發出之追蹤的詳細資訊層級。

type

string

資源類型。 例如“Microsoft.Compute/virtualMachines” 或 “Microsoft.Storage/storageAccounts”

ErrorFieldContract

錯誤欄位合約。

名稱 類型 Description
code

string

屬性層級錯誤碼。

message

string

人類可讀取的屬性層級錯誤表示法。

target

string

屬性名稱。

ErrorResponse

錯誤回應。

名稱 類型 Description
error.code

string

服務定義的錯誤碼。 此代碼會作為回應中指定之 HTTP 錯誤碼的子狀態。

error.details

ErrorFieldContract[]

要求中傳送無效欄位的清單,以防發生驗證錯誤。

error.message

string

人類可閱讀的錯誤表示法。

HttpCorrelationProtocol

設定要用於Application Insights診斷的相互關聯通訊協定。

名稱 類型 Description
Legacy

string

使用要求相互關聯數據插入 Request-Id 和 Request-Context 標頭。 請參閱 https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HttpCorrelationProtocol.md

None

string

請勿讀取並插入相互關聯標頭。

W3C

string

插入追蹤內容標頭。 請參閱 https://w3c.github.io/trace-context

HttpMessageDiagnostic

Http 訊息診斷設定。

名稱 類型 Description
body

BodyDiagnosticSettings

本文記錄設定。

dataMasking

DataMasking

數據遮罩設定。

headers

string[]

要記錄的 HTTP 標頭陣列。

OperationNameFormat

Application Insights 遙測的作業名稱格式。 預設值為 Name。

名稱 類型 Description
Name

string

API_NAME;rev=API_REVISION - OPERATION_NAME

Url

string

HTTP_VERB URL

PipelineDiagnosticSettings

傳入/傳出 HTTP 訊息至閘道的診斷設定。

名稱 類型 Description
request

HttpMessageDiagnostic

要求的診斷設定。

response

HttpMessageDiagnostic

回應的診斷設定。

SamplingSettings

診斷的取樣設定。

名稱 類型 Description
percentage

number

固定速率取樣的取樣率。

samplingType

SamplingType

取樣類型。

SamplingType

取樣類型。

名稱 類型 Description
fixed

string

固定速率取樣。

Verbosity

套用至追蹤原則所發出之追蹤的詳細資訊層級。

名稱 類型 Description
error

string

只有 'severity' 設為 'error' 的追蹤才會傳送至附加至此診斷實例的記錄器。

information

string

'severity' 設定為 'information' 和 'error' 的追蹤將會傳送至附加至此診斷實例的記錄器。

verbose

string

追蹤原則發出的所有追蹤都會傳送至附加至此診斷實例的記錄器。