Api Diagnostic - Create Or Update
Creates a new Diagnostic for an API or updates an existing one.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/diagnostics/{diagnosticId}?api-version=2021-08-01
URI Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
|
api
|
path | True |
|
API identifier. Must be unique in the current API Management service instance. |
|
diagnostic
|
path | True |
|
Diagnostic identifier. Must be unique in the current API Management service instance. Regex pattern: |
|
resource
|
path | True |
|
The name of the resource group. |
|
service
|
path | True |
|
The name of the API Management service. Regex pattern: |
|
subscription
|
path | True |
|
Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. |
|
api-version
|
query | True |
|
Version of the API to be used with the client request. |
Request Header
| Name | Required | Type | Description |
|---|---|---|---|
| If-Match |
|
ETag of the Entity. Not required when creating an entity, but required when updating an entity. |
Request Body
| Name | Required | Type | Description |
|---|---|---|---|
| properties.loggerId | True |
|
Resource Id of a target logger. |
| properties.alwaysLog |
Specifies for what type of messages sampling settings should not apply. |
||
| properties.backend |
Diagnostic settings for incoming/outgoing HTTP messages to the Backend |
||
| properties.frontend |
Diagnostic settings for incoming/outgoing HTTP messages to the Gateway. |
||
| properties.httpCorrelationProtocol |
Sets correlation protocol to use for Application Insights diagnostics. |
||
| properties.logClientIp |
|
Log the ClientIP. Default is false. |
|
| properties.metrics |
|
Emit custom metrics via emit-metric policy. Applicable only to Application Insights diagnostic settings. |
|
| properties.operationNameFormat |
The format of the Operation Name for Application Insights telemetries. Default is Name. |
||
| properties.sampling |
Sampling settings for Diagnostic. |
||
| properties.verbosity |
The verbosity level applied to traces emitted by trace policies. |
Responses
| Name | Type | Description |
|---|---|---|
| 200 OK |
Diagnostic was successfully updated. Headers
|
|
| 201 Created |
Diagnostic was successfully created. Headers
|
|
| Other Status Codes |
Error response describing why the operation failed. |
Security
azure_auth
Azure Active Directory OAuth2 Flow.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
| Name | Description |
|---|---|
| user_impersonation | impersonate your user account |
Examples
ApiManagementCreateApiDiagnostic
Sample Request
PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/diagnostics/applicationinsights?api-version=2021-08-01
{
"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
}
}
}
}
}
Sample Response
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/diagnostics/applicationinsights",
"type": "Microsoft.ApiManagement/service/apis/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
}
}
}
}
}
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/57d1f7558aa04f15146d9d8a/diagnostics/applicationinsights",
"type": "Microsoft.ApiManagement/service/apis/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
}
}
}
}
}
Definitions
|
Always |
Specifies for what type of messages sampling settings should not apply. |
|
Body |
Body logging settings. |
|
Data |
|
|
Data |
|
|
Data |
Data masking mode. |
|
Diagnostic |
Diagnostic details. |
|
Error |
Error Field contract. |
|
Error |
Error Response. |
|
Http |
Sets correlation protocol to use for Application Insights diagnostics. |
|
Http |
Http message diagnostic settings. |
|
Operation |
The format of the Operation Name for Application Insights telemetries. Default is Name. |
|
Pipeline |
Diagnostic settings for incoming/outgoing HTTP messages to the Gateway. |
|
Sampling |
Sampling settings for Diagnostic. |
|
Sampling |
Sampling type. |
| Verbosity |
The verbosity level applied to traces emitted by trace policies. |
AlwaysLog
Specifies for what type of messages sampling settings should not apply.
| Name | Type | Description |
|---|---|---|
| allErrors |
|
Always log all erroneous request regardless of sampling settings. |
BodyDiagnosticSettings
Body logging settings.
| Name | Type | Description |
|---|---|---|
| bytes |
|
Number of request body bytes to log. |
DataMasking
| Name | Type | Description |
|---|---|---|
| headers |
Masking settings for headers |
|
| queryParams |
Masking settings for Url query parameters |
DataMaskingEntity
| Name | Type | Description |
|---|---|---|
| mode |
Data masking mode. |
|
| value |
|
The name of an entity to mask (e.g. a name of a header or a query parameter). |
DataMaskingMode
Data masking mode.
| Name | Type | Description |
|---|---|---|
| Hide |
|
Hide the presence of an entity. |
| Mask |
|
Mask the value of an entity. |
DiagnosticContract
Diagnostic details.
| Name | Type | Description |
|---|---|---|
| id |
|
Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} |
| name |
|
The name of the resource |
| properties.alwaysLog |
Specifies for what type of messages sampling settings should not apply. |
|
| properties.backend |
Diagnostic settings for incoming/outgoing HTTP messages to the Backend |
|
| properties.frontend |
Diagnostic settings for incoming/outgoing HTTP messages to the Gateway. |
|
| properties.httpCorrelationProtocol |
Sets correlation protocol to use for Application Insights diagnostics. |
|
| properties.logClientIp |
|
Log the ClientIP. Default is false. |
| properties.loggerId |
|
Resource Id of a target logger. |
| properties.metrics |
|
Emit custom metrics via emit-metric policy. Applicable only to Application Insights diagnostic settings. |
| properties.operationNameFormat |
The format of the Operation Name for Application Insights telemetries. Default is Name. |
|
| properties.sampling |
Sampling settings for Diagnostic. |
|
| properties.verbosity |
The verbosity level applied to traces emitted by trace policies. |
|
| type |
|
The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" |
ErrorFieldContract
Error Field contract.
| Name | Type | Description |
|---|---|---|
| code |
|
Property level error code. |
| message |
|
Human-readable representation of property-level error. |
| target |
|
Property name. |
ErrorResponse
Error Response.
| Name | Type | Description |
|---|---|---|
| error.code |
|
Service-defined error code. This code serves as a sub-status for the HTTP error code specified in the response. |
| error.details |
The list of invalid fields send in request, in case of validation error. |
|
| error.message |
|
Human-readable representation of the error. |
HttpCorrelationProtocol
Sets correlation protocol to use for Application Insights diagnostics.
| Name | Type | Description |
|---|---|---|
| Legacy |
|
Inject Request-Id and Request-Context headers with request correlation data. See https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HttpCorrelationProtocol.md. |
| None |
|
Do not read and inject correlation headers. |
| W3C |
|
Inject Trace Context headers. See https://w3c.github.io/trace-context. |
HttpMessageDiagnostic
Http message diagnostic settings.
| Name | Type | Description |
|---|---|---|
| body |
Body logging settings. |
|
| dataMasking |
Data masking settings. |
|
| headers |
|
Array of HTTP Headers to log. |
OperationNameFormat
The format of the Operation Name for Application Insights telemetries. Default is Name.
| Name | Type | Description |
|---|---|---|
| Name |
|
API_NAME;rev=API_REVISION - OPERATION_NAME |
| Url |
|
HTTP_VERB URL |
PipelineDiagnosticSettings
Diagnostic settings for incoming/outgoing HTTP messages to the Gateway.
| Name | Type | Description |
|---|---|---|
| request |
Diagnostic settings for request. |
|
| response |
Diagnostic settings for response. |
SamplingSettings
Sampling settings for Diagnostic.
| Name | Type | Description |
|---|---|---|
| percentage |
|
Rate of sampling for fixed-rate sampling. |
| samplingType |
Sampling type. |
SamplingType
Sampling type.
| Name | Type | Description |
|---|---|---|
| fixed |
|
Fixed-rate sampling. |
Verbosity
The verbosity level applied to traces emitted by trace policies.
| Name | Type | Description |
|---|---|---|
| error |
|
Only traces with 'severity' set to 'error' will be sent to the logger attached to this diagnostic instance. |
| information |
|
Traces with 'severity' set to 'information' and 'error' will be sent to the logger attached to this diagnostic instance. |
| verbose |
|
All the traces emitted by trace policies will be sent to the logger attached to this diagnostic instance. |