Emit custom metrics
The emit-metric
policy sends custom metrics in the specified format to Application Insights.
Note
- Custom metrics are a preview feature of Azure Monitor and subject to limitations.
- For more information about the API Management data added to Application Insights, see How to integrate Azure API Management with Azure Application Insights.
Note
Set the policy's elements and child elements in the order provided in the policy statement. Learn more about how to set or edit API Management policies.
Policy statement
<emit-metric name="name of custom metric" value="value of custom metric" namespace="metric namespace">
<dimension name="dimension name" value="dimension value" />
</emit-metric>
Attributes
Attribute | Description | Required | Default value |
---|---|---|---|
name | A string. Name of custom metric. Policy expressions aren't allowed. | Yes | N/A |
namespace | A string. Namespace of custom metric. Policy expressions aren't allowed. | No | API Management |
value | Value of custom metric expressed as a double. Policy expressions are allowed. | No | 1 |
Elements
Element | Description | Required |
---|---|---|
dimension | Add one or more of these elements for each dimension included in the custom metric. | Yes |
dimension attributes
Attribute | Description | Required | Default value |
---|---|---|---|
name | A string or policy expression. Name of dimension. | Yes | N/A |
value | A string or policy expression. Value of dimension. Can only be omitted if name matches one of the default dimensions. If so, value is provided as per dimension name. |
No | N/A |
Default dimension names that may be used without value
- API ID
- Operation ID
- Product ID
- User ID
- Subscription ID
- Location ID
- Gateway ID
Usage
- Policy sections: inbound, outbound, backend, on-error
- Policy scopes: global, workspace, product, API, operation
- Gateways: dedicated, consumption, self-hosted
Usage notes
You can configure at most 10 custom dimensions for this policy.
Invoking the
emit-metric
policy counts toward the usage limits for custom metrics per region in a subscription. Learn more
Example
The following example sends a custom metric to count the number of API requests along with user ID, client IP, and API ID as custom dimensions.
<policies>
<inbound>
<emit-metric name="Request" value="1" namespace="my-metrics">
<dimension name="User ID" />
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" />
</emit-metric>
</inbound>
<outbound>
</outbound>
</policies>
Related policies
Next steps
For more information about working with policies, see:
- Tutorial: Transform and protect your API
- Policy reference for a full list of policy statements and their settings
- Policy expressions
- Set or edit policies
- Reuse policy configurations
- Policy snippets repo
Feedback
Submit and view feedback for